[v6,00/14] Enhance the bond framework to support offload

Message ID 20231226072824.3163121-1-chaoyong.he@corigine.com (mailing list archive)
Headers
Series Enhance the bond framework to support offload |

Message

Chaoyong He Dec. 26, 2023, 7:28 a.m. UTC
  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