> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siderolabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

> BondConfig is a config document to create a bond (link aggregation) over a set of links.

# BondConfig

```yaml theme={null}
apiVersion: v1alpha1
kind: BondConfig
name: bond.int # Name of the bond link (interface) to be created.
# Names of the links (interfaces) on which the bond will be created.
links:
    - enp1s2
    - enp1s2
bondMode: 802.3ad # Bond mode.
miimon: 100 # Link monitoring frequency in milliseconds.
updelay: 200 # The time, in milliseconds, to wait before enabling a slave after a link recovery has been detected.
downdelay: 200 # The time, in milliseconds, to wait before disabling a slave after a link failure has been detected.
xmitHashPolicy: layer3+4 # Selects the transmit hash policy to use for slave selection.
lacpRate: slow # LACPDU frames periodic transmission rate.
adActorSysPrio: 65535 # Actor system priority for 802.3ad.
resendIGMP: 1 # The number of times IGMP packets should be resent.
packetsPerSlave: 1 # The number of packets to transmit through a slave before moving to the next one.
# Configure addresses to be statically assigned to the link.
addresses:
    - address: 10.15.0.3/16 # IP address to be assigned to the link.
# Configure routes to be statically created via the link.
routes:
    - destination: 10.0.0.0/8 # The route's destination as an address prefix.
      gateway: 10.15.0.1 # The route's gateway (if empty, creates link scope route).

# # Override the hardware (MAC) address of the link.
# hardwareAddr: 2e:3c:4d:5e:6f:70

# # ARP link monitoring frequency in milliseconds.
# arpInterval: 1000

# # The list of IPv4 addresses to use for ARP link monitoring when arpInterval is set.
# arpIpTargets:
#     - 10.15.0.1

# # The list of IPv6 addresses to use for NS link monitoring when arpInterval is set.
# nsIp6Targets:
#     - fd00::1

# # Specifies whether or not ARP probes and replies should be validated.
# arpValidate: active

# # Specifies whether ARP probes should be sent to any or all targets.
# arpAllTargets: all

# # Specifies whether active-backup mode should set all slaves to the same MAC address
# failOverMac: active

# # Aggregate selection policy for 802.3ad.
# adSelect: stable

# # Whether to send LACPDU frames periodically.
# adLACPActive: on

# # Policy under which the primary slave should be reselected.
# primaryReselect: always

# # Whether dynamic shuffling of flows is enabled in tlb or alb mode.
# tlbLogicalLb: 1
```

