On Tue, Aug 21, 2018 at 1:44 AM Mark Michelson <[email protected]> wrote:
> This adds DHCP support for web proxy auto detection. > > Signed-off-by: Mark Michelson <[email protected]> > Acked-by: Numan Siddique <[email protected]> > --- > 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); > -- > 2.14.4 > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
