OVN supported DHCP options¶
This is a list of the current supported DHCP options in ML2/OVN:
IP version 4¶
Option name / code  | 
OVN value  | 
|---|---|
arp-timeout  | 
arp_cache_timeout  | 
bootfile-name  | 
bootfile_name  | 
classless-static-route  | 
classless_static_route  | 
default-ttl  | 
default_ttl  | 
dns-server  | 
dns_server  | 
domain-name  | 
domain_name  | 
domain-search  | 
domain_search_list  | 
ethernet-encap  | 
ethernet_encap  | 
ip-forward-enable  | 
ip_forward_enable  | 
lease-time  | 
lease_time  | 
log-server  | 
log_server  | 
lpr-server  | 
lpr_server  | 
ms-classless-static-route  | 
ms_classless_static_route  | 
mtu  | 
mtu  | 
netmask  | 
netmask  | 
nis-server  | 
nis_server  | 
ntp-server  | 
ntp_server  | 
path-prefix  | 
path_prefix  | 
policy-filter  | 
policy_filter  | 
router-discovery  | 
router_discovery  | 
router  | 
router  | 
router-solicitation  | 
router_solicitation  | 
server-id  | 
server_id  | 
server-ip-address  | 
tftp_server_address  | 
swap-server  | 
swap_server  | 
T1  | 
T1  | 
T2  | 
T2  | 
tcp-ttl  | 
tcp_ttl  | 
tcp-keepalive  | 
tcp_keepalive_interval  | 
tftp-server-address  | 
tftp_server_address  | 
tftp-server  | 
tftp_server  | 
wpad  | 
wpad  | 
1  | 
netmask  | 
3  | 
router  | 
6  | 
dns_server  | 
7  | 
log_server  | 
9  | 
lpr_server  | 
15  | 
domain_name  | 
16  | 
swap_server  | 
19  | 
ip_forward_enable  | 
21  | 
policy_filter  | 
23  | 
default_ttl  | 
26  | 
mtu  | 
31  | 
router_discovery  | 
32  | 
router_solicitation  | 
35  | 
arp_cache_timeout  | 
36  | 
ethernet_encap  | 
37  | 
tcp_ttl  | 
38  | 
tcp_keepalive_interval  | 
41  | 
nis_server  | 
42  | 
ntp_server  | 
51  | 
lease_time  | 
54  | 
server_id  | 
58  | 
T1  | 
59  | 
T2  | 
66  | 
tftp_server  | 
67  | 
bootfile_name  | 
119  | 
domain_search_list  | 
121  | 
classless_static_route  | 
150  | 
tftp_server_address  | 
210  | 
path_prefix  | 
249  | 
ms_classless_static_route  | 
252  | 
wpad  | 
IP version 6¶
Option name / code  | 
OVN value  | 
|---|---|
dns-server  | 
dns_server  | 
domain-search  | 
domain_search  | 
ia-addr  | 
ia_addr  | 
server-id  | 
server_id  | 
2  | 
server_id  | 
5  | 
ia_addr  | 
23  | 
dns_server  | 
24  | 
domain_search  | 
OVN Database information¶
In OVN the DHCP options are stored on a table called DHCP_Options
in the OVN Northbound database.
Let’s add a DHCP option to a Neutron port:
$ neutron port-update --extra-dhcp-opt opt_name='server-ip-address',opt_value='10.0.0.1' b4c3f265-369e-4bf5-8789-7caa9a1efb9c
Updated port: b4c3f265-369e-4bf5-8789-7caa9a1efb9c
To find that port in OVN we can use command below:
$ ovn-nbctl find Logical_Switch_Port name=b4c3f265-369e-4bf5-8789-7caa9a1efb9c
...
dhcpv4_options      : 5f00d1a2-c57d-4d1f-83ea-09bf8be13288
dhcpv6_options      : []
...
For DHCP, the columns that we care about are the dhcpv4_options
and dhcpv6_options. These columns has the uuids of entries in the
DHCP_Options table with the DHCP information for this port.
$ ovn-nbctl list DHCP_Options 5f00d1a2-c57d-4d1f-83ea-09bf8be13288
_uuid               : 5f00d1a2-c57d-4d1f-83ea-09bf8be13288
cidr                : "10.0.0.0/26"
external_ids        : {"neutron:revision_number"="0", port_id="b4c3f265-369e-4bf5-8789-7caa9a1efb9c", subnet_id="5157ed8b-e7f1-4c56-b789-fa420098a687"}
options             : {classless_static_route="{169.254.169.254/32,10.0.0.2, 0.0.0.0/0,10.0.0.1}", dns_server="{8.8.8.8}", domain_name="\"openstackgate.local\"", lease_time="43200", log_server="127.0.0.3", mtu="1442", router="10.0.0.1", server_id="10.0.0.1", server_mac="fa:16:3e:dc:57:22", tftp_server_address="10.0.0.1"}
Here you can see that the option tftp_server_address has been set in
the options column. Note that, the tftp_server_address option is
the OVN translated name for server-ip-address (option 150). Take a
look at the table in this document to find out more about the supported
options and their counterpart names in OVN.