Appendix H. Bonding Options

The Overcloud provides networking through Open vSwtich, which provides several options for bonded interfaces. In Section 6.2.6.2, “Creating an Advanced Overcloud Network Environment File”, we configure a bonded interface in the network environment file using the following option:
  BondInterfaceOvsOptions:
    "bond_mode=balance-slb"

Important

Do not use LACP with OVS-based bonds, as this configuration is problematic and unsupported. Instead, consider using bond_mode=balance-slb as a replacement for this functionality.
The following table provides some explanation of these options and some alternatives depending on your hardware. In addition, you can still use LACP with Linux bonding.

Table H.1. Bonding Options

bond_mode=balance-tcp
This mode will perform load balancing by taking layer 2 to layer 4 data into consideration. For example, destination MAC address, IP address, and TCP port. In addition, balance-tcp requires that LACP be configured on the switch. This mode is similar to mode 4 bonds used by the Linux bonding driver. balance-tcp is recommended when possible, as LACP provides the highest resiliency for link failure detection, and supplies additional diagnostic information about the bond.
The recommended option is to configure balance-tcp with LACP. This setting attempts to configure LACP, but will fallback to active-backup if LACP cannot be negotiated with the physical switch.
bond_mode=balance-slb
Balances flows based on source MAC address and output VLAN, with periodic rebalancing as traffic patterns change. Bonding with balance-slb allows a limited form of load balancing without the remote switch's knowledge or cooperation. SLB assigns each source MAC and VLAN pair to a link and transmits all packets from that MAC and VLAN through that link. This mode uses a simple hashing algorithm based on source MAC address and VLAN number, with periodic rebalancing as traffic patterns change. This mode is similar to mode 2 bonds used by the Linux bonding driver. This mode is used when the switch is configured with bonding but is not configured to use LACP (static instead of dynamic bonds).
bond_mode=active-backup
This mode offers active/standby failover where the standby NIC resumes network operations when the active connection fails. Only one MAC address is presented to the physical switch. This mode does not require any special switch support or configuration, and works when the links are connected to separate switches. This mode does not provide load balancing.
lacp=[active|passive|off]
Controls the Link Aggregation Control Protocol (LACP) behavior. Only certain switches support LACP. If your switch does not support LACP, use bond_mode=balance-slb or bond_mode=active-backup.
other-config:lacp-fallback-ab=true
Sets the LACP behavior to switch to bond_mode=active-backup as a fallback.
other_config:lacp-time=[fast|slow]
Set the LACP heartbeat to 1 second (fast) or 30 seconds (slow). The default is slow.
other_config:bond-detect-mode=[miimon|carrier]
Set the link detection to use miimon heartbeats (miimon) or monitor carrier (carrier). The default is carrier
other_config:bond-miimon-interval=100
If using miimon, set the heartbeat interval in milliseconds
other_config:bond_updelay=1000
Number of milliseconds a link must be up to be activated to prevent flapping
other_config:bond-rebalance-interval=10000
Milliseconds between rebalancing flows between bond members. Set to zero to disable.

Important

If you experience packet drops or performance issues using Linux bonds with Provider networks, consider disabling Large Receive Offload (LRO) on the slave/standby interfaces.
Avoid adding a Linux bond to an OVS bond, as port-flapping and loss of connectivity can occur. This is a result of packet-loop via the standby interface.