傍受はのWi-Fiデバイスのトレースソースのいずれかをフックすることによって達成することができます。 WifiPhyオブジェクトのMonitorSnifferRxはおそらくあなたが望むものです。 2つのステップがあります:1)何とかWi-Fi Phyへのポインタを取得し、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()を使用してTraceSourceをフックし、MonitorSniffRxトレースが期待するものに一致する関数シグネチャを持つコールバックを使用します。
phy->TraceConnectWithoutContext ("MonitorSniffRx", MakeCallback (&InsertYourCallbackFunctionHere));
は、Macレベルのトレースソース「TxErrHeaderは」同様に、同じ方法でフックされ方法を参照してください。
ありがとう、私はそれを解決しました。 –
公然と投票することができないことを許してくれます.. :( –