Skip to content

Introduction of RPL non-storing mode#1404

Merged
OlegHahm merged 1 commit intoRIOT-OS:masterfrom
fabratu:rpl_nonstoring
Nov 27, 2014
Merged

Introduction of RPL non-storing mode#1404
OlegHahm merged 1 commit intoRIOT-OS:masterfrom
fabratu:rpl_nonstoring

Conversation

@fabratu
Copy link
Copy Markdown
Contributor

@fabratu fabratu commented Jul 12, 2014

This is the first commit for discussion. It works - but e.g. the checksum in UDP-packages is wrong because the length is zero (which it is not btw). In addition the design decisions concerning messages sending/relaying may be discuss-able - but I think they are as noninvasive as the network stack would allow them to be.

At last - the proposed fixes concerning storing/non-storing mode files with the same declaration-base in one directory from @Kijewski does not work. (Both - excluding files or moving them to a sub-directory) But I will see more into it. Maybe someone can help.

@Kijewski Kijewski added this to the Release NEXT MAJOR milestone Jul 14, 2014
@fabratu
Copy link
Copy Markdown
Contributor Author

fabratu commented Jul 29, 2014

Due to exams and stuff there had been no progression on this PR in the last days. Although I thought of some restructuring - a new update is coming shortly.

@fabratu
Copy link
Copy Markdown
Contributor Author

fabratu commented Aug 12, 2014

Implementation is now working with minus one thread :) However the two problems 1) integration of both storing/non-storing in one folder and 2) checksum stay the same. I will work on both shortly. Also rebased with master according to new kernel-pids etc.

@fabratu
Copy link
Copy Markdown
Contributor Author

fabratu commented Sep 9, 2014

Everything is fixed. I will squash and rebase.

@N8Fear
Copy link
Copy Markdown

N8Fear commented Sep 9, 2014

At several places there are code fragments (lines) commented out via // - are you planning on removing this fragments?

@fabratu
Copy link
Copy Markdown
Contributor Author

fabratu commented Sep 9, 2014

Sure thing. They will be gone after rebase.

@fabratu fabratu force-pushed the rpl_nonstoring branch 2 times, most recently from b8c8e5e to 473c3bb Compare September 9, 2014 17:31
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think something like rpl_is_root() would be a more appropriate name.

@OlegHahm
Copy link
Copy Markdown
Member

Please remove the merge commits and use the proposed license header from https://github.com/RIOT-OS/RIOT/wiki/Coding-conventions#documentation.

@OlegHahm
Copy link
Copy Markdown
Member

It's slightly unrelated to this PR, but can you fix the @file doxygen fields for the headers in sys/net/include/rpl? Either in this or a new PR.

Edit: removing the actual file name after @file is good enough. doxygen will set this correctly if the file name is unique.

@OlegHahm
Copy link
Copy Markdown
Member

Obey coding conventions also regarding the maximum number of characters per line.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope, the old version was the right RIOT style.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove

@fabratu fabratu force-pushed the rpl_nonstoring branch 4 times, most recently from 380825e to ebf2c99 Compare November 27, 2014 16:15
@OlegHahm OlegHahm removed the State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet label Nov 27, 2014
@fabratu fabratu force-pushed the rpl_nonstoring branch 2 times, most recently from 345cd2e to e140331 Compare November 27, 2014 17:42
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

p_len

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I wait for more or is this all? :)

This implementation is based on RFC 6550 with addition of RFC 6554 (Source Routing Header for RPL). Both can be found under the following links:
- http://tools.ietf.org/html/rfc6550
- http://tools.ietf.org/html/rfc6554

The PR provides basic functionality for handling and forwarding packages in non-storing mode. In addition the structure of the previous implemented RPL storing mode is now revised, so that readability and modularity is increased. The following features are implemented:
- building function for a SRH and integration in common packets
- source-route build algorithm based on the structure of the DODAG
- an RPL-based interpretation of the SRH and removal at destination
- new structure for RPl-module with extracted beaconing-functionality
- leaf nodes are now supported

There are some missed goals and should be included in future updates:
- building a common routing table structure for different types of routing protocols
- routing tables are statically assigned via source code, future update should have an optional variable at build-time, which sets the size of the routing table depending on the desired functionality of a node in the network (root, node, leaf)
OlegHahm added a commit that referenced this pull request Nov 27, 2014
Introduction of RPL non-storing mode
@OlegHahm OlegHahm merged commit 7f9fb2b into RIOT-OS:master Nov 27, 2014
@fabratu
Copy link
Copy Markdown
Contributor Author

fabratu commented Nov 28, 2014

Awesome - thanks for all the help :)

@emmanuelsearch
Copy link
Copy Markdown
Member

congrats!

cgundogan added a commit to cgundogan/RIOT that referenced this pull request Dec 4, 2014
In PR RIOT-OS#1404 addr_str was renamed to addr_str_mode,
but at some places it was still referenced as addr_str.
When enabling debug messages, the compiler complains.
cgundogan added a commit to cgundogan/RIOT that referenced this pull request Dec 5, 2014
As a result of PR RIOT-OS#1404, entries will not be added to the routing table
when running in storing mode, although it is supposed to do so.
You can verify by running rpl_udp and call *route* on the dodag-root.

This PR fixes the wrong offset calculation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: network Area: Networking Type: new feature The issue requests / The PR implemements a new feature for RIOT

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants