Как получить маршруты DODAG в корне?

Я использую contiki-ng с TI Simplelink CC1310 и с RPL в режиме без сохранения, и моя цель — получить маршруты DODAG в корне сети, чтобы узнать, какие узлы доступны для корня напрямую или косвенно (через другие прыжки).

Я вижу, что в вики contiki-ng, в учебнике по rpl, есть какой-то трек о том, как это сделать, но с использованием оболочки. Мой план состоит в том, чтобы сделать это с помощью кода.

Заранее спасибо!

1 ответ

Это зависит от того, используете ли вы режим хранения RPL или режим RPL без сохранения.

В первом случае вы перебираете список маршрутов uIPv6 (определенный в файлеos/net/ipv6/uip-ds6-route.c):

      uip_ds6_route_t *route = uip_ds6_route_head();
while(route != NULL) {
  /* ... do something with the route ... */
  route = uip_ds6_route_next(route);
}

Для режима RPL без сохранения вместо этого вам нужно выполнить итерацию по исходной таблице маршрутизации (отos/net/ipv6/uip-sr.c):

      uip_sr_node_t* route = uip_sr_node_head();
while(route != NULL) {
  /* ... do something with the route ... */
  route = uip_sr_node_next(route);
}
Другие вопросы по тегам