datapath: Make adding and attaching a vport a single step.
authorBen Pfaff <blp@nicira.com>
Fri, 3 Dec 2010 22:41:38 +0000 (14:41 -0800)
committerBen Pfaff <blp@nicira.com>
Fri, 3 Dec 2010 22:41:38 +0000 (14:41 -0800)
commitc3827f619a38d3d202020838e1f92860046a3dbe
tree7f4b1c921a95a62ebbbc80ec1af04ae246a9d1fc
parent94903c989826268a7fab3c730cd7d0b35ef423d5
datapath: Make adding and attaching a vport a single step.

For some time now, Open vSwitch datapaths have internally made a
distinction between adding a vport and attaching it to a datapath.  Adding
a vport just means to create it, as an entity detached from any datapath.
Attaching it gives it a port number and a datapath.  Similarly, a vport
could be detached and deleted separately.

After some study, I think I understand why this distinction exists.  It is
because ovs-vswitchd tries to open all the datapath ports before it tries
to create them.  However, changing it to create them before it tries to
open them is not difficult, so this commit does this.

The bulk of this commit, however, changes the datapath interface to one
that always creates a vport and attaches it to a datapath in a single step,
and similarly detaches a vport and deletes it in a single step.

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
26 files changed:
datapath/datapath.c
datapath/datapath.h
datapath/dp_notify.c
datapath/odp-compat.h
datapath/tunnel.c
datapath/tunnel.h
datapath/vport-patch.c
datapath/vport.c
datapath/vport.h
include/openvswitch/datapath-protocol.h
include/openvswitch/tunnel.h
lib/dpif-linux.c
lib/dpif-netdev.c
lib/dpif-provider.h
lib/dpif.c
lib/dpif.h
lib/netdev-linux.c
lib/netdev-provider.h
lib/netdev-vport.c
lib/netdev-vport.h
lib/netdev.c
ofproto/ofproto.c
utilities/ovs-dpctl.8.in
utilities/ovs-dpctl.c
utilities/ovs-openflowd.c
vswitchd/bridge.c