Page Menu
Home
VyOS Platform
Search
Configure Global Search
Log In
Files
F119063012
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
125 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/Makefile b/Makefile
index 26f591e29..834e8dd3f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,99 +1,101 @@
TMPL_DIR := templates-cfg
OP_TMPL_DIR := templates-op
BUILD_DIR := build
CFLAGS :=
src = $(wildcard interface-definitions/*.xml.in)
obj = $(src:.xml.in=.xml)
%.xml: %.xml.in
@echo Generating $(BUILD_DIR)/$@ from $<
# -ansi This turns off certain features of GCC that are incompatible
# with ISO C90. Without this regexes containing '/' as in an URL
# won't work
# -x c By default GCC guesses the input language from its file extension,
# thus XML is unknown. Force it to C language
# -E Stop after the preprocessing stage
# -undef Do not predefine any system-specific or GCC-specific macros.
# -nostdinc Do not search the standard system directories for header files
# -P Inhibit generation of linemarkers in the output from the
# preprocessor
@gcc -ansi -x c -E -undef -nostdinc -P -o $(BUILD_DIR)/$@ -c $<
$(BUILD_DIR):
install -d -m 0755 $(BUILD_DIR)/interface-definitions
install -d -m 0755 $(BUILD_DIR)/op-mode-definitions
.PHONY: interface_definitions
.ONESHELL:
interface_definitions: $(BUILD_DIR) $(obj)
mkdir -p $(TMPL_DIR)
find $(BUILD_DIR)/interface-definitions -type f -name "*.xml" | xargs -I {} $(CURDIR)/scripts/build-command-templates {} $(CURDIR)/schema/interface_definition.rng $(TMPL_DIR) || exit 1
# XXX: delete top level node.def's that now live in other packages
rm -f $(TMPL_DIR)/firewall/node.def
rm -f $(TMPL_DIR)/interfaces/node.def
rm -f $(TMPL_DIR)/interfaces/bonding/node.tag/ip/node.def
+ rm -f $(TMPL_DIR)/interfaces/bonding/node.tag/vif/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/bridge/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/ethernet/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/ethernet/node.tag/vif/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/ethernet/node.tag/vif-s/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/ethernet/node.tag/vif-s/node.tag/vif-c/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/vxlan/node.tag/ip/node.def
+ rm -f $(TMPL_DIR)/interfaces/wireless/node.tag/vif/node.tag/ip/node.def
rm -f $(TMPL_DIR)/protocols/node.def
rm -f $(TMPL_DIR)/protocols/static/node.def
rm -f $(TMPL_DIR)/system/node.def
rm -f $(TMPL_DIR)/system/options/node.def
rm -f $(TMPL_DIR)/vpn/node.def
rm -f $(TMPL_DIR)/vpn/ipsec/node.def
.PHONY: op_mode_definitions
.ONESHELL:
op_mode_definitions:
mkdir -p $(OP_TMPL_DIR)
find $(CURDIR)/op-mode-definitions/ -type f -name "*.xml" | xargs -I {} $(CURDIR)/scripts/build-command-op-templates {} $(CURDIR)/schema/op-mode-definition.rng $(OP_TMPL_DIR) || exit 1
# XXX: delete top level op mode node.def's that now live in other packages
rm -f $(OP_TMPL_DIR)/clear/node.def
rm -f $(OP_TMPL_DIR)/clear/interfaces/node.def
rm -f $(OP_TMPL_DIR)/set/node.def
rm -f $(OP_TMPL_DIR)/show/node.def
rm -f $(OP_TMPL_DIR)/show/interfaces/node.def
rm -f $(OP_TMPL_DIR)/show/ip/node.def
rm -f $(OP_TMPL_DIR)/show/ip/route/node.def
rm -f $(OP_TMPL_DIR)/show/ipv6/node.def
rm -f $(OP_TMPL_DIR)/show/ipv6/route/node.def
rm -f $(OP_TMPL_DIR)/restart/node.def
rm -f $(OP_TMPL_DIR)/monitor/node.def
rm -f $(OP_TMPL_DIR)/generate/node.def
rm -f $(OP_TMPL_DIR)/show/vpn/node.def
rm -f $(OP_TMPL_DIR)/show/system/node.def
rm -f $(OP_TMPL_DIR)/delete/node.def
rm -f $(OP_TMPL_DIR)/reset/vpn/node.def
rm -f $(OP_TMPL_DIR)/show/system/node.def
.PHONY: all
all: clean interface_definitions op_mode_definitions
.PHONY: clean
clean:
rm -rf $(BUILD_DIR)
rm -rf $(TMPL_DIR)
rm -rf $(OP_TMPL_DIR)
.PHONY: test
test:
PYTHONPATH=python/ python3 -m "nose" --with-xunit src --with-coverage --cover-erase --cover-xml --cover-package src/conf_mode,src/op_mode,src/completion,src/helpers,src/validators,src/tests --verbose
.PHONY: sonar
sonar:
sonar-scanner -X -Dsonar.login=${SONAR_TOKEN}
.PHONY: docs
.ONESHELL:
docs:
sphinx-apidoc -o sphinx/source/ python/
cd sphinx/
PYTHONPATH=../python make html
diff --git a/interface-definitions/include/vif-s.xml.i b/interface-definitions/include/vif-s.xml.i
new file mode 100644
index 000000000..9726e9156
--- /dev/null
+++ b/interface-definitions/include/vif-s.xml.i
@@ -0,0 +1,276 @@
+<tagNode name="vif-s">
+ <properties>
+ <help>QinQ TAG-S Virtual Local Area Network (VLAN) ID</help>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4094"/>
+ </constraint>
+ <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
+ </properties>
+ <children>
+ <leafNode name="address">
+ <properties>
+ <help>IP address</help>
+ <completionHelp>
+ <list>dhcp dhcpv6</list>
+ </completionHelp>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dhcp</format>
+ <description>Dynamic Host Configuration Protocol</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dhcpv6</format>
+ <description>Dynamic Host Configuration Protocol for IPv6</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ip-cidr"/>
+ <regex>(dhcp|dhcpv6)</regex>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ <leafNode name="description">
+ <properties>
+ <help>Interface description</help>
+ <constraint>
+ <regex>^.{1,256}$</regex>
+ </constraint>
+ <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <node name="dhcp-options">
+ <properties>
+ <help>DHCP options</help>
+ </properties>
+ <children>
+ <leafNode name="client-id">
+ <properties>
+ <help>DHCP client identifier</help>
+ </properties>
+ </leafNode>
+ <leafNode name="host-name">
+ <properties>
+ <help>DHCP client host name (overrides the system host name)</help>
+ </properties>
+ </leafNode>
+ <leafNode name="vendor-class-id">
+ <properties>
+ <help>DHCP client vendor type</help>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <node name="dhcpv6-options">
+ <properties>
+ <help>DHCPv6 options</help>
+ <priority>319</priority>
+ </properties>
+ <children>
+ <leafNode name="parameters-only">
+ <properties>
+ <help>Acquire only config parameters, no address</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="temporary">
+ <properties>
+ <help>IPv6 "temporary" address</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <leafNode name="disable-link-detect">
+ <properties>
+ <help>Ignore link state changes</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="disable">
+ <properties>
+ <help>Disable this bridge interface</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="ethertype">
+ <properties>
+ <help>Set Ethertype</help>
+ <completionHelp>
+ <list>0x88A8 0x8100</list>
+ </completionHelp>
+ <valueHelp>
+ <format>0x88A8</format>
+ <description>802.1ad</description>
+ </valueHelp>
+ <valueHelp>
+ <format>0x8100</format>
+ <description>802.1q</description>
+ </valueHelp>
+ <constraint>
+ <regex>(0x88A8|0x8100)</regex>
+ </constraint>
+ <constraintErrorMessage>Ethertype must be 0x88A8 or 0x8100</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="mac">
+ <properties>
+ <help>Media Access Control (MAC) address</help>
+ <valueHelp>
+ <format>h:h:h:h:h:h</format>
+ <description>Hardware (MAC) address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="mac-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="mtu">
+ <properties>
+ <help>Maximum Transmission Unit (MTU)</help>
+ <valueHelp>
+ <format>68-9000</format>
+ <description>Maximum Transmission Unit</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 68-9000"/>
+ </constraint>
+ <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <tagNode name="vif-c">
+ <properties>
+ <help>QinQ TAG-C Virtual Local Area Network (VLAN) ID</help>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4094"/>
+ </constraint>
+ <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
+ </properties>
+ <children>
+ <leafNode name="address">
+ <properties>
+ <help>IP address</help>
+ <completionHelp>
+ <list>dhcp dhcpv6</list>
+ </completionHelp>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dhcp</format>
+ <description>Dynamic Host Configuration Protocol</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dhcpv6</format>
+ <description>Dynamic Host Configuration Protocol for IPv6</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ip-cidr"/>
+ <regex>(dhcp|dhcpv6)</regex>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ <leafNode name="description">
+ <properties>
+ <help>Interface description</help>
+ <constraint>
+ <regex>^.{1,256}$</regex>
+ </constraint>
+ <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <node name="dhcp-options">
+ <properties>
+ <help>DHCP options</help>
+ </properties>
+ <children>
+ <leafNode name="client-id">
+ <properties>
+ <help>DHCP client identifier</help>
+ </properties>
+ </leafNode>
+ <leafNode name="host-name">
+ <properties>
+ <help>DHCP client host name (overrides the system host name)</help>
+ </properties>
+ </leafNode>
+ <leafNode name="vendor-class-id">
+ <properties>
+ <help>DHCP client vendor type</help>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <node name="dhcpv6-options">
+ <properties>
+ <help>DHCPv6 options</help>
+ <priority>319</priority>
+ </properties>
+ <children>
+ <leafNode name="parameters-only">
+ <properties>
+ <help>Acquire only config parameters, no address</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="temporary">
+ <properties>
+ <help>IPv6 "temporary" address</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <leafNode name="disable-link-detect">
+ <properties>
+ <help>Ignore link state changes</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="disable">
+ <properties>
+ <help>Disable this bridge interface</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="mac">
+ <properties>
+ <help>Media Access Control (MAC) address</help>
+ <valueHelp>
+ <format>h:h:h:h:h:h</format>
+ <description>Hardware (MAC) address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="mac-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="mtu">
+ <properties>
+ <help>Maximum Transmission Unit (MTU)</help>
+ <valueHelp>
+ <format>68-9000</format>
+ <description>Maximum Transmission Unit</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 68-9000"/>
+ </constraint>
+ <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
+ </children>
+</tagNode>
diff --git a/interface-definitions/include/vif.xml.i b/interface-definitions/include/vif.xml.i
new file mode 100644
index 000000000..c6268dbe5
--- /dev/null
+++ b/interface-definitions/include/vif.xml.i
@@ -0,0 +1,185 @@
+<tagNode name="vif">
+ <properties>
+ <help>Virtual Local Area Network (VLAN) ID</help>
+ <valueHelp>
+ <format>0-4094</format>
+ <description>Virtual Local Area Network (VLAN) ID</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4094"/>
+ </constraint>
+ <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
+ </properties>
+ <children>
+ <leafNode name="address">
+ <properties>
+ <help>IP address</help>
+ <completionHelp>
+ <list>dhcp dhcpv6</list>
+ </completionHelp>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dhcp</format>
+ <description>Dynamic Host Configuration Protocol</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dhcpv6</format>
+ <description>Dynamic Host Configuration Protocol for IPv6</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ip-cidr"/>
+ <regex>(dhcp|dhcpv6)</regex>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ <leafNode name="description">
+ <properties>
+ <help>Interface description</help>
+ <constraint>
+ <regex>^.{1,256}$</regex>
+ </constraint>
+ <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <node name="dhcp-options">
+ <properties>
+ <help>DHCP options</help>
+ </properties>
+ <children>
+ <leafNode name="client-id">
+ <properties>
+ <help>DHCP client identifier</help>
+ </properties>
+ </leafNode>
+ <leafNode name="host-name">
+ <properties>
+ <help>DHCP client host name (overrides system host name)</help>
+ </properties>
+ </leafNode>
+ <leafNode name="vendor-class-id">
+ <properties>
+ <help>DHCP client vendor type</help>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <node name="dhcpv6-options">
+ <properties>
+ <help>DHCPv6 options</help>
+ <priority>319</priority>
+ </properties>
+ <children>
+ <leafNode name="parameters-only">
+ <properties>
+ <help>Acquire only config parameters, no address</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="temporary">
+ <properties>
+ <help>IPv6 "temporary" address</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <leafNode name="disable-link-detect">
+ <properties>
+ <help>Ignore link state changes</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="disable">
+ <properties>
+ <help>Disable this bridge interface</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="egress-qos">
+ <properties>
+ <help>VLAN egress QoS</help>
+ <completionHelp>
+ <script>echo Format for qos mapping, e.g.: '0:1 1:6 7:6'</script>
+ </completionHelp>
+ <constraint>
+ <regex>[:0-7 ]+$</regex>
+ </constraint>
+ <constraintErrorMessage>QoS mapping should be in the format of '0:7 2:3' with numbers 0-9</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="ingress-qos">
+ <properties>
+ <help>VLAN ingress QoS</help>
+ <completionHelp>
+ <script>echo Format for qos mapping '0:1 1:6 7:6'</script>
+ </completionHelp>
+ <constraint>
+ <regex>[:0-7 ]+$</regex>
+ </constraint>
+ <constraintErrorMessage>QoS mapping should be in the format of '0:7 2:3' with numbers 0-9</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <node name="ip">
+ <children>
+ <leafNode name="arp-cache-timeout">
+ <properties>
+ <help>ARP cache entry timeout in seconds</help>
+ <valueHelp>
+ <format>1-86400</format>
+ <description>ARP cache entry timout in seconds (default 30)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-86400"/>
+ </constraint>
+ <constraintErrorMessage>ARP cache entry timeout must be between 1 and 86400 seconds</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="enable-proxy-arp">
+ <properties>
+ <help>Enable proxy-arp on this interface</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="proxy-arp-pvlan">
+ <properties>
+ <help>Enable private VLAN proxy ARP on this interface</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <leafNode name="mac">
+ <properties>
+ <help>Media Access Control (MAC) address</help>
+ <valueHelp>
+ <format>h:h:h:h:h:h</format>
+ <description>Hardware (MAC) address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="mac-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="mtu">
+ <properties>
+ <help>Maximum Transmission Unit (MTU)</help>
+ <valueHelp>
+ <format>68-9000</format>
+ <description>Maximum Transmission Unit</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 68-9000"/>
+ </constraint>
+ <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ </children>
+</tagNode>
diff --git a/interface-definitions/interfaces-bonding.xml.in b/interface-definitions/interfaces-bonding.xml.in
index 12df69364..2f32c7263 100644
--- a/interface-definitions/interfaces-bonding.xml.in
+++ b/interface-definitions/interfaces-bonding.xml.in
@@ -1,665 +1,263 @@
<?xml version="1.0"?>
<interfaceDefinition>
<node name="interfaces">
<children>
<tagNode name="bonding" owner="${vyos_conf_scripts_dir}/interfaces-bonding.py">
<properties>
<help>Bonding interface name</help>
<priority>320</priority>
<constraint>
<regex>bond[0-9]+$</regex>
</constraint>
<constraintErrorMessage>Bonding interface must be named bondN</constraintErrorMessage>
<valueHelp>
<format>bondN</format>
<description>Bonding interface name</description>
</valueHelp>
</properties>
<children>
#include "include/address-ipv4-ipv6-dhcp.xml.i"
<node name="arp-monitor">
<properties>
<help>ARP link monitoring parameters</help>
</properties>
<children>
<leafNode name="interval">
<properties>
<help>ARP link monitoring interval</help>
<valueHelp>
<format>0-4294967295</format>
<description>Specifies the ARP link monitoring frequency in milliseconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-4294967295"/>
</constraint>
</properties>
</leafNode>
<leafNode name="target">
<properties>
<help>IP address used for ARP monitoring</help>
<valueHelp>
<format>ipv4</format>
<description>Network Time Protocol (NTP) IPv4 address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
</children>
</node>
<leafNode name="description">
<properties>
<help>Interface description</help>
<constraint>
<regex>^.{1,256}$</regex>
</constraint>
<constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
</properties>
</leafNode>
<node name="dhcp-options">
<properties>
<help>DHCP options</help>
</properties>
<children>
<leafNode name="client-id">
<properties>
<help>DHCP client identifier</help>
</properties>
</leafNode>
<leafNode name="host-name">
<properties>
<help>DHCP client host name (overrides the system host name)</help>
</properties>
</leafNode>
<leafNode name="vendor-class-id">
<properties>
<help>DHCP client vendor type</help>
</properties>
</leafNode>
</children>
</node>
<node name="dhcpv6-options">
<properties>
<help>DHCPv6 options</help>
<priority>319</priority>
</properties>
<children>
<leafNode name="parameters-only">
<properties>
<help>Acquire only config parameters, no address</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="temporary">
<properties>
<help>IPv6 "temporary" address</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<leafNode name="disable-link-detect">
<properties>
<help>Ignore link state changes</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="disable">
<properties>
<help>Disable this bridge interface</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="hash-policy">
<properties>
<help>Bonding transmit hash policy</help>
<completionHelp>
<list>layer2 layer2+3 layer3+4</list>
</completionHelp>
<valueHelp>
<format>layer2</format>
<description>use MAC addresses to generate the hash (802.3ad, default)</description>
</valueHelp>
<valueHelp>
<format>layer2+3</format>
<description>combine MAC address and IP address to make hash</description>
</valueHelp>
<valueHelp>
<format>layer3+4</format>
<description>combine IP address and port to make hash</description>
</valueHelp>
<constraint>
<regex>(layer2\+3|layer3\+4|layer2)</regex>
</constraint>
<constraintErrorMessage>hash-policy must be layer2 layer2+3 or layer3+4</constraintErrorMessage>
</properties>
</leafNode>
<node name="ip">
<children>
<leafNode name="arp-cache-timeout">
<properties>
<help>ARP cache entry timeout in seconds</help>
<valueHelp>
<format>1-86400</format>
<description>ARP cache entry timout in seconds (default 30)</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-86400"/>
</constraint>
<constraintErrorMessage>ARP cache entry timeout must be between 1 and 86400 seconds</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="enable-proxy-arp">
<properties>
<help>Enable proxy-arp on this interface</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="proxy-arp-pvlan">
<properties>
<help>Enable private VLAN proxy ARP on this interface</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<leafNode name="mac">
<properties>
<help>Media Access Control (MAC) address</help>
<valueHelp>
<format>h:h:h:h:h:h</format>
<description>Hardware (MAC) address</description>
</valueHelp>
<constraint>
<validator name="mac-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="mode">
<properties>
<help>Bonding mode</help>
<completionHelp>
<list>802.3ad active-backup broadcast round-robin transmit-load-balance adaptive-load-balance xor-hash</list>
</completionHelp>
<valueHelp>
<format>802.3ad</format>
<description>IEEE 802.3ad Dynamic link aggregation (Default)</description>
</valueHelp>
<valueHelp>
<format>active-backup</format>
<description>Fault tolerant: only one slave in the bond is active</description>
</valueHelp>
<valueHelp>
<format>broadcast</format>
<description>Fault tolerant: transmits everything on all slave interfaces</description>
</valueHelp>
<valueHelp>
<format>round-robin</format>
<description>Load balance: transmit packets in sequential order</description>
</valueHelp>
<valueHelp>
<format>transmit-load-balance</format>
<description>Load balance: adapts based on transmit load and speed</description>
</valueHelp>
<valueHelp>
<format>adaptive-load-balance</format>
<description>Load balance: adapts based on transmit and receive plus ARP</description>
</valueHelp>
<valueHelp>
<format>xor-hash</format>
<description>Distribute based on MAC address</description>
</valueHelp>
<constraint>
<regex>(802.3ad|active-backup|broadcast|round-robin|transmit-load-balance|adaptive-load-balance|xor-hash)</regex>
</constraint>
<constraintErrorMessage>mode must be 802.3ad, active-backup, broadcast, round-robin, transmit-load-balance, adaptive-load-balance, or xor</constraintErrorMessage>
</properties>
</leafNode>
<node name="member">
<properties>
<help>Bridge member interfaces</help>
</properties>
<children>
<leafNode name="interface">
<properties>
<help>Member interface name</help>
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces.py --bondable</script>
</completionHelp>
<multi/>
</properties>
</leafNode>
</children>
</node>
<leafNode name="mtu">
<properties>
<help>Maximum Transmission Unit (MTU)</help>
<valueHelp>
<format>68-9000</format>
<description>Maximum Transmission Unit</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 68-9000"/>
</constraint>
<constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="primary">
<properties>
<help>Primary device interface</help>
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces.py --bondable</script>
</completionHelp>
</properties>
</leafNode>
- <tagNode name="vif-s">
- <properties>
- <help>QinQ TAG-S Virtual Local Area Network (VLAN) ID</help>
- <constraint>
- <validator name="numeric" argument="--range 0-4094"/>
- </constraint>
- <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
- </properties>
- <children>
- <leafNode name="address">
- <properties>
- <help>IP address</help>
- <completionHelp>
- <list>dhcp dhcpv6</list>
- </completionHelp>
- <valueHelp>
- <format>ipv4net</format>
- <description>IPv4 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6net</format>
- <description>IPv6 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>dhcp</format>
- <description>Dynamic Host Configuration Protocol</description>
- </valueHelp>
- <valueHelp>
- <format>dhcpv6</format>
- <description>Dynamic Host Configuration Protocol for IPv6</description>
- </valueHelp>
- <constraint>
- <validator name="ip-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides the system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="ethertype">
- <properties>
- <help>Set Ethertype</help>
- <completionHelp>
- <list>0x88A8 0x8100</list>
- </completionHelp>
- <valueHelp>
- <format>0x88A8</format>
- <description>802.1ad</description>
- </valueHelp>
- <valueHelp>
- <format>0x8100</format>
- <description>802.1q</description>
- </valueHelp>
- <constraint>
- <regex>(0x88A8|0x8100)</regex>
- </constraint>
- <constraintErrorMessage>Ethertype must be 0x88A8 or 0x8100</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- <tagNode name="vif-c">
- <properties>
- <help>QinQ TAG-C Virtual Local Area Network (VLAN) ID</help>
- <constraint>
- <validator name="numeric" argument="--range 0-4094"/>
- </constraint>
- <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
- </properties>
- <children>
- <leafNode name="address">
- <properties>
- <help>IP address</help>
- <completionHelp>
- <list>dhcp dhcpv6</list>
- </completionHelp>
- <valueHelp>
- <format>ipv4net</format>
- <description>IPv4 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6net</format>
- <description>IPv6 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>dhcp</format>
- <description>Dynamic Host Configuration Protocol</description>
- </valueHelp>
- <valueHelp>
- <format>dhcpv6</format>
- <description>Dynamic Host Configuration Protocol for IPv6</description>
- </valueHelp>
- <constraint>
- <validator name="ip-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides the system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- </children>
- </tagNode>
- </children>
- </tagNode>
- <tagNode name="vif">
- <properties>
- <help>Virtual Local Area Network (VLAN) ID</help>
- <constraint>
- <validator name="numeric" argument="--range 0-4094"/>
- </constraint>
- <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
- </properties>
- <children>
- <leafNode name="address">
- <properties>
- <help>IP address</help>
- <completionHelp>
- <list>dhcp dhcpv6</list>
- </completionHelp>
- <valueHelp>
- <format>ipv4net</format>
- <description>IPv4 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6net</format>
- <description>IPv6 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>dhcp</format>
- <description>Dynamic Host Configuration Protocol</description>
- </valueHelp>
- <valueHelp>
- <format>dhcpv6</format>
- <description>Dynamic Host Configuration Protocol for IPv6</description>
- </valueHelp>
- <constraint>
- <validator name="ip-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides the system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- </children>
- </tagNode>
+ #include "include/vif-s.xml.i"
+ #include "include/vif.xml.i"
</children>
</tagNode>
</children>
</node>
</interfaceDefinition>
diff --git a/interface-definitions/interfaces-ethernet.xml.in b/interface-definitions/interfaces-ethernet.xml.in
index 92cfcd2c2..fee17840c 100644
--- a/interface-definitions/interfaces-ethernet.xml.in
+++ b/interface-definitions/interfaces-ethernet.xml.in
@@ -1,876 +1,377 @@
<?xml version="1.0"?>
<interfaceDefinition>
<node name="interfaces">
<children>
<tagNode name="ethernet" owner="${vyos_conf_scripts_dir}/interfaces-ethernet.py">
<properties>
<help>Ethernet interface name</help>
<priority>318</priority>
<constraint>
<regex>((eth|lan)[0-9]+|(eno|ens|enp|enx).+)$</regex>
</constraint>
<constraintErrorMessage>Invalid Ethernet interface name</constraintErrorMessage>
<valueHelp>
<format>ethN</format>
<description>Ethernet interface name</description>
</valueHelp>
<valueHelp>
<format>en[ospx]N</format>
<description>Ethernet interface name</description>
</valueHelp>
</properties>
<children>
#include "include/address-ipv4-ipv6-dhcp.xml.i"
<leafNode name="description">
<properties>
<help>Interface description</help>
<constraint>
<regex>^.{1,256}$</regex>
</constraint>
<constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
</properties>
</leafNode>
<node name="dhcp-options">
<properties>
<help>DHCP options</help>
</properties>
<children>
<leafNode name="client-id">
<properties>
<help>DHCP client identifier</help>
</properties>
</leafNode>
<leafNode name="host-name">
<properties>
<help>DHCP client host name (overrides system host name)</help>
</properties>
</leafNode>
<leafNode name="vendor-class-id">
<properties>
<help>DHCP client vendor type</help>
</properties>
</leafNode>
</children>
</node>
<node name="dhcpv6-options">
<properties>
<help>DHCPv6 options</help>
<priority>319</priority>
</properties>
<children>
<leafNode name="parameters-only">
<properties>
<help>Acquire only config parameters, no address</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="temporary">
<properties>
<help>IPv6 "temporary" address</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<leafNode name="disable-flow-control">
<properties>
<help>Disable Ethernet flow control (pause frames)</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="disable-link-detect">
<properties>
<help>Ignore link state changes</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="disable">
<properties>
<help>Disable this bridge interface</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="duplex">
<properties>
<help>Duplex mode</help>
<completionHelp>
<list>auto half full</list>
</completionHelp>
<valueHelp>
<format>auto</format>
<description>Auto negotiation (default)</description>
</valueHelp>
<valueHelp>
<format>half</format>
<description>Half duplex</description>
</valueHelp>
<valueHelp>
<format>full</format>
<description>Full duplex</description>
</valueHelp>
<constraint>
<regex>(auto|half|full)</regex>
</constraint>
<constraintErrorMessage>duplex must be auto, half or full</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="hw-id">
<properties>
<help>Media Access Control (MAC) address</help>
<valueHelp>
<format>h:h:h:h:h:h</format>
<description>Hardware (MAC) address</description>
</valueHelp>
<constraint>
<validator name="mac-address"/>
</constraint>
</properties>
</leafNode>
<node name="ip">
<children>
<leafNode name="arp-cache-timeout">
<properties>
<help>ARP cache entry timeout in seconds</help>
<valueHelp>
<format>1-86400</format>
<description>ARP cache entry timout in seconds (default 30)</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-86400"/>
</constraint>
<constraintErrorMessage>ARP cache entry timeout must be between 1 and 86400 seconds</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="enable-proxy-arp">
<properties>
<help>Enable proxy-arp on this interface</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="proxy-arp-pvlan">
<properties>
<help>Enable private VLAN proxy ARP on this interface</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<leafNode name="mac">
<properties>
<help>Media Access Control (MAC) address</help>
<valueHelp>
<format>h:h:h:h:h:h</format>
<description>Hardware (MAC) address</description>
</valueHelp>
<constraint>
<validator name="mac-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="mtu">
<properties>
<help>Maximum Transmission Unit (MTU)</help>
<valueHelp>
<format>68-9000</format>
<description>Maximum Transmission Unit</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 68-9000"/>
</constraint>
<constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
</properties>
</leafNode>
<node name="offload-options">
<properties>
<help>Configurable offload options</help>
</properties>
<children>
<leafNode name="generic-receive">
<properties>
<help>Configure GRO (generic receive offload)</help>
<completionHelp>
<list>on off</list>
</completionHelp>
<valueHelp>
<format>on</format>
<description>Enable GRO (generic receive offload)</description>
</valueHelp>
<valueHelp>
<format>off</format>
<description>Disable GRO (generic receive offload)</description>
</valueHelp>
<constraint>
<regex>(on|off)</regex>
</constraint>
<constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="generic-segmentation">
<properties>
<help>Configure GSO (generic segmentation offload)</help>
<completionHelp>
<list>on off</list>
</completionHelp>
<valueHelp>
<format>on</format>
<description>Enable GSO (generic segmentation offload)</description>
</valueHelp>
<valueHelp>
<format>off</format>
<description>Disable GSO (generic segmentation offload)</description>
</valueHelp>
<constraint>
<regex>(on|off)</regex>
</constraint>
<constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="scatter-gather">
<properties>
<help>Configure scatter-gather option</help>
<completionHelp>
<list>on off</list>
</completionHelp>
<valueHelp>
<format>on</format>
<description>Enable scatter-gather</description>
</valueHelp>
<valueHelp>
<format>off</format>
<description>Disable scatter-gather</description>
</valueHelp>
<constraint>
<regex>(on|off)</regex>
</constraint>
<constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="tcp-segmentation">
<properties>
<help>Configure TSO (TCP segmentation offloading)</help>
<completionHelp>
<list>on off</list>
</completionHelp>
<valueHelp>
<format>on</format>
<description>Enable TSO (TCP segmentation offloading)</description>
</valueHelp>
<valueHelp>
<format>off</format>
<description>Disable TSO (TCP segmentation offloading)</description>
</valueHelp>
<constraint>
<regex>(on|off)</regex>
</constraint>
<constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="udp-fragmentation">
<properties>
<help>Configure UDP fragmentation offloading</help>
<completionHelp>
<list>on off</list>
</completionHelp>
<valueHelp>
<format>on</format>
<description>Enable UDP fragmentation offloading</description>
</valueHelp>
<valueHelp>
<format>off</format>
<description>Disable UDP fragmentation offloading</description>
</valueHelp>
<constraint>
<regex>(on|off)</regex>
</constraint>
<constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
</properties>
</leafNode>
</children>
</node>
<leafNode name="smp-affinity">
<properties>
<help>CPU interrupt affinity mask</help>
<completionHelp>
<list>auto 10 100 1000 2500 5000 10000</list>
</completionHelp>
<valueHelp>
<format>auto</format>
<description>Auto negotiation (default)</description>
</valueHelp>
<valueHelp>
<format>hex</format>
<description>Bitmask representing CPUs that this NIC will interrupt</description>
</valueHelp>
<valueHelp>
<format>hex,hex</format>
<description>Bitmasks representing CPUs for interrupt and receive processing</description>
</valueHelp>
<constraint>
<regex>(auto)</regex>
<regex>[0-9a-f]+(|,[0-9a-f]+)$</regex>
</constraint>
<constraintErrorMessage>IRQ affinity mask must be hex value or auto</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="speed">
<properties>
<help>Link speed</help>
<completionHelp>
<list>auto 10 100 1000 2500 5000 10000 25000 40000 50000 100000</list>
</completionHelp>
<valueHelp>
<format>auto</format>
<description>Auto negotiation (default)</description>
</valueHelp>
<valueHelp>
<format>10</format>
<description>10 Mbit/sec</description>
</valueHelp>
<valueHelp>
<format>100</format>
<description>100 Mbit/sec</description>
</valueHelp>
<valueHelp>
<format>1000</format>
<description>1 Gbit/sec</description>
</valueHelp>
<valueHelp>
<format>2500</format>
<description>2.5 Gbit/sec</description>
</valueHelp>
<valueHelp>
<format>5000</format>
<description>5 Gbit/sec</description>
</valueHelp>
<valueHelp>
<format>10000</format>
<description>10 Gbit/sec</description>
</valueHelp>
<valueHelp>
<format>25000</format>
<description>25 Gbit/sec</description>
</valueHelp>
<valueHelp>
<format>40000</format>
<description>40 Gbit/sec</description>
</valueHelp>
<valueHelp>
<format>50000</format>
<description>50 Gbit/sec</description>
</valueHelp>
<valueHelp>
<format>100000</format>
<description>100 Gbit/sec</description>
</valueHelp>
<constraint>
<regex>(auto|10|100|1000|2500|5000|10000|25000|40000|50000|100000)</regex>
</constraint>
<constraintErrorMessage>Speed must be auto, 10, 100, 1000, 2500, 5000, 10000, 25000, 40000, 50000 or 100000</constraintErrorMessage>
</properties>
</leafNode>
- <tagNode name="vif-s">
- <properties>
- <help>QinQ TAG-S Virtual Local Area Network (VLAN) ID</help>
- <valueHelp>
- <format>0-4094</format>
- <description>QinQ TAG-S Virtual Local Area Network (VLAN) ID</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-4094"/>
- </constraint>
- <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
- </properties>
- <children>
- <leafNode name="address">
- <properties>
- <help>IP address</help>
- <completionHelp>
- <list>dhcp dhcpv6</list>
- </completionHelp>
- <valueHelp>
- <format>ipv4net</format>
- <description>IPv4 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6net</format>
- <description>IPv6 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>dhcp</format>
- <description>Dynamic Host Configuration Protocol</description>
- </valueHelp>
- <valueHelp>
- <format>dhcpv6</format>
- <description>Dynamic Host Configuration Protocol for IPv6</description>
- </valueHelp>
- <constraint>
- <validator name="ip-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="ethertype">
- <properties>
- <help>Set Ethertype</help>
- <completionHelp>
- <list>0x88A8 0x8100</list>
- </completionHelp>
- <valueHelp>
- <format>0x88A8</format>
- <description>802.1ad</description>
- </valueHelp>
- <valueHelp>
- <format>0x8100</format>
- <description>802.1q</description>
- </valueHelp>
- <constraint>
- <regex>(0x88A8|0x8100)</regex>
- </constraint>
- <constraintErrorMessage>Ethertype must be 0x88A8 or 0x8100</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="ip">
- <children>
- <leafNode name="enable-proxy-arp">
- <properties>
- <help>Enable proxy-arp on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="proxy-arp-pvlan">
- <properties>
- <help>Enable private VLAN proxy ARP on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- <tagNode name="vif-c">
- <properties>
- <help>QinQ TAG-C Virtual Local Area Network (VLAN) ID</help>
- <valueHelp>
- <format>0-4094</format>
- <description>QinQ TAG-C Virtual Local Area Network (VLAN) ID</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-4094"/>
- </constraint>
- <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
- </properties>
- <children>
- <leafNode name="address">
- <properties>
- <help>IP address</help>
- <completionHelp>
- <list>dhcp dhcpv6</list>
- </completionHelp>
- <valueHelp>
- <format>ipv4net</format>
- <description>IPv4 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6net</format>
- <description>IPv6 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>dhcp</format>
- <description>Dynamic Host Configuration Protocol</description>
- </valueHelp>
- <valueHelp>
- <format>dhcpv6</format>
- <description>Dynamic Host Configuration Protocol for IPv6</description>
- </valueHelp>
- <constraint>
- <validator name="ip-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <node name="ip">
- <children>
- <leafNode name="enable-proxy-arp">
- <properties>
- <help>Enable proxy-arp on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="proxy-arp-pvlan">
- <properties>
- <help>Enable private VLAN proxy ARP on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- </children>
- </tagNode>
- </children>
- </tagNode>
- <tagNode name="vif">
- <properties>
- <help>Virtual Local Area Network (VLAN) ID</help>
- <valueHelp>
- <format>0-4094</format>
- <description>Virtual Local Area Network (VLAN) ID</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-4094"/>
- </constraint>
- <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
- </properties>
- <children>
- <leafNode name="address">
- <properties>
- <help>IP address</help>
- <completionHelp>
- <list>dhcp dhcpv6</list>
- </completionHelp>
- <valueHelp>
- <format>ipv4net</format>
- <description>IPv4 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6net</format>
- <description>IPv6 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>dhcp</format>
- <description>Dynamic Host Configuration Protocol</description>
- </valueHelp>
- <valueHelp>
- <format>dhcpv6</format>
- <description>Dynamic Host Configuration Protocol for IPv6</description>
- </valueHelp>
- <constraint>
- <validator name="ip-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="egress-qos">
- <properties>
- <help>VLAN egress QoS</help>
- <completionHelp>
- <script>echo Format for qos mapping, e.g.: '0:1 1:6 7:6'</script>
- </completionHelp>
- <constraint>
- <regex>[:0-7 ]+$</regex>
- </constraint>
- <constraintErrorMessage>QoS mapping should be in the format of '0:7 2:3' with numbers 0-9</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="ingress-qos">
- <properties>
- <help>VLAN ingress QoS</help>
- <completionHelp>
- <script>echo Format for qos mapping '0:1 1:6 7:6'</script>
- </completionHelp>
- <constraint>
- <regex>[:0-7 ]+$</regex>
- </constraint>
- <constraintErrorMessage>QoS mapping should be in the format of '0:7 2:3' with numbers 0-9</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="ip">
- <children>
- <leafNode name="arp-cache-timeout">
- <properties>
- <help>ARP cache entry timeout in seconds</help>
- <valueHelp>
- <format>1-86400</format>
- <description>ARP cache entry timout in seconds (default 30)</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-86400"/>
- </constraint>
- <constraintErrorMessage>ARP cache entry timeout must be between 1 and 86400 seconds</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="enable-proxy-arp">
- <properties>
- <help>Enable proxy-arp on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="proxy-arp-pvlan">
- <properties>
- <help>Enable private VLAN proxy ARP on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- </children>
- </tagNode>
+ #include "include/vif-s.xml.i"
+ #include "include/vif.xml.i"
</children>
</tagNode>
</children>
</node>
</interfaceDefinition>
diff --git a/interface-definitions/interfaces-wireless.xml.in b/interface-definitions/interfaces-wireless.xml.in
index d8779cf72..4d7e5735a 100644
--- a/interface-definitions/interfaces-wireless.xml.in
+++ b/interface-definitions/interfaces-wireless.xml.in
@@ -1,935 +1,844 @@
<?xml version="1.0"?>
<interfaceDefinition>
<node name="interfaces">
<children>
<tagNode name="wireless" owner="${vyos_conf_scripts_dir}/interfaces-wireless.py">
<properties>
<help>Wireless network interface (WiFi/WLAN)</help>
<priority>400</priority>
<constraint>
<regex>wlan[0-9]+$</regex>
</constraint>
<constraintErrorMessage>Wireless interface must be named wlanN</constraintErrorMessage>
<valueHelp>
<format>wlanN</format>
<description>Wireless (WiFi/WLAN) interface name</description>
</valueHelp>
</properties>
<children>
#include "include/address-ipv4-ipv6-dhcp.xml.i"
<node name="capabilities">
<properties>
<help>HT and VHT capabilities for your card</help>
</properties>
<children>
<node name="ht">
<properties>
<help>HT (High Throughput) settings</help>
</properties>
<children>
<leafNode name="40mhz-incapable">
<properties>
<help>40MHz intolerance, use 20MHz only!</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="auto-powersave">
<properties>
<help>Enable WMM-PS unscheduled automatic power aave delivery [U-APSD]</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="channel-set-width">
<properties>
<help>Supported channel set width</help>
<completionHelp>
<list>ht20 ht40+ ht40-</list>
</completionHelp>
<valueHelp>
<format>ht20</format>
<description>Supported channel set width both 20 MHz only</description>
</valueHelp>
<valueHelp>
<format>ht40+</format>
<description>Supported channel set width both 20 MHz and 40 MHz with secondary channel above primary channel</description>
</valueHelp>
<valueHelp>
<format>ht40-</format>
<description>Supported channel set width both 20 MHz and 40 MHz with secondary channel below primary channel</description>
</valueHelp>
<constraint>
<regex>(ht20|ht40\+|ht40-)</regex>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="delayed-block-ack">
<properties>
<help>Enable HT-delayed block ack</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="dsss-cck-40">
<properties>
<help>Enable DSSS_CCK-40</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="greenfield">
<properties>
<help>Enable HT-greenfield</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="ldpc">
<properties>
<help>Enable LDPC coding capability</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="lsig-protection">
<properties>
<help>Enable L-SIG TXOP protection capability</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="max-amsdu">
<properties>
<help>Set maximum A-MSDU length</help>
<completionHelp>
<list>3839 7935</list>
</completionHelp>
<valueHelp>
<format>3839</format>
<description>Set maximum A-MSDU length to 3839 octets</description>
</valueHelp>
<valueHelp>
<format>7935</format>
<description>Set maximum A-MSDU length to 7935 octets</description>
</valueHelp>
<constraint>
<regex>(3839|7935)</regex>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="short-gi">
<properties>
<help>Short GI capabilities</help>
<completionHelp>
<list>20 40</list>
</completionHelp>
<valueHelp>
<format>20</format>
<description>Short GI for 20 MHz</description>
</valueHelp>
<valueHelp>
<format>40</format>
<description>Short GI for 40 MHz</description>
</valueHelp>
<constraint>
<regex>(20|40)</regex>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="smps">
<properties>
<help>Spatial Multiplexing Power Save (SMPS) settings</help>
<completionHelp>
<list>static dynamic</list>
</completionHelp>
<valueHelp>
<format>static</format>
<description>STATIC Spatial Multiplexing (SM) Power Save</description>
</valueHelp>
<valueHelp>
<format>dynamic</format>
<description>DYNAMIC Spatial Multiplexing (SM) Power Save</description>
</valueHelp>
<constraint>
<regex>(static|dynamic)</regex>
</constraint>
<multi/>
</properties>
</leafNode>
<node name="stbc">
<properties>
<help>Support for sending and receiving PPDU using STBC (Space Time Block Coding)</help>
</properties>
<children>
<leafNode name="rx">
<properties>
<help>Enable receiving PPDU using STBC (Space Time Block Coding)</help>
<valueHelp>
<format>[1-3]+</format>
<description>Number of spacial streams that can use RX STBC</description>
</valueHelp>
<constraint>
<regex>[1-3]+</regex>
</constraint>
<constraintErrorMessage>Invalid capability item</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="tx">
<properties>
<help>Enable sending PPDU using STBC (Space Time Block Coding)</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
</children>
</node>
<leafNode name="require-ht">
<properties>
<help>Require stations to support HT PHY (reject association if they do not)</help>
<completionHelp>
<script>echo If you reject non-HT, you also disable 802.11g</script>
</completionHelp>
<valueless/>
</properties>
</leafNode>
<leafNode name="require-vht">
<properties>
<help>Require stations to support VHT PHY (reject association if they do not)</help>
<completionHelp>
<script>echo If you reject non-VHT, you also disable 802.11n</script>
</completionHelp>
<valueless/>
</properties>
</leafNode>
<node name="vht">
<properties>
<help>VHT (Very High Throughput) settings</help>
</properties>
<children>
<leafNode name="antenna-count">
<properties>
<help>Number of antennas on this card</help>
<valueHelp>
<format>1-9</format>
<description>Number of antennas for this card</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-9"/>
</constraint>
</properties>
</leafNode>
<leafNode name="antenna-pattern-fixed">
<properties>
<help>Set if antenna pattern does not change during the lifetime of an association</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="beamform">
<properties>
<help>Beamforming capabilities</help>
<completionHelp>
<list>single-user-beamformer single-user-beamformee multi-user-beamformer multi-user-beamformee</list>
</completionHelp>
<valueHelp>
<format>single-user-beamformer</format>
<description>Support for operation as single user beamformer</description>
</valueHelp>
<valueHelp>
<format>single-user-beamformee</format>
<description>Support for operation as single user beamformee</description>
</valueHelp>
<valueHelp>
<format>multi-user-beamformer</format>
<description>Support for operation as multi user beamformer</description>
</valueHelp>
<valueHelp>
<format>multi-user-beamformee</format>
<description>Support for operation as multi user beamformee</description>
</valueHelp>
<constraint>
<regex>(single-user-beamformer|single-user-beamformee|multi-user-beamformer|multi-user-beamformee)</regex>
</constraint>
<multi/>
</properties>
</leafNode>
<node name="center-channel-freq">
<properties>
<help>VHT operating channel center frequency</help>
</properties>
<children>
<leafNode name="freq-1">
<properties>
<help>VHT operating channel center frequency - center freq 1 (for use with 80, 80+80 and 160 modes)</help>
<valueHelp>
<format><34-173></format>
<description>5Ghz (802.11 a/h/j/n/ac) center channel index (use 42 for primary 80MHz channel 36)</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 34-173"/>
</constraint>
<constraintErrorMessage>Channel center value must be between 34 and 173</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="freq-2">
<properties>
<help>VHT operating channel center frequency - center freq 2 (for use with the 80+80 mode)</help>
<valueHelp>
<format>34-173</format>
<description>5Ghz (802.11 a/h/j/n/ac) center channel index (use 58 for primary 80MHz channel 52)</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 34-173"/>
</constraint>
<constraintErrorMessage>Channel center value must be between 34 and 173</constraintErrorMessage>
</properties>
</leafNode>
</children>
</node>
<leafNode name="channel-set-width">
<properties>
<help>VHT operating Channel width</help>
<completionHelp>
<list>0 1 2 3</list>
</completionHelp>
<valueHelp>
<format>0</format>
<description>20 or 40 MHz channel width (default)</description>
</valueHelp>
<valueHelp>
<format>1</format>
<description>80 MHz channel width</description>
</valueHelp>
<valueHelp>
<format>2</format>
<description>160 MHz channel width</description>
</valueHelp>
<valueHelp>
<format>3</format>
<description>80+80 MHz channel width</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-3"/>
</constraint>
</properties>
</leafNode>
<leafNode name="ldpc">
<properties>
<help>Enable LDPC (Low Density Parity Check) coding capability</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="link-adaptation">
<properties>
<help>VHT link adaptation capabilities</help>
<completionHelp>
<list>single-user-beamformer single-user-beamformee multi-user-beamformer multi-user-beamformee</list>
</completionHelp>
<valueHelp>
<format>unsolicited</format>
<description>Station provides only unsolicited VHT MFB</description>
</valueHelp>
<valueHelp>
<format>both</format>
<description>Station can provide VHT MFB in response to VHT MRQ and unsolicited VHT MFB</description>
</valueHelp>
<constraint>
<regex>(unsolicited|both)</regex>
</constraint>
<constraintErrorMessage>Invalid capability item</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="max-mpdu-exp">
<properties>
<help>Set the maximum length of A-MPDU pre-EOF padding that the station can receive</help>
<valueHelp>
<format><0-7></format>
<description>Maximum length of A-MPDU pre-EOF padding = 2 pow(13 + x) -1 octets</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-7"/>
</constraint>
</properties>
</leafNode>
<leafNode name="max-mpdu">
<properties>
<help>Increase Maximum MPDU length to 7991 or 11454 octets (otherwise: 3895 octets)</help>
<completionHelp>
<list>7991 11454</list>
</completionHelp>
<valueHelp>
<format>7991</format>
<description>ncrease Maximum MPDU length to 7991 octets</description>
</valueHelp>
<valueHelp>
<format>11454</format>
<description>ncrease Maximum MPDU length to 11454 octets</description>
</valueHelp>
<constraint>
<regex>(7991|11454)</regex>
</constraint>
</properties>
</leafNode>
<leafNode name="short-gi">
<properties>
<help>Short GI capabilities</help>
<completionHelp>
<list>80 160</list>
</completionHelp>
<valueHelp>
<format>80</format>
<description>Short GI for 80 MHz</description>
</valueHelp>
<valueHelp>
<format>160</format>
<description>Short GI for 160 MHz</description>
</valueHelp>
<constraint>
<regex>(80|160)</regex>
</constraint>
<multi/>
</properties>
</leafNode>
<node name="stbc">
<properties>
<help>Support for sending and receiving PPDU using STBC (Space Time Block Coding)</help>
</properties>
<children>
<leafNode name="rx">
<properties>
<help>Enable receiving PPDU using STBC (Space Time Block Coding)</help>
<valueHelp>
<format>[1-4]+</format>
<description>Number of spacial streams that can use RX STBC</description>
</valueHelp>
<constraint>
<regex>[1-4]+</regex>
</constraint>
<constraintErrorMessage>Invalid capability item</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="tx">
<properties>
<help>Enable sending PPDU using STBC (Space Time Block Coding)</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<leafNode name="tx-powersave">
<properties>
<help>Enable VHT TXOP Power Save Mode</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="vht-cf">
<properties>
<help>Station supports receiving VHT variant HT Control field</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
</children>
</node>
<leafNode name="channel">
<properties>
<help>Wireless radio channel (use 0 for ACS auto channel selection)</help>
<valueHelp>
<format><1-14></format>
<description>2.4Ghz (802.11 b/g/n) Channel</description>
</valueHelp>
<valueHelp>
<format><0,34-173></format>
<description>5Ghz (802.11 a/h/j/n/ac) Channel</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-0 --range 1-14 --range 34-173"/>
</constraint>
</properties>
</leafNode>
<leafNode name="description">
<properties>
<help>Interface description</help>
<constraint>
<regex>.{1,256}$</regex>
</constraint>
<constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
</properties>
</leafNode>
<node name="dhcp-options">
<properties>
<help>DHCP options</help>
</properties>
<children>
<leafNode name="client-id">
<properties>
<help>DHCP client identifier</help>
</properties>
</leafNode>
<leafNode name="host-name">
<properties>
<help>DHCP client host name (overrides system host name)</help>
</properties>
</leafNode>
<leafNode name="vendor-class-id">
<properties>
<help>DHCP client vendor type</help>
</properties>
</leafNode>
</children>
</node>
<node name="dhcpv6-options">
<properties>
<help>DHCPv6 options</help>
<priority>319</priority>
</properties>
<children>
<leafNode name="parameters-only">
<properties>
<help>Acquire only config parameters, no address</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="temporary">
<properties>
<help>IPv6 "temporary" address</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<leafNode name="disable-broadcast-ssid">
<properties>
<help>Disable broadcast of SSID from access-point</help>
</properties>
</leafNode>
<leafNode name="disable-link-detect">
<properties>
<help>Ignore link state changes</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="disable">
<properties>
<help>Disable this bridge interface</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="expunge-failing-stations">
<properties>
<help>Disassociate stations based on excessive transmission failures</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="hw-id">
<properties>
<help>Media Access Control (MAC) address</help>
<valueHelp>
<format>h:h:h:h:h:h</format>
<description>Hardware (MAC) address</description>
</valueHelp>
<constraint>
<validator name="mac-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="isolate-stations">
<properties>
<help>Isolate stations on the AP so they cannot see each other</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="mac">
<properties>
<help>Media Access Control (MAC) address</help>
<valueHelp>
<format>h:h:h:h:h:h</format>
<description>Hardware (MAC) address</description>
</valueHelp>
<constraint>
<validator name="mac-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="max-stations">
<properties>
<help>Maximum number of wireless radio stations. Excess stations will be rejected upon authentication request.</help>
<valueHelp>
<format><1-2007></format>
<description>Number of allowed stations</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-2007"/>
</constraint>
<constraintErrorMessage>Number of stations must be between 1 and 2007</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="mgmt-frame-protection">
<properties>
<help>Management Frame Protection (MFP) according to IEEE 802.11w</help>
<completionHelp>
<list>disabled optional required</list>
</completionHelp>
<valueHelp>
<format>disabled</format>
<description>no MFP (hostapd default)</description>
</valueHelp>
<valueHelp>
<format>optional</format>
<description>MFP optional</description>
</valueHelp>
<valueHelp>
<format>required</format>
<description>MFP enforced</description>
</valueHelp>
<constraint>
<regex>(disabled|optional|required)</regex>
</constraint>
</properties>
</leafNode>
<leafNode name="mode">
<properties>
<help>Wireless radio mode</help>
<completionHelp>
<list>a b g n ac</list>
</completionHelp>
<valueHelp>
<format>a</format>
<description>802.11a - 54 Mbits/sec</description>
</valueHelp>
<valueHelp>
<format>b</format>
<description>802.11b - 11 Mbits/sec</description>
</valueHelp>
<valueHelp>
<format>g</format>
<description>802.11g - 54 Mbits/sec (default)</description>
</valueHelp>
<valueHelp>
<format>n</format>
<description>802.11n - 600 Mbits/sec</description>
</valueHelp>
<valueHelp>
<format>ac</format>
<description>802.11ac - 1300 Mbits/sec</description>
</valueHelp>
<constraint>
<regex>(a|b|g|n|ac)</regex>
</constraint>
</properties>
</leafNode>
<leafNode name="physical-device">
<properties>
<help>Wireless physical device</help>
<completionHelp>
<script>${vyos_completion_dir}/list_wireless_phys.sh</script>
</completionHelp>
</properties>
</leafNode>
<leafNode name="reduce-transmit-power">
<properties>
<help>Transmission power reduction in dBm</help>
<valueHelp>
<format><0-255></format>
<description>TX power reduction in dBm</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-255"/>
</constraint>
<constraintErrorMessage>dBm value must be between 0 and 255</constraintErrorMessage>
</properties>
</leafNode>
<node name="security">
<properties>
<help>Wireless security settings</help>
</properties>
<children>
<node name="wep">
<properties>
<help>Wired Equivalent Privacy (WEP) parameters</help>
</properties>
<children>
<leafNode name="key">
<properties>
<help>WEP encryption key</help>
<valueHelp>
<format><hexdigits></format>
<description>Wired Equivalent Privacy key</description>
</valueHelp>
<constraint>
<regex>([a-fA-F0-9]{10}|[a-fA-F0-9]{26}|[a-fA-F0-9]{32})</regex>
</constraint>
<constraintErrorMessage>Invalid WEP key</constraintErrorMessage>
<multi/>
</properties>
</leafNode>
</children>
</node>
<node name="wpa">
<properties>
<help>Wifi Protected Access (WPA) parameters</help>
</properties>
<children>
<leafNode name="cipher">
<properties>
<help>Cipher suite for WPA</help>
<completionHelp>
<list>TKIP CCMP</list>
</completionHelp>
<valueHelp>
<format>CCMP</format>
<description>AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]</description>
</valueHelp>
<valueHelp>
<format>TKIP</format>
<description>Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]</description>
</valueHelp>
<constraint>
<regex>(CCMP|TKIP)</regex>
</constraint>
<constraintErrorMessage>Invalid WEP key</constraintErrorMessage>
<multi/>
</properties>
</leafNode>
<leafNode name="mode">
<properties>
<help>WPA mode</help>
<completionHelp>
<list>wpa wpa2 both</list>
</completionHelp>
<valueHelp>
<format>wpa</format>
<description>WPA (IEEE 802.11i/D3.0)</description>
</valueHelp>
<valueHelp>
<format>wpa2</format>
<description>WPA2 (full IEEE 802.11i/RSN)</description>
</valueHelp>
<valueHelp>
<format>both</format>
<description>Allow both WPA and WPA2</description>
</valueHelp>
<constraint>
<regex>(wpa|wpa2|both)</regex>
</constraint>
<constraintErrorMessage>Unknown WPA mode</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="passphrase">
<properties>
<help>WPA personal shared pass phrase. If you are
using special characters in the WPA passphrase then single
quotes are required.</help>
<valueHelp>
<format><text></format>
<description>Passphrase of at least 8 but not more than 63 printable characters</description>
</valueHelp>
<constraint>
<regex>.{8,63}$</regex>
</constraint>
<constraintErrorMessage>Invalid WPA pass phrase, must be 8 to 63 printable characters!</constraintErrorMessage>
</properties>
</leafNode>
<node name="radius">
<properties>
<help>RADIUS specific configuration</help>
</properties>
<children>
<leafNode name="source-address">
<properties>
<help>RADIUS client forced local IP address</help>
<valueHelp>
<format>ipv4</format>
<description>IPv4 address of RADIUS server</description>
</valueHelp>
</properties>
</leafNode>
<tagNode name="server">
<properties>
<help>IP address of RADIUS server</help>
<valueHelp>
<format>ipv4</format>
<description>IPv4 address of RADIUS server</description>
</valueHelp>
</properties>
<children>
<leafNode name="accounting">
<properties>
<help>Enable RADIUS server to receive accounting info</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="port">
<properties>
<help>RADIUS server port (default: 1812)</help>
<valueHelp>
<format>1-65535</format>
<description>RADIUS server port</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="key">
<properties>
<help>RADIUS shared secret key</help>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</node>
</children>
</node>
</children>
</node>
<leafNode name="ssid">
<properties>
<help>Wireless access-point service set identifier (SSID)</help>
<constraint>
<regex>.{1,32}$</regex>
</constraint>
<constraintErrorMessage>Invalid SSID</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="type">
<properties>
<help>Wireless device type for this interface</help>
<completionHelp>
<list>access-point station monitor</list>
</completionHelp>
<valueHelp>
<format>access-point</format>
<description>Access-point forwards packets between other nodes</description>
</valueHelp>
<valueHelp>
<format>station</format>
<description>Connects to another access point</description>
</valueHelp>
<valueHelp>
<format>monitor</format>
<description>Passively monitor all packets on the frequency/channel</description>
</valueHelp>
<constraint>
<regex>(access-point|station|monitor)</regex>
</constraint>
<constraintErrorMessage>Type must be access-point, station or monitor</constraintErrorMessage>
</properties>
</leafNode>
- <tagNode name="vif">
- <properties>
- <help>Virtual Local Area Network (VLAN) ID</help>
- <constraint>
- <validator name="numeric" argument="--range 0-4094"/>
- </constraint>
- <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
- </properties>
- <children>
- <leafNode name="address">
- <properties>
- <help>IP address</help>
- <completionHelp>
- <list>dhcp dhcpv6</list>
- </completionHelp>
- <valueHelp>
- <format>ipv4net</format>
- <description>IPv4 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6net</format>
- <description>IPv6 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>dhcp</format>
- <description>Dynamic Host Configuration Protocol</description>
- </valueHelp>
- <valueHelp>
- <format>dhcpv6</format>
- <description>Dynamic Host Configuration Protocol for IPv6</description>
- </valueHelp>
- <constraint>
- <validator name="ip-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- </children>
- </tagNode>
+ #include "include/vif.xml.i"
</children>
</tagNode>
</children>
</node>
<node name="system">
<children>
<leafNode name="wifi-regulatory-domain" owner="${vyos_conf_scripts_dir}/system-wifi-regdom.py">
<properties>
<help>Wireless regulatory domain (mandatory)</help>
<priority>305</priority>
<completionHelp>
<list>US EU JP DE UK CN</list>
</completionHelp>
<valueHelp>
<format><code%gt;</format>
<description>Country code (ISO/IEC 3166-1)</description>
</valueHelp>
<constraint>
<regex>[A-Z][A-Z]$</regex>
</constraint>
<constraintErrorMessage>invalid country code</constraintErrorMessage>
</properties>
</leafNode>
</children>
</node>
</interfaceDefinition>
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Fri, Nov 6, 7:47 AM (1 d, 23 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4646007
Default Alt Text
(125 KB)
Attached To
Mode
rVYOSONEX vyos-1x
Attached
Detach File
Event Timeline
Log In to Comment