ovn: Fix localnet ports on the same chassis.
authorRussell Bryant <russell@ovn.org>
Fri, 15 Jan 2016 21:39:42 +0000 (16:39 -0500)
committerRussell Bryant <russell@ovn.org>
Wed, 3 Feb 2016 14:25:25 +0000 (09:25 -0500)
commite90aeb578ffc0cbae377b6251c2d956de98dacad
tree5a1b37969abff8aa885aed9c9b8076c285c7974d
parentbda5a056ba652c4e399412a0853313af46b35379
ovn: Fix localnet ports on the same chassis.

Multiple logical ports on the same chassis that were connected to the
same physical network via localnet ports were not able to send packets
to each other.  This was because ovn-controller created a single patch
port between br-int and the physical network access bridge and used it
for all localnet ports.

The fix implemented here is to create a separate patch port for every
logical port of type=localnet.  An optimization is included where these
ports are only created if the localnet port is on a logical switch with
another logical port with an associated local VIF.

A nice side effect of this fix is that the code in physical.c got a lot
simpler, as localnet ports are now handled mostly like local VIFs.

Fixes: c02819293d52 ("ovn: Add "localnet" logical port type.")
Reported-by: Han Zhou <zhouhan@gmail.com>
Reported-at: http://openvswitch.org/pipermail/dev/2016-January/064413.html
Signed-off-by: Russell Bryant <russell@ovn.org>
Tested-by: Kyle Mestery <mestery@mestery.com
Acked-By: Kyle Mestery <mestery@mestery.com>
Tested-by: Han Zhou <zhouhan@gmail.com>
Tested-by: Michael Arnaldi <michael.arnaldi@mymoneyex.com>
Acked-by: Ben Pfaff <blp@ovn.org>
ovn/controller/ovn-controller.8.xml
ovn/controller/ovn-controller.c
ovn/controller/patch.c
ovn/controller/patch.h
ovn/controller/physical.c
ovn/controller/physical.h
ovn/ovn-architecture.7.xml
tests/ovn-controller.at
tests/ovn.at