On Mon, Nov 06, 2017 at 12:17:45PM -0800, Ashish Varma wrote:
> a crash is seen in "netdev_ports_remove" when an interface is deleted and 
> added
> back in the system and when the interface is part of a bridge configuration.
> e.g. steps:
>   create a tap0 interface using "ip tuntap add.."
>   add the tap0 interface to br0 using "ovs-vsctl add-port.."
>   delete the tap0 interface from system using "ip tuntap del.."
>   add the tap0 interface back in system using "ip tuntap add.."
>                        (this changes the ifindex of the interface)
>   delete tap0 from br0 using "ovs-vsctl del-port.."
> 
> In the function "netdev_ports_insert", two hmap entries were created for
> mapping "portnum -> netdev" and "ifindex -> portnum".
> When the interface is deleted from the system, the "netdev_ports_remove"
> function is not getting called and the old ifindex entry is not getting
> cleaned up from the "ifindex_to_port" hmap.
> 
> As part of the fix, added function "dpif_port_remove" which will call
> "netdev_ports_remove" in the path where the interface deletion from the system
> is detected.
> Also, in "netdev_ports_remove", added the code where the 
> "ifindex_to_port_data"
> (ifindex -> portnum map node) is getting freed when the ifindex is not
> available any more. (as the interface is already deleted.)
> 
> VMware-BZ: #1975788
> Signed-off-by: Ashish Varma <ashishvarma....@gmail.com>

Thanks.  I applied this to master and branch-2.8.

I still think that the underlying design here is a bad one.  I'm going
to look at a better fix.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to