Bond hooks

Bond hooks are run with the “start” argument after a bond is started and with the “stop” argument before it is stopped. A bond is considered started after all connected IPs, CPE NAT IPs, routes, and leg PPP and DHCP daemons have been started. The start hook does not wait until PPP and DHCP daemons connect successfully.

After a bond hook has been added, you must restart the bond from the management server or from the host command line to execute the hook the first time.

Hook locations:

  • /etc/bonding/bond.d/all: hooks to be run for all bonds
  • /etc/bonding/bond.d/<bond ID>: hooks for individual bonds
  • /etc/bonding/bond.d/default: hooks for bonds with no individual hook folder

An example bond hook is available at /usr/share/doc/bonding/examples/bond-hook.

Environment variables

Bond hooks are run with the following environment variables:

  • ID: the bond ID
  • AGGREGATOR_IP: IP address of aggregator
  • COMPRESSION: “True” if compression is enabled, otherwise “False”
  • QOS_PROFILE_ID: ID of the QoS profile used by this bonder; empty if there is no profile selected
  • TUNNEL_SUBNET: the /31 IP subnet assigned to the tunnel
  • TUNNEL_BONDER_IP: the IP address of the tunnel on the bonder
  • TUNNEL_AGGREGATOR_IP: the IP address of the tunnel on the aggregator
  • TUNNEL_LOCAL_IP: the IP address of the tunnel on the local host
  • TUNNEL_PEER_IP: the IP address of the tunnel on the remote host
  • CLAMP_TCP: “True” if TCP clamping is enabled, otherwise “False”
  • TUNNEL_SECURITY: type of security enabled. May be “none” if no security is enabled, “hmac” if tunnel HMAC authentication is enabled, or “encryption” if encryption is enabled (This replaces the TUNNEL_AUTHENTICATE option present until 2014.2)
  • ENCRYPTION_CIPHER: this contains the configured encryption cipher
  • AUTOMATIC_PING_TIMING: “True” if ping timing will be determined based on the latency of the links, otherwise “False”
  • ENCRYPTION_HANDSHAKE_INTERVAL: this contains the interval for encryption handshake renegotiation in seconds
  • ENCRYPTION_REPLAY_PROTECTION: “True” if encryption replay detection is enabled
  • FILTER_UNRECOGNIZED_TRAFFIC: “True” if the source address verification option is enabled, otherwise “False” (this option was called “filter unrecognized traffic” until 2014.2)
  • BRIDGE_ENABLED: “True” if the TCP proxy is enabled, otherwise “False”
  • BRIDGE_PORTS: The list of TCP ports going through the TCP proxy
  • BRIDGE_CONCURRENCY: The number of concurrent TCP connections the TCP proxy uses
  • BRIDGE_CONNECTION_TIMEOUT: The timeout for connecting to destination hosts
  • BRIDGE_FILE_DESCRIPTOR_LIMIT: The greatest number of file descriptors the TCP proxy process can open.
  • BRIDGE_CONGESTION_CONTROL_ALGORITHM: The TCP congestion control algorithm used between proxy peers
  • LEG_MTU_DETECTION: “True” if leg MTU detection is enabled, which automatically detects the path MTU of links
  • LEG_MTU_DETECTION_TIME: If leg MTU detection is enabled, repeat detection at this interval (hours)
  • PACKET_LOSS_DETECTION: “True” if packet loss detection is enabled, otherwise “False”.
  • FLAP_DETECTION: “True” if flap detection is enabled, otherwise “False”.
  • AUTOMATIC_REORDER_MAX_HOLD: “True” if automatic reorder max hold is enabled, otherwise “False”.