List comments

GET /api/patches/73492/comments/
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
        "id": 115456,
        "web_url": "https://patches.dpdk.org/comment/115456/",
        "msgid": "<MN2PR11MB3807B6AC11CDB13BD6D1FEB5F7670@MN2PR11MB3807.namprd11.prod.outlook.com>",
        "date": "2020-07-08T06:01:16",
        "subject": "Re: [dpdk-dev] [PATCH v4] net/i40e: support cloud filter with L4\n\tport",
        "submitter": {
            "id": 410,
            "url": "https://patches.dpdk.org/api/people/410/",
            "name": "Xing, Beilei",
            "email": "beilei.xing@intel.com"
        },
        "content": "> -----Original Message-----\n> From: Sun, GuinanX <guinanx.sun@intel.com>\n> Sent: Wednesday, July 8, 2020 11:12 AM\n> To: dev@dpdk.org\n> Cc: Xing, Beilei <beilei.xing@intel.com>; Guo, Jia <jia.guo@intel.com>; Sun,\n> GuinanX <guinanx.sun@intel.com>\n> Subject: [PATCH v4] net/i40e: support cloud filter with L4 port\n> \n> This patch enables cloud filter for IPv4_UDP/IPv4_TCP/IPv4_SCTP with SRC\n> port only or DST port only.\n\nDoes it support IPv6_XXX?\n\n> This supports different filter types for the same packet type.\n> E.g. one IPv4_UDP rules with SRC port only and another IPv4_UDP rule with\n> DST port only.\n> \n> Signed-off-by: Guinan Sun <guinanx.sun@intel.com>\n> ---\n> v4:\n> * Modify release_20_08.rst and i40e.rst.\n> * Rename L4 port filter.\n> * Modify commit log.\n> * Fixed the variable assignment.\n> v3:\n> * Add limitation to i40e.rst.\n> * Rename variables.\n> * Fixed the variable assignment.\n> v2:\n> * Fixed code style and variable naming.\n> ---\n>  doc/guides/nics/i40e.rst               |   7 +\n>  doc/guides/rel_notes/release_20_08.rst |  11 ++\n>  drivers/net/i40e/i40e_ethdev.c         | 200 ++++++++++++++++++++-\n>  drivers/net/i40e/i40e_ethdev.h         |  18 ++\n>  drivers/net/i40e/i40e_flow.c           | 230 +++++++++++++++++++++++++\n>  5 files changed, 465 insertions(+), 1 deletion(-)\n> \n> diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst index\n> 00c3042d5..cf35d51b3 100644\n> --- a/doc/guides/nics/i40e.rst\n> +++ b/doc/guides/nics/i40e.rst\n> @@ -736,6 +736,13 @@ with DPDK, then the configuration will also impact\n> port B in the NIC with  kernel driver, which don't want to use the TPID.\n>  So PMD reports warning to clarify what is changed by writing global register.\n> \n> +Cloud Filter\n> +~~~~~~~~~~~~\n> +\n> +When programming cloud filters for IPv4_UDP/IPv4_TCP/IPv4_SCTP with SRC\n\nSame as above.\n\n> +port only or DST port only, it will make any cloud filter using\n> +inner_vlan or tunnel key invalid. Default configuration will be recovered only\n> by NIC core reset.\n> +\n>  High Performance of Small Packets on 40GbE NIC\n>  ----------------------------------------------\n> \n> diff --git a/doc/guides/rel_notes/release_20_08.rst\n> b/doc/guides/rel_notes/release_20_08.rst\n> index eaa9d13b5..c64083cf0 100644\n> --- a/doc/guides/rel_notes/release_20_08.rst\n> +++ b/doc/guides/rel_notes/release_20_08.rst\n> @@ -137,6 +137,17 @@ New Features\n>    See the :doc:`../sample_app_ug/l2_forward_real_virtual` for more\n>    details of this parameter usage.\n> \n> +* **Updated Intel i40e driver.**\n> +\n> +  Updated i40e PMD with new features and improvements, including:\n> +\n> +  * Added a new type of cloud filte.\n\n* Improved cloud filter\n\n> +    This new feature enables cloud filter for IPv4_UDP/IPv4_TCP/IPv4_SCTP\n> +    with SRC port only or DST port only.\n> +    This supports different filter types for the same packet type.\n> +    E.g. one IPv4_UDP rules with SRC port only and another IPv4_UDP rule\n> +    with DST port only.\n> +\n> \n>  Removed Items\n>  -------------\n> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c\n> index 777e14926..fd4582c84 100644\n> --- a/drivers/net/i40e/i40e_ethdev.c\n> +++ b/drivers/net/i40e/i40e_ethdev.c\n> @@ -7944,6 +7944,13 @@ i40e_dev_tunnel_filter_set(struct i40e_pf *pf,\n>  #define I40E_TR_GRE_KEY_MASK\t\t\t0x400\n>  #define I40E_TR_GRE_KEY_WITH_XSUM_MASK\t\t0x800\n>  #define I40E_TR_GRE_NO_KEY_MASK\t\t\t0x8000\n> +#define I40E_AQC_REPLACE_CLOUD_CMD_INPUT_PORT_TR_WORD0 0x49\n> #define\n> +I40E_AQC_REPLACE_CLOUD_CMD_INPUT_DIRECTION_WORD0 0x41 #define\n> +I40E_AQC_REPLACE_CLOUD_CMD_INPUT_INGRESS_WORD0 0x80\n> +#define I40E_DIRECTION_INGRESS_KEY\t\t0x8000\n> +#define I40E_TR_L4_TYPE_TCP\t\t\t0x2\n> +#define I40E_TR_L4_TYPE_UDP\t\t\t0x4\n> +#define I40E_TR_L4_TYPE_SCTP\t\t\t0x8\n> \n>  static enum\n>  i40e_status_code i40e_replace_mpls_l1_filter(struct i40e_pf *pf) @@ -8242,6\n> +8249,132 @@ i40e_status_code i40e_replace_gtp_cloud_filter(struct i40e_pf\n> *pf)\n>  \treturn status;\n>  }\n> \n> +static enum i40e_status_code\n> +i40e_replace_port_l1_filter(struct i40e_pf *pf,\n> +\t\t\t    enum i40e_l4_port_type l4_port_type) {\n> +\tstruct i40e_aqc_replace_cloud_filters_cmd_buf  filter_replace_buf;\n> +\tstruct i40e_aqc_replace_cloud_filters_cmd  filter_replace;\n> +\tenum i40e_status_code status = I40E_SUCCESS;\n> +\tstruct i40e_hw *hw = I40E_PF_TO_HW(pf);\n> +\tstruct rte_eth_dev *dev = ((struct i40e_adapter *)hw->back)->eth_dev;\n> +\n> +\tif (pf->support_multi_driver) {\n> +\t\tPMD_DRV_LOG(ERR, \"Replace l1 filter is not supported.\");\n> +\t\treturn I40E_NOT_SUPPORTED;\n> +\t}\n> +\n> +\tmemset(&filter_replace, 0,\n> +\t       sizeof(struct i40e_aqc_replace_cloud_filters_cmd));\n> +\tmemset(&filter_replace_buf, 0,\n> +\t       sizeof(struct i40e_aqc_replace_cloud_filters_cmd_buf));\n> +\n> +\t/* create L1 filter */\n> +\tif (l4_port_type == I40E_L4_PORT_TYPE_SRC) {\n> +\t\tfilter_replace.old_filter_type =\n> +\n> \tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_FV_TUNNLE_KEY;\n> +\t\tfilter_replace.new_filter_type =\n> I40E_AQC_ADD_L1_FILTER_0X11;\n> +\t\tfilter_replace_buf.data[8] =\n> +\n> \tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_FV_SRC_PORT;\n> +\t} else {\n> +\t\tfilter_replace.old_filter_type =\n> +\n> \tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_FV_STAG_IVLAN;\n> +\t\tfilter_replace.new_filter_type =\n> I40E_AQC_ADD_L1_FILTER_0X10;\n> +\t\tfilter_replace_buf.data[8] =\n> +\n> \tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_FV_DST_PORT;\n> +\t}\n> +\n> +\tfilter_replace.tr_bit = 0;\n> +\t/* Prepare the buffer, 3 entries */\n> +\tfilter_replace_buf.data[0] =\n> +\n> \tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_DIRECTION_WORD0;\n> +\tfilter_replace_buf.data[0] |=\n> +\t\tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_VALIDATED;\n> +\tfilter_replace_buf.data[2] = 0x00;\n> +\tfilter_replace_buf.data[3] =\n> +\t\tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_INGRESS_WORD0;\n> +\tfilter_replace_buf.data[4] =\n> +\t\tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_PORT_TR_WORD0;\n> +\tfilter_replace_buf.data[4] |=\n> +\t\tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_VALIDATED;\n> +\tfilter_replace_buf.data[5] = 0x00;\n> +\tfilter_replace_buf.data[6] = I40E_TR_L4_TYPE_UDP |\n> +\t\tI40E_TR_L4_TYPE_TCP |\n> +\t\tI40E_TR_L4_TYPE_SCTP;\n> +\tfilter_replace_buf.data[7] = 0x00;\n> +\tfilter_replace_buf.data[8] |=\n> +\t\tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_VALIDATED;\n> +\tfilter_replace_buf.data[9] = 0x00;\n> +\tfilter_replace_buf.data[10] = 0xFF;\n> +\tfilter_replace_buf.data[11] = 0xFF;\n> +\n> +\tstatus = i40e_aq_replace_cloud_filters(hw, &filter_replace,\n> +\t\t\t\t\t       &filter_replace_buf);\n> +\tif (!status && filter_replace.old_filter_type !=\n> +\t    filter_replace.new_filter_type)\n> +\t\tPMD_DRV_LOG(WARNING, \"i40e device %s changed cloud l1\n> type.\"\n> +\t\t\t    \" original: 0x%x, new: 0x%x\",\n> +\t\t\t    dev->device->name,\n> +\t\t\t    filter_replace.old_filter_type,\n> +\t\t\t    filter_replace.new_filter_type);\n> +\n> +\treturn status;\n> +}\n> +\n> +static enum i40e_status_code\n> +i40e_replace_port_cloud_filter(struct i40e_pf *pf,\n> +\t\t\t       enum i40e_l4_port_type l4_port_type) {\n> +\tstruct i40e_aqc_replace_cloud_filters_cmd_buf  filter_replace_buf;\n> +\tstruct i40e_aqc_replace_cloud_filters_cmd  filter_replace;\n> +\tenum i40e_status_code status = I40E_SUCCESS;\n> +\tstruct i40e_hw *hw = I40E_PF_TO_HW(pf);\n> +\tstruct rte_eth_dev *dev = ((struct i40e_adapter *)hw->back)->eth_dev;\n> +\n> +\tif (pf->support_multi_driver) {\n> +\t\tPMD_DRV_LOG(ERR, \"Replace cloud filter is not supported.\");\n> +\t\treturn I40E_NOT_SUPPORTED;\n> +\t}\n> +\n> +\tmemset(&filter_replace, 0,\n> +\t       sizeof(struct i40e_aqc_replace_cloud_filters_cmd));\n> +\tmemset(&filter_replace_buf, 0,\n> +\t       sizeof(struct i40e_aqc_replace_cloud_filters_cmd_buf));\n> +\n> +\tif (l4_port_type == I40E_L4_PORT_TYPE_SRC) {\n> +\t\tfilter_replace.old_filter_type =\n> I40E_AQC_ADD_CLOUD_FILTER_IIP;\n> +\t\tfilter_replace.new_filter_type =\n> +\t\t\tI40E_AQC_ADD_CLOUD_FILTER_0X11;\n> +\t\tfilter_replace_buf.data[4] =\n> I40E_AQC_ADD_CLOUD_FILTER_0X11;\n> +\t} else {\n> +\t\tfilter_replace.old_filter_type =\n> I40E_AQC_ADD_CLOUD_FILTER_OIP;\n> +\t\tfilter_replace.new_filter_type =\n> +\t\t\tI40E_AQC_ADD_CLOUD_FILTER_0X10;\n> +\t\tfilter_replace_buf.data[4] =\n> I40E_AQC_ADD_CLOUD_FILTER_0X10;\n> +\t}\n> +\n> +\tfilter_replace.valid_flags = I40E_AQC_REPLACE_CLOUD_FILTER;\n> +\tfilter_replace.tr_bit = 0;\n> +\t/* Prepare the buffer, 2 entries */\n> +\tfilter_replace_buf.data[0] =\n> I40E_AQC_REPLACE_CLOUD_CMD_INPUT_FV_STAG;\n> +\tfilter_replace_buf.data[0] |=\n> +\t\tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_VALIDATED;\n> +\tfilter_replace_buf.data[4] |=\n> +\t\tI40E_AQC_REPLACE_CLOUD_CMD_INPUT_VALIDATED;\n> +\tstatus = i40e_aq_replace_cloud_filters(hw, &filter_replace,\n> +\t\t\t\t\t       &filter_replace_buf);\n> +\n> +\tif (!status && filter_replace.old_filter_type !=\n> +\t    filter_replace.new_filter_type)\n> +\t\tPMD_DRV_LOG(WARNING, \"i40e device %s changed cloud\n> filter type.\"\n> +\t\t\t    \" original: 0x%x, new: 0x%x\",\n> +\t\t\t    dev->device->name,\n> +\t\t\t    filter_replace.old_filter_type,\n> +\t\t\t    filter_replace.new_filter_type);\n> +\n> +\treturn status;\n> +}\n> +\n>  int\n>  i40e_dev_consistent_tunnel_filter_set(struct i40e_pf *pf,\n>  \t\t      struct i40e_tunnel_filter_conf *tunnel_filter, @@ -8389,6\n> +8522,62 @@ i40e_dev_consistent_tunnel_filter_set(struct i40e_pf *pf,\n>  \t\tpfilter->general_fields[0] = tunnel_filter->inner_vlan;\n>  \t\tpfilter->general_fields[1] = tunnel_filter->outer_vlan;\n>  \t\tbig_buffer = 1;\n> +\t\tbreak;\n> +\tcase I40E_CLOUD_TYPE_UDP:\n> +\tcase I40E_CLOUD_TYPE_TCP:\n> +\tcase I40E_CLOUD_TYPE_SCTP:\n> +\t\tif (tunnel_filter->l4_port_type == I40E_L4_PORT_TYPE_SRC) {\n> +\t\t\tif (!pf->sport_replace_flag) {\n> +\t\t\t\ti40e_replace_port_l1_filter(pf,\n> +\t\t\t\t\t\ttunnel_filter->l4_port_type);\n> +\t\t\t\ti40e_replace_port_cloud_filter(pf,\n> +\t\t\t\t\t\ttunnel_filter->l4_port_type);\n> +\t\t\t\tpf->sport_replace_flag = 1;\n> +\t\t\t}\n> +\t\t\tteid_le = rte_cpu_to_le_32(tunnel_filter->tenant_id);\n> +\t\t\tpfilter-\n> >general_fields[I40E_AQC_ADD_CLOUD_FV_FLU_0X11_WORD0] =\n> +\t\t\t\tI40E_DIRECTION_INGRESS_KEY;\n> +\n> +\t\t\tif (tunnel_filter->tunnel_type ==\n> I40E_CLOUD_TYPE_UDP)\n> +\t\t\t\tpfilter-\n> >general_fields[I40E_AQC_ADD_CLOUD_FV_FLU_0X11_WORD1] =\n> +\t\t\t\t\tI40E_TR_L4_TYPE_UDP;\n> +\t\t\telse if (tunnel_filter->tunnel_type ==\n> I40E_CLOUD_TYPE_TCP)\n> +\t\t\t\tpfilter-\n> >general_fields[I40E_AQC_ADD_CLOUD_FV_FLU_0X11_WORD1] =\n> +\t\t\t\t\tI40E_TR_L4_TYPE_TCP;\n> +\t\t\telse\n> +\t\t\t\tpfilter-\n> >general_fields[I40E_AQC_ADD_CLOUD_FV_FLU_0X11_WORD1] =\n> +\t\t\t\t\tI40E_TR_L4_TYPE_SCTP;\n> +\n> +\t\t\tpfilter-\n> >general_fields[I40E_AQC_ADD_CLOUD_FV_FLU_0X11_WORD2] =\n> +\t\t\t\t(teid_le >> 16) & 0xFFFF;\n> +\t\t\tbig_buffer = 1;\n> +\t\t} else {\n> +\t\t\tif (!pf->dport_replace_flag) {\n> +\t\t\t\ti40e_replace_port_l1_filter(pf,\n> +\t\t\t\t\t\ttunnel_filter->l4_port_type);\n> +\t\t\t\ti40e_replace_port_cloud_filter(pf,\n> +\t\t\t\t\t\ttunnel_filter->l4_port_type);\n> +\t\t\t\tpf->dport_replace_flag = 1;\n> +\t\t\t}\n> +\t\t\tteid_le = rte_cpu_to_le_32(tunnel_filter->tenant_id);\n> +\t\t\tpfilter-\n> >general_fields[I40E_AQC_ADD_CLOUD_FV_FLU_0X10_WORD0] =\n> +\t\t\t\tI40E_DIRECTION_INGRESS_KEY;\n> +\n> +\t\t\tif (tunnel_filter->tunnel_type ==\n> I40E_CLOUD_TYPE_UDP)\n> +\t\t\t\tpfilter-\n> >general_fields[I40E_AQC_ADD_CLOUD_FV_FLU_0X10_WORD1] =\n> +\t\t\t\t\tI40E_TR_L4_TYPE_UDP;\n> +\t\t\telse if (tunnel_filter->tunnel_type ==\n> I40E_CLOUD_TYPE_TCP)\n> +\t\t\t\tpfilter-\n> >general_fields[I40E_AQC_ADD_CLOUD_FV_FLU_0X10_WORD1] =\n> +\t\t\t\t\tI40E_TR_L4_TYPE_TCP;\n> +\t\t\telse\n> +\t\t\t\tpfilter-\n> >general_fields[I40E_AQC_ADD_CLOUD_FV_FLU_0X10_WORD1] =\n> +\t\t\t\t\tI40E_TR_L4_TYPE_SCTP;\n> +\n> +\t\t\tpfilter-\n> >general_fields[I40E_AQC_ADD_CLOUD_FV_FLU_0X10_WORD2] =\n> +\t\t\t\t(teid_le >> 16) & 0xFFFF;\n> +\t\t\tbig_buffer = 1;\n> +\t\t}\n\nCan we merge the duplicate code?\n\n> +\n>  \t\tbreak;\n>  \tdefault:\n>  \t\t/* Other tunnel types is not supported. */ @@ -8412,7\n> +8601,16 @@ i40e_dev_consistent_tunnel_filter_set(struct i40e_pf *pf,\n>  \telse if (tunnel_filter->tunnel_type == I40E_TUNNEL_TYPE_QINQ)\n>  \t\tpfilter->element.flags |=\n>  \t\t\tI40E_AQC_ADD_CLOUD_FILTER_0X10;\n> -\telse {\n> +\telse if (tunnel_filter->tunnel_type == I40E_CLOUD_TYPE_UDP ||\n> +\t\t tunnel_filter->tunnel_type == I40E_CLOUD_TYPE_TCP ||\n> +\t\t tunnel_filter->tunnel_type == I40E_CLOUD_TYPE_SCTP) {\n> +\t\tif (tunnel_filter->l4_port_type == I40E_L4_PORT_TYPE_SRC)\n> +\t\t\tpfilter->element.flags |=\n> +\t\t\t\tI40E_AQC_ADD_L1_FILTER_0X11;\n\nPlease check  I40E_AQC_ADD_L1_FILTER_0X11 or I40E_AQC_ADD_CLOUD_FILTER_0X11 here.\n\n> +\t\telse\n> +\t\t\tpfilter->element.flags |=\n> +\t\t\t\tI40E_AQC_ADD_CLOUD_FILTER_0X10;\n> +\t} else {\n>  \t\tval = i40e_dev_get_filter_type(tunnel_filter->filter_type,\n>  \t\t\t\t\t\t&pfilter->element.flags);\n>  \t\tif (val < 0) {\n<snip>",
        "headers": {
            "X-MS-Exchange-CrossTenant-mailboxtype": "HOSTED",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "x-ms-office365-filtering-correlation-id": "58ac35d1-475f-43ee-dfba-08d823045409",
            "x-forefront-prvs": "04583CED1A",
            "X-BeenThere": "dev@dpdk.org",
            "x-ms-exchange-antispam-messagedata": "\n N4xU7f/Z+YMC/0gMcUk8YtEU+ojNvKDfPP+zyGQ2/xkYtyV+ucadurlRo3+ES0XG0sCjC99gGk6ACxBmO4RZZK/mJQ36bA44IXb9Ec3RmmPn3aGrK87Sy+gpR0PqrtpMeKy11RxIS1v2o4MNYnrID4tOR4RrwMXOTQ80hsK5pM+FMY3ryYJpnx1Vr2w0N/zcAfO2zvjcYAcyUHHh+jiTtjvynpsC6m3mO9NnsJKMo4VmO/1zcfTMg84NmEAhOCf6LN1BCFS7UWO7fkitfbogybi2MyNlrd5eXEyUJGhOJG6Ec0l6qhs0oZuQzTQrLckz9d7AxJYXMgOeTlkr7ALVakwVkaBwxSSjxJ3XS2NJpKx5VPvPmfMo7RvU0o0jpHL03hzQQprqMkEMy//bA6i05Z3WNRiW+/uBhAJwEIYckxQ60yumiZXBWMf7GWCP6iOOGHO0pYXu2gKDZeVoR0P9U3uro9anF/0kDAVAJ2M0EzzuTx2VP2OMALpu1CqiVEJh",
            "IronPort-SDR": [
                "\n LJQK584I4owsACn1K7rBMAM7K4cxv+KEAmYGTIrFq/rd8GzEWhF++hAlpQ0pD2zgUhugX+MH7/\n zU54coGnvTvg==",
                "\n NzPriG/HIE7LIo1ej/MGQ/pRZeysMTQUdBioRDyrEWv0IYuVMiNrpNmNwc2KSjRI31Ot7vJz2N\n 7jmYcT6EbuSA=="
            ],
            "X-MS-Exchange-CrossTenant-originalarrivaltime": "08 Jul 2020 06:01:16.7740 (UTC)",
            "Message-ID": "\n <MN2PR11MB3807B6AC11CDB13BD6D1FEB5F7670@MN2PR11MB3807.namprd11.prod.outlook.com>",
            "x-ld-processed": "46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr",
            "x-ms-oob-tlc-oobclassifiers": "OLM:118;",
            "x-originating-ip": "[192.102.204.45]",
            "X-Amp-File-Uploaded": "False",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id B55E2A00BE;\n\tWed,  8 Jul 2020 08:01:22 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 5A3A81DEF1;\n\tWed,  8 Jul 2020 08:01:22 +0200 (CEST)",
                "from mga18.intel.com (mga18.intel.com [134.134.136.126])\n by dpdk.org (Postfix) with ESMTP id 322FA1DEE8\n for <dev@dpdk.org>; Wed,  8 Jul 2020 08:01:20 +0200 (CEST)",
                "from orsmga005.jf.intel.com ([10.7.209.41])\n by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 07 Jul 2020 23:01:19 -0700",
                "from orsmsx109.amr.corp.intel.com ([10.22.240.7])\n by orsmga005.jf.intel.com with ESMTP; 07 Jul 2020 23:01:18 -0700",
                "from ORSEDG001.ED.cps.intel.com (10.7.248.4) by\n ORSMSX109.amr.corp.intel.com (10.22.240.7) with Microsoft SMTP Server (TLS)\n id 14.3.439.0; Tue, 7 Jul 2020 23:01:18 -0700",
                "from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.174)\n by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS)\n id 14.3.439.0; Tue, 7 Jul 2020 23:01:18 -0700",
                "from MN2PR11MB3807.namprd11.prod.outlook.com (2603:10b6:208:f0::24)\n by MN2PR11MB3981.namprd11.prod.outlook.com (2603:10b6:208:13d::18)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.27; Wed, 8 Jul\n 2020 06:01:17 +0000",
                "from MN2PR11MB3807.namprd11.prod.outlook.com\n ([fe80::401c:b4b:31c4:98b8]) by MN2PR11MB3807.namprd11.prod.outlook.com\n ([fe80::401c:b4b:31c4:98b8%3]) with mapi id 15.20.3153.029; Wed, 8 Jul 2020\n 06:01:16 +0000"
            ],
            "X-MS-Exchange-CrossTenant-userprincipalname": "\n iDB6EnhVg42VfvZfFZW7cxRWUbyiFexbquDVNGN9FvEvAjrqguewkn8lQ+ITzmXHOYDb2eOcqw1ovuMUY0ENgg==",
            "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
            "List-Post": "<mailto:dev@dpdk.org>",
            "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:MN2PR11MB3807.namprd11.prod.outlook.com; PTR:; CAT:NONE;\n SFTY:;\n SFS:(4636009)(396003)(346002)(376002)(366004)(39860400002)(136003)(33656002)(5660300002)(76116006)(478600001)(52536014)(83380400001)(30864003)(86362001)(110136005)(4326008)(107886003)(316002)(186003)(8936002)(7696005)(71200400001)(8676002)(55016002)(26005)(66946007)(2906002)(19627235002)(9686003)(6506007)(53546011)(66476007)(66556008)(64756008)(66446008)(21314003);\n DIR:OUT; SFP:1102;",
            "In-Reply-To": "<20200708031153.6535-1-guinanx.sun@intel.com>",
            "X-ExtLoop1": "1",
            "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
            "X-MS-Has-Attach": "",
            "MIME-Version": "1.0",
            "X-IronPort-AV": [
                "E=McAfee;i=\"6000,8403,9675\"; a=\"135207277\"",
                "E=Sophos;i=\"5.75,326,1589266800\"; d=\"scan'208\";a=\"135207277\"",
                "E=Sophos;i=\"5.75,326,1589266800\"; d=\"scan'208\";a=\"457385811\""
            ],
            "References": "<20200611052416.14592-1-guinanx.sun@intel.com>\n <20200708031153.6535-1-guinanx.sun@intel.com>",
            "X-MS-Exchange-CrossTenant-id": "46c98d88-e344-4ed4-8496-4ed7712e255d",
            "x-ms-traffictypediagnostic": "MN2PR11MB3981:",
            "Content-Type": "text/plain; charset=\"us-ascii\"",
            "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 58ac35d1-475f-43ee-dfba-08d823045409",
            "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;\n dkim=pass header.d=intel.com; arc=none",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "Accept-Language": "en-US",
            "To": "\"Sun, GuinanX\" <guinanx.sun@intel.com>, \"dev@dpdk.org\" <dev@dpdk.org>",
            "Content-Language": "en-US",
            "x-ms-exchange-senderadcheck": "1",
            "Thread-Topic": "[PATCH v4] net/i40e: support cloud filter with L4 port",
            "x-microsoft-antispam-prvs": "\n <MN2PR11MB3981CDC1B92E11FD1435106DF7670@MN2PR11MB3981.namprd11.prod.outlook.com>",
            "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;\n s=selector2-intel-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=9nzM1xlRjs8umTl4IG5pLO/GAr/FQpi6AigU3AmH0Lo=;\n b=Lo6H1YY+VOzHeoCt+0F4Cu7tO/0s5Hn01QFgGSJSNQxm6osSwTJOppqwRaAwsRYpkC2p5vBX3+Ht5erAsjRzDJKwR1mcRmtQnLqSbAw8IC6nBNW43x1ntIFIvX+RD2goEG3yuftm+JMZDY6ocrbGH7kfklTVurTAMNMoKUt18XQ=",
            "Thread-Index": "AQHWVNZ+uZ9MgMr+1kS/WO9koBt69Kj9LBwg",
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "CC": "\"Guo, Jia\" <jia.guo@intel.com>",
            "X-Mailman-Version": "2.1.15",
            "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=JBkj7ihTpzKj18VHkOmpwtZLmZrnvRB1i4Lw5sbbr+0eyNWNQ5b2gEvqP+n3Ot7YmD7frfYyb/YEy1FpAj/raH2v+wcM+3xWrC8D6qpwYlYFL30FSGotyavPSa73A2/NLHNdYyKfkuV2CVovu2eX/MHFj41eBIyuevYRAlR/q0OkPjd7GUxdcuopjBGMO1MAzTaOiIbFqDRPzM2hzU1i4W2w/M7aD5aRKQnGuBkvueSlxNsHZssuMdfEe4IDLrTSkTVuNo8gjSPmkZpIIOhTEkot72an3GpqsUmgIacoW5iWHcT4IKdmfgxBS1SIxTfcPmvZMCaB239BvRaYMe4ArA==",
            "Subject": "Re: [dpdk-dev] [PATCH v4] net/i40e: support cloud filter with L4\n\tport",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MN2PR11MB3981",
            "X-Amp-Result": "SKIPPED(no attachment in message)",
            "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
            "X-MS-TNEF-Correlator": "",
            "X-OriginatorOrg": "intel.com",
            "X-MS-Exchange-CrossTenant-AuthSource": "MN2PR11MB3807.namprd11.prod.outlook.com",
            "Date": "Wed, 8 Jul 2020 06:01:16 +0000",
            "Precedence": "list",
            "From": "\"Xing, Beilei\" <beilei.xing@intel.com>",
            "Content-Transfer-Encoding": "quoted-printable",
            "authentication-results": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=intel.com;",
            "x-microsoft-antispam": "BCL:0;",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "x-ms-exchange-transport-forked": "True",
            "Errors-To": "dev-bounces@dpdk.org",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "x-microsoft-antispam-message-info": "\n SER52ElxP2XW5YcvThTb5zoQHJlR+f/cXdsC2Ps4g/bbE5ahE7r6Vw7MJIlrTfTdtpBYZbEuhMHvcWXnQL1R/DENSbY4KvafN6aZqSAZ1aLJGKKImjfV51jPEv9GhdghrKBEU2KiwWQYKLZmLDAHUDtOEQuXqvpgT84eb6cVyrK/UiF3DLMWXtYy9qv6ec28qQfmyg6J37tO4YGxuJ+Q0nen2FVPn00hnt+NUu9gAObDCp3hfYBgS0pBCXNxAKOFBxVmF7egdIbZHOwfrt0BpJWq6snGLFaWC4vIbZnycyXdxiC13DLcyYQ030AzvTbJ+O6fPGNQ75CVCBEDd4C9NNeV0V8gWUxN+duzC8P8vv3xTT1GqBk6oMhRhtcnKpvE",
            "x-ms-publictraffictype": "Email",
            "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=9nzM1xlRjs8umTl4IG5pLO/GAr/FQpi6AigU3AmH0Lo=;\n b=QhUatVMQK1gNqOaDU8F4n6G0G7MXb+sCSP1ErT4Qdt5rK0PzHIM4UFlAPWrAuLcDqulGshWZMwCS91mKUPjcrs3WULIsBWI/caD3XBnYbeD/Ia2rH1y/9E26m9JyOuP0l4EoEu4ck5sMg3YpVFtdNV2JvfYaDKePtnklVJ0C84+obtTWaZZYuirKHrWHCJDzAkhVR3fxpLjku4xKF6tky6RyMfciQAupzKukewSw5egBtpucMq+ymdYNucqdnZFwGXCesXhzLJ7lpKKhnam8QsnZH2qfurk2ITpzIJymJVT0IADK0fjNrFvnSMjY52QMsNIq6FNgImHf80GAbVlMFQ=="
        }
    }
]