[ovs-dev] [PATCH] ovn: Add DHCP support for option 252.

Mark Michelson mmichels at redhat.com
Fri Sep 21 18:30:44 UTC 2018


Hi Ben,

Sorry for this, but it looks like the OpenStack team wants this in 2.9 
as well. If the patch is low-risk enough, is it OK to move there as well?

Thanks

On 09/18/2018 12:09 AM, Ben Pfaff wrote:
> Looks low risk, applies and builds cleanly, so I applied it to
> branch-2.10.
> 
> On Mon, Sep 17, 2018 at 04:01:17PM -0400, Mark Michelson wrote:
>> Hi folks,
>>
>> Any chance that this could be a candidate for a 2.10 backport?
>>
>> On 08/20/2018 04:14 PM, Mark Michelson wrote:
>>> This adds DHCP support for web proxy auto detection.
>>>
>>> Signed-off-by: Mark Michelson <mmichels at redhat.com>
>>> ---
>>>   ovn/lib/ovn-l7.h        | 2 ++
>>>   ovn/northd/ovn-northd.c | 3 ++-
>>>   ovn/ovn-nb.xml          | 8 ++++++++
>>>   tests/ovn.at            | 6 +++---
>>>   tests/test-ovn.c        | 1 +
>>>   5 files changed, 16 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/ovn/lib/ovn-l7.h b/ovn/lib/ovn-l7.h
>>> index b8d6683bc..817e9f002 100644
>>> --- a/ovn/lib/ovn-l7.h
>>> +++ b/ovn/lib/ovn-l7.h
>>> @@ -70,6 +70,8 @@ struct gen_opts_map {
>>>   #define DHCP_OPT_T1 DHCP_OPTION("T1", 58, "uint32")
>>>   #define DHCP_OPT_T2 DHCP_OPTION("T2", 59, "uint32")
>>> +#define DHCP_OPT_WPAD DHCP_OPTION("wpad", 252, "str")
>>> +
>>>   static inline uint32_t
>>>   gen_opt_hash(char *opt_name)
>>>   {
>>> diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c
>>> index ba86bf559..a1cfd4bdf 100644
>>> --- a/ovn/northd/ovn-northd.c
>>> +++ b/ovn/northd/ovn-northd.c
>>> @@ -7186,7 +7186,8 @@ static struct gen_opts_map supported_dhcp_opts[] = {
>>>       DHCP_OPT_MTU,
>>>       DHCP_OPT_LEASE_TIME,
>>>       DHCP_OPT_T1,
>>> -    DHCP_OPT_T2
>>> +    DHCP_OPT_T2,
>>> +    DHCP_OPT_WPAD,
>>>   };
>>>   static struct gen_opts_map supported_dhcpv6_opts[] = {
>>> diff --git a/ovn/ovn-nb.xml b/ovn/ovn-nb.xml
>>> index bc60a25dd..441a2deae 100644
>>> --- a/ovn/ovn-nb.xml
>>> +++ b/ovn/ovn-nb.xml
>>> @@ -1991,6 +1991,14 @@
>>>               Microsoft Windows DHCPv4 clients.
>>>             </p>
>>>           </column>
>>> +
>>> +        <column name="options" key="wpad">
>>> +          <p>
>>> +            The DHCPv4 option code for this option is 252. This option is used
>>> +            as part of web proxy auto discovery to provide a URL for a web
>>> +            proxy.
>>> +          </p>
>>> +        </column>
>>>         </group>
>>>         <group title="Boolean DHCP Options">
>>> diff --git a/tests/ovn.at b/tests/ovn.at
>>> index 70c6c50b3..6165d69c0 100644
>>> --- a/tests/ovn.at
>>> +++ b/tests/ovn.at
>>> @@ -1100,9 +1100,9 @@ put_arp(inport, arp.spa, arp.sha);
>>>   # put_dhcp_opts
>>>   reg1[0] = put_dhcp_opts(offerip = 1.2.3.4, router = 10.0.0.1);
>>>       encodes as controller(userdata=00.00.00.02.00.00.00.00.00.01.de.10.00.00.00.40.01.02.03.04.03.04.0a.00.00.01,pause)
>>> -reg2[5] = put_dhcp_opts(offerip=10.0.0.4,router=10.0.0.1,netmask=255.255.254.0,mtu=1400,domain="ovn.org");
>>> -    formats as reg2[5] = put_dhcp_opts(offerip = 10.0.0.4, router = 10.0.0.1, netmask = 255.255.254.0, mtu = 1400, domain = "ovn.org");
>>> -    encodes as controller(userdata=00.00.00.02.00.00.00.00.00.01.de.10.00.00.00.25.0a.00.00.04.03.04.0a.00.00.01.01.04.ff.ff.fe.00.1a.02.05.78.0f.07.6f.76.6e.2e.6f.72.67,pause)
>>> +reg2[5] = put_dhcp_opts(offerip=10.0.0.4,router=10.0.0.1,netmask=255.255.254.0,mtu=1400,domain="ovn.org",wpad="https://example.org");
>>> +    formats as reg2[5] = put_dhcp_opts(offerip = 10.0.0.4, router = 10.0.0.1, netmask = 255.255.254.0, mtu = 1400, domain = "ovn.org", wpad = "https://example.org");
>>> +    encodes as controller(userdata=00.00.00.02.00.00.00.00.00.01.de.10.00.00.00.25.0a.00.00.04.03.04.0a.00.00.01.01.04.ff.ff.fe.00.1a.02.05.78.0f.07.6f.76.6e.2e.6f.72.67.fc.13.68.74.74.70.73.3a.2f.2f.65.78.61.6d.70.6c.65.2e.6f.72.67,pause)
>>>   reg0[15] = put_dhcp_opts(offerip=10.0.0.4,router=10.0.0.1,netmask=255.255.255.0,mtu=1400,ip_forward_enable=1,default_ttl=121,dns_server={8.8.8.8,7.7.7.7},classless_static_route={30.0.0.0/24,10.0.0.4,40.0.0.0/16,10.0.0.6,0.0.0.0/0,10.0.0.1},ethernet_encap=1,router_discovery=0);
>>>       formats as reg0[15] = put_dhcp_opts(offerip = 10.0.0.4, router = 10.0.0.1, netmask = 255.255.255.0, mtu = 1400, ip_forward_enable = 1, default_ttl = 121, dns_server = {8.8.8.8, 7.7.7.7}, classless_static_route = {30.0.0.0/24, 10.0.0.4, 40.0.0.0/16, 10.0.0.6, 0.0.0.0/0, 10.0.0.1}, ethernet_encap = 1, router_discovery = 0);
>>>       encodes as controller(userdata=00.00.00.02.00.00.00.00.00.01.de.10.00.00.00.6f.0a.00.00.04.03.04.0a.00.00.01.01.04.ff.ff.ff.00.1a.02.05.78.13.01.01.17.01.79.06.08.08.08.08.08.07.07.07.07.79.14.18.1e.00.00.0a.00.00.04.10.28.00.0a.00.00.06.00.0a.00.00.01.24.01.01.1f.01.00,pause)
>>> diff --git a/tests/test-ovn.c b/tests/test-ovn.c
>>> index d4a5d599e..5e6d1c3b4 100644
>>> --- a/tests/test-ovn.c
>>> +++ b/tests/test-ovn.c
>>> @@ -182,6 +182,7 @@ create_gen_opts(struct hmap *dhcp_opts, struct hmap *dhcpv6_opts,
>>>       dhcp_opt_add(dhcp_opts, "tcp_ttl", 37, "uint8");
>>>       dhcp_opt_add(dhcp_opts, "mtu", 26, "uint16");
>>>       dhcp_opt_add(dhcp_opts, "lease_time",  51, "uint32");
>>> +    dhcp_opt_add(dhcp_opts, "wpad", 252, "str");
>>>       /* DHCPv6 options. */
>>>       hmap_init(dhcpv6_opts);
>>>
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev



More information about the dev mailing list