在文件rpl-icmp6.c
中,在方法dio_input
中,from
变量是本地链接地址。我想使用uip_ds6_route_lookup(&from)
找到发送该DIO的节点的路由。但是,在此方法中,他们使用uip_ipaddr_prefixcmp
而不是uip_ipaddr_cmp
来比较IP地址。因此,我想知道contiki中是否有一种方法可以将链接本地地址转换为前缀 - 邻居节点的全局地址?
编辑:
uip_ipaddr_t from;
uip_ipaddr_copy(&from, &UIP_IP_BUF->srcipaddr);
route = uip_ds6_route_lookup(from);
if(route != NULL) {
const uip_ipaddr_t *nexthop = uip_ds6_route_nexthop(route);
if(uip_ipaddr_cmp(&from, &nexthop)) {
/* Test rank of the node */
return 1;
}
这是代码,方法uip_ds6_route_lookup
找不到任何路由,因为ipaddress是本地链接。