NS-3 нюхает пассивные ACK

Я редактирую модуль AODV в NS-3.

Когда узел пересылает пакет данных на следующий узел, я хочу, чтобы мой модуль AODV прослушивал прослушивание процесса переадресации следующего узла, чтобы убедиться, что он пересылает его правильно.

Файл pcap корректно отслеживает передачу следующего узла, но я не могу достать его из модуля AODV.

Я предполагаю, что пакет отбрасывается, поскольку он не должен быть включен в него, поэтому я хочу знать, как это изменить.

Может кто-нибудь дать мне подсказку, где искать, чтобы изменить какие-либо соответствующие коды?

Спасибо

0

Решение

Подслушивание может быть достигнуто путем подключения одного из источников трассировки устройства Wi-Fi. MonitorSnifferRx в объекте WifiPhy, вероятно, то, что вы хотите. Есть два шага: 1) получить указатель на Phy Wi-Fi и 2) прикрепить функцию обратного вызова к этому источнику трассировки.

Шаг 1) в основном уже выполнен в Aodv существующим методом:

RoutingProtocol::NotifyInterfaceUp ()
...
// Allow neighbor manager use this interface for layer 2 feedback if possible
Ptr<WifiNetDevice> wifi = dev->GetObject<WifiNetDevice> ();

С этого момента вы можете получить указатель на объект Phy:

Ptr<WifiPhy> phy = wifi->GetPhy();

Отсюда вы захотите использовать TraceConnectWithoutContext () для перехвата источника трассировки с обратным вызовом, который имеет сигнатуру функции, совпадающую с ожидаемой трассировкой MonitorSniffRx.

phy->TraceConnectWithoutContext ("MonitorSniffRx", MakeCallback (&InsertYourCallbackFunctionHere));

Посмотрите, как источник трассировки уровня Mac «TxErrHeader» аналогичным образом подключается в том же методе.

0

Другие решения

Других решений пока нет …