I am using an Ryu controller (3.22) to monitor switches (Open vSwitch 2.0.2, supporting Open Flow 1.3), which are a part of virtual network created using mininet (2.1.0). It is a tree topology with depth = 2 and fanout = 5. I am using switch_monitor.py

With the help of the controller, I can get port statistics using the EventOFPPortStatsReply decorator. I can get values of rx_packets, rx_bytes, rx_errors, tx_packets, tx_bytes, tx_errors, rx_dropped, tx_dropped etc., but the values of rx_dropped, tx_dropped always come out to be zero, even when the switches are actually dropping packets, as reported by qdisc (linux command).

How do I get packet loss statistics from an Open Flow switch?

  1. How to get a non zero value?
  2. Is there any alternate way?
  • What packet loss do you want to measure? How many packets are dropped due to rules? Then use ovs-ofctl dump-flows bridgename.
    – muehsi
    May 14, 2016 at 10:35
  • Packet loss due to queue full
    – sinhayash
    May 26, 2016 at 6:19
  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer.
    – Ron Maupin
    Aug 11, 2017 at 17:37

1 Answer 1


qdisc reports what the kernel is dropping, not what the network is dropping. You're getting zero's because the switch isn't dropping frames.

(I don't know if your virtual network system supports simulating frame drops.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.