> -----Original Message----- > From: Thomas Monjalon <tho...@monjalon.net> > Sent: Friday, March 12, 2021 06:18 > To: dev@dpdk.org > Cc: Ori Kam <or...@nvidia.com>; Ajit Khaparde <ajit.khapa...@broadcom.com>; > Somnath Kotur > <somnath.ko...@broadcom.com>; Chas Williams <ch...@att.com>; Min Hu (Connor) > <humi...@huawei.com>; > Rahul Lakkireddy <rahul.lakkire...@chelsio.com>; Hemant Agrawal > <hemant.agra...@nxp.com>; Sachin > Saxena <sachin.sax...@oss.nxp.com>; Guo, Jia <jia....@intel.com>; Wang, > Haiyue <haiyue.w...@intel.com>; > Daley, John <johnd...@cisco.com>; Hyong Youb Kim <hyon...@cisco.com>; Gaetan > Rivet <gr...@u256.net>; > Ziyang Xuan <xuanziya...@huawei.com>; Xiaoyun Wang > <cloud.wangxiao...@huawei.com>; Guoyang Zhou > <zhouguoy...@huawei.com>; Yisen Zhuang <yisen.zhu...@huawei.com>; Lijun Ou > <ouli...@huawei.com>; Xing, > Beilei <beilei.x...@intel.com>; Wu, Jingjing <jingjing...@intel.com>; Yang, > Qiming > <qiming.y...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com>; Xu, Rosen > <rosen...@intel.com>; Matan > Azrad <ma...@nvidia.com>; Shahaf Shuler <shah...@nvidia.com>; Viacheslav > Ovsiienko > <viachesl...@nvidia.com>; Liron Himi <lir...@marvell.com>; Jerin Jacob > <jer...@marvell.com>; Nithin > Dabilpuram <ndabilpu...@marvell.com>; Kiran Kumar K > <kirankum...@marvell.com>; Rasesh Mody > <rm...@marvell.com>; Shahed Shaikh <shsha...@marvell.com>; Andrew Rybchenko > <andrew.rybche...@oktetlabs.ru>; Singh, Jasvinder > <jasvinder.si...@intel.com>; Dumitrescu, Cristian > <cristian.dumitre...@intel.com>; Wiles, Keith <keith.wi...@intel.com>; Jiawen > Wu > <jiawe...@trustnetic.com>; Jian Wang <jianw...@trustnetic.com>; Yigit, Ferruh > <ferruh.yi...@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 <tho...@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