<table>
  <thead>
    <tr>
      <th>Field</th>
      <th>Type</th>
      <th>Description</th>
      <th>Value(s)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`name`</td>
      <td>string</td>
      <td>Name of the bond link (interface) to be created.</td>

      <td />
    </tr>

    <tr>
      <td>`hardwareAddr`</td>
      <td>HardwareAddr</td>
      <td>Override the hardware (MAC) address of the link.</td>

      <td />
    </tr>

    <tr>
      <td>`links`</td>
      <td>\[]string</td>
      <td>Names of the links (interfaces) on which the bond will be created.<br />Link aliases can be used here as well.</td>

      <td />
    </tr>

    <tr>
      <td>`bondMode`</td>
      <td>BondMode</td>
      <td>Bond mode.</td>
      <td>`balance-rr`<br />`active-backup`<br />`balance-xor`<br />`broadcast`<br />`802.3ad`<br />`balance-tlb`<br />`balance-alb`<br /></td>
    </tr>

    <tr>
      <td>`miimon`</td>
      <td>uint32</td>
      <td>Link monitoring frequency in milliseconds.</td>

      <td />
    </tr>

    <tr>
      <td>`updelay`</td>
      <td>uint32</td>
      <td>The time, in milliseconds, to wait before enabling a slave after a link recovery has been detected.</td>

      <td />
    </tr>

    <tr>
      <td>`downdelay`</td>
      <td>uint32</td>
      <td>The time, in milliseconds, to wait before disabling a slave after a link failure has been detected.</td>

      <td />
    </tr>

    <tr>
      <td>`useCarrier`</td>
      <td>bool</td>
      <td>Specifies whether or not miimon should use MII or ETHTOOL.</td>

      <td />
    </tr>

    <tr>
      <td>`xmitHashPolicy`</td>
      <td>BondXmitHashPolicy</td>
      <td>Selects the transmit hash policy to use for slave selection.</td>
      <td>`layer2`<br />`layer3+4`<br />`layer2+3`<br />`encap2+3`<br />`encap3+4`<br /></td>
    </tr>

    <tr>
      <td>`arpInterval`</td>
      <td>uint32</td>
      <td>ARP link monitoring frequency in milliseconds.</td>

      <td />
    </tr>

    <tr>
      <td>`arpIpTargets`</td>
      <td>\[]Addr</td>
      <td>The list of IPv4 addresses to use for ARP link monitoring when arpInterval is set.<br />Maximum of 16 targets are supported.</td>

      <td />
    </tr>

    <tr>
      <td>`nsIp6Targets`</td>
      <td>\[]Addr</td>
      <td>The list of IPv6 addresses to use for NS link monitoring when arpInterval is set.<br />Maximum of 16 targets are supported.</td>

      <td />
    </tr>

    <tr>
      <td>`arpValidate`</td>
      <td>ARPValidate</td>
      <td>Specifies whether or not ARP probes and replies should be validated.</td>
      <td>`none`<br />`active`<br />`backup`<br />`all`<br />`filter`<br />`filter-active`<br />`filter-backup`<br /></td>
    </tr>

    <tr>
      <td>`arpAllTargets`</td>
      <td>ARPAllTargets</td>
      <td>Specifies whether ARP probes should be sent to any or all targets.</td>
      <td>`any`<br />`all`<br /></td>
    </tr>

    <tr>
      <td>`lacpRate`</td>
      <td>LACPRate</td>
      <td>LACPDU frames periodic transmission rate.</td>
      <td>`slow`<br />`fast`<br /></td>
    </tr>

    <tr>
      <td>`failOverMac`</td>
      <td>FailOverMAC</td>
      <td>Specifies whether active-backup mode should set all slaves to the same MAC address<br />at enslavement, when enabled, or perform special handling.</td>
      <td>`none`<br />`active`<br />`follow`<br /></td>
    </tr>

    <tr>
      <td>`adSelect`</td>
      <td>ADSelect</td>
      <td>Aggregate selection policy for 802.3ad.</td>
      <td>`stable`<br />`bandwidth`<br />`count`<br /></td>
    </tr>

    <tr>
      <td>`adActorSysPrio`</td>
      <td>uint16</td>
      <td>Actor system priority for 802.3ad.</td>

      <td />
    </tr>

    <tr>
      <td>`adUserPortKey`</td>
      <td>uint16</td>
      <td>User port key (upper 10 bits) for 802.3ad.</td>

      <td />
    </tr>

    <tr>
      <td>`adLACPActive`</td>
      <td>ADLACPActive</td>
      <td>Whether to send LACPDU frames periodically.</td>
      <td>`on`<br />`off`<br /></td>
    </tr>

    <tr>
      <td>`primaryReselect`</td>
      <td>PrimaryReselect</td>
      <td>Policy under which the primary slave should be reselected.</td>
      <td>`always`<br />`better`<br />`failure`<br /></td>
    </tr>

    <tr>
      <td>`resendIGMP`</td>
      <td>uint32</td>
      <td>The number of times IGMP packets should be resent.</td>

      <td />
    </tr>

    <tr>
      <td>`minLinks`</td>
      <td>uint32</td>
      <td>The minimum number of active links required for the bond to be considered active.</td>

      <td />
    </tr>

    <tr>
      <td>`lpInterval`</td>
      <td>uint32</td>
      <td>The number of seconds between instances where the bonding driver sends learning packets to each slave's peer switch.</td>

      <td />
    </tr>

    <tr>
      <td>`packetsPerSlave`</td>
      <td>uint32</td>
      <td>The number of packets to transmit through a slave before moving to the next one.</td>

      <td />
    </tr>

    <tr>
      <td>`numPeerNotif`</td>
      <td>uint8</td>
      <td>The number of peer notifications (gratuitous ARPs and unsolicited IPv6 Neighbor Advertisements)<br />to be issued after a failover event.</td>

      <td />
    </tr>

    <tr>
      <td>`tlbLogicalLb`</td>
      <td>uint8</td>
      <td>Whether dynamic shuffling of flows is enabled in tlb or alb mode.</td>

      <td />
    </tr>

    <tr>
      <td>`allSlavesActive`</td>
      <td>uint8</td>
      <td>Whether duplicate frames (received on inactive ports) should be dropped (0) or delivered (1).</td>

      <td />
    </tr>

    <tr>
      <td>`peerNotifDelay`</td>
      <td>uint32</td>
      <td>The delay, in milliseconds, between each peer notification.</td>

      <td />
    </tr>

    <tr>
      <td>`missedMax`</td>
      <td>uint8</td>
      <td>The number of arpInterval monitor checks that must fail in order for an interface to be marked down by the ARP monitor.</td>

      <td />
    </tr>

    <tr>
      <td>`up`</td>
      <td>bool</td>
      <td>Bring the link up or down.<br /><br />If not specified, the link will be brought up.</td>

      <td />
    </tr>

    <tr>
      <td>`mtu`</td>
      <td>uint32</td>
      <td>Configure LinkMTU (Maximum Transmission Unit) for the link.<br /><br />If not specified, the system default LinkMTU will be used (usually 1500).</td>

      <td />
    </tr>

    <tr>
      <td>`addresses`</td>
      <td><a href="#addresses%5B%5D">AddressConfig</a></td>
      <td>Configure addresses to be statically assigned to the link.</td>

      <td />
    </tr>

    <tr>
      <td>`routes`</td>
      <td><a href="#routes%5B%5D">RouteConfig</a></td>
      <td>Configure routes to be statically created via the link.</td>

      <td />
    </tr>

    <tr>
      <td>`multicast`</td>
      <td>bool</td>
      <td>Set the multicast capability of the link.</td>

      <td />
    </tr>
  </tbody>
