mbox series

[ovs-dev,v8,ovn,0/2] Add IPv6 Prefix delegation (RFC3633)

Message ID cover.1585303423.git.lorenzo.bianconi@redhat.com
Headers show
Series Add IPv6 Prefix delegation (RFC3633) | expand

Message

Lorenzo Bianconi March 27, 2020, 10:10 a.m. UTC
Introduce IPv6 Prefix delegation state machine according to RFC 3633
https://tools.ietf.org/html/rfc3633.
Add handle_dhcpv6_reply controller action to parse advertise/reply from
IPv6 delegation server.
Introduce logical flows in ovn router pipeline in order to parse dhcpv6
advertise/reply from IPv6 prefix delegation router.
This series relies on the following OVS commit:
https://github.com/openvswitch/ovs/commit/cec89046f72cb044b068ba6a4e30dbcc4292c4c1

Changes since v7:
- fixed a bug inserting the configured prefix as hint in dhcp pd messages
  restarting ovn controller
- removed pfd entry from ipv6_prefixd hash if prefix delegation has been
  disabled for this port
- check in system-ovn.at that the configured prefix is inserted as hint in dhcp
  pd messages

Changes since v6:
- fix documentation
- convert handle_dhcpv6_reply from netsted to plain action
- code reworking to reduce cpu utilization
- insert configured prefix as hint in dhcp pd messages

Changes since v5:
- introduce ipv6_prefix column in logical_router_port table to save ipv6 prefix
  received from delegation router

Changes since v4:
- improve unit test support
- fix ovn-controller crash
- confifure prefixes received from delegation router in RA
- allow the requesting router to rely on lla address for PD protocol

Changes since v3:
- cosmetics
- add a provider bridge in the unit-test deployment and add a localnet
  port to the deployment to access the underlay network
- request IPv6 prefix even for bar router logical port in the unit-test
  deployment

Changes since v2:
- add unitest support in system-ovn.at

Changes since v1:
- rebase on top of ovn master branch
- request an IPv6 prefix for each 'downstream' logical router port marked with
  prefix set to true
- add missing documentation
- rename dhcp6_server_pkt in handle_dhcpv6_reply

Lorenzo Bianconi (2):
  controller: add ipv6 prefix delegation state machine
  northd: add logical flows for dhcpv6 pfd parsing

 controller/pinctrl.c    | 673 +++++++++++++++++++++++++++++++++++++++-
 controller/pinctrl.h    |   1 +
 include/ovn/actions.h   |   8 +-
 lib/actions.c           |  16 +
 lib/ovn-l7.h            |  19 ++
 northd/ovn-northd.8.xml |   8 +
 northd/ovn-northd.c     |  95 +++++-
 ovn-nb.ovsschema        |   7 +-
 ovn-nb.xml              |  21 ++
 ovn-sb.xml              |  18 ++
 tests/atlocal.in        |   5 +-
 tests/ovn.at            |   4 +
 tests/system-ovn.at     | 144 +++++++++
 utilities/ovn-trace.c   |   2 +
 14 files changed, 1005 insertions(+), 16 deletions(-)