Page MenuHomeVyOS Platform

No OneTemporary

Size
125 KB
Referenced Files
None
Subscribers
None
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>&lt;34-173&gt;</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>&lt;0-7&gt;</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>&lt;1-14&gt;</format>
<description>2.4Ghz (802.11 b/g/n) Channel</description>
</valueHelp>
<valueHelp>
<format>&lt;0,34-173&gt;</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>&lt;1-2007&gt;</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>&lt;0-255&gt;</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>&lt;hexdigits&gt;</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>&lt;text&gt;</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>&lt;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

Mime Type
text/x-diff
Expires
Fri, Nov 6, 7:47 AM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4646007
Default Alt Text
(125 KB)

Event Timeline