The i40e PMD-private filter configuration API in rte_pmd_i40e.h predates the rte_flow API and duplicates functionality now expressed as rte_flow rules. Mark the legacy entry points as deprecated so they can be removed in DPDK 26.11.
The two functions taking public rte_eth_fdir_* types (rte_pmd_i40e_get_fdir_info, rte_pmd_i40e_get_fdir_stats) are already marked __rte_experimental and will be removed alongside the ethdev fdir struct family in 26.11; they need no separate deprecation notice. Signed-off-by: Stephen Hemminger <[email protected]> --- doc/guides/rel_notes/deprecation.rst | 3 + drivers/net/intel/i40e/rte_pmd_i40e.h | 80 ++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 17f90a6352..d152e76fdc 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -158,3 +158,6 @@ Deprecation Notices * net/iavf: The dynamic mbuf field used to detect LLDP packets on the transmit path in the iavf PMD will be removed in a future release. After removal, only packet type-based detection will be supported. + +* net/i40e: The legacy filter configuration API in ``rte_pmd_i40e.h``, + superseded by the ``rte_flow`` API, will be removed in DPDK 26.11. diff --git a/drivers/net/intel/i40e/rte_pmd_i40e.h b/drivers/net/intel/i40e/rte_pmd_i40e.h index 5af7e2330f..5dcca91264 100644 --- a/drivers/net/intel/i40e/rte_pmd_i40e.h +++ b/drivers/net/intel/i40e/rte_pmd_i40e.h @@ -229,6 +229,9 @@ struct rte_pmd_i40e_queue_regions { }; /** + * @deprecated + * Superseded by the rte_flow API; will be removed in DPDK 26.11. + * * Behavior will be taken if raw packet template is matched. */ enum rte_pmd_i40e_pkt_template_behavior { @@ -238,7 +241,10 @@ enum rte_pmd_i40e_pkt_template_behavior { }; /** - * Flow director report status + * @deprecated + * Superseded by the rte_flow API; will be removed in DPDK 26.11. + * + * Flow director report status. * It defines what will be reported if raw packet template is matched. */ enum rte_pmd_i40e_pkt_template_status { @@ -253,6 +259,9 @@ enum rte_pmd_i40e_pkt_template_status { }; /** + * @deprecated + * Superseded by the rte_flow API; will be removed in DPDK 26.11. + * * A structure used to define an action when raw packet template is matched. */ struct rte_pmd_i40e_pkt_template_action { @@ -271,6 +280,9 @@ struct rte_pmd_i40e_pkt_template_action { }; /** + * @deprecated + * Superseded by the rte_flow API; will be removed in DPDK 26.11. + * * A structure used to define the input for raw packet template. */ struct rte_pmd_i40e_pkt_template_input { @@ -283,6 +295,9 @@ struct rte_pmd_i40e_pkt_template_input { }; /** + * @deprecated + * Superseded by the rte_flow API; will be removed in DPDK 26.11. + * * A structure used to define the configuration parameters * for raw packet template. */ @@ -295,6 +310,10 @@ struct rte_pmd_i40e_pkt_template_conf { uint32_t soft_id; }; +/** + * @deprecated + * Superseded by the rte_flow API; will be removed in DPDK 26.11. + */ enum rte_pmd_i40e_inset_type { INSET_NONE = 0, INSET_HASH, @@ -307,6 +326,10 @@ struct rte_pmd_i40e_inset_mask { uint16_t mask; }; +/** + * @deprecated + * Superseded by the rte_flow API; will be removed in DPDK 26.11. + */ struct rte_pmd_i40e_inset { uint64_t inset; struct rte_pmd_i40e_inset_mask mask[2]; @@ -326,7 +349,12 @@ struct rte_pmd_i40e_inset { * - (-ENODEV) if *port* invalid. * - (-EINVAL) if *conf* invalid. * - (-ENOTSUP) not supported by firmware. + * + * @deprecated + * This function is superseded by the rte_flow API and will be removed + * in DPDK 26.11. */ +__rte_deprecated int rte_pmd_i40e_flow_add_del_packet_template( uint16_t port, const struct rte_pmd_i40e_pkt_template_conf *conf, @@ -865,6 +893,10 @@ int rte_pmd_i40e_add_vf_mac_addr(uint16_t port, uint16_t vf_id, #define RTE_PMD_I40E_PCTYPE_MAX 64 #define RTE_PMD_I40E_FLOW_TYPE_MAX 64 +/** + * @deprecated + * Superseded by the rte_flow API; will be removed in DPDK 26.11. + */ struct rte_pmd_i40e_flow_type_mapping { uint16_t flow_type; /**< software defined flow type*/ uint64_t pctype; /**< hardware defined pctype */ @@ -886,7 +918,12 @@ struct rte_pmd_i40e_flow_type_mapping { * keep other PCTYPEs mapping unchanged. * -(!0) overwrite referred PCTYPE mapping, * set other PCTYPEs maps to PCTYPE_INVALID. + * + * @deprecated + * This function is superseded by the rte_flow API and will be removed + * in DPDK 26.11. */ +__rte_deprecated int rte_pmd_i40e_flow_type_mapping_update( uint16_t port, struct rte_pmd_i40e_flow_type_mapping *mapping_items, @@ -903,7 +940,12 @@ int rte_pmd_i40e_flow_type_mapping_update( * the base address of the array to store returned items. * array should be allocated by caller with minimum size of * RTE_PMD_I40E_FLOW_TYPE_MAX items + * + * @deprecated + * This function is superseded by the rte_flow API and will be removed + * in DPDK 26.11. */ +__rte_deprecated int rte_pmd_i40e_flow_type_mapping_get( uint16_t port, struct rte_pmd_i40e_flow_type_mapping *mapping_items); @@ -914,7 +956,12 @@ int rte_pmd_i40e_flow_type_mapping_get( * * @param port * pointer to port identifier of the device + * + * @deprecated + * This function is superseded by the rte_flow API and will be removed + * in DPDK 26.11. */ +__rte_deprecated int rte_pmd_i40e_flow_type_mapping_reset(uint16_t port); /** @@ -946,6 +993,12 @@ int rte_pmd_i40e_query_vfid_by_mac(uint16_t port, int rte_pmd_i40e_rss_queue_region_conf(uint16_t port_id, enum rte_pmd_i40e_queue_region_op op_type, void *arg); +/** + * @deprecated + * This function is superseded by the rte_flow API and will be removed + * in DPDK 26.11. + */ +__rte_deprecated int rte_pmd_i40e_cfg_hash_inset(uint16_t port, uint64_t pctype, uint64_t inset); @@ -965,7 +1018,12 @@ int rte_pmd_i40e_cfg_hash_inset(uint16_t port, * - (-ENODEV) if *port* invalid. * - (-EINVAL) if bad parameter. * - (-ENOTSUP) if operation not supported. + * + * @deprecated + * This function is superseded by the rte_flow API and will be removed + * in DPDK 26.11. */ +__rte_deprecated int rte_pmd_i40e_inset_get(uint16_t port, uint8_t pctype, struct rte_pmd_i40e_inset *inset, enum rte_pmd_i40e_inset_type inset_type); @@ -986,7 +1044,12 @@ int rte_pmd_i40e_inset_get(uint16_t port, uint8_t pctype, * - (-ENODEV) if *port* invalid. * - (-EINVAL) if bad parameter. * - (-ENOTSUP) if operation not supported. + * + * @deprecated + * This function is superseded by the rte_flow API and will be removed + * in DPDK 26.11. */ +__rte_deprecated int rte_pmd_i40e_inset_set(uint16_t port, uint8_t pctype, struct rte_pmd_i40e_inset *inset, enum rte_pmd_i40e_inset_type inset_type); @@ -1001,7 +1064,12 @@ int rte_pmd_i40e_inset_set(uint16_t port, uint8_t pctype, * @return * - (1) if set. * - (0) if cleared. + * + * @deprecated + * This function is superseded by the rte_flow API and will be removed + * in DPDK 26.11. */ +__rte_deprecated static inline int rte_pmd_i40e_inset_field_get(uint64_t inset, uint8_t field_idx) { @@ -1027,7 +1095,12 @@ rte_pmd_i40e_inset_field_get(uint64_t inset, uint8_t field_idx) * @return * - (-1) if failed. * - (0) if success. + * + * @deprecated + * This function is superseded by the rte_flow API and will be removed + * in DPDK 26.11. */ +__rte_deprecated static inline int rte_pmd_i40e_inset_field_set(uint64_t *inset, uint8_t field_idx) { @@ -1052,7 +1125,12 @@ rte_pmd_i40e_inset_field_set(uint64_t *inset, uint8_t field_idx) * @return * - (-1) if failed. * - (0) if success. + * + * @deprecated + * This function is superseded by the rte_flow API and will be removed + * in DPDK 26.11. */ +__rte_deprecated static inline int rte_pmd_i40e_inset_field_clear(uint64_t *inset, uint8_t field_idx) { -- 2.53.0

