diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-04-22 22:37:55 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2022-04-22 22:39:08 +0200 |
commit | 7711018aaebbefeb19e6e551f24ce08531970f7f (patch) | |
tree | af02bbfd124a9500340001912f68cc94bfef7f7c | |
parent | 305aafacf2b7aa952316599cd77862576233fba3 (diff) | |
download | vyos-1x-7711018aaebbefeb19e6e551f24ce08531970f7f.tar.gz vyos-1x-7711018aaebbefeb19e6e551f24ce08531970f7f.zip |
dhcp: T4389: add vendor option support for Ubiquity Unifi controller
vyos@vyos# show service dhcp-server
shared-network-name LAN {
subnet 172.18.201.0/24 {
default-router 172.18.201.1
name-server 172.18.201.2
range 0 {
start 172.18.201.101
stop 172.18.201.109
}
vendor-option {
ubiquity {
unifi-controller 172.16.100.1
}
}
}
}
-rw-r--r-- | data/templates/dhcp-server/dhcpd.conf.j2 | 12 | ||||
-rw-r--r-- | interface-definitions/dhcp-server.xml.in | 26 |
2 files changed, 38 insertions, 0 deletions
diff --git a/data/templates/dhcp-server/dhcpd.conf.j2 b/data/templates/dhcp-server/dhcpd.conf.j2 index 40575cea2..4eb472951 100644 --- a/data/templates/dhcp-server/dhcpd.conf.j2 +++ b/data/templates/dhcp-server/dhcpd.conf.j2 @@ -23,6 +23,15 @@ option rfc3442-static-route code 121 = array of integer 8; option windows-static-route code 249 = array of integer 8; option wpad-url code 252 = text; +# Vendor specific options - Ubiquity Networks +option space ubnt; +option ubnt.unifi-controller code 1 = ip-address; +class "ubnt" { + match if substring (option vendor-class-identifier , 0, 4) = "ubnt"; + option vendor-class-identifier "ubnt"; + vendor-option-space ubnt; +} + {% if global_parameters is vyos_defined %} # The following {{ global_parameters | length }} line(s) have been added as # global-parameters in the CLI and have not been validated !!! @@ -194,6 +203,9 @@ shared-network {{ network }} { } {% endfor %} {% endif %} +{% if subnet_config.vendor_option.ubiquity.unifi_controller is vyos_defined %} + option ubnt.unifi-controller {{ subnet_config.vendor_option.ubiquity.unifi_controller }}; +{% endif %} {% if subnet_config.range is vyos_defined %} {# pool configuration can only be used if there follows a range option #} pool { diff --git a/interface-definitions/dhcp-server.xml.in b/interface-definitions/dhcp-server.xml.in index 3c2c82a9d..19c1d0593 100644 --- a/interface-definitions/dhcp-server.xml.in +++ b/interface-definitions/dhcp-server.xml.in @@ -414,6 +414,32 @@ <multi/> </properties> </leafNode> + <node name="vendor-option"> + <properties> + <help>Vendor Specific Options</help> + </properties> + <children> + <node name="ubiquity"> + <properties> + <help>Ubiquity specific parameters</help> + </properties> + <children> + <leafNode name="unifi-controller"> + <properties> + <help>Address of UniFi controller</help> + <valueHelp> + <format>ipv4</format> + <description>IP address of UniFi controller</description> + </valueHelp> + <constraint> + <validator name="ipv4-address"/> + </constraint> + </properties> + </leafNode> + </children> + </node> + </children> + </node> <leafNode name="wins-server"> <properties> <help>IP address for Windows Internet Name Service (WINS) server</help> |