Include folder in net / RPL restructuring

Good morning,

for restructuring RPL I was wondering where to put common Routing Layer functions like ETX. My first and obvious impression was to move them in the subfolder routing_layer, but it is also possible to put such functions into the include folder of net directly. Any suggestions?

Have a nice day

Fabian

Hi,

A subfolder to organize the common used functions sounds good to me. Especially when they are probably used across distinct routing protocols . Im not sure about the name routing_layer, it sounds a little bit too general. I would propose e.g. forwarding_layer.

Best regards, Martin

Hi, I think Fabian meant the already existing directory sys/net/routing_layer/. Though they might not be used by anything else but the routing layer, I think it is most clearly to put the function prototypes into sys/net/include/etx.h and the implementations into sys/net/routing_layer/etx/. In the optimal case all the other headers in there would be used by their respective upper or layer protocols, too, and experience showed that moving the implementation around later-on (e.g. to rename routing_layer to forwarding_layer ;-)) is heavily simplified, when public headers are not in those directories.

Best regards, Martine

+1

Christian

OK, then +1

Hi!

I think Fabian meant the already existing directory ``sys/net/routing_layer/``.

The folder is called `sys/net/routing`, since routing is no layer (and forwarding isn't, either).

Though they might not be used by anything else but the routing layer, I think it is most clearly to put the function prototypes into sys/net/include/etx.h and the implementations into sys/net/routing_layer/etx/. In the optimal case all the other headers in there would be used by their respective upper or layer protocols, too, and experience showed that moving the implementation around later-on (e.g. to rename routing_layer to forwarding_layer ;-)) is heavily simplified, when public headers are not in those directories.

Definitely a good idea.

The question where to put the ETX implementation is difficult. You could either vote for putting it into the routing folder (or a metrics subdirectory), because ETX is mostly used as a metric for routing protocols. But you could also locate it in the link_layer folder, because the current implementation measures link layer metrics. Or we could put it into cross_layer, because it can provide information for more than one service and might be extended to return path metrics, too.

I think, currently `sys/net/routing` or a metrics subdirectory seems the best solution to me.

Cheers, Oleg

routing is no layer (and forwarding isn't, either).

true. (shame on me)

`sys/net/routing` metrics subdirectory seems the best solution ...

+1