Man for teamd.conf states:
lacp_prio — Aggregator with highest priority according to
LACP
standard will be selected. Aggregator priority is affected
by
per-port option lacp_prio.
ports.PORTIFNAME.lacp_prio (int)
Port priority according to LACP standard. The lower number
means
higher priority.
This is actually the opposite of what's happening. The ports with the
highest lacp_prio number, not the lowest, are what gets to become master.
Here's my current config:
{
"device": "team0",
"hwaddr": "00:0a:f7:06:1e:68",
"runner": {
"name": "lacp",
"active": true,
"fast_rate": true,
"tx_hash": ["eth", "ipv4",
"ipv6"]
},
"link_watch": {"name": "ethtool"},
"agg_select_policy": "lacp_prio",
"ports": {
"enp17s0f0": {"lacp_prio": 1,
"lacp_key": 1},
"eno2": {"lacp_prio": 1,
"lacp_key": 1},
"eno3": {"lacp_prio": 1,
"lacp_key": 1},
"enp17s0f1": {"lacp_prio": 200,
"lacp_key": 2},
"eno4": {"lacp_prio": 200,
"lacp_key": 2},
"eno5": {"lacp_prio": 200,
"lacp_key": 2}
}
}
And the ports with lacp_prio: 200 are the master:
[root@vc1n3 interfaces]# teamdctl team0 state|egrep '^ en|aggre'
eno2
aggregator ID: 2
eno3
aggregator ID: 2
eno4
aggregator ID: 3, Selected
eno5
aggregator ID: 3, Selected
enp17s0f0
aggregator ID: 2
enp17s0f1
aggregator ID: 3, Selected
And yes, if I shut down the lacp_key: 2 ports and then reenable them later,
it switches back to them as the Selected ones.