Я хочу знать, как в сетях RPL после того, как узел отправит один пакет другому узлу (например, RPL-Collect/udp-sender), как узнать, что предполагаемый узел будет пересылать этот пакет или нет? Я думаю, что подслушивание передачи соседей необходимо, но есть ли другой простой способ реализовать этот сценарий в Contiki/Cooja?
Как подслушать соседний мот Tx/Rx в Contiki?
Ответы (1)
Для прослушивания пакетов в дополнение к обычной работе вам необходимо сделать несколько вещей:
Убедитесь, что радио включено и настроено на правильный канал. Если вы используете постоянно включенные CSMA или ContikiMAC, вам не нужно делать ничего особенного. То же самое для минимального расписания ТЩ. В противном случае для TSCH вам необходимо запланировать ячейку Rx с правильным смещением канала и в правильном временном интервале.
Каким-то образом взломайте MAC-уровень, чтобы печатать или учитывать пакеты, не адресованные вам — обычно MAC-уровень молча отбрасывает такие пакеты.
Убедитесь, что аппаратная фильтрация кадров отключена (радиостанция находится в беспорядочном режиме).
Пример:
radio_value_t radio_rx_mode;
/* Entering promiscuous mode so that the radio accepts all frames */
NETSTACK_RADIO.get_value(RADIO_PARAM_RX_MODE, &radio_rx_mode);
NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE, radio_rx_mode & (~RADIO_RX_MODE_ADDRESS_FILTER));
Если вам просто нужно подслушивать пакеты и не нужна нормальная работа, то и попроще. Тогда вы можете использовать SenSniff.
NETSTACK_RDC.off(1)
в свой поток процесса. 2. В функции input_packet()
в contikimac.c я изменил базовый оператор, который принимает все пакеты, даже не предназначенные нам, но я не знаю, как распечатать и учесть эти буферизованные данные за несколько операций. . 3. Я думаю, что аппаратная фильтрация кадров отключается установкой CC2420_CONF_AUTOACK в ноль в project-conf (неразборчивый режим), кстати добавляя NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE, 0)
работает? Каково ваше мнение?
- person Hamed; 21.07.2018
CONTIKIMAC_CONF_SEND_SW_ACK
.
- person kfx; 23.07.2018
Address Filter
(фильтрация кадров RF) и включить Automatic Acknowledgments
. Как сделать это идеально?
- person Hamed; 10.08.2018