[ovs-dev] [PATCH v5 0/6] ovn: Add IPv6 Router Solicitation responder support

nusiddiq at redhat.com nusiddiq at redhat.com
Thu May 4 15:10:04 UTC 2017


From: Numan Siddique <nusiddiq at redhat.com>

I have picked up the patch series authored by Zong Kai LI to support IPv6
Router Advertisement in ovn -
https://mail.openvswitch.org/pipermail/ovs-dev/2016-October/242988.html
as this patch series was inactive for quite a long time.


v4 -> v5
--------
  Rebased the patches to resolve the conflicts.


v3 -> v4
-------

PS1 to PS4 unchanged.

PS5 - ovn-controller: add 'put_nd_ra_addr_mode' and 'put_nd_opt_*'..
  - Renamed the action 'put_nd_ra' to 'put_nd_ra_addr_mode'.
    The previous version 'put_nd_ra' supported setting the following
    fields in the RA packet
       * cur hop limit
       * managed and other address configuration flag
       * Router lifetime
       * Reachable time
       * Retransmit timer
    Providing the option to set the above fields seems not necessary, as
      - We still don't support sending periodic RA packets
      - Most of these fields can be set to default
    So in this version, this action just takes one argument to set the
    address mode. This would simply the things for the CMS.
    Eg. put_nd_ra_addr_mode("slaac"), put_nd_ra_addr_mode("dhcpv6_stateful").

  - Simplified the action 'put_nd_ra_opt_prefix'.
    The previous version of this action supported setting the following
    prefix options fields in the RA packet
       * prefix length
       * on-link flag and autonomous address-configuration flag
       * valid lifetime
       * preferred lifetime
       * prefix
    The action 'put_nd_ra_opt_prefix' now takes only one argument 'prefix/pefix-len'.
    All other fields can be set by ovn-controller when it frames the RA packet.
    Eg. put_nd_ra_opt_prefix(aef0:1234:5678::/64)

Dropped the PS6. The PS6 was adding logical flows in the L2_LKUP ingress pipeline
to send the Router Solicitation packets to the router datapath. This is not requried
as the IPv6 RS packet will have the eth.src set to IPv6 multicase mac - 33:33:00:00:00:01
and L2_LKUP supports multicasting.

PS7 is now PS6 - "ovn-northd: Add IPv6 RS responder support"
  - In this patchset, dropped the table 'Logical_Router_RA_Prefix_Config'
    in NB DB as it is not necessary.
    In order for ovn-northd to add the necessary IPv6 RS responder flows, CMS
    should define "address_mode" in the Logical_Router_Port.ipv6_ra_configs.
    If the address_mode is set to "slaac", ovn-northd takes the prefix information
    for the action 'put_nd_ra_opt_prefix' from the Logical_Router_Port.networks column.

*******************

v1 -> v2:
rebase on upstream
separete ovs_nd_opt rename into a single patch
separete lflow changing for RS packet forward in ovn-northd into a single patch
update is_nd to include RS and RA type, add is_nd_neighbor to inherit previous
  is_nd behavior.


v2 -> v3:
rebase on upstream
address comments from Justin, including:
  revert changing on is_nd and is_nd_neighbor brought in version 2
  update annotations in lib/packets.h for ovs_ra_msg, ovs_nd_prefix_opt,
    ovs_nd_lla_opt, ovs_nd_mtu_opt.
  combine methods compse_nd_ra, packet_put_ra_sll_opt, packet_put_ra_mtu_opt in
    version 2 into method compse_nd_ra_with_sll_mtu_opts.
  update pinctrl_handle_nd to fit new changes on compse_nd_ra_with_sll_mtu_opts.

******************

Zong Kai LI (6):
  packets: add compose_nd_ra
  lib: rename ovs_nd_opt to ovs_nd_lla_opt
  ovn: extend expr symbols for ND
  ovn-controller: add 'nd_ra' action
  ovn-controller: add 'put_nd_ra_addr_mode' and 'put_nd_opt_*' actions
    support
  ovn-northd: Add IPv6 RS responder support

 include/ovn/actions.h     |  71 +++++++++++-
 lib/flow.c                |  38 +++---
 lib/odp-execute.c         |  22 ++--
 lib/packets.c             | 146 ++++++++++++++++++-----
 lib/packets.h             |  76 ++++++++++--
 ovn/controller/pinctrl.c  | 146 +++++++++++++++++++----
 ovn/lib/actions.c         | 259 ++++++++++++++++++++++++++++++++++++++++-
 ovn/lib/logical-fields.c  |  18 ++-
 ovn/lib/ovn-util.h        |  22 ++++
 ovn/northd/ovn-northd.c   |  94 +++++++++++++--
 ovn/ovn-nb.ovsschema      |   7 +-
 ovn/ovn-nb.xml            |  39 +++++++
 ovn/ovn-sb.xml            | 111 +++++++++++++++++-
 ovn/utilities/ovn-trace.c |  18 ++-
 tests/ovn.at              | 290 +++++++++++++++++++++++++++++++++++++++++++++-
 15 files changed, 1246 insertions(+), 111 deletions(-)

-- 
2.9.3



More information about the dev mailing list