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
Comment thread sys/net/include/rpl.h Outdated
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.

Comment thread sys/net/include/rpl/rpl_structs.h Outdated
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.

Comment thread sys/net/network_layer/sixlowpan/ip.c Outdated
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
Comment thread sys/net/include/rpl/rpl_nonstoring.h Outdated
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