-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gnrc/rpl: Implement Minimum Rank with Hysteresis Objective Function #14623
Conversation
098ff4e
to
095b5b9
Compare
Given that |
The inclusion of neighbor statistics would exclude some low-memory boards from running |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really a comment about MRHOF yet, but about the example application for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now a bit more about the MRHOF code.
@mcr maybe you are interested in this one. |
No time to look into this in detail. If you think this is in a good state, please go ahead without my review.
RPL doesn't really require 6LoWPAN, so testing this with this native and des-virt should be possible or am I mistaken? This way we may be "easily" able to put regression tests in place. |
I'm willing to review and test this in the near future. Please ping me if I forget to do so. |
Thank you! Just ping me if the documentation there is lacking, I hoped it would allow for easy testing. |
I dropped the test/benchmark application hoping that this will make the PR easier to review. |
@OlegHahm is there anything I can do to move this forward? |
Let me see - I'll try my best. |
This patch has been floating around for 7 years now, closing it now. |
I don't have the capacity to pick it up, but collecting some notes for when I do (or whoever does it): The |
Contribution description
This is a rebase of a previous PR to add the Minimum Rank with Hysteresis Objective Function (rfc 6719) for RPL.
Currently RIOT only implements the 'zero' objective function for RPL. Here always the path with the least hops will be selected.
If two nodes can see each other just barely, they would still rather chose the direct link instead of using an additional hop over a third node that both can see well.
MR-HOF adds link metrics to the rank calculation to solve this situation.
Testing procedure
A test application is provided in
examples/gnrc_networking_rpl
. Each node flashed with it will periodically (once per second) try to send a HELLO message to the DODAG root.One node can be selected as the root node with the
test start
command. This starts the experiment.The root node will count the HELLO messages from each node, the current results can be displayed with
test info
.Under ideal conditions, the root node should receive as many HELLO messages per second as there are nodes in the mesh.
The experiment was conducted on the IoT-Lab using
iotlab-m3
on thegrenoble
site. I used 50 mesh nodes as well as 5 sniffer nodes to visualize the resulting DODAG using foren6.OF0
This is the default behavior and the only available objective function currently in
master
.It will always select the shortest path, disregarding any link metrics.
test results
MR-HOF (LQI)
The at86r231 on the testbed does not support ETX reporting (and
at86rf2xx
is not using the new radio HAL for a software fallback yet) so I used the LQI as metric instead. (gnrc_rpl_mrhof_lqi
)test results
Issues/PRs references
taken over from #7450
depends on and includes #14448
I noticed that the DODAG would degrade after several minutes independent of the objective function. This lead to a drop in the packets/s received on the root node.
In foren6 it seemed like some nodes would select parent nodes with a higher rank than they themselves had.
I did not attempt to debug this yet, but with
socket_zep
we should soon be able to simulate a mesh entirely onnative
, which should make that easier.