</table>

## addresses\[]

AddressConfig represents a network address configuration.

<table>
  <thead>
    <tr>
      <th>Field</th>
      <th>Type</th>
      <th>Description</th>
      <th>Value(s)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`address`</td>
      <td>Prefix</td>
      <td>IP address to be assigned to the link.<br /><br />This field must include the network prefix length (e.g. /24 for IPv4, /64 for IPv6).</td>

      <td />
    </tr>

    <tr>
      <td>`routePriority`</td>
      <td>uint32</td>
      <td>Configure the route priority (metric) for routes created for this address.<br /><br />If not specified, the system default route priority will be used.</td>

      <td />
    </tr>
  </tbody>
</table>

## routes\[]

RouteConfig represents a network route configuration.

<table>
  <thead>
    <tr>
      <th>Field</th>
      <th>Type</th>
      <th>Description</th>
      <th>Value(s)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`destination`</td>
      <td>Prefix</td>
      <td>The route's destination as an address prefix.<br /><br />If not specified, a default route will be created for the address family of the gateway.</td>

      <td />
    </tr>

    <tr>
      <td>`gateway`</td>
      <td>Addr</td>
      <td>The route's gateway (if empty, creates link scope route).</td>

      <td />
    </tr>

    <tr>
      <td>`source`</td>
      <td>Addr</td>
      <td>The route's source address (optional).</td>

      <td />
    </tr>

    <tr>
      <td>`metric`</td>
      <td>uint32</td>
      <td>The optional metric for the route.</td>

      <td />
    </tr>

    <tr>
      <td>`mtu`</td>
      <td>uint32</td>
      <td>The optional MTU for the route.</td>

      <td />
    </tr>

    <tr>
      <td>`table`</td>
      <td>RoutingTable</td>
      <td>The routing table to use for the route.<br /><br />If not specified, the main routing table will be used.</td>

      <td />
    </tr>
  </tbody>
</table>
