Hello all, I test the Open vSwitch in the following scheme: I use 2 hosts directly connected to OSV and external OpenFlow Controller. Host1 generates UDP datagrams with sequential ports towards Host2, Host 2 listens for these UDP datagrams. In responce to every UDP datagram OVS generates Packet_In and Controller sends Flow_Mod with granularity up to L4 (so for every pair of UDP port numbers it installs separate rule). I send bunch of UDP datagrams from Host1 and calculate how many of them arrived to Host2.
Starting some number of packets ( > 300) packet drops are observed. For instance, if I generate 500 UDP packets in 120 ms only around 380 of them arrive to Host2. ovs-dpctl show -s command shows , that I have 500 flows installed 500 packets on ingress interface (port 1) of OVS and 380 on egress (port 2). So, it seems like OVS drop packets starting with some load threshold: lookups: hit:0 missed:500 lost:0 flows: 500 port 1: eth2 RX packets:500 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 aborted:0 carrier:0 collisions:0 port 2: eth3 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:380 errors:0 dropped:0 aborted:0 carrier:0 collisions:0 ovs-dpctl dump-flows br0 shows all the flows installed but no one with matched packets: in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x8100),vlan(vid=10,pcp=3),encap(eth_type(0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=17,tos=0,ttl=64,frag=no),udp(src=52363,dst=50335)), packets:0, bytes:0, used:never, actions:userspace(pid=4294962855,slow_path(controller)) I tried both with detached controller and running in the same machine as OVS (I use out-of-band option for controller and disable-in-band=true) Also I tried to replace Flow_Mods with Packet_Out messages for every ingress UDP datagram (identifying by buffer_id) but I experienced the same drops. I tested it on different machines (in Mininet and with separated real hosts) I suspect that such behavior is caused by actions:userspace(pid=4294962855,slow_path(controller)) but how can I verify where drops are occurred? is there possibility to debug internal queues or buffers? And how could I fix such drops? Should I implement some advances QoS policies in OVS in this case? -- Best regards, Anton Matsiuk
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss