Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/4378/?format=api
http://patches.dpdk.org/api/patches/4378/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/1429539103-15885-1-git-send-email-thomas.monjalon@6wind.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<1429539103-15885-1-git-send-email-thomas.monjalon@6wind.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1429539103-15885-1-git-send-email-thomas.monjalon@6wind.com", "date": "2015-04-20T14:11:43", "name": "[dpdk-dev,RFC] ethdev: remove old flow director API", "commit_ref": null, "pull_url": null, "state": "rfc", "archived": true, "hash": "a494e44495ebfcdb40b5f5e2c15d19cee904c794", "submitter": { "id": 1, "url": "http://patches.dpdk.org/api/people/1/?format=api", "name": "Thomas Monjalon", "email": "thomas.monjalon@6wind.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dpdk/patch/1429539103-15885-1-git-send-email-thomas.monjalon@6wind.com/mbox/", "series": [], "comments": "http://patches.dpdk.org/api/patches/4378/comments/", "check": "pending", "checks": "http://patches.dpdk.org/api/patches/4378/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 925CB5A55;\n\tMon, 20 Apr 2015 16:12:43 +0200 (CEST)", "from mail-wi0-f182.google.com (mail-wi0-f182.google.com\n\t[209.85.212.182]) by dpdk.org (Postfix) with ESMTP id F23C0376C\n\tfor <dev@dpdk.org>; Mon, 20 Apr 2015 16:12:41 +0200 (CEST)", "by wizk4 with SMTP id k4so101052809wiz.1\n\tfor <dev@dpdk.org>; Mon, 20 Apr 2015 07:12:41 -0700 (PDT)", "from localhost.localdomain (136-92-190-109.dsl.ovh.fr.\n\t[109.190.92.136]) by mx.google.com with ESMTPSA id\n\tq4sm7708526wja.24.2015.04.20.07.12.39\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tMon, 20 Apr 2015 07:12:40 -0700 (PDT)" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id;\n\tbh=stcuAY8Baw4qO25TIRY8xtsyoIuV9EZvTL3ZZk1Njpg=;\n\tb=Ns+r+rDi758HytJ1LoKP4ZpEzlHfhBqhD2DrOK7B/yNSLeSu/6VyX1qrzebGBXRxIH\n\tbdFKbwt09+U4nmQq9yRcu89v6NJxRuH8oEOIj0UAVOvQqauz0gmlrvMHl4xpbdrdPePp\n\t4iFKnY2VQ6LO+I15MXOMd9pBtTVBA+l4tU8J7mHnl0v19l8lyb12DUpJhh6GLIlc8dNf\n\tEcJ047W1alGgqxBujyw5lrS8Hcfi3ZyP0tJGsmmml5ywxyxxk1j84NHGg62rJ5iXBxnn\n\t0He4VGDDUc3S74pp22sXv/9qz3mKm8gjbuZZJhi/FydYYah1sQXbgeCa0qyTdOar2JeL\n\tqwwA==", "X-Gm-Message-State": "ALoCoQmh/H7JfzMZcP8Z0Ofpr5Xyn3xif95GYEaMWzUuo4Ikt3Allq3TceNTsQC+VTQHcLIOXQZ2", "X-Received": "by 10.180.92.65 with SMTP id ck1mr25044698wib.78.1429539161805; \n\tMon, 20 Apr 2015 07:12:41 -0700 (PDT)", "From": "Thomas Monjalon <thomas.monjalon@6wind.com>", "To": "Jingjing Wu <jingjing.wu@intel.com>", "Date": "Mon, 20 Apr 2015 16:11:43 +0200", "Message-Id": "<1429539103-15885-1-git-send-email-thomas.monjalon@6wind.com>", "X-Mailer": "git-send-email 2.2.2", "Cc": "dev@dpdk.org", "Subject": "[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 <dev.dpdk.org>", "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "It's time to remove this old API.\nIt seems some work is still needed to rely only on eth_ctrl API.\nAt least ixgbe, i40e and testpmd must be fixed.\nJingjing, do you think it's possible to remove all these structures\nfrom rte_ethdev.h?\n\nThanks\n\n---\n lib/librte_ether/rte_ethdev.c | 260 -------------------------\n lib/librte_ether/rte_ethdev.h | 399 --------------------------------------\n lib/librte_pmd_enic/enic_ethdev.c | 1 -\n lib/librte_pmd_mlx4/mlx4.c | 7 -\n 4 files changed, 667 deletions(-)", "diff": "diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c\nindex e20cca5..65173e7 100644\n--- a/lib/librte_ether/rte_ethdev.c\n+++ b/lib/librte_ether/rte_ethdev.c\n@@ -2098,266 +2098,6 @@ rte_eth_dev_set_vlan_pvid(uint8_t port_id, uint16_t pvid, int on)\n }\n \n int\n-rte_eth_dev_fdir_add_signature_filter(uint8_t port_id,\n-\t\t\t\t struct rte_fdir_filter *fdir_filter,\n-\t\t\t\t uint8_t queue)\n-{\n-\tstruct rte_eth_dev *dev;\n-\n-\tif (!rte_eth_dev_is_valid_port(port_id)) {\n-\t\tPMD_DEBUG_TRACE(\"Invalid port_id=%d\\n\", port_id);\n-\t\treturn (-ENODEV);\n-\t}\n-\n-\tdev = &rte_eth_devices[port_id];\n-\n-\tif (dev->data->dev_conf.fdir_conf.mode != RTE_FDIR_MODE_SIGNATURE) {\n-\t\tPMD_DEBUG_TRACE(\"port %d: invalid FDIR mode=%u\\n\",\n-\t\t\t\tport_id, dev->data->dev_conf.fdir_conf.mode);\n-\t\treturn (-ENOSYS);\n-\t}\n-\n-\tif ((fdir_filter->l4type == RTE_FDIR_L4TYPE_SCTP\n-\t || fdir_filter->l4type == RTE_FDIR_L4TYPE_NONE)\n-\t && (fdir_filter->port_src || fdir_filter->port_dst)) {\n-\t\tPMD_DEBUG_TRACE(\" Port are meaningless for SCTP and \" \\\n-\t\t\t\t\"None l4type, source & destinations ports \" \\\n-\t\t\t\t\"should be null!\\n\");\n-\t\treturn (-EINVAL);\n-\t}\n-\n-\tFUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_add_signature_filter, -ENOTSUP);\n-\treturn (*dev->dev_ops->fdir_add_signature_filter)(dev, fdir_filter,\n-\t\t\t\t\t\t\t\tqueue);\n-}\n-\n-int\n-rte_eth_dev_fdir_update_signature_filter(uint8_t port_id,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_filter,\n-\t\t\t\t\t uint8_t queue)\n-{\n-\tstruct rte_eth_dev *dev;\n-\n-\tif (!rte_eth_dev_is_valid_port(port_id)) {\n-\t\tPMD_DEBUG_TRACE(\"Invalid port_id=%d\\n\", port_id);\n-\t\treturn (-ENODEV);\n-\t}\n-\n-\tdev = &rte_eth_devices[port_id];\n-\n-\tif (dev->data->dev_conf.fdir_conf.mode != RTE_FDIR_MODE_SIGNATURE) {\n-\t\tPMD_DEBUG_TRACE(\"port %d: invalid FDIR mode=%u\\n\",\n-\t\t\t\tport_id, dev->data->dev_conf.fdir_conf.mode);\n-\t\treturn (-ENOSYS);\n-\t}\n-\n-\tif ((fdir_filter->l4type == RTE_FDIR_L4TYPE_SCTP\n-\t || fdir_filter->l4type == RTE_FDIR_L4TYPE_NONE)\n-\t && (fdir_filter->port_src || fdir_filter->port_dst)) {\n-\t\tPMD_DEBUG_TRACE(\" Port are meaningless for SCTP and \" \\\n-\t\t\t\t\"None l4type, source & destinations ports \" \\\n-\t\t\t\t\"should be null!\\n\");\n-\t\treturn (-EINVAL);\n-\t}\n-\n-\tFUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_update_signature_filter, -ENOTSUP);\n-\treturn (*dev->dev_ops->fdir_update_signature_filter)(dev, fdir_filter,\n-\t\t\t\t\t\t\t\tqueue);\n-\n-}\n-\n-int\n-rte_eth_dev_fdir_remove_signature_filter(uint8_t port_id,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_filter)\n-{\n-\tstruct rte_eth_dev *dev;\n-\n-\tif (!rte_eth_dev_is_valid_port(port_id)) {\n-\t\tPMD_DEBUG_TRACE(\"Invalid port_id=%d\\n\", port_id);\n-\t\treturn (-ENODEV);\n-\t}\n-\n-\tdev = &rte_eth_devices[port_id];\n-\n-\tif (dev->data->dev_conf.fdir_conf.mode != RTE_FDIR_MODE_SIGNATURE) {\n-\t\tPMD_DEBUG_TRACE(\"port %d: invalid FDIR mode=%u\\n\",\n-\t\t\t\tport_id, dev->data->dev_conf.fdir_conf.mode);\n-\t\treturn (-ENOSYS);\n-\t}\n-\n-\tif ((fdir_filter->l4type == RTE_FDIR_L4TYPE_SCTP\n-\t || fdir_filter->l4type == RTE_FDIR_L4TYPE_NONE)\n-\t && (fdir_filter->port_src || fdir_filter->port_dst)) {\n-\t\tPMD_DEBUG_TRACE(\" Port are meaningless for SCTP and \" \\\n-\t\t\t\t\"None l4type source & destinations ports \" \\\n-\t\t\t\t\"should be null!\\n\");\n-\t\treturn (-EINVAL);\n-\t}\n-\n-\tFUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_remove_signature_filter, -ENOTSUP);\n-\treturn (*dev->dev_ops->fdir_remove_signature_filter)(dev, fdir_filter);\n-}\n-\n-int\n-rte_eth_dev_fdir_get_infos(uint8_t port_id, struct rte_eth_fdir *fdir)\n-{\n-\tstruct rte_eth_dev *dev;\n-\n-\tif (!rte_eth_dev_is_valid_port(port_id)) {\n-\t\tPMD_DEBUG_TRACE(\"Invalid port_id=%d\\n\", port_id);\n-\t\treturn (-ENODEV);\n-\t}\n-\n-\tdev = &rte_eth_devices[port_id];\n-\tif (! (dev->data->dev_conf.fdir_conf.mode)) {\n-\t\tPMD_DEBUG_TRACE(\"port %d: pkt-filter disabled\\n\", port_id);\n-\t\treturn (-ENOSYS);\n-\t}\n-\n-\tFUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_infos_get, -ENOTSUP);\n-\n-\t(*dev->dev_ops->fdir_infos_get)(dev, fdir);\n-\treturn (0);\n-}\n-\n-int\n-rte_eth_dev_fdir_add_perfect_filter(uint8_t port_id,\n-\t\t\t\t struct rte_fdir_filter *fdir_filter,\n-\t\t\t\t uint16_t soft_id, uint8_t queue,\n-\t\t\t\t uint8_t drop)\n-{\n-\tstruct rte_eth_dev *dev;\n-\n-\tif (!rte_eth_dev_is_valid_port(port_id)) {\n-\t\tPMD_DEBUG_TRACE(\"Invalid port_id=%d\\n\", port_id);\n-\t\treturn (-ENODEV);\n-\t}\n-\n-\tdev = &rte_eth_devices[port_id];\n-\n-\tif (dev->data->dev_conf.fdir_conf.mode != RTE_FDIR_MODE_PERFECT) {\n-\t\tPMD_DEBUG_TRACE(\"port %d: invalid FDIR mode=%u\\n\",\n-\t\t\t\tport_id, dev->data->dev_conf.fdir_conf.mode);\n-\t\treturn (-ENOSYS);\n-\t}\n-\n-\tif ((fdir_filter->l4type == RTE_FDIR_L4TYPE_SCTP\n-\t || fdir_filter->l4type == RTE_FDIR_L4TYPE_NONE)\n-\t && (fdir_filter->port_src || fdir_filter->port_dst)) {\n-\t\tPMD_DEBUG_TRACE(\" Port are meaningless for SCTP and \" \\\n-\t\t\t\t\"None l4type, source & destinations ports \" \\\n-\t\t\t\t\"should be null!\\n\");\n-\t\treturn (-EINVAL);\n-\t}\n-\n-\t/* For now IPv6 is not supported with perfect filter */\n-\tif (fdir_filter->iptype == RTE_FDIR_IPTYPE_IPV6)\n-\t\treturn (-ENOTSUP);\n-\n-\tFUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_add_perfect_filter, -ENOTSUP);\n-\treturn (*dev->dev_ops->fdir_add_perfect_filter)(dev, fdir_filter,\n-\t\t\t\t\t\t\t\tsoft_id, queue,\n-\t\t\t\t\t\t\t\tdrop);\n-}\n-\n-int\n-rte_eth_dev_fdir_update_perfect_filter(uint8_t port_id,\n-\t\t\t\t struct rte_fdir_filter *fdir_filter,\n-\t\t\t\t uint16_t soft_id, uint8_t queue,\n-\t\t\t\t uint8_t drop)\n-{\n-\tstruct rte_eth_dev *dev;\n-\n-\tif (!rte_eth_dev_is_valid_port(port_id)) {\n-\t\tPMD_DEBUG_TRACE(\"Invalid port_id=%d\\n\", port_id);\n-\t\treturn (-ENODEV);\n-\t}\n-\n-\tdev = &rte_eth_devices[port_id];\n-\n-\tif (dev->data->dev_conf.fdir_conf.mode != RTE_FDIR_MODE_PERFECT) {\n-\t\tPMD_DEBUG_TRACE(\"port %d: invalid FDIR mode=%u\\n\",\n-\t\t\t\tport_id, dev->data->dev_conf.fdir_conf.mode);\n-\t\treturn (-ENOSYS);\n-\t}\n-\n-\tif ((fdir_filter->l4type == RTE_FDIR_L4TYPE_SCTP\n-\t || fdir_filter->l4type == RTE_FDIR_L4TYPE_NONE)\n-\t && (fdir_filter->port_src || fdir_filter->port_dst)) {\n-\t\tPMD_DEBUG_TRACE(\" Port are meaningless for SCTP and \" \\\n-\t\t\t\t\"None l4type, source & destinations ports \" \\\n-\t\t\t\t\"should be null!\\n\");\n-\t\treturn (-EINVAL);\n-\t}\n-\n-\t/* For now IPv6 is not supported with perfect filter */\n-\tif (fdir_filter->iptype == RTE_FDIR_IPTYPE_IPV6)\n-\t\treturn (-ENOTSUP);\n-\n-\tFUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_update_perfect_filter, -ENOTSUP);\n-\treturn (*dev->dev_ops->fdir_update_perfect_filter)(dev, fdir_filter,\n-\t\t\t\t\t\t\tsoft_id, queue, drop);\n-}\n-\n-int\n-rte_eth_dev_fdir_remove_perfect_filter(uint8_t port_id,\n-\t\t\t\t struct rte_fdir_filter *fdir_filter,\n-\t\t\t\t uint16_t soft_id)\n-{\n-\tstruct rte_eth_dev *dev;\n-\n-\tif (!rte_eth_dev_is_valid_port(port_id)) {\n-\t\tPMD_DEBUG_TRACE(\"Invalid port_id=%d\\n\", port_id);\n-\t\treturn (-ENODEV);\n-\t}\n-\n-\tdev = &rte_eth_devices[port_id];\n-\n-\tif (dev->data->dev_conf.fdir_conf.mode != RTE_FDIR_MODE_PERFECT) {\n-\t\tPMD_DEBUG_TRACE(\"port %d: invalid FDIR mode=%u\\n\",\n-\t\t\t\tport_id, dev->data->dev_conf.fdir_conf.mode);\n-\t\treturn (-ENOSYS);\n-\t}\n-\n-\tif ((fdir_filter->l4type == RTE_FDIR_L4TYPE_SCTP\n-\t || fdir_filter->l4type == RTE_FDIR_L4TYPE_NONE)\n-\t && (fdir_filter->port_src || fdir_filter->port_dst)) {\n-\t\tPMD_DEBUG_TRACE(\" Port are meaningless for SCTP and \" \\\n-\t\t\t\t\"None l4type, source & destinations ports \" \\\n-\t\t\t\t\"should be null!\\n\");\n-\t\treturn (-EINVAL);\n-\t}\n-\n-\t/* For now IPv6 is not supported with perfect filter */\n-\tif (fdir_filter->iptype == RTE_FDIR_IPTYPE_IPV6)\n-\t\treturn (-ENOTSUP);\n-\n-\tFUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_remove_perfect_filter, -ENOTSUP);\n-\treturn (*dev->dev_ops->fdir_remove_perfect_filter)(dev, fdir_filter,\n-\t\t\t\t\t\t\t\tsoft_id);\n-}\n-\n-int\n-rte_eth_dev_fdir_set_masks(uint8_t port_id, struct rte_fdir_masks *fdir_mask)\n-{\n-\tstruct rte_eth_dev *dev;\n-\n-\tif (!rte_eth_dev_is_valid_port(port_id)) {\n-\t\tPMD_DEBUG_TRACE(\"Invalid port_id=%d\\n\", port_id);\n-\t\treturn (-ENODEV);\n-\t}\n-\n-\tdev = &rte_eth_devices[port_id];\n-\tif (! (dev->data->dev_conf.fdir_conf.mode)) {\n-\t\tPMD_DEBUG_TRACE(\"port %d: pkt-filter disabled\\n\", port_id);\n-\t\treturn (-ENOSYS);\n-\t}\n-\n-\tFUNC_PTR_OR_ERR_RET(*dev->dev_ops->fdir_set_masks, -ENOTSUP);\n-\treturn (*dev->dev_ops->fdir_set_masks)(dev, fdir_mask);\n-}\n-\n-int\n rte_eth_dev_flow_ctrl_get(uint8_t port_id, struct rte_eth_fc_conf *fc_conf)\n {\n \tstruct rte_eth_dev *dev;\ndiff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h\nindex 4648290..041aa32 100644\n--- a/lib/librte_ether/rte_ethdev.h\n+++ b/lib/librte_ether/rte_ethdev.h\n@@ -672,42 +672,6 @@ struct rte_eth_pfc_conf {\n };\n \n /**\n- * Memory space that can be configured to store Flow Director filters\n- * in the board memory.\n- */\n-enum rte_fdir_pballoc_type {\n-\tRTE_FDIR_PBALLOC_64K = 0, /**< 64k. */\n-\tRTE_FDIR_PBALLOC_128K, /**< 128k. */\n-\tRTE_FDIR_PBALLOC_256K, /**< 256k. */\n-};\n-\n-/**\n- * Select report mode of FDIR hash information in RX descriptors.\n- */\n-enum rte_fdir_status_mode {\n-\tRTE_FDIR_NO_REPORT_STATUS = 0, /**< Never report FDIR hash. */\n-\tRTE_FDIR_REPORT_STATUS, /**< Only report FDIR hash for matching pkts. */\n-\tRTE_FDIR_REPORT_STATUS_ALWAYS, /**< Always report FDIR hash. */\n-};\n-\n-/**\n- * A structure used to configure the Flow Director (FDIR) feature\n- * of an Ethernet port.\n- *\n- * If mode is RTE_FDIR_DISABLE, the pballoc value is ignored.\n- */\n-struct rte_fdir_conf {\n-\tenum rte_fdir_mode mode; /**< Flow Director mode. */\n-\tenum rte_fdir_pballoc_type pballoc; /**< Space for FDIR filters. */\n-\tenum rte_fdir_status_mode status; /**< How to report FDIR hash. */\n-\t/** RX queue of packets matching a \"drop\" filter in perfect mode. */\n-\tuint8_t drop_queue;\n-\tstruct rte_eth_fdir_masks mask;\n-\tstruct rte_eth_fdir_flex_conf flex_conf;\n-\t/**< Flex payload configuration. */\n-};\n-\n-/**\n * UDP tunneling configuration.\n */\n struct rte_eth_udp_tunnel {\n@@ -734,96 +698,6 @@ enum rte_iptype {\n };\n \n /**\n- * A structure used to define a FDIR packet filter.\n- */\n-struct rte_fdir_filter {\n-\tuint16_t flex_bytes; /**< Flex bytes value to match. */\n-\tuint16_t vlan_id; /**< VLAN ID value to match, 0 otherwise. */\n-\tuint16_t port_src; /**< Source port to match, 0 otherwise. */\n-\tuint16_t port_dst; /**< Destination port to match, 0 otherwise. */\n-\tunion {\n-\t\tuint32_t ipv4_addr; /**< IPv4 source address to match. */\n-\t\tuint32_t ipv6_addr[4]; /**< IPv6 source address to match. */\n-\t} ip_src; /**< IPv4/IPv6 source address to match (union of above). */\n-\tunion {\n-\t\tuint32_t ipv4_addr; /**< IPv4 destination address to match. */\n-\t\tuint32_t ipv6_addr[4]; /**< IPv6 destination address to match */\n-\t} ip_dst; /**< IPv4/IPv6 destination address to match (union of above). */\n-\tenum rte_l4type l4type; /**< l4type to match: NONE/UDP/TCP/SCTP. */\n-\tenum rte_iptype iptype; /**< IP packet type to match: IPv4 or IPv6. */\n-};\n-\n-/**\n- * A structure used to configure FDIR masks that are used by the device\n- * to match the various fields of RX packet headers.\n- * @note The only_ip_flow field has the opposite meaning compared to other\n- * masks!\n- */\n-struct rte_fdir_masks {\n-\t/** When set to 1, packet l4type is \\b NOT relevant in filters, and\n-\t source and destination port masks must be set to zero. */\n-\tuint8_t only_ip_flow;\n-\t/** If set to 1, vlan_id is relevant in filters. */\n-\tuint8_t vlan_id;\n-\t/** If set to 1, vlan_prio is relevant in filters. */\n-\tuint8_t vlan_prio;\n-\t/** If set to 1, flexbytes is relevant in filters. */\n-\tuint8_t flexbytes;\n-\t/** If set to 1, set the IPv6 masks. Otherwise set the IPv4 masks. */\n-\tuint8_t set_ipv6_mask;\n-\t/** When set to 1, comparison of destination IPv6 address with IP6AT\n-\t registers is meaningful. */\n-\tuint8_t comp_ipv6_dst;\n-\t/** Mask of Destination IPv4 Address. All bits set to 1 define the\n-\t relevant bits to use in the destination address of an IPv4 packet\n-\t when matching it against FDIR filters. */\n-\tuint32_t dst_ipv4_mask;\n-\t/** Mask of Source IPv4 Address. All bits set to 1 define\n-\t the relevant bits to use in the source address of an IPv4 packet\n-\t when matching it against FDIR filters. */\n-\tuint32_t src_ipv4_mask;\n-\t/** Mask of Source IPv6 Address. All bits set to 1 define the\n-\t relevant BYTES to use in the source address of an IPv6 packet\n-\t when matching it against FDIR filters. */\n-\tuint16_t dst_ipv6_mask;\n-\t/** Mask of Destination IPv6 Address. All bits set to 1 define the\n-\t relevant BYTES to use in the destination address of an IPv6 packet\n-\t when matching it against FDIR filters. */\n-\tuint16_t src_ipv6_mask;\n-\t/** Mask of Source Port. All bits set to 1 define the relevant\n-\t bits to use in the source port of an IP packets when matching it\n-\t against FDIR filters. */\n-\tuint16_t src_port_mask;\n-\t/** Mask of Destination Port. All bits set to 1 define the relevant\n-\t bits to use in the destination port of an IP packet when matching it\n-\t against FDIR filters. */\n-\tuint16_t dst_port_mask;\n-};\n-\n-/**\n- * A structure used to report the status of the flow director filters in use.\n- */\n-struct rte_eth_fdir {\n-\t/** Number of filters with collision indication. */\n-\tuint16_t collision;\n-\t/** Number of free (non programmed) filters. */\n-\tuint16_t free;\n-\t/** The Lookup hash value of the added filter that updated the value\n-\t of the MAXLEN field */\n-\tuint16_t maxhash;\n-\t/** Longest linked list of filters in the table. */\n-\tuint8_t maxlen;\n-\t/** Number of added filters. */\n-\tuint64_t add;\n-\t/** Number of removed filters. */\n-\tuint64_t remove;\n-\t/** Number of failed added filters (no more space in device). */\n-\tuint64_t f_add;\n-\t/** Number of failed removed filters. */\n-\tuint64_t f_remove;\n-};\n-\n-/**\n * A structure used to enable/disable specific device interrupts.\n */\n struct rte_intr_conf {\n@@ -868,7 +742,6 @@ struct rte_eth_conf {\n \t/** Currently,Priority Flow Control(PFC) are supported,if DCB with PFC\n \t is needed,and the variable must be set ETH_DCB_PFC_SUPPORT. */\n \tuint32_t dcb_capability_en;\n-\tstruct rte_fdir_conf fdir_conf; /**< FDIR configuration. */\n \tstruct rte_intr_conf intr_conf; /**< Interrupt mode configuration. */\n };\n \n@@ -1079,45 +952,6 @@ typedef uint16_t (*eth_tx_burst_t)(void *txq,\n \t\t\t\t uint16_t nb_pkts);\n /**< @internal Send output packets on a transmit queue of an Ethernet device. */\n \n-typedef int (*fdir_add_signature_filter_t)(struct rte_eth_dev *dev,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_ftr,\n-\t\t\t\t\t uint8_t rx_queue);\n-/**< @internal Setup a new signature filter rule on an Ethernet device */\n-\n-typedef int (*fdir_update_signature_filter_t)(struct rte_eth_dev *dev,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_ftr,\n-\t\t\t\t\t uint8_t rx_queue);\n-/**< @internal Update a signature filter rule on an Ethernet device */\n-\n-typedef int (*fdir_remove_signature_filter_t)(struct rte_eth_dev *dev,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_ftr);\n-/**< @internal Remove a signature filter rule on an Ethernet device */\n-\n-typedef void (*fdir_infos_get_t)(struct rte_eth_dev *dev,\n-\t\t\t\t struct rte_eth_fdir *fdir);\n-/**< @internal Get information about fdir status */\n-\n-typedef int (*fdir_add_perfect_filter_t)(struct rte_eth_dev *dev,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_ftr,\n-\t\t\t\t\t uint16_t soft_id, uint8_t rx_queue,\n-\t\t\t\t\t uint8_t drop);\n-/**< @internal Setup a new perfect filter rule on an Ethernet device */\n-\n-typedef int (*fdir_update_perfect_filter_t)(struct rte_eth_dev *dev,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_ftr,\n-\t\t\t\t\t uint16_t soft_id, uint8_t rx_queue,\n-\t\t\t\t\t uint8_t drop);\n-/**< @internal Update a perfect filter rule on an Ethernet device */\n-\n-typedef int (*fdir_remove_perfect_filter_t)(struct rte_eth_dev *dev,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_ftr,\n-\t\t\t\t\t uint16_t soft_id);\n-/**< @internal Remove a perfect filter rule on an Ethernet device */\n-\n-typedef int (*fdir_set_masks_t)(struct rte_eth_dev *dev,\n-\t\t\t\tstruct rte_fdir_masks *fdir_masks);\n-/**< @internal Setup flow director masks on an Ethernet device */\n-\n typedef int (*flow_ctrl_get_t)(struct rte_eth_dev *dev,\n \t\t\t struct rte_eth_fc_conf *fc_conf);\n /**< @internal Get current flow control parameter on an Ethernet device */\n@@ -1346,23 +1180,6 @@ struct eth_dev_ops {\n \teth_udp_tunnel_del_t udp_tunnel_del;\n \teth_set_queue_rate_limit_t set_queue_rate_limit; /**< Set queue rate limit */\n \teth_set_vf_rate_limit_t set_vf_rate_limit; /**< Set VF rate limit */\n-\n-\t/** Add a signature filter. */\n-\tfdir_add_signature_filter_t fdir_add_signature_filter;\n-\t/** Update a signature filter. */\n-\tfdir_update_signature_filter_t fdir_update_signature_filter;\n-\t/** Remove a signature filter. */\n-\tfdir_remove_signature_filter_t fdir_remove_signature_filter;\n-\t/** Get information about FDIR status. */\n-\tfdir_infos_get_t fdir_infos_get;\n-\t/** Add a perfect filter. */\n-\tfdir_add_perfect_filter_t fdir_add_perfect_filter;\n-\t/** Update a perfect filter. */\n-\tfdir_update_perfect_filter_t fdir_update_perfect_filter;\n-\t/** Remove a perfect filter. */\n-\tfdir_remove_perfect_filter_t fdir_remove_perfect_filter;\n-\t/** Setup masks for FDIR filtering. */\n-\tfdir_set_masks_t fdir_set_masks;\n \t/** Update redirection table. */\n \treta_update_t reta_update;\n \t/** Query redirection table. */\n@@ -2579,222 +2396,6 @@ rte_eth_tx_burst(uint8_t port_id, uint16_t queue_id,\n #endif\n \n /**\n- * Setup a new signature filter rule on an Ethernet device\n- *\n- * @param port_id\n- * The port identifier of the Ethernet device.\n- * @param fdir_filter\n- * The pointer to the fdir filter structure describing the signature filter\n- * rule.\n- * The *rte_fdir_filter* structure includes the values of the different fields\n- * to match: source and destination IP addresses, vlan id, flexbytes, source\n- * and destination ports, and so on.\n- * @param rx_queue\n- * The index of the RX queue where to store RX packets matching the added\n- * signature filter defined in fdir_filter.\n- * @return\n- * - (0) if successful.\n- * - (-ENOTSUP) if hardware doesn't support flow director mode.\n- * - (-ENODEV) if *port_id* invalid.\n- * - (-ENOSYS) if the FDIR mode is not configured in signature mode\n- * on *port_id*.\n- * - (-EINVAL) if the fdir_filter information is not correct.\n- */\n-int rte_eth_dev_fdir_add_signature_filter(uint8_t port_id,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_filter,\n-\t\t\t\t\t uint8_t rx_queue);\n-\n-/**\n- * Update a signature filter rule on an Ethernet device.\n- * If the rule doesn't exits, it is created.\n- *\n- * @param port_id\n- * The port identifier of the Ethernet device.\n- * @param fdir_ftr\n- * The pointer to the structure describing the signature filter rule.\n- * The *rte_fdir_filter* structure includes the values of the different fields\n- * to match: source and destination IP addresses, vlan id, flexbytes, source\n- * and destination ports, and so on.\n- * @param rx_queue\n- * The index of the RX queue where to store RX packets matching the added\n- * signature filter defined in fdir_ftr.\n- * @return\n- * - (0) if successful.\n- * - (-ENOTSUP) if hardware doesn't support flow director mode.\n- * - (-ENODEV) if *port_id* invalid.\n- * - (-ENOSYS) if the flow director mode is not configured in signature mode\n- * on *port_id*.\n- * - (-EINVAL) if the fdir_filter information is not correct.\n- */\n-int rte_eth_dev_fdir_update_signature_filter(uint8_t port_id,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_ftr,\n-\t\t\t\t\t uint8_t rx_queue);\n-\n-/**\n- * Remove a signature filter rule on an Ethernet device.\n- *\n- * @param port_id\n- * The port identifier of the Ethernet device.\n- * @param fdir_ftr\n- * The pointer to the structure describing the signature filter rule.\n- * The *rte_fdir_filter* structure includes the values of the different fields\n- * to match: source and destination IP addresses, vlan id, flexbytes, source\n- * and destination ports, and so on.\n- * @return\n- * - (0) if successful.\n- * - (-ENOTSUP) if hardware doesn't support flow director mode.\n- * - (-ENODEV) if *port_id* invalid.\n- * - (-ENOSYS) if the flow director mode is not configured in signature mode\n- * on *port_id*.\n- * - (-EINVAL) if the fdir_filter information is not correct.\n- */\n-int rte_eth_dev_fdir_remove_signature_filter(uint8_t port_id,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_ftr);\n-\n-/**\n- * Retrieve the flow director information of an Ethernet device.\n- *\n- * @param port_id\n- * The port identifier of the Ethernet device.\n- * @param fdir\n- * A pointer to a structure of type *rte_eth_dev_fdir* to be filled with\n- * the flow director information of the Ethernet device.\n- * @return\n- * - (0) if successful.\n- * - (-ENOTSUP) if hardware doesn't support flow director mode.\n- * - (-ENODEV) if *port_id* invalid.\n- * - (-ENOSYS) if the flow director mode is not configured on *port_id*.\n- */\n-int rte_eth_dev_fdir_get_infos(uint8_t port_id, struct rte_eth_fdir *fdir);\n-\n-/**\n- * Add a new perfect filter rule on an Ethernet device.\n- *\n- * @param port_id\n- * The port identifier of the Ethernet device.\n- * @param fdir_filter\n- * The pointer to the structure describing the perfect filter rule.\n- * The *rte_fdir_filter* structure includes the values of the different fields\n- * to match: source and destination IP addresses, vlan id, flexbytes, source\n- * and destination ports, and so on.\n- * IPv6 are not supported.\n- * @param soft_id\n- * The 16-bit value supplied in the field hash.fdir.id of mbuf for RX\n- * packets matching the perfect filter.\n- * @param rx_queue\n- * The index of the RX queue where to store RX packets matching the added\n- * perfect filter defined in fdir_filter.\n- * @param drop\n- * If drop is set to 1, matching RX packets are stored into the RX drop\n- * queue defined in the rte_fdir_conf.\n- * @return\n- * - (0) if successful.\n- * - (-ENOTSUP) if hardware doesn't support flow director mode.\n- * - (-ENODEV) if *port_id* invalid.\n- * - (-ENOSYS) if the flow director mode is not configured in perfect mode\n- * on *port_id*.\n- * - (-EINVAL) if the fdir_filter information is not correct.\n- */\n-int rte_eth_dev_fdir_add_perfect_filter(uint8_t port_id,\n-\t\t\t\t\tstruct rte_fdir_filter *fdir_filter,\n-\t\t\t\t\tuint16_t soft_id, uint8_t rx_queue,\n-\t\t\t\t\tuint8_t drop);\n-\n-/**\n- * Update a perfect filter rule on an Ethernet device.\n- * If the rule doesn't exits, it is created.\n- *\n- * @param port_id\n- * The port identifier of the Ethernet device.\n- * @param fdir_filter\n- * The pointer to the structure describing the perfect filter rule.\n- * The *rte_fdir_filter* structure includes the values of the different fields\n- * to match: source and destination IP addresses, vlan id, flexbytes, source\n- * and destination ports, and so on.\n- * IPv6 are not supported.\n- * @param soft_id\n- * The 16-bit value supplied in the field hash.fdir.id of mbuf for RX\n- * packets matching the perfect filter.\n- * @param rx_queue\n- * The index of the RX queue where to store RX packets matching the added\n- * perfect filter defined in fdir_filter.\n- * @param drop\n- * If drop is set to 1, matching RX packets are stored into the RX drop\n- * queue defined in the rte_fdir_conf.\n- * @return\n- * - (0) if successful.\n- * - (-ENOTSUP) if hardware doesn't support flow director mode.\n- * - (-ENODEV) if *port_id* invalid.\n- * - (-ENOSYS) if the flow director mode is not configured in perfect mode\n- * on *port_id*.\n- * - (-EINVAL) if the fdir_filter information is not correct.\n- */\n-int rte_eth_dev_fdir_update_perfect_filter(uint8_t port_id,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_filter,\n-\t\t\t\t\t uint16_t soft_id, uint8_t rx_queue,\n-\t\t\t\t\t uint8_t drop);\n-\n-/**\n- * Remove a perfect filter rule on an Ethernet device.\n- *\n- * @param port_id\n- * The port identifier of the Ethernet device.\n- * @param fdir_filter\n- * The pointer to the structure describing the perfect filter rule.\n- * The *rte_fdir_filter* structure includes the values of the different fields\n- * to match: source and destination IP addresses, vlan id, flexbytes, source\n- * and destination ports, and so on.\n- * IPv6 are not supported.\n- * @param soft_id\n- * The soft_id value provided when adding/updating the removed filter.\n- * @return\n- * - (0) if successful.\n- * - (-ENOTSUP) if hardware doesn't support flow director mode.\n- * - (-ENODEV) if *port_id* invalid.\n- * - (-ENOSYS) if the flow director mode is not configured in perfect mode\n- * on *port_id*.\n- * - (-EINVAL) if the fdir_filter information is not correct.\n- */\n-int rte_eth_dev_fdir_remove_perfect_filter(uint8_t port_id,\n-\t\t\t\t\t struct rte_fdir_filter *fdir_filter,\n-\t\t\t\t\t uint16_t soft_id);\n-/**\n- * Configure globally the masks for flow director mode for an Ethernet device.\n- * For example, the device can match packets with only the first 24 bits of\n- * the IPv4 source address.\n- *\n- * The following fields can be masked: IPv4 addresses and L4 port numbers.\n- * The following fields can be either enabled or disabled completely for the\n- * matching functionality: VLAN ID tag; VLAN Priority + CFI bit; Flexible 2-byte\n- * tuple.\n- * IPv6 masks are not supported.\n- *\n- * All filters must comply with the masks previously configured.\n- * For example, with a mask equal to 255.255.255.0 for the source IPv4 address,\n- * all IPv4 filters must be created with a source IPv4 address that fits the\n- * \"X.X.X.0\" format.\n- *\n- * This function flushes all filters that have been previously added in\n- * the device.\n- *\n- * @param port_id\n- * The port identifier of the Ethernet device.\n- * @param fdir_mask\n- * The pointer to the fdir mask structure describing relevant headers fields\n- * and relevant bits to use when matching packets addresses and ports.\n- * IPv6 masks are not supported.\n- * @return\n- * - (0) if successful.\n- * - (-ENOTSUP) if hardware doesn't support flow director mode.\n- * - (-ENODEV) if *port_id* invalid.\n- * - (-ENOSYS) if the flow director mode is not configured in perfect\n- * mode on *port_id*.\n- * - (-EINVAL) if the fdir_filter information is not correct\n- */\n-int rte_eth_dev_fdir_set_masks(uint8_t port_id,\n-\t\t\t struct rte_fdir_masks *fdir_mask);\n-\n-/**\n * The eth device event type for interrupt, and maybe others in the future.\n */\n enum rte_eth_event_type {\ndiff --git a/lib/librte_pmd_enic/enic_ethdev.c b/lib/librte_pmd_enic/enic_ethdev.c\nindex 63a594d..bdb6801 100644\n--- a/lib/librte_pmd_enic/enic_ethdev.c\n+++ b/lib/librte_pmd_enic/enic_ethdev.c\n@@ -576,7 +576,6 @@ static const struct eth_dev_ops enicpmd_eth_dev_ops = {\n \t.priority_flow_ctrl_set = NULL,\n \t.mac_addr_add = enicpmd_add_mac_addr,\n \t.mac_addr_remove = enicpmd_remove_mac_addr,\n-\t.fdir_set_masks = NULL,\n \t.filter_ctrl = enicpmd_dev_filter_ctrl,\n };\n \ndiff --git a/lib/librte_pmd_mlx4/mlx4.c b/lib/librte_pmd_mlx4/mlx4.c\nindex 024282a..6ba5a6b 100644\n--- a/lib/librte_pmd_mlx4/mlx4.c\n+++ b/lib/librte_pmd_mlx4/mlx4.c\n@@ -4192,13 +4192,6 @@ static const struct eth_dev_ops mlx4_dev_ops = {\n \t.mac_addr_remove = mlx4_mac_addr_remove,\n \t.mac_addr_add = mlx4_mac_addr_add,\n \t.mtu_set = mlx4_dev_set_mtu,\n-\t.fdir_add_signature_filter = NULL,\n-\t.fdir_update_signature_filter = NULL,\n-\t.fdir_remove_signature_filter = NULL,\n-\t.fdir_add_perfect_filter = NULL,\n-\t.fdir_update_perfect_filter = NULL,\n-\t.fdir_remove_perfect_filter = NULL,\n-\t.fdir_set_masks = NULL\n };\n \n /**\n", "prefixes": [ "dpdk-dev", "RFC" ] }{ "id": 4378, "url": "