考虑如下所示的 RPL 网络。在这个网络中,节点 1 是 DODAG 的根。节点 2 是发送方,向接收方节点(节点 3-18)发送单播 UDP 数据包。DODAG 在非存储模式下工作,我正在使用 Contiki-NG 的 Cooja mote 来执行此模拟。
问题是数据包只能到达距离最多 12 跳的节点(本例中的节点 13)。例如,当发送方想要为节点 16 发送数据包时,我们收到以下警告 6lowpan 并且数据包在根处被丢弃:“没有足够的 packetbuf 空间来压缩标头(112 字节,剩余 92 字节)。正在中止。” (line #706 sicslowpan.c) 我调查了这个问题,发现根正确地创建了源路由头,并且头被添加到数据包中没有任何问题。但是,问题来自 MAC 层和无线电接口。数据包大于MAX_PAYLOAD_LEN
无线电驱动程序。所以无线电驱动程序无法处理数据包。Contiki-ng 本身有 nullradio 驱动程序,但我认为无线电驱动程序及其参数是由平台定义的。我需要减轻这个限制。是否可以修改 Cooja mote 源代码中的参数?如果是,我该怎么做?