bond
mux machine状态机变化
LACP_Activity: 端口在链路控制中的主从状态,0表示Passive, 1表示Active。
LACP_Timeout: 超时时间,0表示长超时,1表示短超时
Aggregation: 表示端口的聚合能力。 TRUE(1)表示链路是可聚合的,FALSE(0)表示链路是独立链路,不可聚合
Synchronization: 表示端口当前聚合是否完成。TRUE(1)表示发送的链路处于IN_SYNC状态,即端口已被分配到正确的聚合组中, FALSE(0)表示链路为OUT_OF_SYNC状态,即端口还没有选择正确的聚合组
Collecting: TRUE(1)表示当前链路收包enable, 否则为FALSE(0)
Distributing: TRUE(1)表示当前链路发包enable, 否则为FALSE(0)
Defaulted: TRUE(1)表示Actor使用的Partner信息来自管理员配置的默认值。FALSE(0)表示Actor使用的Partner信息来自接收的LACPDU
Expired: TRUE(1)表示Actor RX状态机处于超时状态,否则不在超时状态。
- AD_MUX_DETACHED -> AD_MUX_WAITING: AD_PORT_SELECTED == True || AD_PORT_STANDBY == True
- AD_MUX_WAITING -> AD_MUX_DETACHED: SELECTED == FALSE
- AD_MUX_WAITING -> AD_MUX_ATTACHED
- port->sm_vars |= AD_PORT_READY_N
- 该 aggregator 的所有 Port都READY_N了 ====> AD_PORT_READY
- AD_MUX_ATTACHED -> AD_MUX_DETACHED
- AD_MUX_DISTRIBUTING ->
如果前后状态不一致:port->ntt = true;
表明需要发送报文
修改actor_oper_port_state,告知交换机当前端口的状态
LACP_STATE_SYNCHRONIZATION 说明agg是active的
AD_MUX_DETACHED
AD_MUX_WAITING
AD_MUX_ATTACHED
AD_MUX_COLLECTING_DISTRIBUTING
AD_MUX_COLLECTING
AD_MUX_DISTRIBUTING
一般的流程
AD_MUX_DETACHED -> AD_MUX_WAITING -> AD_MUX_ATTACHED -> AD_MUX_COLLECTING_DISTRIBUTING
bond
https://gjorn4389.github.io/2024/08/16/kernel/bond/