2013-02-25 51 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);