<?xml version="1.0"?> <interfaceDefinition> <node name="interfaces"> <children> <tagNode name="bonding" owner="${vyos_conf_scripts_dir}/interfaces-bonding.py"> <properties> <help>Bonding Interface/Link Aggregation</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/interface/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>u32</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>Specify IPv4 address of ARP requests when interval is enabled</description> </valueHelp> <constraint> <validator name="ipv4-address"/> </constraint> <multi/> </properties> </leafNode> </children> </node> #include <include/interface/description.xml.i> #include <include/interface/dhcp-options.xml.i> #include <include/interface/dhcpv6-options.xml.i> #include <include/interface/disable-link-detect.xml.i> #include <include/interface/disable.xml.i> #include <include/interface/vrf.xml.i> #include <include/interface/mirror.xml.i> <leafNode name="hash-policy"> <properties> <help>Bonding transmit hash policy</help> <completionHelp> <list>layer2 layer2+3 layer3+4 encap2+3 encap3+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> <valueHelp> <format>encap2+3</format> <description>combine encapsulated MAC address and IP address to make hash</description> </valueHelp> <valueHelp> <format>encap3+4</format> <description>combine encapsulated IP address and port to make hash</description> </valueHelp> <constraint> <regex>^(layer2\+3|layer3\+4|layer2|encap2\+3|encap3\+4)$</regex> </constraint> <constraintErrorMessage>hash-policy must be layer2 layer2+3 layer3+4 encap2+3 or encap3+4</constraintErrorMessage> </properties> <defaultValue>layer2</defaultValue> </leafNode> #include <include/interface/ipv4-options.xml.i> #include <include/interface/ipv6-options.xml.i> #include <include/interface/mac.xml.i> <leafNode name="min-links"> <properties> <help>Minimum number of member interfaces required up before enabling bond</help> <valueHelp> <format>u32:0-16</format> <description>Minimum number of member interfaces required up before enabling bond</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 0-16"/> </constraint> </properties> <defaultValue>0</defaultValue> </leafNode> <leafNode name="lacp-rate"> <properties> <help>Rate in which we will ask our link partner to transmit LACPDU packets</help> <completionHelp> <list>slow fast</list> </completionHelp> <valueHelp> <format>slow</format> <description>Request partner to transmit LACPDUs every 30 seconds (default)</description> </valueHelp> <valueHelp> <format>fast</format> <description>Request partner to transmit LACPDUs every 1 second</description> </valueHelp> <constraint> <regex>^(slow|fast)$</regex> </constraint> </properties> <defaultValue>slow</defaultValue> </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> <defaultValue>802.3ad</defaultValue> </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> #include <include/interface/mtu-68-16000.xml.i> <leafNode name="primary"> <properties> <help>Primary device interface</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces.py --bondable</script> </completionHelp> </properties> </leafNode> #include <include/interface/vif-s.xml.i> #include <include/interface/vif.xml.i> </children> </tagNode> </children> </node> </interfaceDefinition>