Hi, I am looking into Bugzilla 1900 and real secondary-process datapath support for the bonding PMD.
The current secondary attach path is safe by default: secondary Rx/Tx uses blackhole burst functions instead of installing real per-mode bonding burst functions. This avoids crashes because the internal bonding state is not valid in the secondary process. However, this also means that a secondary process cannot perform real Rx/Tx through a bonding device. This is the issue described in Bugzilla 1900. I would like to discuss whether a limited secondary datapath model would be acceptable, without fully sharing all bonding state across processes. The proposed model is: * the primary process owns the bonding control plane; * the primary process owns the LACP state machine for mode 4 / 802.3ad; * secondary processes cannot change bond mode, add/remove members, or enable/disable dedicated LACP queues; * the primary process publishes only a minimal shared datapath state snapshot; * secondary processes only read this shared state for Rx/Tx decisions; * blackhole burst functions remain the fallback when real secondary datapath support is not available. For mode 4, the shared snapshot could initially include only the state required by the datapath, such as the active member list and per-member collecting/distributing state. This would make the secondary process a datapath consumer of primary-maintained bonding state, rather than a second owner of the bonding control plane. Questions: 1. Should real secondary datapath support be considered at all, or should bonding secondary support remain limited to safe blackhole Rx/Tx? 2. If real secondary datapath support is considered, is this limited secondary datapath model acceptable for the bonding PMD? I would like to work on this if the direction sounds reasonable. Thanks, Weijun

