[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