On 01/24/2018 11:46 AM, Ben Pfaff wrote:
On Thu, Oct 26, 2017 at 10:24:46AM -0400, Eric Garver wrote:
On Wed, Oct 25, 2017 at 11:41:27AM +0800, [email protected] wrote:
When there is only one bridge,create tunnel in the bridge,
then delete the bridge directly. the system tunnel interface
still in.

Cause of only one bridge, backer->refcount values 1, when
delete bridge, "close_dpif_backer" will delete the backer,
so type_run will return directly, doesn't delete the interface.
This patch delete the system interface before free the backer.
I'll add a bit more explanation..

This occurs when a tunnel is created with rtnetlink. With the compat API
the tunnel is created via the vport tunnel interface, so it can be
implicitly cleaned up by the kernel when the dp is closed or the module
unloaded.  But with rtnetlink the kernel module is not involved with the
tunnel device creation (it's added to OVS as a netdev vport), so
userspace needs to explicitly clean up the tunnel backers - type_run
can't garbage collect them if the dpif is already deleted.
I guess this has been due to be applied for a long time!  I am sorry
that I missed it.

The code looks OK but I don't yet understand the consequences.  What
problem does this patch solve?
Hi Ben,

Here is the reproducer,  vxlan as an example

Steps to Reproduce: 1.ovs-vsctl add-br ovsbr0 2.ovs-vsctl add-port ovsbr0 vxlan0 -- set interface vxlan0 type=vxlan option:remote_ip=11.11.11.0 3.ovs-vsctl del-br ovsbr0 4.ifconfig Actual results: can't delete vxlan_sys_4789 Expected results: vxlan_sys_4789 is deleted.

this happens when only 1 bridge is created.

Thanks,
Junhan

Thanks,

Ben.

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to