[ovs-dev] [PATCH v2 RFC] ovn: Support native dhcp using 'continuations'

Ramu Ramamurthy ramu.ramamurthy at gmail.com
Wed Apr 20 23:23:26 UTC 2016


Tested-by: Ramu Ramamurthy <ramu.ramamurthy at us.ibm.com>

Numan, I tested this patch to work on devstack+ovn without the openstack-plugin,
with manual configuration.

Notes:

1) In ovn/utilities/ovn-nbctl.c, usage() Can you add a help string to
ovn-nbctl for the new command
lswitch-get-dhcp-options, and lswitch-set-dhcp-options

2) When server_mac was not defined, the lflow was created like this,
maybe the error
checks can be tighter in ovn-northd.c

table=3(      ls_in_dhcp), priority=   50, match=(inport ==
"7fe086b5-9ab0-4c14-bf62-0291a62a4b14" && eth.src == fa:16:3e:cf:3d:bc
&& ip4.src == 0.0.0.0 && ip4.dst == 255.255.255.255 && udp.src == 68
&& udp.dst == 67), action=(dhcp_offer(offerip = 10.0.1.3, netmask =
255.255.255.0, router = 10.0.1.1, mtu = 1400, server_id = 10.0.1.2,
dns_server = {8.8.8.8,7.7.7.7}, lease_time = 43200); eth.dst =
eth.src; eth.src = (null); ip4.dst = 10.0.1.3; ip4.src = 10.0.1.2;
udp.src = 67; udp.dst = 68; outport = inport; inport = ""; /* Allow
sending out inport. */ output;)

The ovn-controller failed to parse the above flow at eth.src

2016-04-20T23:19:49Z|00070|lflow|WARN|error parsing actions
"dhcp_offer(offerip = 10.0.1.2, netmask = 255.255.255.0, router =
10.0.1.1, mtu = 1400, server_id = 10.0.1.2, dns_server =
{8.8.8.8,7.7.7.7}, lease_time = 43200); eth.dst = eth.src; eth.src =
(null); ip4.dst = 10.0.1.2; ip4.src = 10.0.1.2; udp.src = 67; udp.dst
= 68; outport = inport; inport = ""; /* Allow sending out inport. */
output;": Syntax error at `(' expecting constant.





On Mon, Apr 18, 2016 at 10:29 AM, Numan Siddique <nusiddiq at redhat.com> wrote:
> To support native dhcp in ovn
>  - A new column 'dhcp-options' is added in 'Logical_Switch' north db.
>  - A logical flow is added for each logical port to handle dhcp packets
>    if the CMS has defined dhcp options in this column.
>
> Eg.
> action=(dhcp_offer(offerip = 10.0.0.2, router = 10.0.0.1,
> server_id = 10.0.0.2, mtu = 1300, lease_time = 3600,
> netmask = 255.255.255.0); eth.dst = eth.src; eth.src = 00:00:00:00:00:03;
> ip4.dst = 10.0.0.2; ip4.src = 10.0.0.2; udp.src = 67; udp.dst = 68;
> outport = inport; inport = ""; /* Allow sending out inport. */ output;)
>
>  - ovn-controller will convert this logical flow to a packet-in OF flow with
>    'pause' flag set. The dhcp options defined in 'dhcp_offer' action
>    are stored in the 'userdata'
>
>  - When the ovn-controller receives the packet-in, it would frame a new
>    dhcp packet with the dhcp options set in the 'userdata' and resume
>    the packet.
>
> TODO: Test cases and updating the necessary documentation.
>
> Signed-off-by: Numan Siddique <nusiddiq at redhat.com>



More information about the dev mailing list