[dpdk-dev] [PATCH 1/2] ethdev: replace callback getting filter operations
Wang, Haiyue
haiyue.wang at intel.com
Fri Mar 12 02:44:42 CET 2021
> -----Original Message-----
> From: Thomas Monjalon <thomas at monjalon.net>
> Sent: Friday, March 12, 2021 06:18
> To: dev at dpdk.org
> Cc: Ori Kam <orika at nvidia.com>; Ajit Khaparde <ajit.khaparde at broadcom.com>; Somnath Kotur
> <somnath.kotur at broadcom.com>; Chas Williams <chas3 at att.com>; Min Hu (Connor) <humin29 at huawei.com>;
> Rahul Lakkireddy <rahul.lakkireddy at chelsio.com>; Hemant Agrawal <hemant.agrawal at nxp.com>; Sachin
> Saxena <sachin.saxena at oss.nxp.com>; Guo, Jia <jia.guo at intel.com>; Wang, Haiyue <haiyue.wang at intel.com>;
> Daley, John <johndale at cisco.com>; Hyong Youb Kim <hyonkim at cisco.com>; Gaetan Rivet <grive at u256.net>;
> Ziyang Xuan <xuanziyang2 at huawei.com>; Xiaoyun Wang <cloud.wangxiaoyun at huawei.com>; Guoyang Zhou
> <zhouguoyang at huawei.com>; Yisen Zhuang <yisen.zhuang at huawei.com>; Lijun Ou <oulijun at huawei.com>; Xing,
> Beilei <beilei.xing at intel.com>; Wu, Jingjing <jingjing.wu at intel.com>; Yang, Qiming
> <qiming.yang at intel.com>; Zhang, Qi Z <qi.z.zhang at intel.com>; Xu, Rosen <rosen.xu at intel.com>; Matan
> Azrad <matan at nvidia.com>; Shahaf Shuler <shahafs at nvidia.com>; Viacheslav Ovsiienko
> <viacheslavo at nvidia.com>; Liron Himi <lironh at marvell.com>; Jerin Jacob <jerinj at marvell.com>; Nithin
> Dabilpuram <ndabilpuram at marvell.com>; Kiran Kumar K <kirankumark at marvell.com>; Rasesh Mody
> <rmody at marvell.com>; Shahed Shaikh <shshaikh at marvell.com>; Andrew Rybchenko
> <andrew.rybchenko at oktetlabs.ru>; Singh, Jasvinder <jasvinder.singh at intel.com>; Dumitrescu, Cristian
> <cristian.dumitrescu at intel.com>; Wiles, Keith <keith.wiles at intel.com>; Jiawen Wu
> <jiawenwu at trustnetic.com>; Jian Wang <jianwang at trustnetic.com>; Yigit, Ferruh <ferruh.yigit at intel.com>
> 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 <thomas at monjalon.net>
> ---
> 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
More information about the dev
mailing list