physical: Fix implementation of logical patch ports.
Logical patch ports do not have a physical location and effectively reside
on every hypervisor. This is fine for unicast output to logical patch
ports. However, when a logical patch port is part of a logical multicast
group, lumping them together with the other "local" ports in a multicast
group yields packet duplication, because every hypervisor to which the
packet is tunneled re-outputs it to the logical patch port.
This commit fixes the problem, by treating logical patch ports as remote
rather than local when they are part of a logical multicast group. This
yields exactly-once semantics.
Found while testing implementation of ARP in OVN logical router. The
following commit adds a test that fails without this fix.
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Justin Pettit <jpettit@nicira.com>