Routing Tables

Hi, with the development and extension of several routing protocols in progress, I was wondering if there are any plans to add some sort of routing table API to RIOT in the (near) future? The one included in the RPL implementation looks somewhat bare-bones and inefficient to me, and having every author of a routing protocol cobble their own implementation together seems, well, inefficient :wink: I'd be interested in any discusssion on this topic.

Cheers, Lotte

Hi, I think this would be a good idea. I propose to start a new module for this (routing_utils or something like that) to prevent cluttering of net_help. If you have a proposal feel free to open a pull request.

Best regards, Martine

Hi,

Hi, I think this would be a good idea. I propose to start a new module for this (routing_utils or something like that) to prevent cluttering of net_help. If you have a proposal feel free to open a pull request.

I fear I'm not experienced enough to come up with a satisfactory solution on my own, but I'd love to help if there are more people interested in tackling this together.

Cheers, Lotte

Well there is

ipv6_iface_set_routing_provider(ipv6_addr_t *(*next_hop)(ipv6_addr_t* dest))

with which you can register a function that returns the address of the next hop for the address it gets as a parameter. So while you have to maintain your own routing table, so to say, I think many protocols will need to maintain a data structure of all available destinations anyway. This way you don't have to copy the data and avoid wasting memory.

Benjamin