Skip to content
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

Introduction of RPL non-storing mode #1404

Merged
merged 1 commit into from
Nov 27, 2014
Merged

Conversation

fabratu
Copy link
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
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
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
Contributor Author

fabratu commented Sep 9, 2014

Everything is fixed. I will squash and rebase.

@N8Fear
Copy link

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
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
* @return 1 if root, 0 otherwise
*
* */
uint8_t rpl_get_root_status(void);
Copy link
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
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
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
Member

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

uint8_t type;
uint8_t length;
} rpl_opt_t;
}
rpl_opt_t;
Copy link
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.

return udp_packet_handler_pid;
}

kernel_pid_t get_tcp_packet_handler_pid(void)
Copy link
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
*
* @param[in] destination IPv6-address of the destination of the message.
* @param[in] payload Payload of the message.
* @param[in] len Length of the message
Copy link
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
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
Contributor Author

fabratu commented Nov 28, 2014

Awesome - thanks for all the help :)

@emmanuelsearch
Copy link
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 PR-award-nominee Deprecated. Will be removed soon. 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