From patchwork Thu Jan 22 07:38:24 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jingjing Wu X-Patchwork-Id: 2467 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 60C815AA9; Thu, 22 Jan 2015 08:39:06 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 50F225ABE for ; Thu, 22 Jan 2015 08:38:59 +0100 (CET) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP; 21 Jan 2015 23:38:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,447,1418112000"; d="scan'208";a="654697534" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by fmsmga001.fm.intel.com with ESMTP; 21 Jan 2015 23:38:43 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id t0M7ce23012952; Thu, 22 Jan 2015 15:38:40 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id t0M7ccfG002091; Thu, 22 Jan 2015 15:38:40 +0800 Received: (from wujingji@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t0M7ccSD002087; Thu, 22 Jan 2015 15:38:38 +0800 From: Jingjing Wu To: dev@dpdk.org Date: Thu, 22 Jan 2015 15:38:24 +0800 Message-Id: <1421912305-2022-6-git-send-email-jingjing.wu@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1421912305-2022-1-git-send-email-jingjing.wu@intel.com> References: <1421286361-11504-1-git-send-email-jingjing.wu@intel.com> <1421912305-2022-1-git-send-email-jingjing.wu@intel.com> Subject: [dpdk-dev] [PATCH v2 5/6] ethdev: remove old APIs and structures of 5tuple and 2tuple filters 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Following structures are removed: - rte_2tuple_filter - rte_5tuple_filter Following APIs are removed: - rte_eth_dev_add_2tuple_filter - rte_eth_dev_remove_2tuple_filter - rte_eth_dev_get_2tuple_filter - rte_eth_dev_add_5tuple_filter - rte_eth_dev_remove_5tuple_filter - rte_eth_dev_get_5tuple_filter It also move macros TCP_*_FLAG to rte_eth_ctrl.h, and removes the macro TCP_UGR_FLAG which is duplicated with TCP_URG_FLAG. Signed-off-by: Jingjing Wu --- lib/librte_ether/rte_eth_ctrl.h | 7 ++ lib/librte_ether/rte_ethdev.c | 116 ------------------------ lib/librte_ether/rte_ethdev.h | 194 ---------------------------------------- 3 files changed, 7 insertions(+), 310 deletions(-) diff --git a/lib/librte_ether/rte_eth_ctrl.h b/lib/librte_ether/rte_eth_ctrl.h index 3465c68..e4b9b52 100644 --- a/lib/librte_ether/rte_eth_ctrl.h +++ b/lib/librte_ether/rte_eth_ctrl.h @@ -139,6 +139,13 @@ struct rte_eth_ethertype_filter { RTE_NTUPLE_FLAGS_DST_PORT | \ RTE_NTUPLE_FLAGS_PROTO) +#define TCP_URG_FLAG 0x20 +#define TCP_ACK_FLAG 0x10 +#define TCP_PSH_FLAG 0x08 +#define TCP_RST_FLAG 0x04 +#define TCP_SYN_FLAG 0x02 +#define TCP_FIN_FLAG 0x01 +#define TCP_FLAG_ALL 0x3F /** * A structure used to define the ntuple filter entry diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index ea3a1fb..a2e71e0 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -3056,122 +3056,6 @@ rte_eth_dev_get_syn_filter(uint8_t port_id, } int -rte_eth_dev_add_2tuple_filter(uint8_t port_id, uint16_t index, - struct rte_2tuple_filter *filter, uint16_t rx_queue) -{ - struct rte_eth_dev *dev; - - if (port_id >= nb_ports) { - PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id); - return -ENODEV; - } - if (filter->protocol != IPPROTO_TCP && - filter->tcp_flags != 0){ - PMD_DEBUG_TRACE("tcp flags is 0x%x, but the protocol value" - " is not TCP\n", - filter->tcp_flags); - return -EINVAL; - } - - dev = &rte_eth_devices[port_id]; - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->add_2tuple_filter, -ENOTSUP); - return (*dev->dev_ops->add_2tuple_filter)(dev, index, filter, rx_queue); -} - -int -rte_eth_dev_remove_2tuple_filter(uint8_t port_id, uint16_t index) -{ - struct rte_eth_dev *dev; - - if (port_id >= nb_ports) { - PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id); - return -ENODEV; - } - - dev = &rte_eth_devices[port_id]; - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->remove_2tuple_filter, -ENOTSUP); - return (*dev->dev_ops->remove_2tuple_filter)(dev, index); -} - -int -rte_eth_dev_get_2tuple_filter(uint8_t port_id, uint16_t index, - struct rte_2tuple_filter *filter, uint16_t *rx_queue) -{ - struct rte_eth_dev *dev; - - if (filter == NULL || rx_queue == NULL) - return -EINVAL; - - if (port_id >= nb_ports) { - PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id); - return -ENODEV; - } - - dev = &rte_eth_devices[port_id]; - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->get_2tuple_filter, -ENOTSUP); - return (*dev->dev_ops->get_2tuple_filter)(dev, index, filter, rx_queue); -} - -int -rte_eth_dev_add_5tuple_filter(uint8_t port_id, uint16_t index, - struct rte_5tuple_filter *filter, uint16_t rx_queue) -{ - struct rte_eth_dev *dev; - - if (port_id >= nb_ports) { - PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id); - return -ENODEV; - } - - if (filter->protocol != IPPROTO_TCP && - filter->tcp_flags != 0){ - PMD_DEBUG_TRACE("tcp flags is 0x%x, but the protocol value" - " is not TCP\n", - filter->tcp_flags); - return -EINVAL; - } - - dev = &rte_eth_devices[port_id]; - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->add_5tuple_filter, -ENOTSUP); - return (*dev->dev_ops->add_5tuple_filter)(dev, index, filter, rx_queue); -} - -int -rte_eth_dev_remove_5tuple_filter(uint8_t port_id, uint16_t index) -{ - struct rte_eth_dev *dev; - - if (port_id >= nb_ports) { - PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id); - return -ENODEV; - } - - dev = &rte_eth_devices[port_id]; - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->remove_5tuple_filter, -ENOTSUP); - return (*dev->dev_ops->remove_5tuple_filter)(dev, index); -} - -int -rte_eth_dev_get_5tuple_filter(uint8_t port_id, uint16_t index, - struct rte_5tuple_filter *filter, uint16_t *rx_queue) -{ - struct rte_eth_dev *dev; - - if (filter == NULL || rx_queue == NULL) - return -EINVAL; - - if (port_id >= nb_ports) { - PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id); - return -ENODEV; - } - - dev = &rte_eth_devices[port_id]; - FUNC_PTR_OR_ERR_RET(*dev->dev_ops->get_5tuple_filter, -ENOTSUP); - return (*dev->dev_ops->get_5tuple_filter)(dev, index, filter, - rx_queue); -} - -int rte_eth_dev_add_flex_filter(uint8_t port_id, uint16_t index, struct rte_flex_filter *filter, uint16_t rx_queue) { diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 5992e43..c50ae67 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -963,16 +963,6 @@ struct rte_eth_dev_callback; /** @internal Structure to keep track of registered callbacks */ TAILQ_HEAD(rte_eth_dev_cb_list, rte_eth_dev_callback); - -#define TCP_URG_FLAG 0x20 -#define TCP_UGR_FLAG 0x20 -#define TCP_ACK_FLAG 0x10 -#define TCP_PSH_FLAG 0x08 -#define TCP_RST_FLAG 0x04 -#define TCP_SYN_FLAG 0x02 -#define TCP_FIN_FLAG 0x01 -#define TCP_FLAG_ALL 0x3F - /** * A structure used to define an syn filter. */ @@ -982,18 +972,6 @@ struct rte_syn_filter { }; /** - * A structure used to define a 2tuple filter. - */ -struct rte_2tuple_filter { - uint16_t dst_port; /**< big endian. */ - uint8_t protocol; - uint8_t tcp_flags; - uint16_t priority; /**< used when more than one filter matches. */ - uint8_t dst_port_mask:1, /**< if mask is 1b, means not compare. */ - protocol_mask:1; -}; - -/** * A structure used to define a flex filter. */ struct rte_flex_filter { @@ -1004,25 +982,6 @@ struct rte_flex_filter { uint8_t priority; }; -/** - * A structure used to define a 5tuple filter. - */ -struct rte_5tuple_filter { - uint32_t dst_ip; /**< destination IP address in big endian. */ - uint32_t src_ip; /**< source IP address in big endian. */ - uint16_t dst_port; /**< destination port in big endian. */ - uint16_t src_port; /**< source Port big endian. */ - uint8_t protocol; /**< l4 protocol. */ - uint8_t tcp_flags; /**< tcp flags. */ - uint16_t priority; /**< seven evels (001b-111b), 111b is highest, - used when more than one filter matches. */ - uint8_t dst_ip_mask:1, /**< if mask is 1b, do not compare dst ip. */ - src_ip_mask:1, /**< if mask is 1b, do not compare src ip. */ - dst_port_mask:1, /**< if mask is 1b, do not compare dst port. */ - src_port_mask:1, /**< if mask is 1b, do not compare src port. */ - protocol_mask:1; /**< if mask is 1b, do not compare protocol. */ -}; - /* * Definitions of all functions exported by an Ethernet driver through the * the generic structure of type *eth_dev_ops* supplied in the *rte_eth_dev* @@ -1365,33 +1324,6 @@ typedef int (*eth_get_syn_filter_t)(struct rte_eth_dev *dev, struct rte_syn_filter *filter, uint16_t *rx_queue); /**< @internal Get syn filter rule on an Ethernet device */ -typedef int (*eth_add_2tuple_filter_t)(struct rte_eth_dev *dev, - uint16_t index, struct rte_2tuple_filter *filter, - uint16_t rx_queue); -/**< @internal Setup a new 2tuple filter rule on an Ethernet device */ - -typedef int (*eth_remove_2tuple_filter_t)(struct rte_eth_dev *dev, - uint16_t index); -/**< @internal Remove a 2tuple filter rule on an Ethernet device */ - -typedef int (*eth_get_2tuple_filter_t)(struct rte_eth_dev *dev, - uint16_t index, struct rte_2tuple_filter *filter, - uint16_t *rx_queue); -/**< @internal Get a 2tuple filter rule on an Ethernet device */ - -typedef int (*eth_add_5tuple_filter_t)(struct rte_eth_dev *dev, - uint16_t index, struct rte_5tuple_filter *filter, - uint16_t rx_queue); -/**< @internal Setup a new 5tuple filter rule on an Ethernet device */ - -typedef int (*eth_remove_5tuple_filter_t)(struct rte_eth_dev *dev, - uint16_t index); -/**< @internal Remove a 5tuple filter rule on an Ethernet device */ - -typedef int (*eth_get_5tuple_filter_t)(struct rte_eth_dev *dev, - uint16_t index, struct rte_5tuple_filter *filter, - uint16_t *rx_queue); -/**< @internal Get a 5tuple filter rule on an Ethernet device */ typedef int (*eth_add_flex_filter_t)(struct rte_eth_dev *dev, uint16_t index, struct rte_flex_filter *filter, @@ -1511,12 +1443,6 @@ struct eth_dev_ops { eth_add_syn_filter_t add_syn_filter; /**< add syn filter. */ eth_remove_syn_filter_t remove_syn_filter; /**< remove syn filter. */ eth_get_syn_filter_t get_syn_filter; /**< get syn filter. */ - eth_add_2tuple_filter_t add_2tuple_filter; /**< add 2tuple filter. */ - eth_remove_2tuple_filter_t remove_2tuple_filter; /**< remove 2tuple filter. */ - eth_get_2tuple_filter_t get_2tuple_filter; /**< get 2tuple filter. */ - eth_add_5tuple_filter_t add_5tuple_filter; /**< add 5tuple filter. */ - eth_remove_5tuple_filter_t remove_5tuple_filter; /**< remove 5tuple filter. */ - eth_get_5tuple_filter_t get_5tuple_filter; /**< get 5tuple filter. */ eth_add_flex_filter_t add_flex_filter; /**< add flex filter. */ eth_remove_flex_filter_t remove_flex_filter; /**< remove flex filter. */ eth_get_flex_filter_t get_flex_filter; /**< get flex filter. */ @@ -3450,126 +3376,6 @@ int rte_eth_dev_get_syn_filter(uint8_t port_id, struct rte_syn_filter *filter, uint16_t *rx_queue); /** - * Add a new 2tuple filter rule on an Ethernet device. - * - * @param port_id - * The port identifier of the Ethernet device. - * @param index - * The identifier of 2tuple filter. - * @param filter - * The pointer to the structure describing the 2tuple filter rule. - * The *rte_2tuple_filter* structure includes the values of the different - * fields to match: protocol, dst_port and - * tcp_flags if the protocol is tcp type. - * @param rx_queue - * The index of the RX queue where to store RX packets matching the added - * 2tuple filter. - * @return - * - (0) if successful. - * - (-ENOTSUP) if hardware doesn't support 2tuple filter. - * - (-ENODEV) if *port_id* invalid. - * - (-EINVAL) if the filter information is not correct. - */ -int rte_eth_dev_add_2tuple_filter(uint8_t port_id, uint16_t index, - struct rte_2tuple_filter *filter, uint16_t rx_queue); - -/** - * remove a 2tuple filter rule on an Ethernet device. - * - * @param port_id - * The port identifier of the Ethernet device. - * @param index - * The identifier of 2tuple filter. - * @return - * - (0) if successful. - * - (-ENOTSUP) if hardware doesn't support 2tuple filter. - * - (-ENODEV) if *port_id* invalid. - * - (-EINVAL) if the filter information is not correct. - */ -int rte_eth_dev_remove_2tuple_filter(uint8_t port_id, uint16_t index); - -/** - * Get an 2tuple filter rule on an Ethernet device. - * - * @param port_id - * The port identifier of the Ethernet device. - * @param index - * The identifier of 2tuple filter. - * @param filter - * A pointer to a structure of type *rte_2tuple_filter* to be filled with - * the information of the 2tuple filter. - * @param rx_queue - * A pointer to get the queue index. - * @return - * - (0) if successful. - * - (-ENOTSUP) if hardware doesn't support 2tuple filter. - * - (-ENODEV) if *port_id* invalid. - * - (-EINVAL) if the filter information is not correct. - * - (-ENOENT) if no enabled filter in this index. - */ -int rte_eth_dev_get_2tuple_filter(uint8_t port_id, uint16_t index, - struct rte_2tuple_filter *filter, uint16_t *rx_queue); - -/** - * Add a new 5tuple filter rule on an Ethernet device. - * - * @param port_id - * The port identifier of the Ethernet device. - * @param index - * The identifier of 5tuple filter. - * @param filter - * The pointer to the structure describing the 5tuple filter rule. - * The *rte_5tuple_filter* structure includes the values of the different - * fields to match: dst src IP, dst src port, protocol and relative masks - * @param rx_queue - * The index of the RX queue where to store RX packets matching the added - * 5tuple filter. - * @return - * - (0) if successful. - * - (-ENOTSUP) if hardware doesn't support 5tuple filter. - * - (-ENODEV) if *port_id* invalid. - * - (-EINVAL) if the filter information is not correct. - */ -int rte_eth_dev_add_5tuple_filter(uint8_t port_id, uint16_t index, - struct rte_5tuple_filter *filter, uint16_t rx_queue); - -/** - * remove a 5tuple filter rule on an Ethernet device. - * - * @param port_id - * The port identifier of the Ethernet device. - * @param index - * The identifier of 5tuple filter. - * @return - * - (0) if successful. - * - (-ENOTSUP) if hardware doesn't support 5tuple filter. - * - (-ENODEV) if *port_id* invalid. - * - (-EINVAL) if the filter information is not correct. - */ -int rte_eth_dev_remove_5tuple_filter(uint8_t port_id, uint16_t index); - -/** - * Get an 5tuple filter rule on an Ethernet device. - * - * @param port_id - * The port identifier of the Ethernet device. - * @param index - * The identifier of 5tuple filter. - * @param filter - * A pointer to a structure of type *rte_5tuple_filter* to be filled with - * the information of the 5tuple filter. - * @param rx_queue - * A pointer to get the queue index. - * @return - * - (0) if successful. - * - (-ENOTSUP) if hardware doesn't support 5tuple filter. - * - (-ENODEV) if *port_id* invalid. - * - (-EINVAL) if the filter information is not correct. - */ -int rte_eth_dev_get_5tuple_filter(uint8_t port_id, uint16_t index, - struct rte_5tuple_filter *filter, uint16_t *rx_queue); - -/** * Add a new flex filter rule on an Ethernet device. * * @param port_id