Thread (41 messages) 41 messages, 8 authors, 2021-03-29

Re: [dpdk-dev] [PATCH 1/2] ethdev: replace callback getting filter operations

From: Wang, Haiyue <hidden>
Date: 2021-03-12 01:45:01

-----Original Message-----
From: Thomas Monjalon <redacted>
Sent: Friday, March 12, 2021 06:18
To: dev@dpdk.org
Cc: Ori Kam <redacted>; Ajit Khaparde <ajit.khaparde@broadcom.com>; Somnath Kotur
[off-list ref]; Chas Williams [off-list ref]; Min Hu (Connor) [off-list ref];
Rahul Lakkireddy [off-list ref]; Hemant Agrawal [off-list ref]; Sachin
Saxena [off-list ref]; Guo, Jia [off-list ref]; Wang, Haiyue [off-list ref];
Daley, John [off-list ref]; Hyong Youb Kim [off-list ref]; Gaetan Rivet [off-list ref];
Ziyang Xuan [off-list ref]; Xiaoyun Wang [off-list ref]; Guoyang Zhou
[off-list ref]; Yisen Zhuang [off-list ref]; Lijun Ou [off-list ref]; Xing,
Beilei [off-list ref]; Wu, Jingjing [off-list ref]; Yang, Qiming
[off-list ref]; Zhang, Qi Z [off-list ref]; Xu, Rosen [off-list ref]; Matan
Azrad [off-list ref]; Shahaf Shuler [off-list ref]; Viacheslav Ovsiienko
[off-list ref]; Liron Himi [off-list ref]; Jerin Jacob [off-list ref]; Nithin
Dabilpuram [off-list ref]; Kiran Kumar K [off-list ref]; Rasesh Mody
[off-list ref]; Shahed Shaikh [off-list ref]; Andrew Rybchenko
[off-list ref]; Singh, Jasvinder [off-list ref]; Dumitrescu, Cristian
[off-list ref]; Wiles, Keith [off-list ref]; Jiawen Wu
[off-list ref]; Jian Wang [off-list ref]; Yigit, Ferruh [off-list ref]
Subject: [PATCH 1/2] ethdev: replace callback getting filter operations

Since rte_flow is the only API for filtering operations,
the legacy driver interface filter_ctrl was too much complicated
for the simple task of getting the struct rte_flow_ops.

The filter type RTE_ETH_FILTER_GENERIC and
the filter operarion RTE_ETH_FILTER_GET are removed.
The new driver callback flow_ops_get replaces filter_ctrl.

Signed-off-by: Thomas Monjalon <redacted>
---
 doc/guides/nics/features.rst            |  4 +--
 doc/guides/prog_guide/rte_flow.rst      | 14 +-------
 doc/guides/rel_notes/release_20_11.rst  |  2 +-
 doc/guides/rel_notes/release_2_2.rst    |  2 +-
 drivers/net/bnxt/bnxt.h                 |  6 ++--
 drivers/net/bnxt/bnxt_ethdev.c          | 40 +++++++--------------
 drivers/net/bnxt/bnxt_reps.c            |  2 +-
 drivers/net/bonding/rte_eth_bond_pmd.c  | 13 +++----
 drivers/net/cxgbe/cxgbe_ethdev.c        |  2 +-
 drivers/net/cxgbe/cxgbe_flow.c          | 22 +++---------
 drivers/net/cxgbe/cxgbe_flow.h          |  7 ++--
 drivers/net/dpaa2/dpaa2_ethdev.c        | 44 +++--------------------
 drivers/net/dpaa2/dpaa2_flow.c          | 29 +++++-----------
 drivers/net/e1000/igb_ethdev.c          | 31 ++++-------------
 drivers/net/enic/enic_ethdev.c          | 30 +++++-----------
 drivers/net/enic/enic_vf_representor.c  | 33 ++++++------------
 drivers/net/failsafe/failsafe_ops.c     | 16 +++------
 drivers/net/hinic/hinic_pmd_ethdev.c    | 36 ++++---------------
 drivers/net/hns3/hns3_ethdev.c          |  2 +-
 drivers/net/hns3/hns3_ethdev.h          |  5 ++-
 drivers/net/hns3/hns3_ethdev_vf.c       |  2 +-
 drivers/net/hns3/hns3_flow.c            | 30 ++++------------
 drivers/net/i40e/i40e_ethdev.c          | 32 ++++-------------
 drivers/net/iavf/iavf_ethdev.c          | 32 ++++-------------
 drivers/net/ice/ice_dcf_ethdev.c        | 27 +++------------
 drivers/net/ice/ice_ethdev.c            | 32 ++++-------------
 drivers/net/igc/igc_ethdev.c            |  2 +-
 drivers/net/igc/igc_filter.c            | 23 +++----------
 drivers/net/igc/igc_filter.h            |  5 ++-
 drivers/net/ipn3ke/ipn3ke_representor.c | 28 ++++-----------
 drivers/net/ixgbe/ixgbe_ethdev.c        | 32 ++++-------------
 drivers/net/mlx4/mlx4.c                 |  2 +-
 drivers/net/mlx4/mlx4_flow.c            | 32 ++++-------------
 drivers/net/mlx4/mlx4_flow.h            |  5 +--
 drivers/net/mlx5/mlx5.c                 |  4 +--
 drivers/net/mlx5/mlx5.h                 |  5 +--
 drivers/net/mlx5/mlx5_flow.c            | 32 ++++-------------
 drivers/net/mvpp2/mrvl_ethdev.c         | 26 ++++----------
 drivers/net/octeontx2/otx2_ethdev.c     |  2 +-
 drivers/net/octeontx2/otx2_ethdev.h     |  5 ++-
 drivers/net/octeontx2/otx2_ethdev_ops.c | 21 +++--------
 drivers/net/qede/qede_ethdev.c          |  2 +-
 drivers/net/qede/qede_ethdev.h          |  7 ++--
 drivers/net/qede/qede_filter.c          | 27 ++++-----------
 drivers/net/sfc/sfc_ethdev.c            | 31 +++--------------
 drivers/net/softnic/rte_eth_softnic.c   | 17 +++------
 drivers/net/tap/rte_eth_tap.c           |  2 +-
 drivers/net/tap/tap_flow.c              | 27 ++++-----------
 drivers/net/tap/tap_flow.h              |  6 ++--
 drivers/net/txgbe/txgbe_ethdev.c        | 26 +++-----------
 lib/librte_ethdev/ethdev_driver.h       | 46 +++++++++----------------
 lib/librte_ethdev/rte_eth_ctrl.h        |  2 +-
 lib/librte_ethdev/rte_flow.c            |  9 ++---
 lib/librte_ethdev/rte_flow_driver.h     | 25 --------------
 54 files changed, 226 insertions(+), 720 deletions(-)
-enum rte_filter_op {
-	RTE_ETH_FILTER_GET,      /**< get flow API ops */
-};
-
-typedef int (*eth_filter_ctrl_t)(struct rte_eth_dev *dev,
-				 enum rte_filter_type filter_type,
-				 enum rte_filter_op filter_op,
-				 void *arg);
-/**< @internal Take operations to assigned filter type on an Ethernet device */
+struct rte_flow_ops;
+typedef int (*eth_flow_ops_get_t)(struct rte_eth_dev *dev,
+				  const struct rte_flow_ops **ops);
+/**< @internal Get flow operations */
How about to change the return type to "const struct rte_flow_ops *" directly ?

typedef const struct rte_flow_ops * (*eth_flow_ops_get_t)(struct rte_eth_dev *dev);

--
2.30.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help