Calculate aggregate bandwidth capacity of a bonded network interface across multiple NICs.
Not all Linux bonding modes deliver the same throughput characteristics despite combining the same physical links: mode 0 (balance-rr) round-robins packets across all links achieving full N× aggregate capacity even for a single flow but risks packet reordering; mode 1 (active-backup) uses exactly one link at a time purely for redundancy, so aggregate throughput is capped at a single link's speed regardless of link count; and mode 4 (802.3ad/LACP) creates a standards-based aggregate that switches also understand, delivering N× capacity in aggregate but typically hashing any individual flow to a single link, so a lone flow still can't exceed one link's speed.
Aggregate capacity by mode
mode0/mode4: aggregate = N × per_link_speed; mode1: aggregate = per_link_speed
Mode 0 (balance-rr) is the only standard mode that can spread a single flow's packets across multiple links for combined throughput, but it requires a switch/network path tolerant of out-of-order delivery — most production LACP (mode 4) deployments instead rely on many concurrent flows to fill the aggregate, since any one flow is hashed to a single link.
Yes — 802.3ad requires the connected switch ports to be configured as a matching LACP port channel/link aggregation group; without switch-side cooperation, LACP negotiation fails and the bond won't form (unlike active-backup or balance-rr, which work with unconfigured switch ports).
`cat /proc/net/bonding/<bond_name>` shows the active mode, all slave interfaces, and their individual link states (including which slave is currently active for active-backup mode).