mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-25 22:43:50 +01:00
gnrc/ipv6_auto_subnets: auto init RPL root
This commit is contained in:
parent
878596d393
commit
3993fd75d0
@ -70,6 +70,7 @@
|
||||
#include "net/gnrc/udp.h"
|
||||
#include "net/gnrc/ipv6/nib.h"
|
||||
#include "net/gnrc/ndp.h"
|
||||
#include "net/gnrc/rpl.h"
|
||||
#include "random.h"
|
||||
#include "xtimer.h"
|
||||
|
||||
@ -286,6 +287,7 @@ static void _configure_subnets(uint8_t subnets, uint8_t start_idx, gnrc_netif_t
|
||||
while ((downstream = gnrc_netif_iter(downstream))) {
|
||||
gnrc_pktsnip_t *tmp;
|
||||
ipv6_addr_t new_prefix;
|
||||
int idx;
|
||||
|
||||
if (downstream == upstream) {
|
||||
continue;
|
||||
@ -302,8 +304,8 @@ static void _configure_subnets(uint8_t subnets, uint8_t start_idx, gnrc_netif_t
|
||||
_remove_old_prefix(downstream, &new_prefix, new_prefix_len, &ext_opts);
|
||||
|
||||
/* configure subnet on downstream interface */
|
||||
gnrc_netif_ipv6_add_prefix(downstream, &new_prefix, new_prefix_len,
|
||||
valid_ltime, pref_ltime);
|
||||
idx = gnrc_netif_ipv6_add_prefix(downstream, &new_prefix, new_prefix_len,
|
||||
valid_ltime, pref_ltime);
|
||||
|
||||
/* start advertising subnet */
|
||||
gnrc_ipv6_nib_change_rtr_adv_iface(downstream, true);
|
||||
@ -316,6 +318,11 @@ static void _configure_subnets(uint8_t subnets, uint8_t start_idx, gnrc_netif_t
|
||||
} else {
|
||||
ext_opts = tmp;
|
||||
}
|
||||
|
||||
/* configure RPL root if applicable */
|
||||
if (idx >= 0) {
|
||||
gnrc_rpl_configure_root(downstream, &downstream->ipv6.addrs[idx]);
|
||||
}
|
||||
}
|
||||
|
||||
/* immediately send an RA with RIO */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user