Add the ability to set any mode/lb on bonds
This requires a schema change, adding 'mode' and 'load-balance' fields, a semantic invariant that 'load-balance' can only be set in the case of LACP and XOR bonds, a mapper from the mode/lb strings, ie. "round-robin" to their VPP numeric counterparts, a bunch of unit tests. Then in the reconciler, changing bonds (__bond_has_diff()) will invalidate any LCP or sub-interfaces built on them, so those will have to be pruned. create_bondethernet() will now create (or re-create) the bond with the correct flags. Unit-tests, YAML tests and the integration test all pass. Updated config-guide.
This commit is contained in:
@ -156,20 +156,28 @@ BondEthernets are required to be named `BondEthernetN` (note the camelcase) wher
|
||||
* ***interfaces***: A list of zero or more interfaces that are bond members. The interfaces
|
||||
must be PHYs, and in their `interface` configuration, members are allowed only to set the
|
||||
MTU.
|
||||
* ***mode***: A mode to run the LAG in. Can be one of 'round-robin', 'active-backup', 'xor',
|
||||
'broadcast' or 'lacp'. The default is LACP.
|
||||
* ***load-balance***: A loadbalancing strategy to use, if the mode is either XOR or LACP.
|
||||
Can be one of 'l2', 'l23', or 'l34'. The default is l34, which hashes on the source and
|
||||
destination IPs and ports.
|
||||
|
||||
Note that the configuration object here only specifies the link aggregation and its members.
|
||||
BondEthernets are expected to occur as well in the `interfaces` section, where their sub-interfaces
|
||||
and IP addresses and so on are specified.
|
||||
|
||||
*Caveat*: Currently, BondEthernets are always created as `LACP` typed devices with a loadbalance
|
||||
strategy of `l34`. In a future release of `vppcfg`, the type and strategy will be configurable.
|
||||
|
||||
Examples:
|
||||
```
|
||||
bondethernets:
|
||||
BondEthernet0:
|
||||
description: "Core: LACP to fsw0.lab.ipng.ch"
|
||||
interfaces: [ GigabitEthernet1/0/0, GigabitEthernet1/0/1 ]
|
||||
mode: lacp
|
||||
load-balance: l2
|
||||
BondEthernet1:
|
||||
description: "Core: RR LAG"
|
||||
interfaces: [ GigabitEthernet3/0/0, GigabitEthernet3/0/1 ]
|
||||
mode: round-robin
|
||||
```
|
||||
|
||||
### VXLAN Tunnels
|
||||
|
Reference in New Issue
Block a user