This patch series adds support for sending periodic router advertisements from OVN. The patch is divided into two commits
* Commit 1 introduces a method to ensure that multicast packets are sent only to targets on the local hypervisor * Commit 2 adds the ability to actually send the periodic RAs. This patch series builds on the work in Numan Siddique's "ovn IPv6: Add Router Solicitation responder support and generate Neighbor Solicitation request for unknown" (patch series 11416 if using git-pw). Thus this patch series cannot be merged until that patch series is merged first. There are a couple of points I'd like to bring up with regards to this patch that I would like addressed in reviews: * I placed the logic for sending periodic RAs in pinctrl.c. My reasoning for this was that the closest thing that exists in OVN today is the periodic sending of gratuitous ARP requests, and that is in pinctrl.c. If periodic sending of RAs should be placed into a separate file, please let me know. * In this patch, you will notice that a copy of the put_load() function from ovn/controller/physical.c has been placed in pinctrl.c. My choice was either to make the function public or duplicate it. Given that the function is so small, I see no reason why it would be modified, I went with the duplication choice. However, if it should be done the other way, let me know and I'll go that direction instead. v5 -> v6: Patch 1: * s/MLF_KEEP_LOCAL/MLF_LOCAL_ONLY/ * Enclose "ovn-controller" in <code> tags in ovn-nb.xml. Patch 2: * Use host byte order for MTU parameter to compose_nd_ra. This also results in using host byte order in IPV6 RA structures. * Don't enclose initialization of values in ovs_assert() since it can result in values being uninitialized in production builds. * Use ETH_ADDR_C to initialize constant ethernet address. * Apply a patch of Ben's that alters some formatting. Thanks Ben! v4 -> v5: * Changed "deleteme" ipv6_ra_state struct member to "delete_me" in pinctrl.c * Used extract_ip_addresses instead of manually parsing IPv6 networks in pinctrl.c * Used pre-existing defaults for address prefix valid lifetime and preferred lifetime instead of using RFC-defined ones. v3 -> v4: * Annotated default preferred lifetime and valid lifetime declarations. * Ensure that MTU < 1280 is not advertised. v2 -> v3: Updated patch 2 based on feedback from Jakub Sitnicki * Fixed typo in ovn-nb.xml * Fixed function declaration of ipv6_ra_config_delete * Used ipv6_parse_cidr() instead of manually parsing * Added comments explaining some non-obvious items. * Made destructor of ipv6_ra_state NULL-safe v1 -> v2: * The patchset has been applied on top of patch series 11416. The cover letter above has been adjusted for that change. * Patch 1 has been updated by adding new information to the ovn-architecture manpage that mentions the MLF_KEEP_LOCAL flows installed in table 32. Mark Michelson (2): OVN: Add multicast local-only flag. OVN: Add support for periodic router advertisements. lib/packets.c | 4 +- lib/packets.h | 7 ++ ovn/controller/physical.c | 15 +++ ovn/controller/pinctrl.c | 300 +++++++++++++++++++++++++++++++++++++++++++++ ovn/lib/logical-fields.h | 6 + ovn/northd/ovn-northd.c | 75 +++++++++++- ovn/ovn-architecture.7.xml | 10 ++ ovn/ovn-nb.xml | 20 +++ tests/ovn-northd.at | 110 +++++++++++++++++ tests/ovn.at | 150 +++++++++++++++++++++++ 10 files changed, 694 insertions(+), 3 deletions(-) -- 2.13.5 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev