From 4c9d0ec3ac7b88af225118b60f5aa01e6f3d29f1 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sun, 6 Oct 2019 17:20:34 +0200 Subject: wireless: T1627: initial rewrite in XML/Python style Working: - Wireless modes b, g, n, ac - WPA/WPA2 psk and RADIUS (tested using Microsoft NPS) --- interface-definitions/interfaces-wireless.xml | 941 ++++++++++++++++++++++++++ 1 file changed, 941 insertions(+) create mode 100644 interface-definitions/interfaces-wireless.xml (limited to 'interface-definitions/interfaces-wireless.xml') diff --git a/interface-definitions/interfaces-wireless.xml b/interface-definitions/interfaces-wireless.xml new file mode 100644 index 000000000..c9b9618e8 --- /dev/null +++ b/interface-definitions/interfaces-wireless.xml @@ -0,0 +1,941 @@ + + + + + + + Wireless network interface (WiFi/WLAN) + 318 + + wlan[0-9]+$ + + Wireless interface must be named wlanN + + wlanN + Wireless (WiFi/WLAN) interface name + + + + + + IP address + + ipv4net + IPv4 address and prefix length + + + ipv6net + IPv6 address and prefix length + + + + + + + + + + HT and VHT capabilities for your card + + + + + HT (High Throughput) settings + + + + + 40MHz intolerance, use 20MHz only! + + + + + + Enable WMM-PS unscheduled automatic power aave delivery [U-APSD] + + + + + + Supported channel set width + + ht20 ht40+ ht40- + + + ht20 + Supported channel set width both 20 MHz only + + + ht40+ + Supported channel set width both 20 MHz and 40 MHz with secondary channel above primary channel + + + ht40- + Supported channel set width both 20 MHz and 40 MHz with secondary channel below primary channel + + + (ht20|ht40\\+|ht40-) + + + + + + + Enable HT-delayed block ack + + + + + + Enable DSSS_CCK-40 + + + + + + Enable HT-greenfield + + + + + + Enable LDPC coding capability + + + + + + Enable L-SIG TXOP protection capability + + + + + + Set maximum A-MSDU length + + 3839 7935 + + + 3839 + Set maximum A-MSDU length to 3839 octets + + + 7935 + Set maximum A-MSDU length to 7935 octets + + + (3839|7935) + + + + + + + Short GI capabilities + + 20 40 + + + 20 + Short GI for 20 MHz + + + 40 + Short GI for 40 MHz + + + (20|40) + + + + + + + Spatial Multiplexing Power Save (SMPS) settings + + static dynamic + + + static + STATIC Spatial Multiplexing (SM) Power Save + + + dynamic + DYNAMIC Spatial Multiplexing (SM) Power Save + + + (static|dynamic) + + + + + + + Support for sending and receiving PPDU using STBC (Space Time Block Coding) + + + + + Enable receiving PPDU using STBC (Space Time Block Coding) + + [1-3]+ + Number of spacial streams that can use RX STBC + + + [1-3]+ + + Invalid capability item + + + + + Enable sending PPDU using STBC (Space Time Block Coding) + + + + + + + + + + Require stations to support HT PHY (reject association if they do not) + + + + + + + + + Require stations to support VHT PHY (reject association if they do not) + + + + + + + + + VHT (Very High Throughput) settings + + + + + Number of antennas on this card + + 1-9 + Number of antennas for this card + + + + + + + + + Set if antenna pattern does not change during the lifetime of an association + + + + + + Beamforming capabilities + + single-user-beamformer single-user-beamformee multi-user-beamformer multi-user-beamformee + + + single-user-beamformer + Support for operation as single user beamformer + + + single-user-beamformee + Support for operation as single user beamformee + + + multi-user-beamformer + Support for operation as multi user beamformer + + + multi-user-beamformee + Support for operation as multi user beamformee + + + (single-user-beamformer|single-user-beamformee|multi-user-beamformer|multi-user-beamformee) + + + + + + + VHT operating channel center frequency + + + + + VHT operating channel center frequency - center freq 1 (for use with 80, 80+80 and 160 modes) + + <34-173> + 5Ghz (802.11 a/h/j/n/ac) center channel index (use 42 for primary 80MHz channel 36) + + + + + Channel center value must be between 34 and 173 + + + + + VHT operating channel center frequency - center freq 2 (for use with the 80+80 mode) + + 34-173 + 5Ghz (802.11 a/h/j/n/ac) center channel index (use 58 for primary 80MHz channel 52) + + + + + Channel center value must be between 34 and 173 + + + + + + + VHT operating Channel width + + 0 1 2 3 + + + 0 + 20 or 40 MHz channel width (default) + + + 1 + 80 MHz channel width + + + 2 + 160 MHz channel width + + + 3 + 80+80 MHz channel width + + + + + + + + + Enable LDPC (Low Density Parity Check) coding capability + + + + + + VHT link adaptation capabilities + + single-user-beamformer single-user-beamformee multi-user-beamformer multi-user-beamformee + + + unsolicited + Station provides only unsolicited VHT MFB + + + both + Station can provide VHT MFB in response to VHT MRQ and unsolicited VHT MFB + + + (unsolicited|both) + + Invalid capability item + + + + + Set the maximum length of A-MPDU pre-EOF padding that the station can receive + + <0-7> + Maximum length of A-MPDU pre-EOF padding = 2 pow(13 + x) -1 octets + + + + + + + + + Increase Maximum MPDU length to 7991 or 11454 octets (otherwise: 3895 octets) + + 7991 11454 + + + 7991 + ncrease Maximum MPDU length to 7991 octets + + + 11454 + ncrease Maximum MPDU length to 11454 octets + + + (7991|11454) + + + + + + Short GI capabilities + + 80 160 + + + 80 + Short GI for 80 MHz + + + 160 + Short GI for 160 MHz + + + (80|160) + + + + + + + Support for sending and receiving PPDU using STBC (Space Time Block Coding) + + + + + Enable receiving PPDU using STBC (Space Time Block Coding) + + [1-4]+ + Number of spacial streams that can use RX STBC + + + [1-4]+ + + Invalid capability item + + + + + Enable sending PPDU using STBC (Space Time Block Coding) + + + + + + + + Enable VHT TXOP Power Save Mode + + + + + + Station supports receiving VHT variant HT Control field + + + + + + + + + + Wireless radio channel (use 0 for ACS auto channel selection) + + <1-14> + 2.4Ghz (802.11 b/g/n) Channel + + + <0,34-173> + 5Ghz (802.11 a/h/j/n/ac) Channel + + + + + + + + + Interface description + + .{1,256}$ + + Interface description too long (limit 256 characters) + + + + + DHCP options + + + + + DHCP client identifier + + + + + DHCP client host name (overrides system host name) + + + + + DHCP client vendor type + + + + + + + DHCPv6 options + 319 + + + + + Acquire only config parameters, no address + + + + + + IPv6 "temporary" address + + + + + + + + Disable broadcast of SSID from access-point + + + + + Ignore link state changes + + + + + + Disable this bridge interface + + + + + + Disassociate stations based on excessive transmission failures + + + + + + Media Access Control (MAC) address + + h:h:h:h:h:h + Hardware (MAC) address + + + + + + + + + Isolate stations on the AP so they cannot see each other + + + + + + Media Access Control (MAC) address + + h:h:h:h:h:h + Hardware (MAC) address + + + + + + + + + Maximum number of wireless radio stations. Excess stations will be rejected upon authentication request. + + <1-2007> + Number of allowed stations + + + + + Number of stations must be between 1 and 2007 + + + + + Management Frame Protection (MFP) according to IEEE 802.11w + + disabled optional required + + + disabled + no MFP (hostapd default) + + + optional + MFP optional + + + required + MFP enforced + + + (disabled|optional|required) + + + + + + Wireless radio mode + + a b g n ac + + + a + 802.11a - 54 Mbits/sec + + + b + 802.11b - 11 Mbits/sec + + + g + 802.11g - 54 Mbits/sec (default) + + + n + 802.11n - 600 Mbits/sec + + + ac + 802.11ac - 1300 Mbits/sec + + + (a|b|g|n|ac) + + + + + + Wireless physical device + + + + + + + + Transmission power reduction in dBm + + <0-255> + TX power reduction in dBm + + + + + dBm value must be between 0 and 255 + + + + + Wireless security settings + + + + + Wired Equivalent Privacy (WEP) parameters + + + + + WEP encryption key + + <hexdigits> + Wired Equivalent Privacy key + + + ([a-fA-F0-9]{10}|[a-fA-F0-9]{26}|[a-fA-F0-9]{32}) + + Invalid WEP key + + + + + + + + Wifi Protected Access (WPA) parameters + + + + + Cipher suite for WPA + + TKIP CCMP + + + CCMP + AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] + + + TKIP + Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] + + + (CCMP|TKIP) + + Invalid WEP key + + + + + + WPA mode + + wpa wpa2 both + + + wpa + WPA (IEEE 802.11i/D3.0) + + + wpa2 + WPA2 (full IEEE 802.11i/RSN) + + + both + Allow both WPA and WPA2 + + + (wpa|wpa2|both) + + Unknown WPA mode + + + + + WPA personal shared pass phrase. If you are + using special characters in the WPA passphrase then single + quotes are required. + + <text> + Passphrase of at least 8 but not more than 63 printable characters + + + .{8,63}$ + + Invalid WPA pass phrase, must be 8 to 63 printable characters! + + + + + RADIUS server authentication + + ipv4 + IPv4 address of RADIUS server + + + + + + RADIUS server to receive accounting info (default: 1813) + + 1-65535 + RADIUS server accounting port + + + + + + + + + RADIUS server port (default: 1812) + + 1-65535 + RADIUS server port + + + + + + + + + Secret for radius access + + + + + + + + + + + Wireless access-point service set identifier (SSID) + + .{1,32}$ + + Invalid SSID + + + + + Wireless device type for this interface + + access-point station monitor + + + access-point + Access-point forwards packets between other nodes + + + station + Connects to another access point + + + monitor + Passively monitor all packets on the frequency/channel + + + (access-point|station|monitor) + + Type must be access-point, station or monitor + + + + + Virtual Local Area Network (VLAN) ID + + + + VLAN ID must be between 0 and 4094 + + + + + IP address + + dhcp dhcpv6 + + + ipv4net + IPv4 address and prefix length + + + ipv6net + IPv6 address and prefix length + + + dhcp + Dynamic Host Configuration Protocol + + + dhcpv6 + Dynamic Host Configuration Protocol for IPv6 + + + + (dhcp|dhcpv6) + + + + + + + Interface description + + ^.{1,256}$ + + Interface description too long (limit 256 characters) + + + + + DHCPv6 options + + + + + Acquire only config parameters, no address + + + + + + IPv6 "temporary" address + + + + + + + + Ignore link state changes + + + + + + Disable this bridge interface + + + + + + Media Access Control (MAC) address + + h:h:h:h:h:h + Hardware (MAC) address + + + + + + + + + + + + + + + + + Wireless regulatory domain (mandatory) + 305 + + US EU JP DE UK CN + + + <code%gt; + Country code (ISO/IEC 3166-1) + + + [A-Z][A-Z]$ + + invalid country code + + + + + -- cgit v1.2.3 From 3308bc150646abcf523c001a7b6086c46703b204 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 18 Nov 2019 16:07:37 +0100 Subject: wireless: T1627: config migrator does not support camel casing convert all nodes to lowercase --- interface-definitions/interfaces-wireless.xml | 2 +- src/migration-scripts/interfaces/3-to-4 | 30 +++++++++++++++++++-------- 2 files changed, 22 insertions(+), 10 deletions(-) (limited to 'interface-definitions/interfaces-wireless.xml') diff --git a/interface-definitions/interfaces-wireless.xml b/interface-definitions/interfaces-wireless.xml index c9b9618e8..4d098ac37 100644 --- a/interface-definitions/interfaces-wireless.xml +++ b/interface-definitions/interfaces-wireless.xml @@ -43,7 +43,7 @@ HT (High Throughput) settings - + 40MHz intolerance, use 20MHz only! diff --git a/src/migration-scripts/interfaces/3-to-4 b/src/migration-scripts/interfaces/3-to-4 index 4a2fd9c0d..8b9bf7f96 100755 --- a/src/migration-scripts/interfaces/3-to-4 +++ b/src/migration-scripts/interfaces/3-to-4 @@ -24,24 +24,36 @@ if not config.exists(base): else: for wifi in config.list_nodes(base): # as converting a node to bool is always the same, we can script it - to_bool_nodes = ['capabilities ht 40MHz-incapable', 'capabilities ht auto-powersave', - 'capabilities ht delayed-block-ack', 'capabilities ht dsss-cck-40', - 'capabilities ht greenfield', 'capabilities ht ldpc', 'capabilities ht lsig-protection', - 'capabilities ht stbc tx', 'capabilities require-ht', 'capabilities require-vht', - 'capabilities vht antenna-pattern-fixed', 'capabilities vht ldpc', - 'capabilities vht stbc tx', 'capabilities vht tx-powersave', - 'capabilities vht vht-cf', 'expunge-failing-stations', 'isolate-stations'] + to_bool_nodes = ['capabilities ht 40MHz-incapable', + 'capabilities ht auto-powersave', + 'capabilities ht delayed-block-ack', + 'capabilities ht dsss-cck-40', + 'capabilities ht greenfield', + 'capabilities ht ldpc', + 'capabilities ht lsig-protection', + 'capabilities ht stbc tx', + 'capabilities require-ht', + 'capabilities require-vht', + 'capabilities vht antenna-pattern-fixed', + 'capabilities vht ldpc', + 'capabilities vht stbc tx', + 'capabilities vht tx-powersave', + 'capabilities vht vht-cf', + 'expunge-failing-stations', + 'isolate-stations'] for node in to_bool_nodes: if config.exists(base + [wifi, node]): tmp = config.return_value(base + [wifi, node]) # delete old node config.delete(base + [wifi, node]) + # set new node if it was enabled if tmp == 'true': - config.set(base + [wifi, node]) + # OLD CLI used camel casing in 40MHz-incapable which is + # not supported in the new backend. Convert all to lower-case + config.set(base + [wifi, node.lower()]) if config.exists(base + [wifi, 'debug']): - tmp = config.return_value(base + [wifi, 'debug']) config.delete(base + [wifi, 'debug']) try: -- cgit v1.2.3 From f7778ea6a6e308acaec48c61976bcb2dc85299a8 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 18 Nov 2019 16:08:21 +0100 Subject: wireless: T1627: fix regex for 'ht channel-set-width' --- interface-definitions/interfaces-wireless.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'interface-definitions/interfaces-wireless.xml') diff --git a/interface-definitions/interfaces-wireless.xml b/interface-definitions/interfaces-wireless.xml index 4d098ac37..4b545faca 100644 --- a/interface-definitions/interfaces-wireless.xml +++ b/interface-definitions/interfaces-wireless.xml @@ -74,7 +74,7 @@ Supported channel set width both 20 MHz and 40 MHz with secondary channel below primary channel - (ht20|ht40\\+|ht40-) + (ht20|ht40\+|ht40-) -- cgit v1.2.3 From 8c65e146c7fedad0cf7904f6997d1b3e45d0d80b Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 18 Nov 2019 20:32:05 +0100 Subject: wireless: T1627: change priority from 318 to 400 --- interface-definitions/interfaces-wireless.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'interface-definitions/interfaces-wireless.xml') diff --git a/interface-definitions/interfaces-wireless.xml b/interface-definitions/interfaces-wireless.xml index 4b545faca..a1712cb33 100644 --- a/interface-definitions/interfaces-wireless.xml +++ b/interface-definitions/interfaces-wireless.xml @@ -5,7 +5,7 @@ Wireless network interface (WiFi/WLAN) - 318 + 400 wlan[0-9]+$ -- cgit v1.2.3 From dfa2f0e8ecd8a117bf47b64d7099d613f487d799 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 18 Nov 2019 21:07:07 +0100 Subject: wireless: T1627: change RADIUS CLI syntax Adopt RADIUS configuration and harmonize it with the rest of VyOS. Move the following configuration block: security { wpa { cipher CCMP mode wpa2 radius-server 172.16.100.10 { port 1812 secret secretkey } radius-server 172.16.100.11 { port 1812 secret secretkey } } } to the harmonized version of: security { wpa { cipher CCMP mode wpa2 radius { server 172.16.100.10 { port 1812 secret secretkey } server 172.16.100.11 { port 1812 secret secretkey } } } } And add the new "set interfaces wireless wlan0 security wpa radius source-address" CLI command to specify the origin of any RADIUS query on systems having multiple IP addresses. --- interface-definitions/interfaces-wireless.xml | 65 ++++++++++++++------------- src/conf_mode/interfaces-wireless.py | 43 +++++++++++------- src/migration-scripts/interfaces/3-to-4 | 33 ++++++++++++++ 3 files changed, 94 insertions(+), 47 deletions(-) (limited to 'interface-definitions/interfaces-wireless.xml') diff --git a/interface-definitions/interfaces-wireless.xml b/interface-definitions/interfaces-wireless.xml index a1712cb33..f1928ee0c 100644 --- a/interface-definitions/interfaces-wireless.xml +++ b/interface-definitions/interfaces-wireless.xml @@ -744,46 +744,47 @@ Invalid WPA pass phrase, must be 8 to 63 printable characters! - + - RADIUS server authentication - - ipv4 - IPv4 address of RADIUS server - + RADIUS specific configuration - - - RADIUS server to receive accounting info (default: 1813) - - 1-65535 - RADIUS server accounting port - - - - - - - + - RADIUS server port (default: 1812) + RADIUS server - 1-65535 - RADIUS server port + ipv4 + IPv4 address of RADIUS server - - - - - - - - Secret for radius access - + + + + Enable RADIUS server to receive accounting info + + + + + + RADIUS server port (default: 1812) + + 1-65535 + RADIUS server port + + + + + + + + + RADIUS shared secret key + + + + - + diff --git a/src/conf_mode/interfaces-wireless.py b/src/conf_mode/interfaces-wireless.py index b25205590..3b270a064 100755 --- a/src/conf_mode/interfaces-wireless.py +++ b/src/conf_mode/interfaces-wireless.py @@ -633,14 +633,24 @@ ieee8021x=1 # WPA-EAP-SHA256 = WPA2-Enterprise using SHA256 wpa_key_mgmt=WPA-EAP +{% if sec_wpa_radius_source -%} +# RADIUS client forced local IP address for the access point +# Normally the local IP address is determined automatically based on configured +# IP addresses, but this field can be used to force a specific address to be +# used, e.g., when the device has multiple IP addresses. +radius_client_addr={{ sec_wpa_radius_source }} +{% endif %} + {% for radius in sec_wpa_radius -%} +# RADIUS authentication server auth_server_addr={{ radius.server }} auth_server_port={{ radius.port }} -auth_server_shared_secret={{ radius.secret }} -{% if radius.accounting -%} +auth_server_shared_secret={{ radius.key }} +{% if radius.acc_port -%} +# RADIUS accounting server acct_server_addr={{ radius.server }} acct_server_port={{ radius.acc_port }} -acct_server_shared_secret={{ radius.secret }} +acct_server_shared_secret={{ radius.key }} {% endif %} {% endfor %} @@ -1156,29 +1166,32 @@ def get_config(): if conf.exists('security wpa passphrase'): wifi['sec_wpa_passphrase'] = conf.return_value('security wpa passphrase') - # WPA radius server goes here - for server in conf.list_nodes('security wpa radius-server'): - # set new configuration level - conf.set_level(cfg_base + ' security wpa radius-server ' + server) + # WPA RADIUS source address + if conf.exists('security wpa radius source-address'): + wifi['sec_wpa_radius_source'] = conf.return_value('security wpa radius source-address') + # WPA RADIUS server + for server in conf.list_nodes('security wpa radius server'): + # set new configuration level + conf.set_level(cfg_base + ' security wpa radius server ' + server) radius = { 'server' : server, 'acc_port' : '', 'port' : 1812, - 'secret' : '' + 'key' : '' } - # receive RADIUS accounting info - if conf.exists('accounting'): - radius['acc_port'] = conf.return_value('accounting') - # RADIUS server port if conf.exists('port'): - radius['port'] = conf.return_value('port') + radius['port'] = int(conf.return_value('port')) + + # receive RADIUS accounting info + if conf.exists('accounting'): + radius['acc_port'] = radius['port'] + 1 # RADIUS server shared-secret - if conf.exists('secret'): - radius['secret'] = conf.return_value('secret') + if conf.exists('key'): + radius['key'] = conf.return_value('key') # append RADIUS server to list of servers wifi['sec_wpa_radius'].append(radius) diff --git a/src/migration-scripts/interfaces/3-to-4 b/src/migration-scripts/interfaces/3-to-4 index 8b9bf7f96..e3bd25a68 100755 --- a/src/migration-scripts/interfaces/3-to-4 +++ b/src/migration-scripts/interfaces/3-to-4 @@ -53,9 +53,42 @@ else: # not supported in the new backend. Convert all to lower-case config.set(base + [wifi, node.lower()]) + # Remove debug node if config.exists(base + [wifi, 'debug']): config.delete(base + [wifi, 'debug']) + # RADIUS servers + if config.exists(base + [wifi, 'security', 'wpa', 'radius-server']): + for server in config.list_nodes(base + [wifi, 'security', 'wpa', 'radius-server']): + base_server = base + [wifi, 'security', 'wpa', 'radius-server', server] + + # Migrate RADIUS shared secret + if config.exists(base_server + ['secret']): + key = config.return_value(base_server + ['secret']) + # write new configuration node + config.set(base + [wifi, 'security', 'wpa', 'radius', 'server', server, 'key'], value=key) + # format as tag node + config.set_tag(base + [wifi, 'security', 'wpa', 'radius', 'server']) + + # Migrate RADIUS port + if config.exists(base_server + ['port']): + port = config.return_value(base_server + ['port']) + # write new configuration node + config.set(base + [wifi, 'security', 'wpa', 'radius', 'server', server, 'port'], value=port) + # format as tag node + config.set_tag(base + [wifi, 'security', 'wpa', 'radius', 'server']) + + # Migrate RADIUS accounting + if config.exists(base_server + ['accounting']): + port = config.return_value(base_server + ['accounting']) + # write new configuration node + config.set(base + [wifi, 'security', 'wpa', 'radius', 'server', server, 'accounting']) + # format as tag node + config.set_tag(base + [wifi, 'security', 'wpa', 'radius', 'server']) + + # delete old radius-server nodes + config.delete(base + [wifi, 'security', 'wpa', 'radius-server']) + try: with open(file_name, 'w') as f: f.write(config.to_string()) -- cgit v1.2.3 From 79b4744d5700e59c8aef29bd1f89289e45c7ac2e Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Mon, 18 Nov 2019 21:24:26 +0100 Subject: wireless: T1627: add support for RADIUS source-address --- interface-definitions/interfaces-wireless.xml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'interface-definitions/interfaces-wireless.xml') diff --git a/interface-definitions/interfaces-wireless.xml b/interface-definitions/interfaces-wireless.xml index f1928ee0c..d13a89fce 100644 --- a/interface-definitions/interfaces-wireless.xml +++ b/interface-definitions/interfaces-wireless.xml @@ -749,9 +749,18 @@ RADIUS specific configuration + + + RADIUS client forced local IP address + + ipv4 + IPv4 address of RADIUS server + + + - RADIUS server + IP address of RADIUS server ipv4 IPv4 address of RADIUS server -- cgit v1.2.3 From d7a7b44d51acda65639bc62ec476c6765e38c479 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 22 Nov 2019 19:44:30 +0100 Subject: wireless: T1627: support DHCP(v6) addresses --- interface-definitions/interfaces-wireless.xml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'interface-definitions/interfaces-wireless.xml') diff --git a/interface-definitions/interfaces-wireless.xml b/interface-definitions/interfaces-wireless.xml index d13a89fce..6bc49dddb 100644 --- a/interface-definitions/interfaces-wireless.xml +++ b/interface-definitions/interfaces-wireless.xml @@ -19,6 +19,9 @@ IP address + + dhcp dhcpv6 + ipv4net IPv4 address and prefix length @@ -27,10 +30,19 @@ ipv6net IPv6 address and prefix length - + + dhcp + Dynamic Host Configuration Protocol + + + dhcpv6 + Dynamic Host Configuration Protocol for IPv6 + + (dhcp|dhcpv6) + -- cgit v1.2.3