从Open Flow交换机

时间:2015-06-23 08:57:44

标签: openflow mininet packet-loss openvswitch sdn

我正在使用ryu controller(3.22)来监控交换机(Open vSwitch 2.0.2,支持Open Flow 1.3),这是使用mininet(2.1.0)创建的虚拟网络的一部分。它是一个树形拓扑,深度= 2,扇出= 5.我正在使用switch_monitor.py

在控制器的帮助下,我可以使用EventOFPPortStatsReply装饰器获取端口统计信息。我可以获得rx_packetsrx_bytesrx_errorstx_packetstx_bytestx_errorsrx_dropped,{{1等等。

tx_droppedrx_dropped的值始终是,即使交换机实际丢弃数据包也是如此,正如qdisc(linux命令)所报告的那样。

如何从Open Flow交换机获取数据包丢失统计信息?

一个。如何获得非零值?

湾还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

qdisc报告内核正在丢弃的内容,而不是网络正在丢弃的内容。你得到零,因为交换机没有丢帧。

(我不知道您的虚拟网络系统是否支持模拟帧丢弃。)

答案 1 :(得分:0)

我认为dropped只关心因实际drop规则或缓冲区溢出而丢弃的数据包。

计算数据包丢失的另一种方法是比较链路边缘上两个交换机的数据包计数。假设您有A <--> B并且想要计算从A到B的丢包率。然后您采取:

plr(A,B) = (tx_packets(A) - rx_packets(B)) / tx_packets(A))

请注意,有时会重置计数器,导致rx_packets高于tx_packets。我在SDN软件中遇到这种情况,如果有奇怪的组合,往往会使结果无效。