From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 5664A5A26 for ; Mon, 20 Apr 2015 16:32:38 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 20 Apr 2015 07:32:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,609,1422950400"; d="scan'208";a="697982671" Received: from kmsmsx152.gar.corp.intel.com ([172.21.73.87]) by fmsmga001.fm.intel.com with ESMTP; 20 Apr 2015 07:32:35 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by KMSMSX152.gar.corp.intel.com (172.21.73.87) with Microsoft SMTP Server (TLS) id 14.3.224.2; Mon, 20 Apr 2015 22:32:34 +0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.204]) by SHSMSX151.ccr.corp.intel.com ([10.239.6.50]) with mapi id 14.03.0224.002; Mon, 20 Apr 2015 22:32:33 +0800 From: "Wu, Jingjing" To: Thomas Monjalon Thread-Topic: [RFC PATCH] ethdev: remove old flow director API Thread-Index: AQHQe3QUkFul58B6FEebzLiBBP1XNp1V8+hA Date: Mon, 20 Apr 2015 14:32:33 +0000 Message-ID: <9BB6961774997848B5B42BEC655768F8BFFDF1@SHSMSX104.ccr.corp.intel.com> References: <1429539103-15885-1-git-send-email-thomas.monjalon@6wind.com> In-Reply-To: <1429539103-15885-1-git-send-email-thomas.monjalon@6wind.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [RFC PATCH] ethdev: remove old flow director API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Apr 2015 14:32:39 -0000 > -----Original Message----- > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > Sent: Monday, April 20, 2015 10:12 PM > To: Wu, Jingjing > Cc: dev@dpdk.org > Subject: [RFC PATCH] ethdev: remove old flow director API >=20 > It's time to remove this old API. > It seems some work is still needed to rely only on eth_ctrl API. > At least ixgbe, i40e and testpmd must be fixed. > Jingjing, do you think it's possible to remove all these structures > from rte_ethdev.h? >=20 [Wu, Jingjing] Yes, I agree. But few comments list below. Beside the following change, some commands also need to be removed in testp= md. For the ixgbe, code to the old APIs are already fixed. > Thanks >=20 > --- > lib/librte_ether/rte_ethdev.c | 260 ------------------------- > lib/librte_ether/rte_ethdev.h | 399 --------------------------------= ------ > lib/librte_pmd_enic/enic_ethdev.c | 1 - > lib/librte_pmd_mlx4/mlx4.c | 7 - > 4 files changed, 667 deletions(-) >=20 > diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.= c > index e20cca5..65173e7 100644 > --- a/lib/librte_ether/rte_ethdev.c > +++ b/lib/librte_ether/rte_ethdev.c > @@ -2098,266 +2098,6 @@ rte_eth_dev_set_vlan_pvid(uint8_t port_id, uint16= _t pvid, int on) > } >=20 > int > -rte_eth_dev_fdir_add_signature_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_filter, > - uint8_t queue) > -{ > - struct rte_eth_dev *dev; > - > - if (!rte_eth_dev_is_valid_port(port_id)) { > - PMD_DEBUG_TRACE("Invalid port_id=3D%d\n", port_id); > - return (-ENODEV); > - } > - > - dev =3D &rte_eth_devices[port_id]; > - > - if (dev->data->dev_conf.fdir_conf.mode !=3D RTE_FDIR_MODE_SIGNATURE) { > - PMD_DEBUG_TRACE("port %d: invalid FDIR mode=3D%u\n", > - port_id, dev->data->dev_conf.fdir_conf.mode); > - return (-ENOSYS); > - } > - > - if ((fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_SCTP > - || fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_NONE) > - && (fdir_filter->port_src || fdir_filter->port_dst)) { > - PMD_DEBUG_TRACE(" Port are meaningless for SCTP and " \ > - "None l4type, source & destinations ports " \ > - "should be null!\n"); > - return (-EINVAL); > - } > - > - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_add_signature_filter, -ENOTSUP)= ; > - return (*dev->dev_ops->fdir_add_signature_filter)(dev, fdir_filter, > - queue); > -} > - > -int > -rte_eth_dev_fdir_update_signature_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_filter, > - uint8_t queue) > -{ > - struct rte_eth_dev *dev; > - > - if (!rte_eth_dev_is_valid_port(port_id)) { > - PMD_DEBUG_TRACE("Invalid port_id=3D%d\n", port_id); > - return (-ENODEV); > - } > - > - dev =3D &rte_eth_devices[port_id]; > - > - if (dev->data->dev_conf.fdir_conf.mode !=3D RTE_FDIR_MODE_SIGNATURE) { > - PMD_DEBUG_TRACE("port %d: invalid FDIR mode=3D%u\n", > - port_id, dev->data->dev_conf.fdir_conf.mode); > - return (-ENOSYS); > - } > - > - if ((fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_SCTP > - || fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_NONE) > - && (fdir_filter->port_src || fdir_filter->port_dst)) { > - PMD_DEBUG_TRACE(" Port are meaningless for SCTP and " \ > - "None l4type, source & destinations ports " \ > - "should be null!\n"); > - return (-EINVAL); > - } > - > - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_update_signature_filter, -ENOTS= UP); > - return (*dev->dev_ops->fdir_update_signature_filter)(dev, fdir_filter, > - queue); > - > -} > - > -int > -rte_eth_dev_fdir_remove_signature_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_filter) > -{ > - struct rte_eth_dev *dev; > - > - if (!rte_eth_dev_is_valid_port(port_id)) { > - PMD_DEBUG_TRACE("Invalid port_id=3D%d\n", port_id); > - return (-ENODEV); > - } > - > - dev =3D &rte_eth_devices[port_id]; > - > - if (dev->data->dev_conf.fdir_conf.mode !=3D RTE_FDIR_MODE_SIGNATURE) { > - PMD_DEBUG_TRACE("port %d: invalid FDIR mode=3D%u\n", > - port_id, dev->data->dev_conf.fdir_conf.mode); > - return (-ENOSYS); > - } > - > - if ((fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_SCTP > - || fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_NONE) > - && (fdir_filter->port_src || fdir_filter->port_dst)) { > - PMD_DEBUG_TRACE(" Port are meaningless for SCTP and " \ > - "None l4type source & destinations ports " \ > - "should be null!\n"); > - return (-EINVAL); > - } > - > - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_remove_signature_filter, -ENOTS= UP); > - return (*dev->dev_ops->fdir_remove_signature_filter)(dev, fdir_filter); > -} > - > -int > -rte_eth_dev_fdir_get_infos(uint8_t port_id, struct rte_eth_fdir *fdir) > -{ > - struct rte_eth_dev *dev; > - > - if (!rte_eth_dev_is_valid_port(port_id)) { > - PMD_DEBUG_TRACE("Invalid port_id=3D%d\n", port_id); > - return (-ENODEV); > - } > - > - dev =3D &rte_eth_devices[port_id]; > - if (! (dev->data->dev_conf.fdir_conf.mode)) { > - PMD_DEBUG_TRACE("port %d: pkt-filter disabled\n", port_id); > - return (-ENOSYS); > - } > - > - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_infos_get, -ENOTSUP); > - > - (*dev->dev_ops->fdir_infos_get)(dev, fdir); > - return (0); > -} > - > -int > -rte_eth_dev_fdir_add_perfect_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_filter, > - uint16_t soft_id, uint8_t queue, > - uint8_t drop) > -{ > - struct rte_eth_dev *dev; > - > - if (!rte_eth_dev_is_valid_port(port_id)) { > - PMD_DEBUG_TRACE("Invalid port_id=3D%d\n", port_id); > - return (-ENODEV); > - } > - > - dev =3D &rte_eth_devices[port_id]; > - > - if (dev->data->dev_conf.fdir_conf.mode !=3D RTE_FDIR_MODE_PERFECT) { > - PMD_DEBUG_TRACE("port %d: invalid FDIR mode=3D%u\n", > - port_id, dev->data->dev_conf.fdir_conf.mode); > - return (-ENOSYS); > - } > - > - if ((fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_SCTP > - || fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_NONE) > - && (fdir_filter->port_src || fdir_filter->port_dst)) { > - PMD_DEBUG_TRACE(" Port are meaningless for SCTP and " \ > - "None l4type, source & destinations ports " \ > - "should be null!\n"); > - return (-EINVAL); > - } > - > - /* For now IPv6 is not supported with perfect filter */ > - if (fdir_filter->iptype =3D=3D RTE_FDIR_IPTYPE_IPV6) > - return (-ENOTSUP); > - > - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_add_perfect_filter, -ENOTSUP); > - return (*dev->dev_ops->fdir_add_perfect_filter)(dev, fdir_filter, > - soft_id, queue, > - drop); > -} > - > -int > -rte_eth_dev_fdir_update_perfect_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_filter, > - uint16_t soft_id, uint8_t queue, > - uint8_t drop) > -{ > - struct rte_eth_dev *dev; > - > - if (!rte_eth_dev_is_valid_port(port_id)) { > - PMD_DEBUG_TRACE("Invalid port_id=3D%d\n", port_id); > - return (-ENODEV); > - } > - > - dev =3D &rte_eth_devices[port_id]; > - > - if (dev->data->dev_conf.fdir_conf.mode !=3D RTE_FDIR_MODE_PERFECT) { > - PMD_DEBUG_TRACE("port %d: invalid FDIR mode=3D%u\n", > - port_id, dev->data->dev_conf.fdir_conf.mode); > - return (-ENOSYS); > - } > - > - if ((fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_SCTP > - || fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_NONE) > - && (fdir_filter->port_src || fdir_filter->port_dst)) { > - PMD_DEBUG_TRACE(" Port are meaningless for SCTP and " \ > - "None l4type, source & destinations ports " \ > - "should be null!\n"); > - return (-EINVAL); > - } > - > - /* For now IPv6 is not supported with perfect filter */ > - if (fdir_filter->iptype =3D=3D RTE_FDIR_IPTYPE_IPV6) > - return (-ENOTSUP); > - > - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_update_perfect_filter, -ENOTSUP= ); > - return (*dev->dev_ops->fdir_update_perfect_filter)(dev, fdir_filter, > - soft_id, queue, drop); > -} > - > -int > -rte_eth_dev_fdir_remove_perfect_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_filter, > - uint16_t soft_id) > -{ > - struct rte_eth_dev *dev; > - > - if (!rte_eth_dev_is_valid_port(port_id)) { > - PMD_DEBUG_TRACE("Invalid port_id=3D%d\n", port_id); > - return (-ENODEV); > - } > - > - dev =3D &rte_eth_devices[port_id]; > - > - if (dev->data->dev_conf.fdir_conf.mode !=3D RTE_FDIR_MODE_PERFECT) { > - PMD_DEBUG_TRACE("port %d: invalid FDIR mode=3D%u\n", > - port_id, dev->data->dev_conf.fdir_conf.mode); > - return (-ENOSYS); > - } > - > - if ((fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_SCTP > - || fdir_filter->l4type =3D=3D RTE_FDIR_L4TYPE_NONE) > - && (fdir_filter->port_src || fdir_filter->port_dst)) { > - PMD_DEBUG_TRACE(" Port are meaningless for SCTP and " \ > - "None l4type, source & destinations ports " \ > - "should be null!\n"); > - return (-EINVAL); > - } > - > - /* For now IPv6 is not supported with perfect filter */ > - if (fdir_filter->iptype =3D=3D RTE_FDIR_IPTYPE_IPV6) > - return (-ENOTSUP); > - > - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_remove_perfect_filter, -ENOTSUP= ); > - return (*dev->dev_ops->fdir_remove_perfect_filter)(dev, fdir_filter, > - soft_id); > -} > - > -int > -rte_eth_dev_fdir_set_masks(uint8_t port_id, struct rte_fdir_masks *fdir_= mask) > -{ > - struct rte_eth_dev *dev; > - > - if (!rte_eth_dev_is_valid_port(port_id)) { > - PMD_DEBUG_TRACE("Invalid port_id=3D%d\n", port_id); > - return (-ENODEV); > - } > - > - dev =3D &rte_eth_devices[port_id]; > - if (! (dev->data->dev_conf.fdir_conf.mode)) { > - PMD_DEBUG_TRACE("port %d: pkt-filter disabled\n", port_id); > - return (-ENOSYS); > - } > - > - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_set_masks, -ENOTSUP); > - return (*dev->dev_ops->fdir_set_masks)(dev, fdir_mask); > -} > - > -int > rte_eth_dev_flow_ctrl_get(uint8_t port_id, struct rte_eth_fc_conf *fc_co= nf) > { > struct rte_eth_dev *dev; > diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.= h > index 4648290..041aa32 100644 > --- a/lib/librte_ether/rte_ethdev.h > +++ b/lib/librte_ether/rte_ethdev.h > @@ -672,42 +672,6 @@ struct rte_eth_pfc_conf { > }; >=20 > /** > - * Memory space that can be configured to store Flow Director filters > - * in the board memory. > - */ > -enum rte_fdir_pballoc_type { > - RTE_FDIR_PBALLOC_64K =3D 0, /**< 64k. */ > - RTE_FDIR_PBALLOC_128K, /**< 128k. */ > - RTE_FDIR_PBALLOC_256K, /**< 256k. */ > -}; > - > -/** > - * Select report mode of FDIR hash information in RX descriptors. > - */ > -enum rte_fdir_status_mode { > - RTE_FDIR_NO_REPORT_STATUS =3D 0, /**< Never report FDIR hash. */ > - RTE_FDIR_REPORT_STATUS, /**< Only report FDIR hash for matching pkts. *= / > - RTE_FDIR_REPORT_STATUS_ALWAYS, /**< Always report FDIR hash. */ > -}; > - > -/** > - * A structure used to configure the Flow Director (FDIR) feature > - * of an Ethernet port. > - * > - * If mode is RTE_FDIR_DISABLE, the pballoc value is ignored. > - */ > -struct rte_fdir_conf { > - enum rte_fdir_mode mode; /**< Flow Director mode. */ > - enum rte_fdir_pballoc_type pballoc; /**< Space for FDIR filters. */ > - enum rte_fdir_status_mode status; /**< How to report FDIR hash. */ > - /** RX queue of packets matching a "drop" filter in perfect mode. */ > - uint8_t drop_queue; > - struct rte_eth_fdir_masks mask; > - struct rte_eth_fdir_flex_conf flex_conf; > - /**< Flex payload configuration. */ > -}; > - [Wu, Jingjing] This structures and above types are useful about global conf= iguration. They can't be removed. > -/** > * UDP tunneling configuration. > */ > struct rte_eth_udp_tunnel { > @@ -734,96 +698,6 @@ enum rte_iptype { > }; >=20 > /** > - * A structure used to define a FDIR packet filter. > - */ > -struct rte_fdir_filter { > - uint16_t flex_bytes; /**< Flex bytes value to match. */ > - uint16_t vlan_id; /**< VLAN ID value to match, 0 otherwise. */ > - uint16_t port_src; /**< Source port to match, 0 otherwise. */ > - uint16_t port_dst; /**< Destination port to match, 0 otherwise. */ > - union { > - uint32_t ipv4_addr; /**< IPv4 source address to match. */ > - uint32_t ipv6_addr[4]; /**< IPv6 source address to match. */ > - } ip_src; /**< IPv4/IPv6 source address to match (union of above). */ > - union { > - uint32_t ipv4_addr; /**< IPv4 destination address to match. */ > - uint32_t ipv6_addr[4]; /**< IPv6 destination address to match */ > - } ip_dst; /**< IPv4/IPv6 destination address to match (union of above).= */ > - enum rte_l4type l4type; /**< l4type to match: NONE/UDP/TCP/SCTP. */ > - enum rte_iptype iptype; /**< IP packet type to match: IPv4 or IPv6. */ > -}; > - > -/** > - * A structure used to configure FDIR masks that are used by the device > - * to match the various fields of RX packet headers. > - * @note The only_ip_flow field has the opposite meaning compared to ot= her > - * masks! > - */ > -struct rte_fdir_masks { > - /** When set to 1, packet l4type is \b NOT relevant in filters, and > - source and destination port masks must be set to zero. */ > - uint8_t only_ip_flow; > - /** If set to 1, vlan_id is relevant in filters. */ > - uint8_t vlan_id; > - /** If set to 1, vlan_prio is relevant in filters. */ > - uint8_t vlan_prio; > - /** If set to 1, flexbytes is relevant in filters. */ > - uint8_t flexbytes; > - /** If set to 1, set the IPv6 masks. Otherwise set the IPv4 masks. */ > - uint8_t set_ipv6_mask; > - /** When set to 1, comparison of destination IPv6 address with IP6AT > - registers is meaningful. */ > - uint8_t comp_ipv6_dst; > - /** Mask of Destination IPv4 Address. All bits set to 1 define the > - relevant bits to use in the destination address of an IPv4 packet > - when matching it against FDIR filters. */ > - uint32_t dst_ipv4_mask; > - /** Mask of Source IPv4 Address. All bits set to 1 define > - the relevant bits to use in the source address of an IPv4 packet > - when matching it against FDIR filters. */ > - uint32_t src_ipv4_mask; > - /** Mask of Source IPv6 Address. All bits set to 1 define the > - relevant BYTES to use in the source address of an IPv6 packet > - when matching it against FDIR filters. */ > - uint16_t dst_ipv6_mask; > - /** Mask of Destination IPv6 Address. All bits set to 1 define the > - relevant BYTES to use in the destination address of an IPv6 packet > - when matching it against FDIR filters. */ > - uint16_t src_ipv6_mask; > - /** Mask of Source Port. All bits set to 1 define the relevant > - bits to use in the source port of an IP packets when matching it > - against FDIR filters. */ > - uint16_t src_port_mask; > - /** Mask of Destination Port. All bits set to 1 define the relevant > - bits to use in the destination port of an IP packet when matching i= t > - against FDIR filters. */ > - uint16_t dst_port_mask; > -}; > - > -/** > - * A structure used to report the status of the flow director filters i= n use. > - */ > -struct rte_eth_fdir { > - /** Number of filters with collision indication. */ > - uint16_t collision; > - /** Number of free (non programmed) filters. */ > - uint16_t free; > - /** The Lookup hash value of the added filter that updated the value > - of the MAXLEN field */ > - uint16_t maxhash; > - /** Longest linked list of filters in the table. */ > - uint8_t maxlen; > - /** Number of added filters. */ > - uint64_t add; > - /** Number of removed filters. */ > - uint64_t remove; > - /** Number of failed added filters (no more space in device). */ > - uint64_t f_add; > - /** Number of failed removed filters. */ > - uint64_t f_remove; > -}; > - > -/** > * A structure used to enable/disable specific device interrupts. > */ > struct rte_intr_conf { > @@ -868,7 +742,6 @@ struct rte_eth_conf { > /** Currently,Priority Flow Control(PFC) are supported,if DCB with PFC > is needed,and the variable must be set ETH_DCB_PFC_SUPPORT. */ > uint32_t dcb_capability_en; > - struct rte_fdir_conf fdir_conf; /**< FDIR configuration. */ [Wu, Jingjing] It can't be removed, because it is for FDIR global configura= tion. > struct rte_intr_conf intr_conf; /**< Interrupt mode configuration. */ > }; >=20 > @@ -1079,45 +952,6 @@ typedef uint16_t (*eth_tx_burst_t)(void *txq, > uint16_t nb_pkts); > /**< @internal Send output packets on a transmit queue of an Ethernet de= vice. */ >=20 > -typedef int (*fdir_add_signature_filter_t)(struct rte_eth_dev *dev, > - struct rte_fdir_filter *fdir_ftr, > - uint8_t rx_queue); > -/**< @internal Setup a new signature filter rule on an Ethernet device *= / > - > -typedef int (*fdir_update_signature_filter_t)(struct rte_eth_dev *dev, > - struct rte_fdir_filter *fdir_ftr, > - uint8_t rx_queue); > -/**< @internal Update a signature filter rule on an Ethernet device */ > - > -typedef int (*fdir_remove_signature_filter_t)(struct rte_eth_dev *dev, > - struct rte_fdir_filter *fdir_ftr); > -/**< @internal Remove a signature filter rule on an Ethernet device */ > - > -typedef void (*fdir_infos_get_t)(struct rte_eth_dev *dev, > - struct rte_eth_fdir *fdir); > -/**< @internal Get information about fdir status */ > - > -typedef int (*fdir_add_perfect_filter_t)(struct rte_eth_dev *dev, > - struct rte_fdir_filter *fdir_ftr, > - uint16_t soft_id, uint8_t rx_queue, > - uint8_t drop); > -/**< @internal Setup a new perfect filter rule on an Ethernet device */ > - > -typedef int (*fdir_update_perfect_filter_t)(struct rte_eth_dev *dev, > - struct rte_fdir_filter *fdir_ftr, > - uint16_t soft_id, uint8_t rx_queue, > - uint8_t drop); > -/**< @internal Update a perfect filter rule on an Ethernet device */ > - > -typedef int (*fdir_remove_perfect_filter_t)(struct rte_eth_dev *dev, > - struct rte_fdir_filter *fdir_ftr, > - uint16_t soft_id); > -/**< @internal Remove a perfect filter rule on an Ethernet device */ > - > -typedef int (*fdir_set_masks_t)(struct rte_eth_dev *dev, > - struct rte_fdir_masks *fdir_masks); > -/**< @internal Setup flow director masks on an Ethernet device */ > - > typedef int (*flow_ctrl_get_t)(struct rte_eth_dev *dev, > struct rte_eth_fc_conf *fc_conf); > /**< @internal Get current flow control parameter on an Ethernet device = */ > @@ -1346,23 +1180,6 @@ struct eth_dev_ops { > eth_udp_tunnel_del_t udp_tunnel_del; > eth_set_queue_rate_limit_t set_queue_rate_limit; /**< Set queue rate = limit */ > eth_set_vf_rate_limit_t set_vf_rate_limit; /**< Set VF rate limit = */ > - > - /** Add a signature filter. */ > - fdir_add_signature_filter_t fdir_add_signature_filter; > - /** Update a signature filter. */ > - fdir_update_signature_filter_t fdir_update_signature_filter; > - /** Remove a signature filter. */ > - fdir_remove_signature_filter_t fdir_remove_signature_filter; > - /** Get information about FDIR status. */ > - fdir_infos_get_t fdir_infos_get; > - /** Add a perfect filter. */ > - fdir_add_perfect_filter_t fdir_add_perfect_filter; > - /** Update a perfect filter. */ > - fdir_update_perfect_filter_t fdir_update_perfect_filter; > - /** Remove a perfect filter. */ > - fdir_remove_perfect_filter_t fdir_remove_perfect_filter; > - /** Setup masks for FDIR filtering. */ > - fdir_set_masks_t fdir_set_masks; > /** Update redirection table. */ > reta_update_t reta_update; > /** Query redirection table. */ > @@ -2579,222 +2396,6 @@ rte_eth_tx_burst(uint8_t port_id, uint16_t queue_= id, > #endif >=20 > /** > - * Setup a new signature filter rule on an Ethernet device > - * > - * @param port_id > - * The port identifier of the Ethernet device. > - * @param fdir_filter > - * The pointer to the fdir filter structure describing the signature f= ilter > - * rule. > - * The *rte_fdir_filter* structure includes the values of the differen= t fields > - * to match: source and destination IP addresses, vlan id, flexbytes, = source > - * and destination ports, and so on. > - * @param rx_queue > - * The index of the RX queue where to store RX packets matching the ad= ded > - * signature filter defined in fdir_filter. > - * @return > - * - (0) if successful. > - * - (-ENOTSUP) if hardware doesn't support flow director mode. > - * - (-ENODEV) if *port_id* invalid. > - * - (-ENOSYS) if the FDIR mode is not configured in signature mode > - * on *port_id*. > - * - (-EINVAL) if the fdir_filter information is not correct. > - */ > -int rte_eth_dev_fdir_add_signature_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_filter, > - uint8_t rx_queue); > - > -/** > - * Update a signature filter rule on an Ethernet device. > - * If the rule doesn't exits, it is created. > - * > - * @param port_id > - * The port identifier of the Ethernet device. > - * @param fdir_ftr > - * The pointer to the structure describing the signature filter rule. > - * The *rte_fdir_filter* structure includes the values of the differen= t fields > - * to match: source and destination IP addresses, vlan id, flexbytes, = source > - * and destination ports, and so on. > - * @param rx_queue > - * The index of the RX queue where to store RX packets matching the ad= ded > - * signature filter defined in fdir_ftr. > - * @return > - * - (0) if successful. > - * - (-ENOTSUP) if hardware doesn't support flow director mode. > - * - (-ENODEV) if *port_id* invalid. > - * - (-ENOSYS) if the flow director mode is not configured in signatur= e mode > - * on *port_id*. > - * - (-EINVAL) if the fdir_filter information is not correct. > - */ > -int rte_eth_dev_fdir_update_signature_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_ftr, > - uint8_t rx_queue); > - > -/** > - * Remove a signature filter rule on an Ethernet device. > - * > - * @param port_id > - * The port identifier of the Ethernet device. > - * @param fdir_ftr > - * The pointer to the structure describing the signature filter rule. > - * The *rte_fdir_filter* structure includes the values of the differen= t fields > - * to match: source and destination IP addresses, vlan id, flexbytes, = source > - * and destination ports, and so on. > - * @return > - * - (0) if successful. > - * - (-ENOTSUP) if hardware doesn't support flow director mode. > - * - (-ENODEV) if *port_id* invalid. > - * - (-ENOSYS) if the flow director mode is not configured in signatur= e mode > - * on *port_id*. > - * - (-EINVAL) if the fdir_filter information is not correct. > - */ > -int rte_eth_dev_fdir_remove_signature_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_ftr); > - > -/** > - * Retrieve the flow director information of an Ethernet device. > - * > - * @param port_id > - * The port identifier of the Ethernet device. > - * @param fdir > - * A pointer to a structure of type *rte_eth_dev_fdir* to be filled wi= th > - * the flow director information of the Ethernet device. > - * @return > - * - (0) if successful. > - * - (-ENOTSUP) if hardware doesn't support flow director mode. > - * - (-ENODEV) if *port_id* invalid. > - * - (-ENOSYS) if the flow director mode is not configured on *port_id= *. > - */ > -int rte_eth_dev_fdir_get_infos(uint8_t port_id, struct rte_eth_fdir *fdi= r); > - > -/** > - * Add a new perfect filter rule on an Ethernet device. > - * > - * @param port_id > - * The port identifier of the Ethernet device. > - * @param fdir_filter > - * The pointer to the structure describing the perfect filter rule. > - * The *rte_fdir_filter* structure includes the values of the differen= t fields > - * to match: source and destination IP addresses, vlan id, flexbytes, = source > - * and destination ports, and so on. > - * IPv6 are not supported. > - * @param soft_id > - * The 16-bit value supplied in the field hash.fdir.id of mbuf for RX > - * packets matching the perfect filter. > - * @param rx_queue > - * The index of the RX queue where to store RX packets matching the ad= ded > - * perfect filter defined in fdir_filter. > - * @param drop > - * If drop is set to 1, matching RX packets are stored into the RX dr= op > - * queue defined in the rte_fdir_conf. > - * @return > - * - (0) if successful. > - * - (-ENOTSUP) if hardware doesn't support flow director mode. > - * - (-ENODEV) if *port_id* invalid. > - * - (-ENOSYS) if the flow director mode is not configured in perfect = mode > - * on *port_id*. > - * - (-EINVAL) if the fdir_filter information is not correct. > - */ > -int rte_eth_dev_fdir_add_perfect_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_filter, > - uint16_t soft_id, uint8_t rx_queue, > - uint8_t drop); > - > -/** > - * Update a perfect filter rule on an Ethernet device. > - * If the rule doesn't exits, it is created. > - * > - * @param port_id > - * The port identifier of the Ethernet device. > - * @param fdir_filter > - * The pointer to the structure describing the perfect filter rule. > - * The *rte_fdir_filter* structure includes the values of the differen= t fields > - * to match: source and destination IP addresses, vlan id, flexbytes, = source > - * and destination ports, and so on. > - * IPv6 are not supported. > - * @param soft_id > - * The 16-bit value supplied in the field hash.fdir.id of mbuf for RX > - * packets matching the perfect filter. > - * @param rx_queue > - * The index of the RX queue where to store RX packets matching the ad= ded > - * perfect filter defined in fdir_filter. > - * @param drop > - * If drop is set to 1, matching RX packets are stored into the RX dr= op > - * queue defined in the rte_fdir_conf. > - * @return > - * - (0) if successful. > - * - (-ENOTSUP) if hardware doesn't support flow director mode. > - * - (-ENODEV) if *port_id* invalid. > - * - (-ENOSYS) if the flow director mode is not configured in perfect = mode > - * on *port_id*. > - * - (-EINVAL) if the fdir_filter information is not correct. > - */ > -int rte_eth_dev_fdir_update_perfect_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_filter, > - uint16_t soft_id, uint8_t rx_queue, > - uint8_t drop); > - > -/** > - * Remove a perfect filter rule on an Ethernet device. > - * > - * @param port_id > - * The port identifier of the Ethernet device. > - * @param fdir_filter > - * The pointer to the structure describing the perfect filter rule. > - * The *rte_fdir_filter* structure includes the values of the differen= t fields > - * to match: source and destination IP addresses, vlan id, flexbytes, = source > - * and destination ports, and so on. > - * IPv6 are not supported. > - * @param soft_id > - * The soft_id value provided when adding/updating the removed filter= . > - * @return > - * - (0) if successful. > - * - (-ENOTSUP) if hardware doesn't support flow director mode. > - * - (-ENODEV) if *port_id* invalid. > - * - (-ENOSYS) if the flow director mode is not configured in perfect = mode > - * on *port_id*. > - * - (-EINVAL) if the fdir_filter information is not correct. > - */ > -int rte_eth_dev_fdir_remove_perfect_filter(uint8_t port_id, > - struct rte_fdir_filter *fdir_filter, > - uint16_t soft_id); > -/** > - * Configure globally the masks for flow director mode for an Ethernet d= evice. > - * For example, the device can match packets with only the first 24 bits= of > - * the IPv4 source address. > - * > - * The following fields can be masked: IPv4 addresses and L4 port number= s. > - * The following fields can be either enabled or disabled completely for= the > - * matching functionality: VLAN ID tag; VLAN Priority + CFI bit; Flexibl= e 2-byte > - * tuple. > - * IPv6 masks are not supported. > - * > - * All filters must comply with the masks previously configured. > - * For example, with a mask equal to 255.255.255.0 for the source IPv4 a= ddress, > - * all IPv4 filters must be created with a source IPv4 address that fits= the > - * "X.X.X.0" format. > - * > - * This function flushes all filters that have been previously added in > - * the device. > - * > - * @param port_id > - * The port identifier of the Ethernet device. > - * @param fdir_mask > - * The pointer to the fdir mask structure describing relevant headers = fields > - * and relevant bits to use when matching packets addresses and ports. > - * IPv6 masks are not supported. > - * @return > - * - (0) if successful. > - * - (-ENOTSUP) if hardware doesn't support flow director mode. > - * - (-ENODEV) if *port_id* invalid. > - * - (-ENOSYS) if the flow director mode is not configured in perfect > - * mode on *port_id*. > - * - (-EINVAL) if the fdir_filter information is not correct > - */ > -int rte_eth_dev_fdir_set_masks(uint8_t port_id, > - struct rte_fdir_masks *fdir_mask); > - > -/** > * The eth device event type for interrupt, and maybe others in the futu= re. > */ > enum rte_eth_event_type { > diff --git a/lib/librte_pmd_enic/enic_ethdev.c b/lib/librte_pmd_enic/enic= _ethdev.c > index 63a594d..bdb6801 100644 > --- a/lib/librte_pmd_enic/enic_ethdev.c > +++ b/lib/librte_pmd_enic/enic_ethdev.c > @@ -576,7 +576,6 @@ static const struct eth_dev_ops enicpmd_eth_dev_ops = =3D { > .priority_flow_ctrl_set =3D NULL, > .mac_addr_add =3D enicpmd_add_mac_addr, > .mac_addr_remove =3D enicpmd_remove_mac_addr, > - .fdir_set_masks =3D NULL, > .filter_ctrl =3D enicpmd_dev_filter_ctrl, > }; >=20 > diff --git a/lib/librte_pmd_mlx4/mlx4.c b/lib/librte_pmd_mlx4/mlx4.c > index 024282a..6ba5a6b 100644 > --- a/lib/librte_pmd_mlx4/mlx4.c > +++ b/lib/librte_pmd_mlx4/mlx4.c > @@ -4192,13 +4192,6 @@ static const struct eth_dev_ops mlx4_dev_ops =3D { > .mac_addr_remove =3D mlx4_mac_addr_remove, > .mac_addr_add =3D mlx4_mac_addr_add, > .mtu_set =3D mlx4_dev_set_mtu, > - .fdir_add_signature_filter =3D NULL, > - .fdir_update_signature_filter =3D NULL, > - .fdir_remove_signature_filter =3D NULL, > - .fdir_add_perfect_filter =3D NULL, > - .fdir_update_perfect_filter =3D NULL, > - .fdir_remove_perfect_filter =3D NULL, > - .fdir_set_masks =3D NULL > }; >=20 > /** > -- > 2.2.2