[ovs-dev] 答复: 答复: Question: why ovs flush all datapath flows when destroying br/ofproto?

Lilijun (Jerry, Cloud Networking) jerry.lilijun at huawei.com
Fri May 25 03:46:31 UTC 2018


Hi Ben, 

   Thanks for your reply very much.

   Currently, if we delete a port,  ovs only flush the related datapath flows.

   So I have an opinions as follows:
   When deleting the ovs bridge br-plyXXX, we can flush per br-plyXXX's port related datapath flows instead of flush all datapath flows.  

   Is that ok?

   Thanks.

-----邮件原件-----
发件人: Ben Pfaff [mailto:blp at ovn.org] 
发送时间: 2018年5月25日 1:13
收件人: Lilijun (Jerry, Cloud Networking) <jerry.lilijun at huawei.com>
抄送: dev at openvswitch.org; ovs-discuss at openvswitch.org; liucheng (J) <liucheng11 at huawei.com>; lixiao (H) <lixiao91 at huawei.com>
主题: Re: 答复: Question: why ovs flush all datapath flows when destroying br/ofproto?

It's more work to selectively flush and no one has implemented that.

On Thu, May 24, 2018 at 02:55:00AM +0000, Lilijun (Jerry, Cloud Networking) wrote:
> Are there anybody has some ideas about this question?
> Thanks.
> 
> -----邮件原件-----
> 发件人: Lilijun (Jerry, Cloud Networking) 
> 发送时间: 2018年5月18日 11:02
> 收件人: dev at openvswitch.org; 'Ben Pfaff' <blp at ovn.org>; ovs-discuss at openvswitch.org
> 抄送: liucheng (J) <liucheng11 at huawei.com>; lixiao (H) <lixiao91 at huawei.com>
> 主题: Question: why ovs flush all datapath flows when destroying br/ofproto?
> 
> 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 port.
> 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?
> 
> 
> B.R.
> Jerry


More information about the dev mailing list