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 context.  

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.

Some design 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.  A table is added to summarize and quantify
MFF logical metadata and register usage.  The OVN-DESIGN.md file was
tested using the following markdown parsers:

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

The new flags register usage is also documented in the new
OVN-DESIGN.md document.

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          | 185 ++++++++++++++++++++++++++++++++++++++++++++
 ovn/automake.mk            |   1 +
 ovn/controller-vtep/vtep.c |   4 +
 ovn/controller/physical.c  |  25 ++++--
 ovn/lib/logical-fields.h   |  13 +++-
 ovn/ovn-architecture.7.xml | 188 ---------------------------------------------
 tests/ovn.at               |   3 +
 7 files changed, 224 insertions(+), 195 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