This patch series try to enhance the bond framework to support the offload feature better: * Add new API to make the member port can access some information of the bond port which belongs. * Add new API to get the result of whether bond port is created by the member port. * Add two command line argument to control if enable member port notification and dedicated queue features. * Add logic to support add ports which share the same PCI address into bond port. * Also modify the testpmd application to test the new APIs and logics added by this patch series.
--- v2: * Fix compile error on github-robot by removing the redundancy function declaration in the header file. v3: * Use the hole in the structure for the new added flag data field. v4: * Drop two commits not necessary for this series. * Modify some logic as the review comments from reviewers. v5: * Add a new 'rte_eth_bond_flow.h' header file. * Add the patches of NFP PMD as the example of support bond flow offload. v6: * Try to solve the CI build error. --- Long Wu (14): ethdev: add member notification for bonding port ethdev: add API to get firmware creation of bonding port net/bonding: add bonding port arguments net/bonding: support add port by data name net/bonding: support checking valid bonding port ID net/bonding: add commands for bonding port notification net/bonding: create new rte flow header file net/nfp: add bond firmware creation initialization net/nfp: reset bond configuration of firmware net/nfp: handle link event of bond firmware creation net/nfp: support bond member notification net/nfp: handle bond packets from firmware net/nfp: support getting bond firmware creation net/nfp: support offloading bond-flow .../link_bonding_poll_mode_drv_lib.rst | 18 + drivers/net/bonding/bonding_testpmd.c | 128 ++++ drivers/net/bonding/eth_bond_private.h | 24 +- drivers/net/bonding/rte_eth_bond.h | 88 +++ drivers/net/bonding/rte_eth_bond_api.c | 122 ++++ drivers/net/bonding/rte_eth_bond_args.c | 47 ++ drivers/net/bonding/rte_eth_bond_flow.c | 1 + drivers/net/bonding/rte_eth_bond_flow.h | 22 + drivers/net/bonding/rte_eth_bond_pmd.c | 94 ++- drivers/net/bonding/version.map | 5 + drivers/net/nfp/flower/nfp_flower.c | 87 ++- drivers/net/nfp/flower/nfp_flower.h | 13 + drivers/net/nfp/flower/nfp_flower_bond.c | 691 ++++++++++++++++++ drivers/net/nfp/flower/nfp_flower_bond.h | 165 +++++ drivers/net/nfp/flower/nfp_flower_cmsg.c | 35 + drivers/net/nfp/flower/nfp_flower_cmsg.h | 12 + drivers/net/nfp/flower/nfp_flower_ctrl.c | 106 ++- drivers/net/nfp/flower/nfp_flower_flow.c | 232 +++++- .../net/nfp/flower/nfp_flower_representor.c | 35 + .../net/nfp/flower/nfp_flower_representor.h | 2 + drivers/net/nfp/meson.build | 3 +- drivers/net/nfp/nfp_net_common.c | 25 + drivers/net/nfp/nfp_net_common.h | 1 - lib/ethdev/ethdev_driver.h | 38 + 24 files changed, 1951 insertions(+), 43 deletions(-) create mode 100644 drivers/net/bonding/rte_eth_bond_flow.h create mode 100644 drivers/net/nfp/flower/nfp_flower_bond.c create mode 100644 drivers/net/nfp/flower/nfp_flower_bond.h -- 2.39.1