Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/81259/?format=api
http://patches.dpdk.org/api/patches/81259/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/1603030152-13451-5-git-send-email-arybchenko@solarflare.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": "<1603030152-13451-5-git-send-email-arybchenko@solarflare.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1603030152-13451-5-git-send-email-arybchenko@solarflare.com", "date": "2020-10-18T14:09:01", "name": "[04/14] ethdev: remove legacy flexible filter type support", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "62fc84e341a11fa70f7e711e80571f2a459e013d", "submitter": { "id": 607, "url": "http://patches.dpdk.org/api/people/607/?format=api", "name": "Andrew Rybchenko", "email": "arybchenko@solarflare.com" }, "delegate": { "id": 319, "url": "http://patches.dpdk.org/api/users/319/?format=api", "username": "fyigit", "first_name": "Ferruh", "last_name": "Yigit", "email": "ferruh.yigit@amd.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/1603030152-13451-5-git-send-email-arybchenko@solarflare.com/mbox/", "series": [ { "id": 13082, "url": "http://patches.dpdk.org/api/series/13082/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=13082", "date": "2020-10-18T14:08:57", "name": "ethdev: remove legacy filter API", "version": 1, "mbox": "http://patches.dpdk.org/series/13082/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/81259/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/81259/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 1B9ACA04B0;\n\tSun, 18 Oct 2020 16:10:14 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 791B0CA08;\n\tSun, 18 Oct 2020 16:09:30 +0200 (CEST)", "from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com\n [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id 79670C87A\n for <dev@dpdk.org>; Sun, 18 Oct 2020 16:09:26 +0200 (CEST)", "from mx1-us1.ppe-hosted.com (unknown [10.110.50.150])\n by dispatch1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id\n 1754F20087; Sun, 18 Oct 2020 14:09:25 +0000 (UTC)", "from us4-mdac16-62.at1.mdlocal (unknown [10.110.50.155])\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id 155E0800A3;\n Sun, 18 Oct 2020 14:09:25 +0000 (UTC)", "from mx1-us1.ppe-hosted.com (unknown [10.110.50.12])\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id\n 87F64100061;\n Sun, 18 Oct 2020 14:09:24 +0000 (UTC)", "from webmail.solarflare.com (uk.solarflare.com [193.34.186.16])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))\n (No client certificate requested)\n by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id\n 4DFAF4005B;\n Sun, 18 Oct 2020 14:09:24 +0000 (UTC)", "from ukex01.SolarFlarecom.com (10.17.10.4) by\n ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id\n 15.0.1497.2; Sun, 18 Oct 2020 15:09:19 +0100", "from opal.uk.solarflarecom.com (10.17.10.1) by\n ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server id\n 15.0.1497.2 via Frontend Transport; Sun, 18 Oct 2020 15:09:19 +0100", "from ukv-loginhost.uk.solarflarecom.com\n (ukv-loginhost.uk.solarflarecom.com [10.17.10.39])\n by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id 09IE9Jlj002033;\n Sun, 18 Oct 2020 15:09:19 +0100", "from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1])\n by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 31D8F1613A9;\n Sun, 18 Oct 2020 15:09:19 +0100 (BST)" ], "X-Virus-Scanned": "Proofpoint Essentials engine", "From": "Andrew Rybchenko <arybchenko@solarflare.com>", "To": "Wenzhuo Lu <wenzhuo.lu@intel.com>, Beilei Xing <beilei.xing@intel.com>,\n Bernard Iremonger <bernard.iremonger@intel.com>, Ray Kinsella\n <mdr@ashroe.eu>, Neil Horman <nhorman@tuxdriver.com>, Jeff Guo\n <jia.guo@intel.com>, Haiyue Wang <haiyue.wang@intel.com>, Rasesh Mody\n <rmody@marvell.com>, Shahed Shaikh <shshaikh@marvell.com>, Andrew Rybchenko\n <andrew.rybchenko@oktetlabs.ru>", "CC": "<dev@dpdk.org>", "Date": "Sun, 18 Oct 2020 15:09:01 +0100", "Message-ID": "<1603030152-13451-5-git-send-email-arybchenko@solarflare.com>", "X-Mailer": "git-send-email 1.8.3.1", "In-Reply-To": "<1603030152-13451-1-git-send-email-arybchenko@solarflare.com>", "References": "<1603030152-13451-1-git-send-email-arybchenko@solarflare.com>", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-TM-AS-Product-Ver": "SMEX-12.5.0.1300-8.6.1012-25732.003", "X-TM-AS-Result": "No-17.078900-8.000000-10", "X-TMASE-MatchedRID": "WZ4RUs49kiDXhaZsZZP8sDahjZPEodkXY/L2/AZJAWSYkF7ZtFfCU0I9\n 0U6XYOu38XVI39JCRnRuL3ESIrARlyHhSBQfglfsA9lly13c/gHYuVu0X/rOkJGhAvBSa2i/Ceg\n a5Z7JsDGRbYgMp8kCH7FjRXmWmjfVcqDeIxo3t8hPs79gcmEg0HE01tKb2rARVI7KaIl9Nhdo8w\n ucTFrANc2yqQsaXQic1575LJbEh7B+kzNEKbXWo+Pwk3jODTrZnyQFaVgMM2Ag2yVdj3LAROLSd\n VP2tZn5gjiRDGW7Bcy2MJS2H4HaNtGZBRXICgnt6GyDR2ZB+cai8D/o42y/SuQ45nVtPqmx1SNB\n BkEOrj5PJKNFvY5r+b6oBTCBl4wcBZdQz2rkVg5FeAr5guIYJrto11mU6Hl8x5B+7qLBJ+xwcpE\n 9NiP9Xav7P7uHsnluOvlrxAcLL1fDJQPapbvuAihJ5tvbfbyL3FYvKmZiVnMB3LgzIBkuA4O5Tf\n SzrxQ7XIP6Tr+fSxOyc/zO2GdYPJOA1IVKiSC+oS0guoV6SZexq37CBjJNbJsoi2XrUn/JUTdY/\n mdfTXtJKW4mDlJsMbxAi7jPoeEQftwZ3X11IV0=", "X-TM-AS-User-Approved-Sender": "Yes", "X-TM-AS-User-Blocked-Sender": "No", "X-TMASE-Result": "10--17.078900-8.000000", "X-TMASE-Version": "SMEX-12.5.0.1300-8.6.1012-25732.003", "X-MDID": "1603030165-0bIt2C3Jfzmz", "X-PPE-DISP": "1603030165;0bIt2C3Jfzmz", "Subject": "[dpdk-dev] [PATCH 04/14] ethdev: remove legacy flexible filter type\n\tsupport", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "RTE flow API should be used for filtering.\n\nTemporarily preserve helper defines in public interface.\n\nSigned-off-by: Andrew Rybchenko <arybchenko@solarflare.com>\n---\n app/test-pmd/cmdline.c | 195 ---------------------------\n doc/guides/rel_notes/deprecation.rst | 2 +-\n drivers/net/e1000/igb_ethdev.c | 104 --------------\n drivers/net/qede/qede_filter.c | 1 -\n drivers/net/sfc/sfc_ethdev.c | 3 -\n 5 files changed, 1 insertion(+), 304 deletions(-)", "diff": "diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c\nindex f0fe97fb9c..e7e85cf304 100644\n--- a/app/test-pmd/cmdline.c\n+++ b/app/test-pmd/cmdline.c\n@@ -993,11 +993,6 @@ static void cmd_help_long_parsed(void *parsed_result,\n \t\t\t\"syn_filter (port_id) (add|del) priority (high|low) queue (queue_id)\"\n \t\t\t\" Add/Del syn filter.\\n\\n\"\n \n-\t\t\t\"flex_filter (port_id) (add|del) len (len_value)\"\n-\t\t\t\" bytes (bytes_value) mask (mask_value)\"\n-\t\t\t\" priority (prio_value) queue (queue_id)\\n\"\n-\t\t\t\" Add/Del a flex filter.\\n\\n\"\n-\n \t\t\t\"flow_director_filter (port_id) mode IP (add|del|update)\"\n \t\t\t\" flow (ipv4-other|ipv4-frag|ipv6-other|ipv6-frag)\"\n \t\t\t\" src (src_ip_address) dst (dst_ip_address)\"\n@@ -10873,195 +10868,6 @@ cmdline_parse_inst_t cmd_5tuple_filter = {\n \t},\n };\n \n-/* *** ADD/REMOVE A flex FILTER *** */\n-struct cmd_flex_filter_result {\n-\tcmdline_fixed_string_t filter;\n-\tcmdline_fixed_string_t ops;\n-\tportid_t port_id;\n-\tcmdline_fixed_string_t len;\n-\tuint8_t len_value;\n-\tcmdline_fixed_string_t bytes;\n-\tcmdline_fixed_string_t bytes_value;\n-\tcmdline_fixed_string_t mask;\n-\tcmdline_fixed_string_t mask_value;\n-\tcmdline_fixed_string_t priority;\n-\tuint8_t priority_value;\n-\tcmdline_fixed_string_t queue;\n-\tuint16_t queue_id;\n-};\n-\n-static int xdigit2val(unsigned char c)\n-{\n-\tint val;\n-\tif (isdigit(c))\n-\t\tval = c - '0';\n-\telse if (isupper(c))\n-\t\tval = c - 'A' + 10;\n-\telse\n-\t\tval = c - 'a' + 10;\n-\treturn val;\n-}\n-\n-static void\n-cmd_flex_filter_parsed(void *parsed_result,\n-\t\t\t __rte_unused struct cmdline *cl,\n-\t\t\t __rte_unused void *data)\n-{\n-\tint ret = 0;\n-\tstruct rte_eth_flex_filter filter;\n-\tstruct cmd_flex_filter_result *res = parsed_result;\n-\tchar *bytes_ptr, *mask_ptr;\n-\tuint16_t len, i, j = 0;\n-\tchar c;\n-\tint val;\n-\tuint8_t byte = 0;\n-\n-\tif (res->len_value > RTE_FLEX_FILTER_MAXLEN) {\n-\t\tprintf(\"the len exceed the max length 128\\n\");\n-\t\treturn;\n-\t}\n-\tmemset(&filter, 0, sizeof(struct rte_eth_flex_filter));\n-\tfilter.len = res->len_value;\n-\tfilter.priority = res->priority_value;\n-\tfilter.queue = res->queue_id;\n-\tbytes_ptr = res->bytes_value;\n-\tmask_ptr = res->mask_value;\n-\n-\t /* translate bytes string to array. */\n-\tif (bytes_ptr[0] == '0' && ((bytes_ptr[1] == 'x') ||\n-\t\t(bytes_ptr[1] == 'X')))\n-\t\tbytes_ptr += 2;\n-\tlen = strnlen(bytes_ptr, res->len_value * 2);\n-\tif (len == 0 || (len % 8 != 0)) {\n-\t\tprintf(\"please check len and bytes input\\n\");\n-\t\treturn;\n-\t}\n-\tfor (i = 0; i < len; i++) {\n-\t\tc = bytes_ptr[i];\n-\t\tif (isxdigit(c) == 0) {\n-\t\t\t/* invalid characters. */\n-\t\t\tprintf(\"invalid input\\n\");\n-\t\t\treturn;\n-\t\t}\n-\t\tval = xdigit2val(c);\n-\t\tif (i % 2) {\n-\t\t\tbyte |= val;\n-\t\t\tfilter.bytes[j] = byte;\n-\t\t\tprintf(\"bytes[%d]:%02x \", j, filter.bytes[j]);\n-\t\t\tj++;\n-\t\t\tbyte = 0;\n-\t\t} else\n-\t\t\tbyte |= val << 4;\n-\t}\n-\tprintf(\"\\n\");\n-\t /* translate mask string to uint8_t array. */\n-\tif (mask_ptr[0] == '0' && ((mask_ptr[1] == 'x') ||\n-\t\t(mask_ptr[1] == 'X')))\n-\t\tmask_ptr += 2;\n-\tlen = strnlen(mask_ptr, (res->len_value + 3) / 4);\n-\tif (len == 0) {\n-\t\tprintf(\"invalid input\\n\");\n-\t\treturn;\n-\t}\n-\tj = 0;\n-\tbyte = 0;\n-\tfor (i = 0; i < len; i++) {\n-\t\tc = mask_ptr[i];\n-\t\tif (isxdigit(c) == 0) {\n-\t\t\t/* invalid characters. */\n-\t\t\tprintf(\"invalid input\\n\");\n-\t\t\treturn;\n-\t\t}\n-\t\tval = xdigit2val(c);\n-\t\tif (i % 2) {\n-\t\t\tbyte |= val;\n-\t\t\tfilter.mask[j] = byte;\n-\t\t\tprintf(\"mask[%d]:%02x \", j, filter.mask[j]);\n-\t\t\tj++;\n-\t\t\tbyte = 0;\n-\t\t} else\n-\t\t\tbyte |= val << 4;\n-\t}\n-\tprintf(\"\\n\");\n-\n-\tif (!strcmp(res->ops, \"add\"))\n-\t\tret = rte_eth_dev_filter_ctrl(res->port_id,\n-\t\t\t\tRTE_ETH_FILTER_FLEXIBLE,\n-\t\t\t\tRTE_ETH_FILTER_ADD,\n-\t\t\t\t&filter);\n-\telse\n-\t\tret = rte_eth_dev_filter_ctrl(res->port_id,\n-\t\t\t\tRTE_ETH_FILTER_FLEXIBLE,\n-\t\t\t\tRTE_ETH_FILTER_DELETE,\n-\t\t\t\t&filter);\n-\n-\tif (ret < 0)\n-\t\tprintf(\"flex filter setting error: (%s)\\n\", strerror(-ret));\n-}\n-\n-cmdline_parse_token_string_t cmd_flex_filter_filter =\n-\tTOKEN_STRING_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tfilter, \"flex_filter\");\n-cmdline_parse_token_num_t cmd_flex_filter_port_id =\n-\tTOKEN_NUM_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tport_id, UINT16);\n-cmdline_parse_token_string_t cmd_flex_filter_ops =\n-\tTOKEN_STRING_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tops, \"add#del\");\n-cmdline_parse_token_string_t cmd_flex_filter_len =\n-\tTOKEN_STRING_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tlen, \"len\");\n-cmdline_parse_token_num_t cmd_flex_filter_len_value =\n-\tTOKEN_NUM_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tlen_value, UINT8);\n-cmdline_parse_token_string_t cmd_flex_filter_bytes =\n-\tTOKEN_STRING_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tbytes, \"bytes\");\n-cmdline_parse_token_string_t cmd_flex_filter_bytes_value =\n-\tTOKEN_STRING_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tbytes_value, NULL);\n-cmdline_parse_token_string_t cmd_flex_filter_mask =\n-\tTOKEN_STRING_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tmask, \"mask\");\n-cmdline_parse_token_string_t cmd_flex_filter_mask_value =\n-\tTOKEN_STRING_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tmask_value, NULL);\n-cmdline_parse_token_string_t cmd_flex_filter_priority =\n-\tTOKEN_STRING_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tpriority, \"priority\");\n-cmdline_parse_token_num_t cmd_flex_filter_priority_value =\n-\tTOKEN_NUM_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tpriority_value, UINT8);\n-cmdline_parse_token_string_t cmd_flex_filter_queue =\n-\tTOKEN_STRING_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tqueue, \"queue\");\n-cmdline_parse_token_num_t cmd_flex_filter_queue_id =\n-\tTOKEN_NUM_INITIALIZER(struct cmd_flex_filter_result,\n-\t\t\t\tqueue_id, UINT16);\n-cmdline_parse_inst_t cmd_flex_filter = {\n-\t.f = cmd_flex_filter_parsed,\n-\t.data = NULL,\n-\t.help_str = \"flex_filter <port_id> add|del len <value> bytes \"\n-\t\t\"<value> mask <value> priority <value> queue <queue_id>: \"\n-\t\t\"Add/Del a flex filter\",\n-\t.tokens = {\n-\t\t(void *)&cmd_flex_filter_filter,\n-\t\t(void *)&cmd_flex_filter_port_id,\n-\t\t(void *)&cmd_flex_filter_ops,\n-\t\t(void *)&cmd_flex_filter_len,\n-\t\t(void *)&cmd_flex_filter_len_value,\n-\t\t(void *)&cmd_flex_filter_bytes,\n-\t\t(void *)&cmd_flex_filter_bytes_value,\n-\t\t(void *)&cmd_flex_filter_mask,\n-\t\t(void *)&cmd_flex_filter_mask_value,\n-\t\t(void *)&cmd_flex_filter_priority,\n-\t\t(void *)&cmd_flex_filter_priority_value,\n-\t\t(void *)&cmd_flex_filter_queue,\n-\t\t(void *)&cmd_flex_filter_queue_id,\n-\t\tNULL,\n-\t},\n-};\n-\n /* *** Filters Control *** */\n \n /* *** deal with flow director filter *** */\n@@ -19833,7 +19639,6 @@ cmdline_parse_ctx_t main_ctx[] = {\n \t(cmdline_parse_inst_t *)&cmd_syn_filter,\n \t(cmdline_parse_inst_t *)&cmd_2tuple_filter,\n \t(cmdline_parse_inst_t *)&cmd_5tuple_filter,\n-\t(cmdline_parse_inst_t *)&cmd_flex_filter,\n \t(cmdline_parse_inst_t *)&cmd_add_del_ip_flow_director,\n \t(cmdline_parse_inst_t *)&cmd_add_del_udp_flow_director,\n \t(cmdline_parse_inst_t *)&cmd_add_del_sctp_flow_director,\ndiff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst\nindex f655fc06ac..4ed78809c0 100644\n--- a/doc/guides/rel_notes/deprecation.rst\n+++ b/doc/guides/rel_notes/deprecation.rst\n@@ -108,7 +108,7 @@ Deprecation Notices\n \n * ethdev: the legacy filter API, including\n ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well\n- as filter types FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR,\n+ as filter types SYN, NTUPLE, TUNNEL, FDIR,\n HASH and L2_TUNNEL, is superseded by the generic flow API (rte_flow) in\n PMDs that implement the latter.\n The legacy API will be removed in DPDK 20.11.\ndiff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c\nindex 8b18f1cb28..7f99b76e48 100644\n--- a/drivers/net/e1000/igb_ethdev.c\n+++ b/drivers/net/e1000/igb_ethdev.c\n@@ -195,11 +195,6 @@ static int igb_add_2tuple_filter(struct rte_eth_dev *dev,\n \t\t\tstruct rte_eth_ntuple_filter *ntuple_filter);\n static int igb_remove_2tuple_filter(struct rte_eth_dev *dev,\n \t\t\tstruct rte_eth_ntuple_filter *ntuple_filter);\n-static int eth_igb_get_flex_filter(struct rte_eth_dev *dev,\n-\t\t\tstruct rte_eth_flex_filter *filter);\n-static int eth_igb_flex_filter_handle(struct rte_eth_dev *dev,\n-\t\t\tenum rte_filter_op filter_op,\n-\t\t\tvoid *arg);\n static int igb_add_5tuple_filter_82576(struct rte_eth_dev *dev,\n \t\t\tstruct rte_eth_ntuple_filter *ntuple_filter);\n static int igb_remove_5tuple_filter_82576(struct rte_eth_dev *dev,\n@@ -4127,102 +4122,6 @@ eth_igb_add_del_flex_filter(struct rte_eth_dev *dev,\n \treturn 0;\n }\n \n-static int\n-eth_igb_get_flex_filter(struct rte_eth_dev *dev,\n-\t\t\tstruct rte_eth_flex_filter *filter)\n-{\n-\tstruct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n-\tstruct e1000_filter_info *filter_info =\n-\t\tE1000_DEV_PRIVATE_TO_FILTER_INFO(dev->data->dev_private);\n-\tstruct e1000_flex_filter flex_filter, *it;\n-\tuint32_t wufc, queueing, wufc_en = 0;\n-\n-\tmemset(&flex_filter, 0, sizeof(struct e1000_flex_filter));\n-\tflex_filter.filter_info.len = filter->len;\n-\tflex_filter.filter_info.priority = filter->priority;\n-\tmemcpy(flex_filter.filter_info.dwords, filter->bytes, filter->len);\n-\tmemcpy(flex_filter.filter_info.mask, filter->mask,\n-\t\t\tRTE_ALIGN(filter->len, CHAR_BIT) / CHAR_BIT);\n-\n-\tit = eth_igb_flex_filter_lookup(&filter_info->flex_list,\n-\t\t\t\t&flex_filter.filter_info);\n-\tif (it == NULL) {\n-\t\tPMD_DRV_LOG(ERR, \"filter doesn't exist.\");\n-\t\treturn -ENOENT;\n-\t}\n-\n-\twufc = E1000_READ_REG(hw, E1000_WUFC);\n-\twufc_en = E1000_WUFC_FLEX_HQ | (E1000_WUFC_FLX0 << it->index);\n-\n-\tif ((wufc & wufc_en) == wufc_en) {\n-\t\tuint32_t reg_off = 0;\n-\t\tif (it->index < E1000_MAX_FHFT)\n-\t\t\treg_off = E1000_FHFT(it->index);\n-\t\telse\n-\t\t\treg_off = E1000_FHFT_EXT(it->index - E1000_MAX_FHFT);\n-\n-\t\tqueueing = E1000_READ_REG(hw,\n-\t\t\t\treg_off + E1000_FHFT_QUEUEING_OFFSET);\n-\t\tfilter->len = queueing & E1000_FHFT_QUEUEING_LEN;\n-\t\tfilter->priority = (queueing & E1000_FHFT_QUEUEING_PRIO) >>\n-\t\t\tE1000_FHFT_QUEUEING_PRIO_SHIFT;\n-\t\tfilter->queue = (queueing & E1000_FHFT_QUEUEING_QUEUE) >>\n-\t\t\tE1000_FHFT_QUEUEING_QUEUE_SHIFT;\n-\t\treturn 0;\n-\t}\n-\treturn -ENOENT;\n-}\n-\n-static int\n-eth_igb_flex_filter_handle(struct rte_eth_dev *dev,\n-\t\t\tenum rte_filter_op filter_op,\n-\t\t\tvoid *arg)\n-{\n-\tstruct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n-\tstruct rte_eth_flex_filter *filter;\n-\tint ret = 0;\n-\n-\tMAC_TYPE_FILTER_SUP_EXT(hw->mac.type);\n-\n-\tif (filter_op == RTE_ETH_FILTER_NOP)\n-\t\treturn ret;\n-\n-\tif (arg == NULL) {\n-\t\tPMD_DRV_LOG(ERR, \"arg shouldn't be NULL for operation %u\",\n-\t\t\t filter_op);\n-\t\treturn -EINVAL;\n-\t}\n-\n-\tfilter = (struct rte_eth_flex_filter *)arg;\n-\tif (filter->len == 0 || filter->len > E1000_MAX_FLEX_FILTER_LEN\n-\t || filter->len % sizeof(uint64_t) != 0) {\n-\t\tPMD_DRV_LOG(ERR, \"filter's length is out of range\");\n-\t\treturn -EINVAL;\n-\t}\n-\tif (filter->priority > E1000_MAX_FLEX_FILTER_PRI) {\n-\t\tPMD_DRV_LOG(ERR, \"filter's priority is out of range\");\n-\t\treturn -EINVAL;\n-\t}\n-\n-\tswitch (filter_op) {\n-\tcase RTE_ETH_FILTER_ADD:\n-\t\tret = eth_igb_add_del_flex_filter(dev, filter, TRUE);\n-\t\tbreak;\n-\tcase RTE_ETH_FILTER_DELETE:\n-\t\tret = eth_igb_add_del_flex_filter(dev, filter, FALSE);\n-\t\tbreak;\n-\tcase RTE_ETH_FILTER_GET:\n-\t\tret = eth_igb_get_flex_filter(dev, filter);\n-\t\tbreak;\n-\tdefault:\n-\t\tPMD_DRV_LOG(ERR, \"unsupported operation %u\", filter_op);\n-\t\tret = -EINVAL;\n-\t\tbreak;\n-\t}\n-\n-\treturn ret;\n-}\n-\n /* translate elements in struct rte_eth_ntuple_filter to struct e1000_5tuple_filter_info*/\n static inline int\n ntuple_filter_to_5tuple_82576(struct rte_eth_ntuple_filter *filter,\n@@ -4852,9 +4751,6 @@ eth_igb_filter_ctrl(struct rte_eth_dev *dev,\n \tcase RTE_ETH_FILTER_SYN:\n \t\tret = eth_igb_syn_filter_handle(dev, filter_op, arg);\n \t\tbreak;\n-\tcase RTE_ETH_FILTER_FLEXIBLE:\n-\t\tret = eth_igb_flex_filter_handle(dev, filter_op, arg);\n-\t\tbreak;\n \tcase RTE_ETH_FILTER_GENERIC:\n \t\tif (filter_op != RTE_ETH_FILTER_GET)\n \t\t\treturn -EINVAL;\ndiff --git a/drivers/net/qede/qede_filter.c b/drivers/net/qede/qede_filter.c\nindex 4d31db09fd..28dc9d2234 100644\n--- a/drivers/net/qede/qede_filter.c\n+++ b/drivers/net/qede/qede_filter.c\n@@ -1561,7 +1561,6 @@ int qede_dev_filter_ctrl(struct rte_eth_dev *eth_dev,\n \n \t\t*(const void **)arg = &qede_flow_ops;\n \t\treturn 0;\n-\tcase RTE_ETH_FILTER_FLEXIBLE:\n \tcase RTE_ETH_FILTER_SYN:\n \tcase RTE_ETH_FILTER_HASH:\n \tcase RTE_ETH_FILTER_L2_TUNNEL:\ndiff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c\nindex 75f3a2f3d3..d976a57f2a 100644\n--- a/drivers/net/sfc/sfc_ethdev.c\n+++ b/drivers/net/sfc/sfc_ethdev.c\n@@ -1748,9 +1748,6 @@ sfc_dev_filter_ctrl(struct rte_eth_dev *dev, enum rte_filter_type filter_type,\n \tcase RTE_ETH_FILTER_NONE:\n \t\tsfc_err(sa, \"Global filters configuration not supported\");\n \t\tbreak;\n-\tcase RTE_ETH_FILTER_FLEXIBLE:\n-\t\tsfc_err(sa, \"Flexible filters not supported\");\n-\t\tbreak;\n \tcase RTE_ETH_FILTER_SYN:\n \t\tsfc_err(sa, \"SYN filters not supported\");\n \t\tbreak;\n", "prefixes": [ "04/14" ] }{ "id": 81259, "url": "