os-net-config should support adapter teaming in addition to bonding
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tripleo |
Fix Released
|
Wishlist
|
Dan Sneddon |
Bug Description
os-net-config supports both OVS bonding and Linux kernel bonding, but some users want to use adapter teaming instead of bonding. Adapter teaming provides additional options that bonds don't support, and do support almost all of the options that are supported by bonds.
os-net-config should support adapter teams in the same way it supports bond. I imagine it working like this:
-
type: linux_team
name: team0
teaming_options:
addresses:
-
ip_subnet: 192.168.0.10/24
members:
-
type: interface
name: eno2
primary: true
-
type: interface
name: eno3
Note that teamd is not installed by default on RHEL/CENTOS, so this will be a new dependency for the os-net-config RPM.
os-net-config will have to configure the ifcfg files for the team. That is documented here: https:/
If an interface is marked as primary, then the ifcfg file for that interface should list it at a higher than default (0) priority:
TEAM_PORT_
With the OVS and Linux bonds, we could have a freeform "options:" item that contained an arbitrarily long list of options that included the bond mode (active/backup, LACP, etc.). With teaming, the configuration is different. The mode is set in the runner: statement, so we will either have to have a freeform TEAM_CONFIG field where the mode is set, or a mode: option with a fixed number of possible values that represent the runner states: broadcast; random; roundrobin; activebackup; loadbalance; lacp.
When setting up OVS bridges, we run ovs-vsctl to set some of the options. We may want to have os-net-config call teamdctl or one of the other command line utilities to modify the team settings. An example would be using ip utils to honor the primary: true for eno2: "ip link set dev eno2 master team0". A solution will also need to be found for implementing any other options.
An example of the changes needed can be found in this review which added Linux bonding support to os-net-config: https:/
Changed in tripleo: | |
assignee: | nobody → Dan Sneddon (dsneddon) |
assignee: | Dan Sneddon (dsneddon) → nobody |
assignee: | nobody → Dan Sneddon (dsneddon) |
milestone: | none → newton-2 |
Changed in tripleo: | |
importance: | Undecided → Wishlist |
Changed in tripleo: | |
milestone: | newton-2 → newton-3 |
Changed in tripleo: | |
status: | Triaged → In Progress |
Changed in tripleo: | |
status: | Fix Committed → Fix Released |
Bumping to n-3 as I don't see any code posted and we've only got about a week until the milestone.