From: Numan Siddique <nusid...@redhat.com>
Signed-off-by: Numan Siddique <nusid...@redhat.com>
---
ovn/lib/ovn-l7.h | 1 +
ovn/northd/ovn-northd.c | 1 +
ovn/ovn-nb.xml | 7 +++++++
tests/ovn.at | 6 +++---
tests/test-ovn.c | 1 +
5 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/ovn/lib/ovn-l7.h b/ovn/lib/ovn-l7.h
index 817e9f002..e9df254e6 100644
--- a/ovn/lib/ovn-l7.h
+++ b/ovn/lib/ovn-l7.h
@@ -70,6 +70,7 @@ 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_BOOTFILE DHCP_OPTION("bootfile_name", 67, "str")
#define DHCP_OPT_WPAD DHCP_OPTION("wpad", 252, "str")
static inline uint32_t
diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c
index 31ea5f410..02c560b19 100644
--- a/ovn/northd/ovn-northd.c
+++ b/ovn/northd/ovn-northd.c
@@ -7222,6 +7222,7 @@ static struct gen_opts_map supported_dhcp_opts[] = {
DHCP_OPT_T1,
DHCP_OPT_T2,
DHCP_OPT_WPAD,
+ DHCP_OPT_BOOTFILE,
};
static struct gen_opts_map supported_dhcpv6_opts[] = {
diff --git a/ovn/ovn-nb.xml b/ovn/ovn-nb.xml
index 8564ed39c..5ba6cbd6c 100644
--- a/ovn/ovn-nb.xml
+++ b/ovn/ovn-nb.xml
@@ -2069,6 +2069,13 @@
proxy.
</p>
</column>
+
+ <column name="options" key="bootfile_name">
+ <p>
+ The DHCPv4 option code for this option is 67. This option is used
+ to identify a bootfile.
+ </p>
+ </column>
</group>
</group>
diff --git a/tests/ovn.at b/tests/ovn.at
index 769e09f81..7f7e6f1e9 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -1098,9 +1098,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",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)
+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",bootfile_name="https://127.0.0.1/boot.ipxe");
+ 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", bootfile_name =
"https://127.0.0.1/boot.ipxe");
+ 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.43.1b.68.74.74.70.73.3a.2f.2f.31.32.37.2e.30.2e.30.2e.31.2f.62.6f.6f.74.2e.69.70.78.65,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 5e6d1c3b4..253466caf 100644
--- a/tests/test-ovn.c
+++ b/tests/test-ovn.c
@@ -183,6 +183,7 @@ create_gen_opts(struct hmap *dhcp_opts, struct hmap
*dhcpv6_opts,
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");
+ dhcp_opt_add(dhcp_opts, "bootfile_name", 67, "str");
/* DHCPv6 options. */
hmap_init(dhcpv6_opts);