The changes enable source node replication in OVN for receive from Vxlan
tunnels.  OVN only supports source node replication mode.  This is needed
for OVN to interoperate with hardware switches.

OVN only supports source_node replication and previously vtep interaction,
which used service node replication by default for
multicast/broadcast/unknown unicast traffic worked by happenstance.
Because of limited vxlan encapsulation metadata, received packets were
resubmitted to find the egress port(s). This is not correct for multicast,
broadcast and unknown unicast traffic as traffic will get resent on the tunnel
mesh. ovn-controller is changed not to send traffic received from vxlan
tunnels out the tunnel mesh again.  Traffic received from vxlan tunnels is
now only sent locally as intended.

To support keeping state for receipt from a vxlan tunnel a MFF logical
register is allocated for general scratchpad purposes and one bit is used for
receipt from vxlan.  The new register usage is documented in a new
OVN-DESIGN.md document and a table is added to track MFF logical
metadata and register usage.

Some micro-details (e.g.) register assignments) that may change over time
were moved from the ovn-architecture.7.xml document to the
OVN-DESIGN.md document.  The OVN-DESIGN.md file was tested using
the following markdown parsers:

https://jbt.github.io/markdown-editor/
http://dillinger.io/

As part of this change ovn-controller-vtep is hard-coded to set the
replication mode of each logical switch to source node as OVN will only
support source node replication.

v5->v6: rebase; facilitate future use of flags register by checking single
        flag for receive from vxlan.

v3->v5: Rebases.

v2->v3:
Change reg0 and reg1 usage column comment to "generic scratch".
Split code change for bug fix and documentation update into two patches.

v1->v2:
Rebased after recent conflicting commit.  Converted some xml
comments ported from the ovn-architecture document. Removed
redundant register initialization and unnecessary bit declaration. 

Darrell Ball (2):
  ovn: Fix receive from vxlan in ovn-controller.
  ovn: Reformat some ovn design documentation.

 ovn/OVN-DESIGN.md          | 199 +++++++++++++++++++++++++++++++++++++++++++++
 ovn/automake.mk            |   1 +
 ovn/controller-vtep/vtep.c |   4 +
 ovn/controller/physical.c  |  25 ++++--
 ovn/lib/logical-fields.h   |  15 ++++
 ovn/ovn-architecture.7.xml | 193 -------------------------------------------
 tests/ovn.at               |   3 +
 7 files changed, 242 insertions(+), 198 deletions(-)
 create mode 100644 ovn/OVN-DESIGN.md

-- 
1.9.1

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to