我使用udp-server和udp-client运行rpl-udp的示例。我想启用udp-client嗅探来自邻居节点的数据包,但同时允许它表现得像普通节点一样。那怎么可能?我添加了NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE,0),它禁用了RADIO_RX_MODE_ADDRESS_FILTER(使其为0),但是当我在Cooja(使用z1)中进行仿真时,节点不会嗅探所有数据包。另外,我收到很多重复的警告,如下所示:
00:57.609 ID:7 [WARN: CSMA] drop duplicate link layer packet from c10c.0000.0000.0004, seqno 114
还有其他标志允许嗅探所有数据包并减少重复的数据包吗?
感谢您的帮助!
编辑:我在这里https://sourceforge.net/p/contiki/mailman/message/34888182/尝试了此解决方案,但我遇到了同样的问题(有很多重传和重复的数据包)。
您不能这样做,Contiki-NG MAC协议没有混杂模式。发送到其他节点的数据包会在CSMA级别被过滤掉,即使无线电收到了它们。
实现嗅探器的方法是直接与NETSTACK_RADIO一起使用,创建自己的MAC或破解CSMA MAC的input_packet
功能。