0

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

EventOFPPortStatsReply在控制器的帮助下,我可以使用装饰器获取端口统计信息。我可以得到rx_packets, rx_bytes, rx_errors, tx_packets, tx_bytes, tx_errors,rx_dropped等的值tx_dropped

但是 , 的值rx_dropped总是tx_dropped为零即使交换机实际上正在丢弃数据包,如 qdisc(linux 命令)所报告的那样。

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

一个。如何获得非零值?

湾。有没有替代方法?

4

2 回答 2

0

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

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

于 2015-07-16T09:46:30.820 回答
0

我相信dropped只关心由于实际drop规则或由于缓冲区溢出而丢弃的数据包。

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

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

请注意,有时计数器会重置导致rx_packets更高tx_packets。如果有奇怪的组合,我在我的 SDN 软件中面临这种行为并且倾向于使结果无效。

于 2015-08-12T15:39:59.013 回答