Hi everybody,

I am Giuseppe Lettieri from Pisa (Italy) and I am working on integrating
Open vSwitch in PlanetLab. We are currently focusing on the user level
(aka 'netdev') datapath, since this is much simpler to use in PlanetLab.

I have noticed that if I create a bridge with 'datapath_type=netdev' and
then delete it, the corresponding netdev datapath is not destroyed. In
particular, the tap interface created for the the bridge "internal" port
is not close()d, and therefore persists until ovs-vswitchd exit()s. This
is reproducible as follows (tested on git master branch, last commit:
43d366785410bc7803e4b00ba59f99b7ca8185cc):

ovs-vsctrl add-br br0 -- set bridge br0 datapath_type=netdev
# interface br0 appears
ovs-vsctrl del-br br0
# interface br0 does not disappear

This may not be a great problem in general, but it is an annoyance in
PlanetLab, since here tap interfaces have to be created in a peculiar
way that makes reopening them somewhat difficult.

This behaviour appears to be triggered by the fact that the
'dpif_netdev_class' does not implement the 'enumerate' method
(lib/dpfi-netdev.c:1244), and thus 'bridge_reconfigure' is not able to
see the dangling datapaths.  Indeed, providing the method solves the
issue. Before definitely adding it, however, I would like to know if
there is any good reason for its omission. It looks like a very simple
method to implement, so I suspect I am missing some bigger problem with it.

Thank you in advance.
Best regards,
Giuseppe

-- 
Dr. Ing. Giuseppe Lettieri
Dipartimento di Ingegneria della Informazione
Universita' di Pisa
Largo Lucio Lazzarino 2, 56122 Pisa - Italy
Ph. : (+39) 050-2217.649 (direct) .599 (switch)
Fax : (+39) 050-2217.600
e-mail: g.letti...@iet.unipi.it

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to