ofproto-dpif: Do not dpif_port_del() patch ports in port_del().
authorBen Pfaff <blp@nicira.com>
Fri, 30 Aug 2013 03:55:10 +0000 (20:55 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 4 Sep 2013 22:47:13 +0000 (15:47 -0700)
commit059ba5813e9e711b1a0dbc34ea7cbe9d360e31a6
treec3ea7339f835b9c040c42c740e1af7261f947be6
parentc9dad52a818693e5d5eb75891db9e6f0a5053886
ofproto-dpif: Do not dpif_port_del() patch ports in port_del().

Patch ports don't have datapath ports so it doesn't make sense to try to
call dpif_port_del() on them.  If we do try, it will fail, which makes the
caller think that the port wasn't really deleted, which in turn keeps
ofproto from reporting the port deletion via OpenFlow.  This fixes the
problem.

Without this patch, the following commands, executed under "make sandbox",
will report the patch port addition in "ovs-ofctl monitor" output, but not
the patch port deletion.  With this patch, both the addition and deletion
will be reported.

    ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
    ovs-ofctl monitor br0 128 &
    ovs-vsctl add-port br0 patch1 \
        -- set interface patch1 type=patch options:peer=patch2 \
        -- add-port br0 patch2 \
        -- set interface patch2 type=patch options:peer=patch1
    ovs-vsctl del-port patch1
    ovs-vsctl del-port patch2

Reported-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
ofproto/ofproto-dpif.c