summaryrefslogtreecommitdiff
path: root/interface-definitions
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2026-02-20 12:42:35 +0200
committerNataliia Solomko <natalirs1985@gmail.com>2026-02-25 19:25:31 +0200
commitdec957d8bf09f2a186bc12478eec275a88ef3896 (patch)
treeec8449e209a87e52af224f28d8854bc9109b6f5a /interface-definitions
parent6fd7a87116ea91edbdbe86ed19c8274682d9ee8b (diff)
downloadvyos-1x-dec957d8bf09f2a186bc12478eec275a88ef3896.tar.gz
vyos-1x-dec957d8bf09f2a186bc12478eec275a88ef3896.zip
vpp: T8283: Move bonding interface from vpp secction to 'interfaces vpp bonding'
Diffstat (limited to 'interface-definitions')
-rw-r--r--interface-definitions/include/version/vpp-version.xml.i2
-rw-r--r--interface-definitions/vpp.xml.in98
-rw-r--r--interface-definitions/vpp_interface_bonding.xml.in118
3 files changed, 119 insertions, 99 deletions
diff --git a/interface-definitions/include/version/vpp-version.xml.i b/interface-definitions/include/version/vpp-version.xml.i
index 59d13f8cf..b354faa08 100644
--- a/interface-definitions/include/version/vpp-version.xml.i
+++ b/interface-definitions/include/version/vpp-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/vpp-version.xml.i -->
-<syntaxVersion component='vpp' version='8'></syntaxVersion>
+<syntaxVersion component='vpp' version='9'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/vpp.xml.in b/interface-definitions/vpp.xml.in
index 86568c1e9..9f245aaf3 100644
--- a/interface-definitions/vpp.xml.in
+++ b/interface-definitions/vpp.xml.in
@@ -12,104 +12,6 @@
<priority>300</priority>
</properties>
<children>
- <tagNode name="bonding" owner="${vyos_conf_scripts_dir}/vpp_interfaces_bonding.py">
- <properties>
- <priority>324</priority>
- <help>Bonding Interface/Link Aggregation</help>
- <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/generic-description.xml.i>
- #include <include/interface/disable.xml.i>
- <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</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 layer3+4</constraintErrorMessage>
- </properties>
- <defaultValue>layer2</defaultValue>
- </leafNode>
- #include <include/interface/mac.xml.i>
- #include <include/kernel-interface-tun.xml.i>
- <leafNode name="mode">
- <properties>
- <help>Bonding mode</help>
- <completionHelp>
- <list>802.3ad active-backup broadcast round-robin xor-hash</list>
- </completionHelp>
- <valueHelp>
- <format>802.3ad</format>
- <description>IEEE 802.3ad Dynamic link aggregation</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>xor-hash</format>
- <description>Distribute based on MAC address</description>
- </valueHelp>
- <constraint>
- <regex>(802.3ad|active-backup|broadcast|round-robin|xor-hash)</regex>
- </constraint>
- <constraintErrorMessage>mode must be 802.3ad, active-backup, broadcast, round-robin, or xor</constraintErrorMessage>
- </properties>
- <defaultValue>802.3ad</defaultValue>
- </leafNode>
- <node name="member">
- <properties>
- <help>Bonding member interfaces</help>
- </properties>
- <children>
- <leafNode name="interface">
- <properties>
- <help>Member interface name</help>
- <completionHelp>
- <script>${vyos_completion_dir}/list_interfaces --bondable</script>
- </completionHelp>
- <valueHelp>
- <format>txt</format>
- <description>Interface name</description>
- </valueHelp>
- <multi/>
- </properties>
- </leafNode>
- </children>
- </node>
- </children>
- </tagNode>
<tagNode name="bridge" owner="${vyos_conf_scripts_dir}/vpp_interfaces_bridge.py">
<properties>
<priority>327</priority>
diff --git a/interface-definitions/vpp_interface_bonding.xml.in b/interface-definitions/vpp_interface_bonding.xml.in
new file mode 100644
index 000000000..9f114d157
--- /dev/null
+++ b/interface-definitions/vpp_interface_bonding.xml.in
@@ -0,0 +1,118 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name='interfaces'>
+ <children>
+ <node name='vpp'>
+ <properties>
+ <help>Network interfaces</help>
+ <priority>300</priority>
+ </properties>
+ <children>
+ <tagNode name="bonding" owner="${vyos_conf_scripts_dir}/vpp_interfaces_bonding.py">
+ <properties>
+ <priority>324</priority>
+ <help>Bonding Interface/Link Aggregation</help>
+ <constraint>
+ <regex>vppbond[0-9]+</regex>
+ </constraint>
+ <constraintErrorMessage>Bonding interface must be named vppbondN</constraintErrorMessage>
+ <valueHelp>
+ <format>vppbondN</format>
+ <description>Bonding interface name</description>
+ </valueHelp>
+ </properties>
+ <children>
+ #include <include/generic-description.xml.i>
+ #include <include/interface/disable.xml.i>
+ <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</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 layer3+4</constraintErrorMessage>
+ </properties>
+ <defaultValue>layer2</defaultValue>
+ </leafNode>
+ #include <include/interface/mac.xml.i>
+ <leafNode name="mode">
+ <properties>
+ <help>Bonding mode</help>
+ <completionHelp>
+ <list>802.3ad active-backup broadcast round-robin xor-hash</list>
+ </completionHelp>
+ <valueHelp>
+ <format>802.3ad</format>
+ <description>IEEE 802.3ad Dynamic link aggregation</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>xor-hash</format>
+ <description>Distribute based on MAC address</description>
+ </valueHelp>
+ <constraint>
+ <regex>(802.3ad|active-backup|broadcast|round-robin|xor-hash)</regex>
+ </constraint>
+ <constraintErrorMessage>mode must be 802.3ad, active-backup, broadcast, round-robin, or xor-hash</constraintErrorMessage>
+ </properties>
+ <defaultValue>802.3ad</defaultValue>
+ </leafNode>
+ <node name="member">
+ <properties>
+ <help>Bonding member interfaces</help>
+ </properties>
+ <children>
+ <leafNode name="interface">
+ <properties>
+ <help>Member interface name</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces --bondable</script>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Interface name</description>
+ </valueHelp>
+ <constraint>
+ #include <include/constraint/interface-name.xml.i>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ #include <include/interface/address-ipv4-ipv6.xml.i>
+ #include <include/interface/mtu-68-16000.xml.i>
+ #include <include/vpp/vif.xml.i>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+ </children>
+ </node>
+</interfaceDefinition>