Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/71022/?format=api
http://patches.dpdk.org/api/patches/71022/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200609120001.35110-14-qi.z.zhang@intel.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": "<20200609120001.35110-14-qi.z.zhang@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20200609120001.35110-14-qi.z.zhang@intel.com", "date": "2020-06-09T11:59:22", "name": "[v2,13/52] net/ice/base: refactor flow director filter swap", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "77d3af5bee49b2a768ac01d0d786a2af583cc70a", "submitter": { "id": 504, "url": "http://patches.dpdk.org/api/people/504/?format=api", "name": "Qi Zhang", "email": "qi.z.zhang@intel.com" }, "delegate": { "id": 31221, "url": "http://patches.dpdk.org/api/users/31221/?format=api", "username": "yexl", "first_name": "xiaolong", "last_name": "ye", "email": "xiaolong.ye@intel.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200609120001.35110-14-qi.z.zhang@intel.com/mbox/", "series": [ { "id": 10359, "url": "http://patches.dpdk.org/api/series/10359/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=10359", "date": "2020-06-09T11:59:09", "name": "net/ice: base code update", "version": 2, "mbox": "http://patches.dpdk.org/series/10359/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/71022/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/71022/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 9796CA0516;\n\tTue, 9 Jun 2020 13:58:28 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 091BF1BE9D;\n\tTue, 9 Jun 2020 13:56:52 +0200 (CEST)", "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n by dpdk.org (Postfix) with ESMTP id 692E32C6D\n for <dev@dpdk.org>; Tue, 9 Jun 2020 13:56:43 +0200 (CEST)", "from fmsmga005.fm.intel.com ([10.253.24.32])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 09 Jun 2020 04:56:40 -0700", "from dpdk51.sh.intel.com ([10.67.111.82])\n by fmsmga005.fm.intel.com with ESMTP; 09 Jun 2020 04:56:27 -0700" ], "IronPort-SDR": [ "\n iiCoZlQpa8T69VDleTlqL1PyyRDxutlaaGDBrIrQ1eV1uXszPMeeoCHXx0qJOtVTbuAonVd4MA\n c13aUS1jAMkQ==", "\n JF0/zP4bQcJmUzu8nU2HP12RrooKDvpwbsp5KzyLSm4MhFB3yByenC5kT/I8nhDoulAFHusMQA\n zp37thcMCADg==" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.73,492,1583222400\"; d=\"scan'208\";a=\"473044080\"", "From": "Qi Zhang <qi.z.zhang@intel.com>", "To": "qiming.yang@intel.com", "Cc": "xiaolong.ye@intel.com, dev@dpdk.org, Qi Zhang <qi.z.zhang@intel.com>,\n Henry Tieman <henry.w.tieman@intel.com>,\n \"Paul M . Stillwell Jr\" <paul.m.stillwell.jr@intel.com>", "Date": "Tue, 9 Jun 2020 19:59:22 +0800", "Message-Id": "<20200609120001.35110-14-qi.z.zhang@intel.com>", "X-Mailer": "git-send-email 2.13.6", "In-Reply-To": "<20200609120001.35110-1-qi.z.zhang@intel.com>", "References": "<20200603024016.30636-1-qi.z.zhang@intel.com>\n <20200609120001.35110-1-qi.z.zhang@intel.com>", "Subject": "[dpdk-dev] [PATCH v2 13/52] net/ice/base: refactor flow director\n\tfilter swap", "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": "Move the swap of flow director addresses and ports into training packet\ngeneration. This reduces the code written for ACL.\n\nSigned-off-by: Henry Tieman <henry.w.tieman@intel.com>\nSigned-off-by: Paul M. Stillwell Jr <paul.m.stillwell.jr@intel.com>\nSigned-off-by: Qi Zhang <qi.z.zhang@intel.com>\n---\n drivers/net/ice/base/ice_fdir.c | 59 ++++++++++++++++++++-------------------\n drivers/net/ice/ice_fdir_filter.c | 32 ++++++++++-----------\n 2 files changed, 47 insertions(+), 44 deletions(-)", "diff": "diff --git a/drivers/net/ice/base/ice_fdir.c b/drivers/net/ice/base/ice_fdir.c\nindex c92533223..2257eba60 100644\n--- a/drivers/net/ice/base/ice_fdir.c\n+++ b/drivers/net/ice/base/ice_fdir.c\n@@ -764,16 +764,19 @@ ice_fdir_get_gen_prgm_pkt(struct ice_hw *hw, struct ice_fdir_fltr *input,\n \t\tloc = &pkt[ICE_FDIR_TUN_PKT_OFF];\n \t}\n \n+\t/* Reverse the src and dst, since the HW expects them to be from Tx\n+\t * perspective. The input from user is from Rx filter perspective.\n+\t */\n \tswitch (flow) {\n \tcase ICE_FLTR_PTYPE_NONF_IPV4_TCP:\n \t\tice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,\n-\t\t\t\t input->ip.v4.dst_ip);\n+\t\t\t\t input->ip.v4.src_ip);\n \t\tice_pkt_insert_u16(loc, ICE_IPV4_TCP_DST_PORT_OFFSET,\n-\t\t\t\t input->ip.v4.dst_port);\n+\t\t\t\t input->ip.v4.src_port);\n \t\tice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,\n-\t\t\t\t input->ip.v4.src_ip);\n+\t\t\t\t input->ip.v4.dst_ip);\n \t\tice_pkt_insert_u16(loc, ICE_IPV4_TCP_SRC_PORT_OFFSET,\n-\t\t\t\t input->ip.v4.src_port);\n+\t\t\t\t input->ip.v4.dst_port);\n \t\tice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);\n \t\tice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);\n \t\tice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);\n@@ -782,35 +785,35 @@ ice_fdir_get_gen_prgm_pkt(struct ice_hw *hw, struct ice_fdir_fltr *input,\n \t\tbreak;\n \tcase ICE_FLTR_PTYPE_NONF_IPV4_UDP:\n \t\tice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,\n-\t\t\t\t input->ip.v4.dst_ip);\n+\t\t\t\t input->ip.v4.src_ip);\n \t\tice_pkt_insert_u16(loc, ICE_IPV4_UDP_DST_PORT_OFFSET,\n-\t\t\t\t input->ip.v4.dst_port);\n+\t\t\t\t input->ip.v4.src_port);\n \t\tice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,\n-\t\t\t\t input->ip.v4.src_ip);\n+\t\t\t\t input->ip.v4.dst_ip);\n \t\tice_pkt_insert_u16(loc, ICE_IPV4_UDP_SRC_PORT_OFFSET,\n-\t\t\t\t input->ip.v4.src_port);\n+\t\t\t\t input->ip.v4.dst_port);\n \t\tice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);\n \t\tice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);\n \t\tice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);\n \t\tbreak;\n \tcase ICE_FLTR_PTYPE_NONF_IPV4_SCTP:\n \t\tice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,\n-\t\t\t\t input->ip.v4.dst_ip);\n+\t\t\t\t input->ip.v4.src_ip);\n \t\tice_pkt_insert_u16(loc, ICE_IPV4_SCTP_DST_PORT_OFFSET,\n-\t\t\t\t input->ip.v4.dst_port);\n+\t\t\t\t input->ip.v4.src_port);\n \t\tice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,\n-\t\t\t\t input->ip.v4.src_ip);\n+\t\t\t\t input->ip.v4.dst_ip);\n \t\tice_pkt_insert_u16(loc, ICE_IPV4_SCTP_SRC_PORT_OFFSET,\n-\t\t\t\t input->ip.v4.src_port);\n+\t\t\t\t input->ip.v4.dst_port);\n \t\tice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);\n \t\tice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);\n \t\tice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);\n \t\tbreak;\n \tcase ICE_FLTR_PTYPE_NONF_IPV4_OTHER:\n \t\tice_pkt_insert_u32(loc, ICE_IPV4_DST_ADDR_OFFSET,\n-\t\t\t\t input->ip.v4.dst_ip);\n-\t\tice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,\n \t\t\t\t input->ip.v4.src_ip);\n+\t\tice_pkt_insert_u32(loc, ICE_IPV4_SRC_ADDR_OFFSET,\n+\t\t\t\t input->ip.v4.dst_ip);\n \t\tice_pkt_insert_u8(loc, ICE_IPV4_TOS_OFFSET, input->ip.v4.tos);\n \t\tice_pkt_insert_u8(loc, ICE_IPV4_TTL_OFFSET, input->ip.v4.ttl);\n \t\tice_pkt_insert_u8(loc, ICE_IPV4_PROTO_OFFSET,\n@@ -836,48 +839,48 @@ ice_fdir_get_gen_prgm_pkt(struct ice_hw *hw, struct ice_fdir_fltr *input,\n \t\tbreak;\n \tcase ICE_FLTR_PTYPE_NONF_IPV6_TCP:\n \t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,\n-\t\t\t\t\t input->ip.v6.dst_ip);\n-\t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,\n \t\t\t\t\t input->ip.v6.src_ip);\n+\t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,\n+\t\t\t\t\t input->ip.v6.dst_ip);\n \t\tice_pkt_insert_u16(loc, ICE_IPV6_TCP_DST_PORT_OFFSET,\n-\t\t\t\t input->ip.v6.dst_port);\n-\t\tice_pkt_insert_u16(loc, ICE_IPV6_TCP_SRC_PORT_OFFSET,\n \t\t\t\t input->ip.v6.src_port);\n+\t\tice_pkt_insert_u16(loc, ICE_IPV6_TCP_SRC_PORT_OFFSET,\n+\t\t\t\t input->ip.v6.dst_port);\n \t\tice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);\n \t\tice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);\n \t\tice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);\n \t\tbreak;\n \tcase ICE_FLTR_PTYPE_NONF_IPV6_UDP:\n \t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,\n-\t\t\t\t\t input->ip.v6.dst_ip);\n-\t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,\n \t\t\t\t\t input->ip.v6.src_ip);\n+\t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,\n+\t\t\t\t\t input->ip.v6.dst_ip);\n \t\tice_pkt_insert_u16(loc, ICE_IPV6_UDP_DST_PORT_OFFSET,\n-\t\t\t\t input->ip.v6.dst_port);\n-\t\tice_pkt_insert_u16(loc, ICE_IPV6_UDP_SRC_PORT_OFFSET,\n \t\t\t\t input->ip.v6.src_port);\n+\t\tice_pkt_insert_u16(loc, ICE_IPV6_UDP_SRC_PORT_OFFSET,\n+\t\t\t\t input->ip.v6.dst_port);\n \t\tice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);\n \t\tice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);\n \t\tice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);\n \t\tbreak;\n \tcase ICE_FLTR_PTYPE_NONF_IPV6_SCTP:\n \t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,\n-\t\t\t\t\t input->ip.v6.dst_ip);\n-\t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,\n \t\t\t\t\t input->ip.v6.src_ip);\n+\t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,\n+\t\t\t\t\t input->ip.v6.dst_ip);\n \t\tice_pkt_insert_u16(loc, ICE_IPV6_SCTP_DST_PORT_OFFSET,\n-\t\t\t\t input->ip.v6.dst_port);\n-\t\tice_pkt_insert_u16(loc, ICE_IPV6_SCTP_SRC_PORT_OFFSET,\n \t\t\t\t input->ip.v6.src_port);\n+\t\tice_pkt_insert_u16(loc, ICE_IPV6_SCTP_SRC_PORT_OFFSET,\n+\t\t\t\t input->ip.v6.dst_port);\n \t\tice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);\n \t\tice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);\n \t\tice_pkt_insert_mac_addr(loc, input->ext_data.dst_mac);\n \t\tbreak;\n \tcase ICE_FLTR_PTYPE_NONF_IPV6_OTHER:\n \t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_DST_ADDR_OFFSET,\n-\t\t\t\t\t input->ip.v6.dst_ip);\n-\t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,\n \t\t\t\t\t input->ip.v6.src_ip);\n+\t\tice_pkt_insert_ipv6_addr(loc, ICE_IPV6_SRC_ADDR_OFFSET,\n+\t\t\t\t\t input->ip.v6.dst_ip);\n \t\tice_pkt_insert_u8_tc(loc, ICE_IPV6_TC_OFFSET, input->ip.v6.tc);\n \t\tice_pkt_insert_u8(loc, ICE_IPV6_HLIM_OFFSET, input->ip.v6.hlim);\n \t\tice_pkt_insert_u8(loc, ICE_IPV6_PROTO_OFFSET,\ndiff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c\nindex 69c714c59..19fa41afc 100644\n--- a/drivers/net/ice/ice_fdir_filter.c\n+++ b/drivers/net/ice/ice_fdir_filter.c\n@@ -1676,9 +1676,9 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,\n \t\t\t\t\tinput_set |= ICE_INSET_IPV4_PROTO;\n \n \t\t\t\tfilter->input.ip.v4.dst_ip =\n-\t\t\t\t\tipv4_spec->hdr.src_addr;\n-\t\t\t\tfilter->input.ip.v4.src_ip =\n \t\t\t\t\tipv4_spec->hdr.dst_addr;\n+\t\t\t\tfilter->input.ip.v4.src_ip =\n+\t\t\t\t\tipv4_spec->hdr.src_addr;\n \t\t\t\tfilter->input.ip.v4.tos =\n \t\t\t\t\tipv4_spec->hdr.type_of_service;\n \t\t\t\tfilter->input.ip.v4.ttl =\n@@ -1723,9 +1723,9 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,\n \t\t\t\t\tinput_set |= ICE_INSET_IPV6_HOP_LIMIT;\n \n \t\t\t\trte_memcpy(filter->input.ip.v6.dst_ip,\n-\t\t\t\t\t ipv6_spec->hdr.src_addr, 16);\n-\t\t\t\trte_memcpy(filter->input.ip.v6.src_ip,\n \t\t\t\t\t ipv6_spec->hdr.dst_addr, 16);\n+\t\t\t\trte_memcpy(filter->input.ip.v6.src_ip,\n+\t\t\t\t\t ipv6_spec->hdr.src_addr, 16);\n \n \t\t\t\tvtc_flow_cpu =\n \t\t\t\t rte_be_to_cpu_32(ipv6_spec->hdr.vtc_flow);\n@@ -1777,14 +1777,14 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,\n \t\t\t\t/* Get filter info */\n \t\t\t\tif (l3 == RTE_FLOW_ITEM_TYPE_IPV4) {\n \t\t\t\t\tfilter->input.ip.v4.dst_port =\n-\t\t\t\t\t\ttcp_spec->hdr.src_port;\n-\t\t\t\t\tfilter->input.ip.v4.src_port =\n \t\t\t\t\t\ttcp_spec->hdr.dst_port;\n+\t\t\t\t\tfilter->input.ip.v4.src_port =\n+\t\t\t\t\t\ttcp_spec->hdr.src_port;\n \t\t\t\t} else if (l3 == RTE_FLOW_ITEM_TYPE_IPV6) {\n \t\t\t\t\tfilter->input.ip.v6.dst_port =\n-\t\t\t\t\t\ttcp_spec->hdr.src_port;\n-\t\t\t\t\tfilter->input.ip.v6.src_port =\n \t\t\t\t\t\ttcp_spec->hdr.dst_port;\n+\t\t\t\t\tfilter->input.ip.v6.src_port =\n+\t\t\t\t\t\ttcp_spec->hdr.src_port;\n \t\t\t\t}\n \t\t\t}\n \t\t\tbreak;\n@@ -1820,14 +1820,14 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,\n \t\t\t\t/* Get filter info */\n \t\t\t\tif (l3 == RTE_FLOW_ITEM_TYPE_IPV4) {\n \t\t\t\t\tfilter->input.ip.v4.dst_port =\n-\t\t\t\t\t\tudp_spec->hdr.src_port;\n-\t\t\t\t\tfilter->input.ip.v4.src_port =\n \t\t\t\t\t\tudp_spec->hdr.dst_port;\n+\t\t\t\t\tfilter->input.ip.v4.src_port =\n+\t\t\t\t\t\tudp_spec->hdr.src_port;\n \t\t\t\t} else if (l3 == RTE_FLOW_ITEM_TYPE_IPV6) {\n \t\t\t\t\tfilter->input.ip.v6.src_port =\n-\t\t\t\t\t\tudp_spec->hdr.dst_port;\n-\t\t\t\t\tfilter->input.ip.v6.dst_port =\n \t\t\t\t\t\tudp_spec->hdr.src_port;\n+\t\t\t\t\tfilter->input.ip.v6.dst_port =\n+\t\t\t\t\t\tudp_spec->hdr.dst_port;\n \t\t\t\t}\n \t\t\t}\n \t\t\tbreak;\n@@ -1862,14 +1862,14 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,\n \t\t\t\t/* Get filter info */\n \t\t\t\tif (l3 == RTE_FLOW_ITEM_TYPE_IPV4) {\n \t\t\t\t\tfilter->input.ip.v4.dst_port =\n-\t\t\t\t\t\tsctp_spec->hdr.src_port;\n-\t\t\t\t\tfilter->input.ip.v4.src_port =\n \t\t\t\t\t\tsctp_spec->hdr.dst_port;\n+\t\t\t\t\tfilter->input.ip.v4.src_port =\n+\t\t\t\t\t\tsctp_spec->hdr.src_port;\n \t\t\t\t} else if (l3 == RTE_FLOW_ITEM_TYPE_IPV6) {\n \t\t\t\t\tfilter->input.ip.v6.dst_port =\n-\t\t\t\t\t\tsctp_spec->hdr.src_port;\n-\t\t\t\t\tfilter->input.ip.v6.src_port =\n \t\t\t\t\t\tsctp_spec->hdr.dst_port;\n+\t\t\t\t\tfilter->input.ip.v6.src_port =\n+\t\t\t\t\t\tsctp_spec->hdr.src_port;\n \t\t\t\t}\n \t\t\t}\n \t\t\tbreak;\n", "prefixes": [ "v2", "13/52" ] }{ "id": 71022, "url": "