Current actor state:
State Flags [Activity, Timeout, Aggregation, Synchronization]
Transitioned to actor state:
State Flags [Activity, Timeout, Aggregation, Synchronization, Collecting, Distributing]
For the above transition, it looks like teamd does not send out an LACPDU to inform. This cause impact to traffic.
I am not sure how to fix this in the code. Can help?
Below shows the LACP packet capture
# switch MAC 2a:99:3a:9e:a1:7d
# server (running libteam) MAC 90:e2:ba:74:83:58
# SENT BY SERVER
20:39:54.810203 LACPv1, length 110
Actor Information TLV (0x01), length 20
System 90:e2:ba:74:83:58 (oui Unknown), System Priority 65535, Key 0, Port 4, Port Priority 255
State Flags [Activity, Timeout, Aggregation, Expired]
0x0000: ffff 90e2 ba74 8358 0000 00ff 0004 8700
0x0010: 0000
Partner Information TLV (0x02), length 20
System 00:00:00:00:00:00 (oui Ethernet), System Priority 0, Key 0, Port 0, Port Priority 0
State Flags [Timeout]
0x0000: 0000 0000 0000 0000 0000 0000 0000 0200
0x0010: 0000
Collector Information TLV (0x03), length 16
Max Delay 0
0x0000: 0000 0000 0000 0000 0000 0000 0000
Terminator TLV (0x00), length 0
# SENT BY SWITCH
20:39:56.307394 LACPv1, length 110
Actor Information TLV (0x01), length 20
System 2a:99:3a:9e:a1:7d (oui Unknown), System Priority 32768, Key 361, Port 306, Port Priority 8192
State Flags [Activity, Aggregation, Expired]
0x0000: 8000 2a99 3a9e a17d 0169 2000 0132 8500
0x0010: 0000
Partner Information TLV (0x02), length 20
System 90:e2:ba:74:83:58 (oui Unknown), System Priority 65535, Key 0, Port 4, Port Priority 255
State Flags [Activity, Timeout, Aggregation, Expired]
0x0000: ffff 90e2 ba74 8358 0000 00ff 0004 8700
0x0010: 0000
Collector Information TLV (0x03), length 16
Max Delay 0
0x0000: 0000 0000 0000 0000 0000 0000 0000
Terminator TLV (0x00), length 0
# SENT BY SERVER
20::39:56.307659 LACPv1, length 110
Actor Information TLV (0x01), length 20
System 90:e2:ba:74:83:58 (oui Unknown), System Priority 65535, Key 0, Port 4, Port Priority 255
State Flags [Activity, Timeout, Aggregation, Synchronization]
0x0000: ffff 90e2 ba74 8358 0000 00ff 0004 0f00
0x0010: 0000
Partner Information TLV (0x02), length 20
System 2a:99:3a:9e:a1:7d (oui Unknown), System Priority 32768, Key 361, Port 306, Port Priority 8192
State Flags [Activity, Aggregation, Expired]
0x0000: 8000 2a99 3a9e a17d 0169 2000 0132 8500
0x0010: 0000
Collector Information TLV (0x03), length 16
Max Delay 0
0x0000: 0000 0000 0000 0000 0000 0000 0000
Terminator TLV (0x00), length 0
# SENT BY SWITCH
20:39:56.827402 LACPv1, length 110
Actor Information TLV (0x01), length 20
System 2a:99:3a:9e:a1:7d (oui Unknown), System Priority 32768, Key 361, Port 306, Port Priority 8192
State Flags [Activity, Aggregation, Synchronization, Collecting]
0x0000: 8000 2a99 3a9e a17d 0169 2000 0132 1d00
0x0010: 0000
Partner Information TLV (0x02), length 20
System 90:e2:ba:74:83:58 (oui Unknown), System Priority 65535, Key 0, Port 4, Port Priority 255
State Flags [Activity, Timeout, Aggregation, Synchronization]
0x0000: ffff 90e2 ba74 8358 0000 00ff 0004 0f00
0x0010: 0000
Collector Information TLV (0x03), length 16
Max Delay 0
0x0000: 0000 0000 0000 0000 0000 0000 0000
Terminator TLV (0x00), length 0
# at this point, libteam log shows that the port moved from expired to current, but no LACPDU was sent by server
Sep 1 20:39:56 video-edge-748358.prg02.justin.tv teamd[1124]: enp4s0f0: Changed port state: "expired" -> "current", enp4s0f0: Changed port state: "expired" -> "current"
# SENT BY SERVER
30 seconds later, teamd sends out LACPDU but notice actor state already changed to Sync, Collect, Distributing
20:40:26.307627 LACPv1, length 110
Actor Information TLV (0x01), length 20
System 90:e2:ba:74:83:58 (oui Unknown), System Priority 65535, Key 0, Port 4, Port Priority 255
State Flags [Activity, Timeout, Aggregation, Synchronization, Collecting, Distributing]
0x0000: ffff 90e2 ba74 8358 0000 00ff 0004 3f00
0x0010: 0000
Partner Information TLV (0x02), length 20
System 2a:99:3a:9e:a1:7d (oui Unknown), System Priority 32768, Key 361, Port 306, Port Priority 8192
State Flags [Activity, Aggregation, Synchronization, Collecting]
0x0000: 8000 2a99 3a9e a17d 0169 2000 0132 1d00
0x0010: 0000
Collector Information TLV (0x03), length 16
Max Delay 0
0x0000: 0000 0000 0000 0000 0000 0000 0000
Terminator TLV (0x00), length 0