[ovs-git] [openvswitch/ovs] 16936e: ovn util: Refactor dhcp_opts_map to make it generi...

GitHub noreply at github.com
Thu Nov 2 20:39:53 UTC 2017


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: 16936e4d6e3f8dd68dd6a4959e4937c9daab3e4a
      https://github.com/openvswitch/ovs/commit/16936e4d6e3f8dd68dd6a4959e4937c9daab3e4a
  Author: Numan Siddique <nusiddiq at redhat.com>
  Date:   2017-11-02 (Thu, 02 Nov 2017)

  Changed paths:
    M include/ovn/actions.h
    M ovn/controller/lflow.c
    M ovn/controller/pinctrl.c
    M ovn/lib/actions.c
    M ovn/lib/automake.mk
    R ovn/lib/ovn-dhcp.h
    A ovn/lib/ovn-l7.h
    M ovn/northd/ovn-northd.c
    M ovn/utilities/ovn-trace.c
    M tests/test-ovn.c

  Log Message:
  -----------
  ovn util: Refactor dhcp_opts_map to make it generic

Renamed 'struct dhcp_opts_map' to 'struct gen_opts_map' and
renamed ovn-dhcp.h to ovn-l7.h. An upcoming commit to support IPv6
Router Advertisement, will make use of the refactored code to store
the IPv6 ND RA options in 'struct gen_opts_map'.

Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Acked-by: Miguel Angel Ajo <majopela at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 52ed5fcc5dddc6ad7a7d500df73032fc1c5133b8
      https://github.com/openvswitch/ovs/commit/52ed5fcc5dddc6ad7a7d500df73032fc1c5133b8
  Author: Numan Siddique <nusiddiq at redhat.com>
  Date:   2017-11-02 (Thu, 02 Nov 2017)

  Changed paths:
    M include/ovn/actions.h
    M ovn/controller/lflow.c
    M ovn/controller/pinctrl.c
    M ovn/lib/actions.c
    M ovn/lib/ovn-l7.h
    M ovn/ovn-sb.xml
    M ovn/utilities/ovn-trace.c
    M tests/ovn.at
    M tests/test-ovn.c

  Log Message:
  -----------
  ovn-controller: Add a new action - 'put_nd_ra_opts'

This patch adds a new OVN action 'put_nd_ra_opts' to support native
IPv6 Router Advertisement in OVN. This action can be used to respond
to the IPv6 Router Solicitation requests.

ovn-controller parses this action and adds a NXT_PACKET_IN2 OF flow
with 'pause' flag set and the RA options stored in 'userdata' field.
This action is similar to 'put_dhcp_opts' and 'put_dhcpv6_opts'.

When a valid IPv6 RS packet is received by the pinctrl module of
ovn-controller, it frames a new RA packet and sets the RA options
from the 'userdata' field and resumes the packet storing 1 in the
1-bit result sub-field. If the packet is invalid, it resumes the
packet without any modifications storing 0 in the 1-bit result
sub-field.

Eg. reg0[5] = put_nd_ra_opts(address_mode = "slaac", mtu = 1450,
                       slla = 01:02:03:04:05:06, prefix = aef0::/64)

Note that unlike DHCPv4/v6, a new table to store the supported IPv6 ND RA
options is not added in SB DB since there are only 3 ND RA options.

Co-authored-by: Zongkai LI <zealokii at gmail.com>
Signed-off-by: Zongkai LI <zealokii at gmail.com>
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 4364646c6e9898ee74a1e53d36a80a5bb67fc9fb
      https://github.com/openvswitch/ovs/commit/4364646c6e9898ee74a1e53d36a80a5bb67fc9fb
  Author: Zongkai LI <zealokii at gmail.com>
  Date:   2017-11-02 (Thu, 02 Nov 2017)

  Changed paths:
    M ovn/lib/logical-fields.c
    M ovn/northd/ovn-northd.8.xml
    M ovn/northd/ovn-northd.c
    M ovn/ovn-nb.ovsschema
    M ovn/ovn-nb.xml
    M ovn/ovn-sb.xml
    M tests/ovn.at

  Log Message:
  -----------
  ovn-northd: Add logical flows to support native IPv6 RA

This patch adds logical flows which sends IPv6 Router Advertisement
packet in response to the IPv6 Router Solicitation request. It uses
the actions "put_nd_ra_opts" to transform the RS packet to RA packet
in the newly added ingress stage "lr_in_nd_ra_options" in router
pipeline. If the action "put_nd_ra_opts" is successful, it sends the
RA packet back to the originating port in the next ingress stage
"lr_in_nd_ra_response".

A new column "ipv6_ra_configs" is added in the Logical_Router_Port
table, which the CMS is expected to configure IPv6 RA
configurations - "address_mode" and "mtu" for adding these flows.

Co-authored-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Zongkai LI <zealokii at gmail.com>
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Acked-by: Miguel Angel Ajo <majopela at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: b1a3a6a405781423b993d97157a0af82c1a5e15d
      https://github.com/openvswitch/ovs/commit/b1a3a6a405781423b993d97157a0af82c1a5e15d
  Author: Numan Siddique <nusiddiq at redhat.com>
  Date:   2017-11-02 (Thu, 02 Nov 2017)

  Changed paths:
    M include/ovn/actions.h
    M ovn/controller/pinctrl.c
    M ovn/lib/actions.c
    M ovn/northd/ovn-northd.8.xml
    M ovn/northd/ovn-northd.c
    M ovn/ovn-sb.xml
    M ovn/utilities/ovn-trace.c
    M tests/ovn.at

  Log Message:
  -----------
  ovn: Generate Neighbor Solicitation packet for unknown MAC IPv6 packets

In the router ingress pipeline, if the destination mac is unresolved
by the time the packet reaches the ARP_REQUEST stage, OVN should generate an
IPv6 Neighbor Solicitation packet to learn the MAC address. This feature is
presently missing. This patch adds this feature.  A new action "nd_ns" is
added  which replaces an IPv6 packet being processed with an IPv6 Neighbor
Solicitation packet. ovn-northd adds a flow in the ARP_REQUEST router ingress
pipeline stage if the eth.dst is zero which applies this action. This action is
similar to the IPv4 counterpart "arp" action.

OVN already has the support to learn the MAC from the IPv6 Neighbor Advertisement
packets and storing in the south bound MAC_Binding table.

Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


Compare: https://github.com/openvswitch/ovs/compare/214117fdbd1f...b1a3a6a40578


More information about the git mailing list