Marian Buschsieweke
273f92a411
sys/net/rpl: fix possible NULL dereference
...
fixes https://github.com/RIOT-OS/RIOT/issues/15006
2023-05-18 01:25:13 +02:00
Martine Lenders
4f1e2a3709
gnrc_rpl_srh: check header fields consistency before substraction
2023-04-21 11:40:47 +02:00
Marian Buschsieweke
5a47d6a9b8
sys/net/gnrc/rpl: sync access to netstats
...
Synchronize the RPL thread updating the RPL netstats with the RPL
shell command reading it by disabling IRQs. This will prevent printing
corrupted data on non-32bit platforms as well as printing inconsistent
data (e.g. TX count of old state in conjunction with TX bytes of new
state) for all platforms.
Co-authored-by: Martine Lenders <mail@martine-lenders.eu>
2022-06-30 09:48:46 +02:00
Marian Buschsieweke
93d8bade8e
sys/net/gnrc/rpl: refactor netstats_rpl_t
...
There is a repeating pattern in the struct that is split out into a
subtype in this commit. This makes handling the data easier, as now
done in the print routine.
2022-06-30 09:48:45 +02:00
Benjamin Valentin
11672ac5e4
gnrc/rpl: auto-init RPL if there is only a single interface
2021-12-03 15:34:17 +01:00
Hauke Petersen
f5f28347c2
net/gnrc/rpl: add hooks for nimble_rpble
2021-08-24 11:33:13 +02:00
Jan Romann
4384795cb9
treewide: Remove excessive newlines
2021-08-13 19:50:38 +02:00
Benjamin Valentin
d99972791a
gnrc/rpl: add gnrc_rpl_configure_root() convenience function
2021-07-29 16:04:28 +02:00
Benjamin Valentin
3dad587307
gnrc/rpl: allow const dodag ID
2021-07-29 16:04:28 +02:00
Hauke Petersen
7c6b72d3b4
net/gnrc/rpl: use ztimer_msec if available
2021-06-16 20:39:32 +02:00
Cenk Gündoğan
72337ebb9b
gnrc_rpl: harden validation routine for options
2021-02-23 18:58:03 +01:00
Cenk Gündoğan
896e44cf93
rpl: strenghen length checks for DAO and DAO-ACK
2021-02-18 15:47:53 +01:00
Bas Stottelaar
922e2ac1c9
sys/*: replace #if ENABLE_DEBUG with IS_ACTIVE
2020-11-02 21:49:39 +01:00
Bas Stottelaar
1b35d06a51
sys/*: realign ENABLE_DEBUG
2020-10-23 11:27:48 +02:00
Bas Stottelaar
80d9da90df
sys/*: add missing include of assert.h
2020-10-22 11:13:09 +02:00
Martine Lenders
5d1d38d8f7
Merge pull request #15207 from chrysn-pull-requests/rpl-no-race
...
gnrc_rpl: Check for race against initializer thread
2020-10-20 19:04:14 +02:00
chrysn
7ed50c3d18
gnrc_rpl: Lock against race against initializer thread
...
When gnrc_rpl_init was called from a thread with higher priority than
the RPL thread, the initializer's call to gnrc_netreg_register would be
executed before the event loop even had a chance to set up its message
queue.
The added short-lived lock makes it work from threads of any priority.
2020-10-20 16:14:04 +02:00
Martine Lenders
45144fb4a4
treewide: use new gnrc_pkt API functions instead of utlist.h macros
2020-10-13 13:32:53 +02:00
Martine S. Lenders
f7913b3d47
gnrc_rpl: check index after fetching address from netif
2020-09-07 08:39:29 +02:00
Leandro Lanzieri
d25fc243c4
treewide: change prefix for generated Kconfig symbols.
...
This changes the prefixes of the symbols generated from USEMODULE and
USEPKG variables. The changes are as follow:
KCONFIG_MODULE_ => KCONFIG_USEMODULE_
KCONFIG_PKG_ => KCONFIG_USEPKG_
MODULE_ => USEMODULE_
PKG_ => USEPKG_
2020-08-31 09:37:09 +02:00
Hauke Petersen
d8aa76501a
net/gnrc/rpl: fix default route lifetime
...
On receiving a DIO message, RPL sets the lifetime for the default
route and the parent timeout event to the value. This leads to short
amounts of time whem the node looses its default route, while it
handles the parent timeout event to probe its parent.
This commit fixes this by adding time the node needs for probing
to the default route lifetime.
2020-08-24 17:53:00 +02:00
Leandro Lanzieri
3dc7865c4e
gnrc/rpl: Configure queue size with exponent
...
This changes the configuration macro to be the exponent of 2^n, as the
message queue size needs to be always power of 2.
2020-06-15 07:30:51 +02:00
Leandro Lanzieri
4b3bfd3c83
gnrc/rpl: Expose configurations to Kconfig
2020-05-14 15:57:02 +02:00
Leandro Lanzieri
8ce77f2045
gnrc/rpl: Move GNRC_RPL_MSG_QUEUE_SIZE to 'CONFIG_' namespace
2020-05-14 15:57:02 +02:00
Leandro Lanzieri
2c04f54d28
gnrc/rpl: Move GNRC_RPL_DEFAULT_NETIF to 'CONFIG_' namespace
2020-05-14 15:57:01 +02:00
Leandro Lanzieri
d075b4dfe9
gnrc/rpl: Move GNRC_RPL_PARENT_TIMEOUT_DIS_RETRIES to 'CONFIG_'
2020-05-14 15:57:01 +02:00
Leandro Lanzieri
e547061d19
gnrc/rpl: Move GNRC_RPL_DEFAULT_INSTANCE to 'CONFIG_' namespace
2020-05-14 15:57:01 +02:00
Leandro Lanzieri
5a28e7cad4
gnrc/rpl: Move GNRC_RPL_DEFAULT_MAX_RANK_INCREASE to 'CONFIG_'
2020-05-14 15:57:00 +02:00
Leandro Lanzieri
1b6f915e0c
gnrc/rpl: Move GNRC_RPL_DEFAULT_MIN_HOP_RANK_INCREASE to 'CONFIG_'
2020-05-14 15:57:00 +02:00
Leandro Lanzieri
cd50686eb6
gnrc/rpl: Move GNRC_RPL_WITHOUT_VALIDATION to 'CONFIG_' namespace
...
Also check its value using IS_ACTIVE when possible.
2020-05-14 15:57:00 +02:00
Leandro Lanzieri
02b10105c1
gnrc/rpl: Move GNRC_RPL_DODAG_CONF_OPTIONAL_ON_JOIN to 'CONFIG_'
2020-05-14 15:56:59 +02:00
Leandro Lanzieri
dfa722c519
gnrc/rpl: Move GNRC_RPL_WITHOUT_PIO to 'CONFIG_' namespace
...
Also evaluate its value using IS_ACTIVE when possible.
2020-05-14 15:56:59 +02:00
Leandro Lanzieri
908309f714
gnrc/rpl: Move GNRC_RPL_CLEANUP_TIME to 'CONFIG_' namespace
2020-05-14 15:56:58 +02:00
Leandro Lanzieri
33189b869e
gnrc/rpl: Move GNRC_RPL_DAO_DELAY_JITTER to 'CONFIG_' namespace
2020-05-14 15:56:58 +02:00
Leandro Lanzieri
3deab70a4c
gnrc/rpl: Move GNRC_RPL_DAO_DELAY_DEFAULT to 'CONFIG_' namespace
2020-05-14 15:56:57 +02:00
Leandro Lanzieri
c8fb88d2f0
gnrc/rpl: Move GNRC_RPL_DAO_DELAY_LONG to 'CONFIG_' namespace
2020-05-14 15:56:57 +02:00
Leandro Lanzieri
c162631aa3
gnrc/rpl: Move GNRC_RPL_DAO_ACK_DELAY to 'CONFIG_'
2020-05-14 15:56:57 +02:00
Leandro Lanzieri
df29a769ba
gnrc/rpl: Move GNRC_RPL_DAO_SEND_RETRIES to 'CONFIG_' namespace
2020-05-14 15:56:56 +02:00
Leandro Lanzieri
51939c3608
gnrc/rpl: Move GNRC_RPL_LIFETIME_UNIT to 'CONFIG_' namespace
2020-05-14 15:56:56 +02:00
Leandro Lanzieri
3b06b41fa9
gnrc/rpl: Move GNRC_RPL_DEFAULT_LIFETIME to 'CONFIG_' namespace
2020-05-14 15:56:56 +02:00
Leandro Lanzieri
c61b6bca38
gnrc/rpl: Move GNRC_RPL_DEFAULT_DIO_REDUNDANCY_CONSTANT to 'CONFIG_'
2020-05-14 15:56:55 +02:00
Leandro Lanzieri
f353ca8225
gnrc/rpl: Move GNRC_RPL_DEFAULT_DIO_INTERVAL_MIN to 'CONFIG_' namespace
2020-05-14 15:56:55 +02:00
Leandro Lanzieri
7216c21dbc
gnrc/rpl: Move GNRC_RPL_DEFAULT_DIO_INTERVAL_DOUBLINGS to 'CONFIG_'
2020-05-14 15:56:52 +02:00
Jose Alamos
6ace7b5472
gnrc_netif: use gnrc_netif_single where possible
2020-03-17 10:54:30 +01:00
Jose Alamos
b553535cea
gnrc_rpl_auto_init: replace preprocessor logic with if chain
2020-03-13 13:30:29 +01:00
Cenk Gündoğan
08c3dedf38
gnrc_rpl_p2p: use correct netif functions
2020-02-14 11:42:33 +01:00
Cenk Gündoğan
50423d60cf
gnrc_rpl_p2p: use correct parameters for trickle_start()
2020-02-14 11:41:56 +01:00
Cenk Gündoğan
4b58e5d41b
gnrc_rpl_p2p: fix cleanup timer usage
2020-02-14 11:41:30 +01:00
Francois Berder
4a31f94cfc
many typo fixes
...
Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com>
2019-11-23 22:39:07 +01:00
Martine Lenders
a279228663
gnrc_rpl_srh: don't send error message on multicast error
...
A node is not supposed to send an ICMPv6 error message when the
destination or one of the addresses in the source route is multicast
but is supposed to be silently discarded (see [RFC4443] and [RFC6554]).
If we leave the `err_ptr` unset, the [node will not send an error
message][err_ptr set].
[RFC 4443]: https://tools.ietf.org/html/rfc4443#section-2.4
[RFC 6554]: https://tools.ietf.org/html/rfc6554#section-4.2
[err_ptr set]: https://github.com/RIOT-OS/RIOT/blob/9bc600a/sys/net/gnrc/network_layer/ipv6/ext/rh/gnrc_ipv6_ext_rh.c#L100-L105
2019-10-14 11:25:53 +02:00