Some information detail about mode mode 4 of link bonding: This mode is described in IEEE 802.3ad/AX standard described. It is also described here https://www.kernel.org/doc/Documentation/networking/bonding.txt.
In this implementation we have an array of mode 4 setting for each slave. There is also assumption that for every port is one aggregator (it might be unused if better is found). Difference in this implementation vs ex Linux implementation: - this implementation it is not directly based on state machines but current state is calculated from actor and partner states (and other things too). Some implementation details: - during rx burst every packet Is checked if this is LACP or marker packet. If it is LACP frame it is passed to mode 4 logic using slaves rx ring and removed from rx buffer before it is returned - in tx burst, packets from mode 4 (if any) are injected into each slave. - there is a timer running in background to process/produce mode 4 frames form rx/to tx functions. Some requirements for this mode: - for LACP mode to work rx and tx burst functions must be invoked at least in 100ms intervals (testpmd modified to satisfy this requirement) - provided buffer to rx burst should be at least 2x slave count size. This is not needed but might increase performance especially during initial handshake. Please inform me if you need additional information on this. Pawel