Contiki OS:设置混杂模式并接收所有UDP数据包

时间:2018-04-26 12:53:02

标签: iot contiki promiscuous-mode

我试图做以下事情:

a)以混杂模式设置Contiki。

b)然后检索所有UDP和RPL数据包,不仅发送到当前节点,还发送到通信范围内的其他两个节点之间。

我有以下代码:

NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE, 0);   
simple_udp_register(&unicast_connection, 3001,
                  NULL, 3000, receiver);

其中receiver是一个合适的回调函数。我能够收集发送到当前节点的UDP数据包,但仍然无法接收通信范围内其他节点之间发送的数据包。

1 个答案:

答案 0 :(得分:2)

设置EXAMPLE仅控制无线电驱动程序筛选出的数据包。 OS网络堆栈中有多个层,其中无线电驱动程序只是第一个层。接下来的是RDC和MAC,它们仍会过滤掉发往其他节点的数据包,并且没有API可以禁用它。

解决方案是修改MAC以禁止丢弃未寻址到本地模式的数据包或编写自己的简单MAC。后者是Sensniff(Contiki数据包嗅探器)does - see its README and source code。顺便说一句,如果您只想记录所有收到的数据包,只需使用Sensniff!