From: Pawel Wodkowski <pawelx.wodkow...@intel.com> v2 changes: New version handles race issues with setting/cancelin callbacks, fixes promiscus mode setting in mode 4 and some other minor errors in mode 4 implementation.
v3 changes: This is a rework of previous patchset. Basic functionality is the same but contain following changes: - use one global array of slaves instead separate instance for every bonded device (reduce memory usage). This also allow use of port id instead of offsetting to current active slaves. - make mode 4 immune to partner timings standard violation. - fix possible buffer overflow in RX function if caller provide buffer that is less than received packets (additional slow packets). - change/fix promiscus mode and MAC management. - fix compiling issues on gcc version less than 4.5 - bring API for tunig mode 4 parameters and expose mode 4 frames structure. - prevent console flood with warning messages if mode 4 RX/TX buffers are full. test-pmd: - add mode 4 support (force periodic TX if no packets received during 100ms period). Some forwardning modes (ex. rx only) does not allow mode 4 usage. - 'port start X' - check if X is valid value changes not related to mode 4: - fix memcpy() usage in bond_ethdev_tx_burst_balance() (OOM/undfined behaviour if TX burst fail) v4 changes: - fix compilation error when building without mbuf refcnt - testpmd: add slave state information in "show bonding config X" command - change patch dependency to Declan Doherty v6 v5 changes - fix compilation errors when CONFIG_RTE_LIBRTE_PMD_BOND=n Those patches depend from Declan Doherty v8 patchset and rte alarm patches. Pawel Wodkowski (2): bond: add mode 4 support testpmd: add mode 4 support app/test-pmd/cmdline.c | 28 +- app/test-pmd/csumonly.c | 9 + app/test-pmd/icmpecho.c | 21 +- app/test-pmd/iofwd.c | 9 + app/test-pmd/macfwd-retry.c | 9 + app/test-pmd/macfwd.c | 9 + app/test-pmd/macswap.c | 9 + app/test-pmd/testpmd.c | 50 +- app/test-pmd/testpmd.h | 11 +- lib/librte_ether/rte_ether.h | 1 + lib/librte_pmd_bond/Makefile | 2 + lib/librte_pmd_bond/rte_eth_bond.h | 5 + lib/librte_pmd_bond/rte_eth_bond_8023ad.c | 1218 +++++++++++++++++++++ lib/librte_pmd_bond/rte_eth_bond_8023ad.h | 214 ++++ lib/librte_pmd_bond/rte_eth_bond_8023ad_private.h | 308 ++++++ lib/librte_pmd_bond/rte_eth_bond_api.c | 91 +- lib/librte_pmd_bond/rte_eth_bond_args.c | 1 + lib/librte_pmd_bond/rte_eth_bond_pmd.c | 262 ++++- lib/librte_pmd_bond/rte_eth_bond_private.h | 31 +- 19 files changed, 2229 insertions(+), 59 deletions(-) create mode 100644 lib/librte_pmd_bond/rte_eth_bond_8023ad.c create mode 100644 lib/librte_pmd_bond/rte_eth_bond_8023ad.h create mode 100644 lib/librte_pmd_bond/rte_eth_bond_8023ad_private.h -- 1.7.9.5