2013-02-25 48 views
1

我想知道如何在實現hwmp的網狀拓撲中打印數據包的路由。我並不是指整個路由表,而是數據包爲了到達目的地而經過的中間節點。如何在hwmp中打印數據包的路由ns3

由於提前,

瑪麗

回答

0

你可以做這樣的事情:

YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default(); 
.... 
.... 
.... 
.... 
AsciiTraceHelper ascii; 
wifiPhy.EnableAsciiAll (ascii.CreateFileStream ("wifi-simple-adhoc-grid.tr")); 

這將創建一個名爲wifi-simple-adhoc-grid.tr跟蹤文件,你可以分析,以確定各航線包。看例子examples/wireless/wifi-simple-adhoc-grid.cc

+0

感謝您的答覆。問題是,在802.11s網絡中,路由是在MAC層執行的,所以上面似乎沒有給出解決方案。還有其他建議嗎?再次感謝! – mary 2013-02-26 09:27:13

+0

上面的命令跟蹤通道,所以圖層不是問題。但似乎802.11s還沒有實現EnableAsciiAll。因此,您應該使用pcap跟蹤,或者修改路由器以便直接打印。如果你解決它,請分享解決方案 – user000001 2013-02-26 15:30:26

+0

感謝您的建議。我只能打印網格點接收的數據包。輸出結果如下:SRC = 00:00:00:00:00:01,DST = ff:ff:ff:ff:ff:ff,我是:00:00:00:00:00:02數據包ID 3095.這可以在mesh-point-device.cc中完成。 – mary 2013-02-26 16:29:09

0

我不知道在哪裏,但你必須能夠通過日誌文件來跟蹤數據包! 另一方面,如果您對跳轉次數感興趣,則可以從FlowMonitor(timeForwarded指標)獲取該值。

怎麼樣?
AvrgHopCount = 1 +(flowmon.timesForwarded/flowmon.rxPackets)

+0

非常感謝。您能否提供更多關於如何從FlowMonitor獲取跳數的提示?這不會給我一個解決方案,但它肯定會是一些東西。 – mary 2013-02-26 17:20:10

+0

不客氣。剛剛編輯我的答案。 – 2013-02-28 09:09:57

0

可以使用打印路由表:

Ipv4GlobalRoutingHelper globalRouting; 
Ptr<OutputStreamWrapper> routingStream = Create<OutputStreamWrapper> ("result/leapstar2.routes", std::ios::out); 
globalRouting.PrintRoutingTableAllAt (Seconds(0.1), routingStream);