Hi all,

In my test, there are many VMs sending and receiving random flows using ovs. 
Per VM has one virtio-net NIC and connect to ovs bridge named such as 
br-plyXXX. These ovs bridges br-plyXXX are all connected to br-int using patch 
All VM's traffic can generate about 200 thousand datapath flows. I found that 
all datapath flows were flushed when deleting one VM and it's own br-plyXXX. 
And the implementation is in the function  ofproto_destroy() calling 
ofproto_flush__(). The flush work will delete all datapath flows and recreate 
the upcall and revalidator threads.
As a result, other VM's all traffic will miss the datapath flows and make 
upcall to match in the slow path in upcall threads.  Their packet will be 
dropped or get worse latency.

So, why ovs flush all datapath flows when destroying br/ofproto?  Can we only 
flush the datapath flows related the destroying ofprotos?

dev mailing list

Reply via email to