理论上我知道这个问题的答案,但我想知道代码级别的信息在哪里访问。因此,假设在示例rpl-udp中,当客户端向服务器发送消息时,理论上,当我们使用rpl路由消息时,消息将通过客户端的父节点,一直到DODAG树,直到到达服务器。我想要做的是跟踪这个应用程序级的数据包,当它上升到树上,所有转发这个包的节点,我想知道他们什么时候收到这个包,什么时候他们把它路由到树上。
我在哪里可以在contiki-ng代码中找到这些信息?我猜想它不在RPL头文件中,但我不确定。
任何帮助都会很好。谢谢。
发布于 2022-01-23 09:17:12
RPL负责路由管理。实际的包转发是从路由协议中分离出来的,这是所有操作系统中常见的设计模式。
在Contiki-NG中,转发代码位于os/net/ipv6/中。主文件是tcpip.c。在uip-ds6-route.c和uip-ds6-route.h中定义了路由数据结构和相关功能。
在Contiki-NG中也有一个源路由选项,在这种情况下,下一个路由列表直接存储在数据包的IP报头中,并且没有正常的IPv6路由表。源路由表(仅存在于网络的根节点上)在uip-sr.c中定义。
https://stackoverflow.com/questions/70771933
复制相似问题