ovn-controller: Add 'put_dhcp_opts' action in ovn-controller
authorNuman Siddique <nusiddiq@redhat.com>
Wed, 15 Jun 2016 09:17:35 +0000 (14:47 +0530)
committerBen Pfaff <blp@ovn.org>
Thu, 23 Jun 2016 22:57:22 +0000 (15:57 -0700)
commit42814145d70c77462ce28b38841cd160f0486776
tree82517d62565949a1081338ac6bda930bc5aaf7e4
parent8fb72d297dab0015cd07236dd6f08f7bf9ecc713
ovn-controller: Add 'put_dhcp_opts' action in ovn-controller

This patch adds a new OVN action 'put_dhcp_opts' to support native
DHCP in OVN.

ovn-controller parses this action and adds a NXT_PACKET_IN2
OF flow with 'pause' flag set and the DHCP options stored in
'userdata' field.

When the valid DHCP packet is received by ovn-controller, it frames a
new DHCP reply packet with the DHCP options present in the
'userdata' field and resumes the packet and stores 1 in the 1-bit subfield.
If the packet is invalid, it resumes the packet without any modifying and
stores 0 in the 1-bit subfield.

Eg. reg0[0] = put_dhcp_opts(offerip = 10.0.0.4, router = 10.0.0.1,
                  netmask = 255.255.255.0, lease_time = 3600,....)

A new 'DHCP_Options' table is added in SB DB which stores
the supported DHCP options with DHCP code and type. ovn-northd is
expected to popule this table.

The next patch will add logical flows with this action.

Signed-off-by: Numan Siddique <nusiddiq@redhat.com>
Co-authored-by: Ben Pfaff <blp@ovn.org>
Signed-off-by: Ben Pfaff <blp@ovn.org>
14 files changed:
include/openvswitch/meta-flow.h
lib/dhcp.h
ovn/controller/lflow.c
ovn/controller/pinctrl.c
ovn/lib/actions.c
ovn/lib/actions.h
ovn/lib/automake.mk
ovn/lib/expr.c
ovn/lib/expr.h
ovn/lib/ovn-dhcp.h [new file with mode: 0644]
ovn/ovn-sb.ovsschema
ovn/ovn-sb.xml
tests/ovn.at
tests/test-ovn.c