-
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_networking: run as host per default #21119
base: master
Are you sure you want to change the base?
Conversation
USEMODULE += gnrc_rpl | ||
USEMODULE += auto_init_gnrc_rpl |
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.
It still might be worth to have hosts in there as RPL leafs.
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.
Do you have any particular use case in mind?
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.
Well if you have a gnrc_networking
router you might want it to also see the hosts (so they need to be a RPL leaf, i.e, keep the gnrc_rpl
modules in regardless ;-))
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.
Also: IIRC this is currently our only real RPL example, so why remove it?
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.
Ah, locally I have examples/gnrc_networking_rpl
but that's not upstream (anymore?).
Anyhow, I made it optional 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.
That was never upstream, it was part of #14623
But yea a dedicated RPL example would be better IMHO
examples/gnrc_networking/Makefile
Outdated
# Specify the mandatory networking module for a IPv6 routing node | ||
USEMODULE += gnrc_ipv6_router_default | ||
# Add a routing protocol | ||
USEMODULE += gnrc_rpl | ||
USEMODULE += auto_init_gnrc_rpl | ||
# Specify the mandatory networking module for a IPv6 host node | ||
USEMODULE += gnrc_ipv6_default |
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.
Why remove the router “feature” altogether? I would prefer a
ROUTER ?= 0
switch
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.
Sounds like a good idea. 👍
Introduce a Makefile variable for enabling RPL and/or routing functionality.
af004ee
to
fb2c5c3
Compare
|
||
# Optionally include the RPL routing protocol (particular useful if not all | ||
# nodes are within radio transmission range to the border router) | ||
USE_RPL ?= 0 |
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.
USE_RPL ?= 0 | |
USE_RPL ?= 1 |
I see no reason (except that the border router is not automatically initialized as RPL root) to make this opt-in.
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.
Hm, how often have you (or anyone else) used RPL with this example?
The biggest arguments for disabling RPL here for meare reduced complexity and reduced code size.
gnrc_coap and gnrc_networking_mac (for some reason) do include RPL.
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.
Hm, how often have you (or anyone else) used RPL with this example?
That's exactly my point. Everyone who uses this example currently uses RPL to a degree. Without it, the user base would shrink significantly, which would increase bit rot.
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 sure to which degree RPL is used in these scenarios (apart from trickle timers and the like). But I sense that we need a more general discussion with a broader range of the community about the purpose of this (and the other example applications) first. Currently, I would prefer this application as a simple host application and rather introduce a dedicated RPL example application.
Contribution description
The assumption: typically a user wants to deploy the
gnrc_networking
applications on terminal nodes.Configuring the node as a router makes the application more complex and requires more memory. Problems may arise, for instance, because the node will start to send out RAs. For RPL we have separate example applications.
Hence, this PR changes the IPv6 role of the
gnrc_networking
application from a router to a host and disables RPL.As a bonus this saves about 16k ROM and 2k RAM - which may be used to enable DNS resolution instead.
Testing procedure
Run
gnrc_networking
on native or real hardware like you have always done and check if everything works as usual.