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