[ovs-git] [ovn-org/ovn] dd1b4b: Fix basic multicast flows for vxlan (non-vtep) tun...
Ihar Hrachyshka
noreply at github.com
Tue Oct 5 01:17:02 UTC 2021
Branch: refs/heads/branch-21.09
Home: https://github.com/ovn-org/ovn
Commit: dd1b4b4d48a6378a20bb615db4cfbcaf82db034f
https://github.com/ovn-org/ovn/commit/dd1b4b4d48a6378a20bb615db4cfbcaf82db034f
Author: Ihar Hrachyshka <ihrachys at redhat.com>
Date: 2021-10-04 (Mon, 04 Oct 2021)
Changed paths:
M controller-vtep/gateway.c
M controller/physical.c
M ovn-architecture.7.xml
M tests/ovn.at
Log Message:
-----------
Fix basic multicast flows for vxlan (non-vtep) tunnels
The 15-bit port key range used for multicast groups can't be covered
by 12-bit key space available for port keys in VXLAN. To make
multicast keys work, we have to transform 16-bit multicast port keys
to 12-bit keys before fanning out packets through VXLAN tunnels.
Otherwise significant bits are not retained, and multicast / broadcast
traffic does not reach ports located on other chassis.
This patch introduces a mapping scheme between core 16-bit multicast
port keys and 12-bit key range available in VXLAN. The scheme is as
follows:
1) Before sending a packet through VXLAN tunnel, the most significant
bit of a 16-bit port key is copied into the most significant bit of
12-bit VXLAN key. The 11 least significant bits of a 16-bit port
key are copied to the least significant bits of 12-bit VXLAN key.
2) When receiving a packet through VXLAN tunnel, the most significant
bit of a VXLAN 12-bit port key is copied into the most significant
bit of 16-bit port key used in core. The 11 least significant bits
of a VXLAN 12-bit port key are copied into the least significant
bits of a 16-bit port key used in core.
This change also implies that the range available for multicast port
keys is more limited and fits into 11-bit space. The same rule should
be enforced for unicast port keys, like we already do for tunnel keys
when a VXLAN encap is present in a cluster. This enforcement is
implied here but missing in master and will be implemented in a
separate patch. (The missing enforcement is an oversight of the
original patch that added support for VXLAN tunnels.)
Fixes: b07f1bc3d068 ("Add VXLAN support for non-VTEP datapath bindings")
Signed-off-by: Ihar Hrachyshka <ihrachys at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>
(cherry picked from commit 1c360bbd911cab9fadd6df8cd528d992ffa7a998)
More information about the git
mailing list