List cover comments

GET /api/covers/41384/comments/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Link: 
<http://patches.dpdk.org/api/covers/41384/comments/?format=api&page=1>; rel="first",
<http://patches.dpdk.org/api/covers/41384/comments/?format=api&page=1>; rel="last"
Vary: Accept
[ { "id": 82642, "web_url": "http://patches.dpdk.org/comment/82642/", "msgid": "<9387415.Y76A5Ptqcu@xps>", "list_archive_url": "https://inbox.dpdk.org/dev/9387415.Y76A5Ptqcu@xps", "date": "2018-06-26T10:32:17", "subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "submitter": { "id": 685, "url": "http://patches.dpdk.org/api/people/685/?format=api", "name": "Thomas Monjalon", "email": "thomas@monjalon.net" }, "content": "Hi,\n\n22/06/2018 11:56, Rahul Lakkireddy:\n> This series of patches add support for actions:\n> - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.\n> - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.\n> - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.\n> - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.\n> - OF_SET_TP_SRC - set a new TCP/UDP source port number.\n> - OF_SET_TP_DST - set a new TCP/UDP destination port number.\n\nGiven the date of submission, I guess you do not expect it for 18.08.\nNext time, better to make it clear by adding it in the Subject:\n\t[RFC 18.11 0/3]\n\nThanks for proposing in advance.\nI hope we will have some good reviews in advance too.\n\nAdding some active maintainers as Cc.", "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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 180931B42D;\n\tTue, 26 Jun 2018 12:32:22 +0200 (CEST)", "from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com\n\t[66.111.4.26]) by dpdk.org (Postfix) with ESMTP id 6B0E15F38\n\tfor <dev@dpdk.org>; Tue, 26 Jun 2018 12:32:20 +0200 (CEST)", "from compute1.internal (compute1.nyi.internal [10.202.2.41])\n\tby mailout.nyi.internal (Postfix) with ESMTP id BD37621D5C;\n\tTue, 26 Jun 2018 06:32:19 -0400 (EDT)", "from mailfrontend2 ([10.202.2.163])\n\tby compute1.internal (MEProxy); Tue, 26 Jun 2018 06:32:19 -0400", "from xps.localnet (184.203.134.77.rev.sfr.net [77.134.203.184])\n\tby mail.messagingengine.com (Postfix) with ESMTPA id C3D3F10291;\n\tTue, 26 Jun 2018 06:32:18 -0400 (EDT)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=\n\tcc:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to:x-me-sender\n\t:x-me-sender:x-sasl-enc; s=mesmtp; bh=Aq1KX/BQZAXNtaY6nUu8YC2Bd2\n\t5RiCWbyTgb+DDW0N4=; b=BBmDBkfyTKC6SKpAtpT07MdlkbJ8+0S6BSn13xow2p\n\tjtcUOvKRG0bxztUpBIl1w312NpJketRFRWn6vRujqaDt32bYfuHmDRvtKDSiPtOC\n\tJ84S7nTFIKFSECVFnEwQpgunQwIhC37Eb/iXyhF/KMCnJSywQ0O2RpJZwtZHX5v6\n\tw=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n\tmessagingengine.com; h=cc:content-transfer-encoding:content-type\n\t:date:from:in-reply-to:message-id:mime-version:references\n\t:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=Aq1KX/\n\tBQZAXNtaY6nUu8YC2Bd25RiCWbyTgb+DDW0N4=; b=VM+JDSkZIwta0lZ8vqSw2+\n\tgGJ/IQZ0P8BrlrOScyORdWAbEyydrSgFxctfcXi7NwVD9AC2Ph2Y1GIavv0Emdlz\n\tw2LD4YHjNxXunV8G0sGaXvQ8kod1rZmUq5O69VyhOPhY2JFyCGxUncjvAtFVnbKK\n\t3QKwOh9pkUkDcaCkE7mcADzg2r73A86ttWV0qqOGRFawevc0aF5McXq+VEMh9HDR\n\tlHdM10UrcCF8ylqm3NSaiLDzm1CZm+7kE5n6KN6QT04YnSb9yZI9dfInZ8rpk5IO\n\tASVPou1btcPLdzlxPNcF9OnnC2+BkMjHIOj30Bfze1zTHcO+bCyZ/7KE4bQmwkbg\n\t==" ], "X-ME-Proxy": "<xmx:MxYyW9zwEJXvHcs0PJcpjWfcuCG_I05GOrCZsg2XC_-OuukC6-mAsQ>\n\t<xmx:MxYyW3joK5Ck6EE9bUSS4468-uTAk8gIoiYUYK4kdeua7FtoOl0k0A>\n\t<xmx:MxYyW8xmVtGZ2mnzqrx9yjwhyXX-eSIe2y2NnsPZEdxyHYLC4TtZOg>\n\t<xmx:MxYyW1ws1LjnXetScRh43otHI333hKF4VIUnxWm1FJJO_W9lgEXl7A>\n\t<xmx:MxYyW2oiHGHL9Btjh2lx_0bGWZEQjbm_nqpudOCmO6yMyZryK9Fmcg>\n\t<xmx:MxYyW93cL6P9GliOHyD6WND4n8l_P6U50fTIdzAcZLBDdTcoQqDOOA>", "X-ME-Sender": "<xms:MxYyW5hfSoJo-89h2GXucrt3zxaUYObVQCq5BbvpaZQJJDgDBiSFuQ>", "From": "Thomas Monjalon <thomas@monjalon.net>", "To": "Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>", "Cc": "dev@dpdk.org, shaguna@chelsio.com, indranil@chelsio.com,\n\tnirranjan@chelsio.com, ferruh.yigit@intel.com,\n\tarybchenko@solarflare.com, adrien.mazarguil@6wind.com", "Date": "Tue, 26 Jun 2018 12:32:17 +0200", "Message-ID": "<9387415.Y76A5Ptqcu@xps>", "In-Reply-To": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>", "References": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "7Bit", "Content-Type": "text/plain; charset=\"us-ascii\"", "Subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 83007, "web_url": "http://patches.dpdk.org/comment/83007/", "msgid": "<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com", "date": "2018-07-02T09:09:06", "subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP\n\tport\trewrite actions to flow API", "submitter": { "id": 1065, "url": "http://patches.dpdk.org/api/people/1065/?format=api", "name": "Xiaoyu Min", "email": "jackmin@mellanox.com" }, "content": "Hey,\n\nI've one question: \n\nDo those APIs support modify inner IP headers? \n\nIn our scenarios, we need to specific that NAT action is on inner or outer IP header.\n\nThanks,\n-Jack\n\n> -----Original Message-----\n> From: dev <dev-bounces@dpdk.org> On Behalf Of Rahul Lakkireddy\n> Sent: June 22, 2018 17:56\n> To: dev@dpdk.org\n> Cc: shaguna@chelsio.com; indranil@chelsio.com; nirranjan@chelsio.com\n> Subject: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port rewrite\n> actions to flow API\n> \n> This series of patches add support for actions:\n> - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.\n> - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.\n> - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.\n> - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.\n> - OF_SET_TP_SRC - set a new TCP/UDP source port number.\n> - OF_SET_TP_DST - set a new TCP/UDP destination port number.\n> \n> These actions are useful in Network Address Translation use case to edit IP\n> address and TCP/UDP port numbers before switching the packets out to the\n> destination device port.\n> \n> The IP address and TCP/UDP port rewrite actions are based on\n> OFPAT_SET_NW_SRC, OFPAT_SET_NW_DST, OFPAT_SET_TP_SRC, and\n> OFPAT_SET_TP_DST actions from OpenFlow Specification [1].\n> \n> Patch 1 adds support for IP address rewrite to rte_flow and testpmd.\n> \n> Patch 2 adds support for TCP/UDP port rewrite to rte_flow and testpmd.\n> \n> Patch 3 shows CXGBE PMD example to offload these actions to hardware.\n> \n> Feedback and suggestions will be much appreciated.\n> \n> Thanks,\n> Rahul\n> \n> [1]\n> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.open\n> networking.org%2Fimages%2Fopenflow-switch-\n> v1.5.1.pdf&data=02%7C01%7Cxuemingl%40mellanox.com%7C74c8ce3b79954b2f\n> 123208d5d8268617%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C1%7C636\n> 652582334142929&sdata=uoFc1KjVTkGI9fdaPNXvXYRmh%2F6HLMKT79IwgvDSH\n> 0k%3D&reserved=0\n> \n> Shagun Agrawal (3):\n> ethdev: add flow api actions to modify IP addresses\n> ethdev: add flow api actions to modify TCP/UDP port numbers\n> net/cxgbe: add flow actions to modify IP and TCP/UDP port address\n> \n> app/test-pmd/cmdline_flow.c | 150\n> ++++++++++++++++++++++++++++\n> app/test-pmd/config.c | 12 +++\n> doc/guides/prog_guide/rte_flow.rst | 102 +++++++++++++++++++\n> doc/guides/testpmd_app_ug/testpmd_funcs.rst | 24 +++++\n> drivers/net/cxgbe/base/common.h | 1 +\n> drivers/net/cxgbe/base/t4fw_interface.h | 50 ++++++++++\n> drivers/net/cxgbe/cxgbe_filter.c | 23 ++++-\n> drivers/net/cxgbe/cxgbe_filter.h | 26 ++++-\n> drivers/net/cxgbe/cxgbe_flow.c | 127 +++++++++++++++++++++++\n> drivers/net/cxgbe/cxgbe_main.c | 10 ++\n> lib/librte_ethdev/rte_flow.c | 12 +++\n> lib/librte_ethdev/rte_flow.h | 92 +++++++++++++++++\n> 12 files changed, 625 insertions(+), 4 deletions(-)\n> \n> --\n> 2.14.1", "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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 8F6B83572;\n\tMon, 2 Jul 2018 11:09:09 +0200 (CEST)", "from EUR04-VI1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr80084.outbound.protection.outlook.com [40.107.8.84])\n\tby dpdk.org (Postfix) with ESMTP id 563723237\n\tfor <dev@dpdk.org>; Mon, 2 Jul 2018 11:09:08 +0200 (CEST)", "from HE1PR05MB4617.eurprd05.prod.outlook.com (20.176.163.142) by\n\tHE1PR05MB1452.eurprd05.prod.outlook.com (10.164.49.26) with Microsoft\n\tSMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.906.26; Mon, 2 Jul 2018 09:09:06 +0000", "from HE1PR05MB4617.eurprd05.prod.outlook.com\n\t([fe80::8056:160a:6cc2:e7c0]) by\n\tHE1PR05MB4617.eurprd05.prod.outlook.com\n\t([fe80::8056:160a:6cc2:e7c0%2]) with mapi id 15.20.0906.026;\n\tMon, 2 Jul 2018 09:09:06 +0000" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=0yFTIHsdkrwanc1txduSROhBWQh3/tHMl8E15Z+98rw=;\n\tb=CecDpsxl1RNKJ2bJLHF2A4U3Fc0z+3gQvGvNBnEK09GyU/AtsOK9e9OGXMG3R2UyRH7whrCCYZHEE0DshsbulJUJODUIikv/buL1HCRA19nP5/4sZMYhO/7MelFd7Z5B33YRAAfcl+ZDytMmqtnHfdYDGbEYlsonqjKwcU+F30s=", "From": "Jack Min <jackmin@mellanox.com>", "To": "Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>, \"dev@dpdk.org\"\n\t<dev@dpdk.org>", "CC": "\"shaguna@chelsio.com\" <shaguna@chelsio.com>, \"indranil@chelsio.com\"\n\t<indranil@chelsio.com>, \"nirranjan@chelsio.com\" <nirranjan@chelsio.com>, \n\tShahaf Shuler <shahafs@mellanox.com>, \"Xueming(Steven) Li\"\n\t<xuemingl@mellanox.com>", "Thread-Topic": "[dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "Thread-Index": "AQHUCg9lT6rsj2QcEku0DGHsut/CKKR7rsFA", "Date": "Mon, 2 Jul 2018 09:09:06 +0000", "Message-ID": "<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>", "References": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>", "In-Reply-To": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=jackmin@mellanox.com; ", "x-originating-ip": "[61.173.99.150]", "x-ms-publictraffictype": "Email", "x-microsoft-exchange-diagnostics": "1; HE1PR05MB1452;\n\t7:7LlR9fOp9JBiNtRpY/Ywer/kr/TQMhEkwaO0/i29x7ntHtWF5eRe8tAPIrD79p1mtfjkLnwUycNNx1YbbPsEJSq3zZCx1ivi9vUfpo5cFyn4dPXThHiMw8pBBK7JnwrCJWVmGuX5IJKcSiEd2oCdTgtvZwC7RjfST0OPB+pt80/YfYPyeeCgvS/lbSXyFCzaJ0fIV9LvQSaPwkNFW6V9iHJxHsI6xCFKHlBrAbA2YeDMj/gy6XsxMBczwKUQ7Z2W", "x-ms-exchange-antispam-srfa-diagnostics": "SOS;", "x-ms-office365-filtering-correlation-id": "1616f6dc-11be-41e4-111e-08d5dffb7698", "x-ms-office365-filtering-ht": "Tenant", "x-microsoft-antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989117)(5600053)(711020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020);\n\tSRVR:HE1PR05MB1452; ", "x-ms-traffictypediagnostic": "HE1PR05MB1452:", "x-microsoft-antispam-prvs": "<HE1PR05MB14523E3F9242FA90DC05484ACC430@HE1PR05MB1452.eurprd05.prod.outlook.com>", "x-exchange-antispam-report-test": "UriScan:(189930954265078)(45079756050767);", "x-ms-exchange-senderadcheck": "1", "x-exchange-antispam-report-cfa-test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(3002001)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011)(7699016);\n\tSRVR:HE1PR05MB1452; BCL:0; PCL:0; RULEID:; SRVR:HE1PR05MB1452; ", "x-forefront-prvs": "07215D0470", "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(39850400004)(346002)(376002)(136003)(396003)(366004)(189003)(199004)(13464003)(5660300001)(6306002)(86362001)(256004)(6246003)(53936002)(25786009)(5250100002)(486006)(305945005)(7736002)(478600001)(45080400002)(74316002)(26005)(2501003)(54906003)(446003)(11346002)(107886003)(6436002)(102836004)(110136005)(186003)(99286004)(316002)(476003)(55016002)(9686003)(966005)(97736004)(66066001)(68736007)(7696005)(6506007)(53546011)(76176011)(2900100001)(14454004)(81156014)(81166006)(33656002)(229853002)(4326008)(8936002)(106356001)(105586002)(3846002)(6116002)(2906002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR05MB1452;\n\tH:HE1PR05MB4617.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en;\n\tPTR:InfoNoRecords; MX:1; A:1; ", "received-spf": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)", "x-microsoft-antispam-message-info": "g2p7ecjQOdPiVo2rUlo9AY6LwzguJG1rqEs/js8GScMfTWStjFHVQyryoO2x3bhqh3JW60Q8vWUpGJPBSA47gQj9oQn5/E3R5ywxYNXQypLOzexIr0RirSKTvib/rGXvvaYh2xOWnhObJ7+AOMuwSCBBCSSe8Q6FtL/G2r5PkU2XSIs0KpjQTPMz2fJOFS3NZGE/zpQPh7ty0T/DZKiGeTWCTLpu2QAgu2ktUR1Sb4ubjbYWNRH56+uKNBcA+xJKwTbMLkpX9iI2Bt2yS37T53vchSfWRrdImwU60dtwAK/vTNTFVK78DbVau0qAvbNo5Ry7qp0FPB7AVW2ZQgF8Vekewe1eSJjmZC7UJAP5P+A=", "spamdiagnosticoutput": "1:99", "spamdiagnosticmetadata": "NSPM", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "X-OriginatorOrg": "Mellanox.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "1616f6dc-11be-41e4-111e-08d5dffb7698", "X-MS-Exchange-CrossTenant-originalarrivaltime": "02 Jul 2018 09:09:06.0537\n\t(UTC)", "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted", "X-MS-Exchange-CrossTenant-id": "a652971c-7d2e-4d9b-a6a4-d149256f461b", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "HE1PR05MB1452", "Subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP\n\tport\trewrite actions to flow API", "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 83014, "web_url": "http://patches.dpdk.org/comment/83014/", "msgid": "<20180702120421.GA28446@chelsio.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20180702120421.GA28446@chelsio.com", "date": "2018-07-02T12:04:22", "subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "submitter": { "id": 241, "url": "http://patches.dpdk.org/api/people/241/?format=api", "name": "Rahul Lakkireddy", "email": "rahul.lakkireddy@chelsio.com" }, "content": "Hi Jack,\n\nOn Monday, July 07/02/18, 2018 at 14:39:06 +0530, Jack Min wrote:\n> Hey,\n> \n> I've one question: \n> \n> Do those APIs support modify inner IP headers? \n> \n\nI'm afraid not. These API only modify outer IP addresses.\n\nI can think of two ways to achieve this:\n\n1. Enhance these API to accept an additional flag to indicate\n inner or outer. For example, to set inner IPv4 address, we can\n set inner to 1 in following structure.\n\n struct rte_flow_action_of_set_nw_ipv4 {\n\t uint32_t inner:1; /* 1 - Inner, 0 - Outer */\n\t uint32_t reserved:31;\n\t uint32_t ipv4_addr;\n };\n\n2. Add new actions to indicate inner IP addresses; i.e.\n\n RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_SRC\n RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_DST\n RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_SRC\n RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_DST\n\nThanks,\nRahul\n\n> In our scenarios, we need to specific that NAT action is on inner or outer IP header.\n> \n> Thanks,\n> -Jack\n> \n> > -----Original Message-----\n> > From: dev <dev-bounces@dpdk.org> On Behalf Of Rahul Lakkireddy\n> > Sent: June 22, 2018 17:56\n> > To: dev@dpdk.org\n> > Cc: shaguna@chelsio.com; indranil@chelsio.com; nirranjan@chelsio.com\n> > Subject: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port rewrite\n> > actions to flow API\n> > \n> > This series of patches add support for actions:\n> > - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.\n> > - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.\n> > - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.\n> > - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.\n> > - OF_SET_TP_SRC - set a new TCP/UDP source port number.\n> > - OF_SET_TP_DST - set a new TCP/UDP destination port number.\n> > \n> > These actions are useful in Network Address Translation use case to edit IP\n> > address and TCP/UDP port numbers before switching the packets out to the\n> > destination device port.\n> > \n> > The IP address and TCP/UDP port rewrite actions are based on\n> > OFPAT_SET_NW_SRC, OFPAT_SET_NW_DST, OFPAT_SET_TP_SRC, and\n> > OFPAT_SET_TP_DST actions from OpenFlow Specification [1].\n> > \n> > Patch 1 adds support for IP address rewrite to rte_flow and testpmd.\n> > \n> > Patch 2 adds support for TCP/UDP port rewrite to rte_flow and testpmd.\n> > \n> > Patch 3 shows CXGBE PMD example to offload these actions to hardware.\n> > \n> > Feedback and suggestions will be much appreciated.\n> > \n> > Thanks,\n> > Rahul\n> > \n> > [1]\n> > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.open\n> > networking.org%2Fimages%2Fopenflow-switch-\n> > v1.5.1.pdf&data=02%7C01%7Cxuemingl%40mellanox.com%7C74c8ce3b79954b2f\n> > 123208d5d8268617%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C1%7C636\n> > 652582334142929&sdata=uoFc1KjVTkGI9fdaPNXvXYRmh%2F6HLMKT79IwgvDSH\n> > 0k%3D&reserved=0\n> > \n> > Shagun Agrawal (3):\n> > ethdev: add flow api actions to modify IP addresses\n> > ethdev: add flow api actions to modify TCP/UDP port numbers\n> > net/cxgbe: add flow actions to modify IP and TCP/UDP port address\n> > \n> > app/test-pmd/cmdline_flow.c | 150\n> > ++++++++++++++++++++++++++++\n> > app/test-pmd/config.c | 12 +++\n> > doc/guides/prog_guide/rte_flow.rst | 102 +++++++++++++++++++\n> > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 24 +++++\n> > drivers/net/cxgbe/base/common.h | 1 +\n> > drivers/net/cxgbe/base/t4fw_interface.h | 50 ++++++++++\n> > drivers/net/cxgbe/cxgbe_filter.c | 23 ++++-\n> > drivers/net/cxgbe/cxgbe_filter.h | 26 ++++-\n> > drivers/net/cxgbe/cxgbe_flow.c | 127 +++++++++++++++++++++++\n> > drivers/net/cxgbe/cxgbe_main.c | 10 ++\n> > lib/librte_ethdev/rte_flow.c | 12 +++\n> > lib/librte_ethdev/rte_flow.h | 92 +++++++++++++++++\n> > 12 files changed, 625 insertions(+), 4 deletions(-)\n> > \n> > --\n> > 2.14.1\n>", "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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 337091B4F8;\n\tMon, 2 Jul 2018 14:05:32 +0200 (CEST)", "from stargate.chelsio.com (stargate.chelsio.com [12.32.117.8])\n\tby dpdk.org (Postfix) with ESMTP id 317A81B4F7\n\tfor <dev@dpdk.org>; Mon, 2 Jul 2018 14:05:29 +0200 (CEST)", "from localhost (scalar.blr.asicdesigners.com [10.193.185.94])\n\tby stargate.chelsio.com (8.13.8/8.13.8) with ESMTP id w62C5Ojx020285; \n\tMon, 2 Jul 2018 05:05:25 -0700" ], "Date": "Mon, 2 Jul 2018 17:34:22 +0530", "From": "Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>", "To": "Jack Min <jackmin@mellanox.com>", "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>, Shagun Agarwal <shaguna@chelsio.com>,\n\tIndranil Choudhury <indranil@chelsio.com>,\n\tNirranjan Kirubaharan <nirranjan@chelsio.com>,\n\tShahaf Shuler <shahafs@mellanox.com>,\n\t\"Xueming(Steven) Li\" <xuemingl@mellanox.com>", "Message-ID": "<20180702120421.GA28446@chelsio.com>", "References": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>\n\t<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>", "User-Agent": "Mutt/1.5.24 (2015-08-30)", "Subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 83046, "web_url": "http://patches.dpdk.org/comment/83046/", "msgid": "<HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com", "date": "2018-07-03T02:27:55", "subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "submitter": { "id": 1065, "url": "http://patches.dpdk.org/api/people/1065/?format=api", "name": "Xiaoyu Min", "email": "jackmin@mellanox.com" }, "content": "Hey Rahul,\n\nThank you, those two are the ways to achieve that.\n\nPersonally I prefer the option 1 but with a little bit difference, something like:\n\n struct rte_flow_action_of_set_nw_ipv4 {\n \t uint32_t ipv4_addr;\n uint8_t level; /* 0 - outer (default), 1 - inner, 2 -255 deeper if available */\n };\n\nWhat do you think ?\n\n-Jack\n\n> -----Original Message-----\n> From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n> Sent: July 2, 2018 20:04\n> To: Jack Min <jackmin@mellanox.com>\n> Cc: dev@dpdk.org; Shagun Agarwal <shaguna@chelsio.com>; Indranil Choudhury\n> <indranil@chelsio.com>; Nirranjan Kirubaharan <nirranjan@chelsio.com>; Shahaf\n> Shuler <shahafs@mellanox.com>; Xueming(Steven) Li <xuemingl@mellanox.com>\n> Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n> rewrite actions to flow API\n> \n> Hi Jack,\n> \n> On Monday, July 07/02/18, 2018 at 14:39:06 +0530, Jack Min wrote:\n> > Hey,\n> >\n> > I've one question:\n> >\n> > Do those APIs support modify inner IP headers?\n> >\n> \n> I'm afraid not. These API only modify outer IP addresses.\n> \n> I can think of two ways to achieve this:\n> \n> 1. Enhance these API to accept an additional flag to indicate\n> inner or outer. For example, to set inner IPv4 address, we can\n> set inner to 1 in following structure.\n> \n> struct rte_flow_action_of_set_nw_ipv4 {\n> \t uint32_t inner:1; /* 1 - Inner, 0 - Outer */\n> \t uint32_t reserved:31;\n> \t uint32_t ipv4_addr;\n> };\n> \n> 2. Add new actions to indicate inner IP addresses; i.e.\n> \n> RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_SRC\n> RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_DST\n> RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_SRC\n> RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_DST\n> \n> Thanks,\n> Rahul\n> \n> > In our scenarios, we need to specific that NAT action is on inner or outer IP\n> header.\n> >\n> > Thanks,\n> > -Jack\n> >\n> > > -----Original Message-----\n> > > From: dev <dev-bounces@dpdk.org> On Behalf Of Rahul Lakkireddy\n> > > Sent: June 22, 2018 17:56\n> > > To: dev@dpdk.org\n> > > Cc: shaguna@chelsio.com; indranil@chelsio.com; nirranjan@chelsio.com\n> > > Subject: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP\n> > > port rewrite actions to flow API\n> > >\n> > > This series of patches add support for actions:\n> > > - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.\n> > > - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.\n> > > - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.\n> > > - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.\n> > > - OF_SET_TP_SRC - set a new TCP/UDP source port number.\n> > > - OF_SET_TP_DST - set a new TCP/UDP destination port number.\n> > >\n> > > These actions are useful in Network Address Translation use case to\n> > > edit IP address and TCP/UDP port numbers before switching the\n> > > packets out to the destination device port.\n> > >\n> > > The IP address and TCP/UDP port rewrite actions are based on\n> > > OFPAT_SET_NW_SRC, OFPAT_SET_NW_DST, OFPAT_SET_TP_SRC, and\n> > > OFPAT_SET_TP_DST actions from OpenFlow Specification [1].\n> > >\n> > > Patch 1 adds support for IP address rewrite to rte_flow and testpmd.\n> > >\n> > > Patch 2 adds support for TCP/UDP port rewrite to rte_flow and testpmd.\n> > >\n> > > Patch 3 shows CXGBE PMD example to offload these actions to hardware.\n> > >\n> > > Feedback and suggestions will be much appreciated.\n> > >\n> > > Thanks,\n> > > Rahul\n> > >\n> > > [1]\n> > > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fww\n> > > w.open\n> > > networking.org%2Fimages%2Fopenflow-switch-\n> > >\n> v1.5.1.pdf&data=02%7C01%7Cxuemingl%40mellanox.com%7C74c8ce3b79954b2f\n> > >\n> 123208d5d8268617%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C1%7C636\n> > >\n> 652582334142929&sdata=uoFc1KjVTkGI9fdaPNXvXYRmh%2F6HLMKT79IwgvDSH\n> > > 0k%3D&reserved=0\n> > >\n> > > Shagun Agrawal (3):\n> > > ethdev: add flow api actions to modify IP addresses\n> > > ethdev: add flow api actions to modify TCP/UDP port numbers\n> > > net/cxgbe: add flow actions to modify IP and TCP/UDP port address\n> > >\n> > > app/test-pmd/cmdline_flow.c | 150\n> > > ++++++++++++++++++++++++++++\n> > > app/test-pmd/config.c | 12 +++\n> > > doc/guides/prog_guide/rte_flow.rst | 102 +++++++++++++++++++\n> > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 24 +++++\n> > > drivers/net/cxgbe/base/common.h | 1 +\n> > > drivers/net/cxgbe/base/t4fw_interface.h | 50 ++++++++++\n> > > drivers/net/cxgbe/cxgbe_filter.c | 23 ++++-\n> > > drivers/net/cxgbe/cxgbe_filter.h | 26 ++++-\n> > > drivers/net/cxgbe/cxgbe_flow.c | 127 +++++++++++++++++++++++\n> > > drivers/net/cxgbe/cxgbe_main.c | 10 ++\n> > > lib/librte_ethdev/rte_flow.c | 12 +++\n> > > lib/librte_ethdev/rte_flow.h | 92 +++++++++++++++++\n> > > 12 files changed, 625 insertions(+), 4 deletions(-)\n> > >\n> > > --\n> > > 2.14.1\n> >", "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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 98DD31BE4F;\n\tTue, 3 Jul 2018 04:28:04 +0200 (CEST)", "from EUR02-AM5-obe.outbound.protection.outlook.com\n\t(mail-eopbgr00060.outbound.protection.outlook.com [40.107.0.60])\n\tby dpdk.org (Postfix) with ESMTP id F1C8E1BE4E\n\tfor <dev@dpdk.org>; Tue, 3 Jul 2018 04:28:02 +0200 (CEST)", "from HE1PR05MB4617.eurprd05.prod.outlook.com (20.176.163.142) by\n\tHE1PR05MB3291.eurprd05.prod.outlook.com (10.170.243.29) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.906.26; Tue, 3 Jul 2018 02:28:01 +0000", "from HE1PR05MB4617.eurprd05.prod.outlook.com\n\t([fe80::8056:160a:6cc2:e7c0]) by\n\tHE1PR05MB4617.eurprd05.prod.outlook.com\n\t([fe80::8056:160a:6cc2:e7c0%2]) with mapi id 15.20.0906.026;\n\tTue, 3 Jul 2018 02:27:55 +0000" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=ruG8qkK4AAa+kIRe0JbN/0bkeepfkoS/o2/TyWv9nG8=;\n\tb=Ta1i4YRx+HB+EfVjl2k+6WY3+3lMEVLMPifGy1FWOlrb3bOyQcmVg8NL/QhLPxM5UXHBJTJ1Fuv9pzSNUHRH140AzMNZcryxM2j78y1MLAjzGB2vCsVETKIU+TBv7HEd69TQTsvvMa3VPMBvnVMogvio8kSB+lR12dFO0lA7oWw=", "From": "Jack Min <jackmin@mellanox.com>", "To": "Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>", "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, Shagun Agarwal <shaguna@chelsio.com>,\n\tIndranil Choudhury <indranil@chelsio.com>, Nirranjan Kirubaharan\n\t<nirranjan@chelsio.com>, Shahaf Shuler <shahafs@mellanox.com>,\n\t\"Xueming(Steven) Li\" <xuemingl@mellanox.com>", "Thread-Topic": "[dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "Thread-Index": "AQHUEfz8avEwNjsRdU+lfRVu3r+6MKR8wsoQ", "Date": "Tue, 3 Jul 2018 02:27:55 +0000", "Message-ID": "<HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com>", "References": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>\n\t<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180702120421.GA28446@chelsio.com>", "In-Reply-To": "<20180702120421.GA28446@chelsio.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=jackmin@mellanox.com; ", "x-originating-ip": "[61.173.99.150]", "x-ms-publictraffictype": "Email", "x-microsoft-exchange-diagnostics": "1; HE1PR05MB3291;\n\t7:5auxzMKevLP/BWwj4K45ZHg0IRXPw9e4b7+lS1OyowzM2yr4WkjQUfYpdwlaosFy/XMH2b+UEO+B0c50Qp8zf1eg59280w4J9DGsfsIcn+5mgJ8B0Dlx9w1kRnCm1hhXlsqo5m5/GqcC4aRDWEZ4Aehz1Uu3JIr+PlQ1yAg+Nh6tMyLHVLh2qZBmn9YtyNJQVWnnWxB+7ng9kZclH827TXeV2WYSYZNf6HSSokgbAPba32jrq+urnzSZrq+OWXrk", "x-ms-exchange-antispam-srfa-diagnostics": "SOS;", "x-ms-office365-filtering-correlation-id": "ed6281a5-a5ec-4c0e-24b0-08d5e08c95a2", "x-ms-office365-filtering-ht": "Tenant", "x-microsoft-antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989117)(5600053)(711020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020);\n\tSRVR:HE1PR05MB3291; ", "x-ms-traffictypediagnostic": "HE1PR05MB3291:", "x-microsoft-antispam-prvs": "<HE1PR05MB3291B2131603071CA515072FCC420@HE1PR05MB3291.eurprd05.prod.outlook.com>", "x-exchange-antispam-report-test": "UriScan:(189930954265078)(45079756050767);", "x-ms-exchange-senderadcheck": "1", "x-exchange-antispam-report-cfa-test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(3002001)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011)(7699016);\n\tSRVR:HE1PR05MB3291; BCL:0; PCL:0; RULEID:; SRVR:HE1PR05MB3291; ", "x-forefront-prvs": "0722981D2A", "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(136003)(39860400002)(396003)(366004)(346002)(376002)(13464003)(199004)(189003)(14454004)(966005)(45080400002)(256004)(478600001)(9686003)(81156014)(8676002)(5250100002)(6116002)(3846002)(54906003)(316002)(68736007)(99286004)(6916009)(97736004)(66066001)(5660300001)(8936002)(81166006)(6436002)(7736002)(305945005)(86362001)(74316002)(2900100001)(186003)(2906002)(26005)(229853002)(107886003)(486006)(102836004)(11346002)(476003)(446003)(53936002)(6246003)(4326008)(25786009)(53546011)(106356001)(33656002)(76176011)(105586002)(6506007)(7696005)(6306002)(55016002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR05MB3291;\n\tH:HE1PR05MB4617.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en;\n\tPTR:InfoNoRecords; A:1; MX:1; ", "received-spf": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)", "x-microsoft-antispam-message-info": "Vq49toS2d6QZVqfk4k9026n0NOy7yrUYSS2OGGiPfKGJ1LzMbjNq+xSZ0R1HXVKwsA7UgDBqMTkWIwsCuuwYOpCCVnHzaTrQtPq2djAGFh02/rAvhpf6T71KQoP/c/DiPBxePJuftGvhRJKXh57yxuq/vv7xD2LdOLsm2XvURhu2p+B3wuTMxRkVUkZeHUL/5xcKNRITTAEWRzAHQJDHuKTBZY0qbs22VbwdsYurnYdLfvb7Sg+zKcbrPuJJF068B3GFy7sL9DT3oC3m7rIzc9cQbMEQJ7+tgqhV6+H3TCT0keenWlWKVhTZezK8jqq36gJaffdJxfShfVZmpM8MTjVsBT9SELi9+7bA9agcG7Q=", "spamdiagnosticoutput": "1:99", "spamdiagnosticmetadata": "NSPM", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "X-OriginatorOrg": "Mellanox.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "ed6281a5-a5ec-4c0e-24b0-08d5e08c95a2", "X-MS-Exchange-CrossTenant-originalarrivaltime": "03 Jul 2018 02:27:55.1861\n\t(UTC)", "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted", "X-MS-Exchange-CrossTenant-id": "a652971c-7d2e-4d9b-a6a4-d149256f461b", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "HE1PR05MB3291", "Subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 83094, "web_url": "http://patches.dpdk.org/comment/83094/", "msgid": "<20180703133920.GA15447@chelsio.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20180703133920.GA15447@chelsio.com", "date": "2018-07-03T13:39:22", "subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "submitter": { "id": 241, "url": "http://patches.dpdk.org/api/people/241/?format=api", "name": "Rahul Lakkireddy", "email": "rahul.lakkireddy@chelsio.com" }, "content": "On Tuesday, July 07/03/18, 2018 at 07:57:55 +0530, Jack Min wrote:\n> Hey Rahul,\n> \n> Thank you, those two are the ways to achieve that.\n> \n> Personally I prefer the option 1 but with a little bit difference, something like:\n> \n> struct rte_flow_action_of_set_nw_ipv4 {\n> \t uint32_t ipv4_addr;\n> uint8_t level; /* 0 - outer (default), 1 - inner, 2 -255 deeper if available */\n> };\n> \n> What do you think ?\n> \n\nLooks good. I'll update the API and use the above approach in v2.\n\nThanks,\nRahul\n\n> \n> > -----Original Message-----\n> > From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n> > Sent: July 2, 2018 20:04\n> > To: Jack Min <jackmin@mellanox.com>\n> > Cc: dev@dpdk.org; Shagun Agarwal <shaguna@chelsio.com>; Indranil Choudhury\n> > <indranil@chelsio.com>; Nirranjan Kirubaharan <nirranjan@chelsio.com>; Shahaf\n> > Shuler <shahafs@mellanox.com>; Xueming(Steven) Li <xuemingl@mellanox.com>\n> > Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n> > rewrite actions to flow API\n> > \n> > Hi Jack,\n> > \n> > On Monday, July 07/02/18, 2018 at 14:39:06 +0530, Jack Min wrote:\n> > > Hey,\n> > >\n> > > I've one question:\n> > >\n> > > Do those APIs support modify inner IP headers?\n> > >\n> > \n> > I'm afraid not. These API only modify outer IP addresses.\n> > \n> > I can think of two ways to achieve this:\n> > \n> > 1. Enhance these API to accept an additional flag to indicate\n> > inner or outer. For example, to set inner IPv4 address, we can\n> > set inner to 1 in following structure.\n> > \n> > struct rte_flow_action_of_set_nw_ipv4 {\n> > \t uint32_t inner:1; /* 1 - Inner, 0 - Outer */\n> > \t uint32_t reserved:31;\n> > \t uint32_t ipv4_addr;\n> > };\n> > \n> > 2. Add new actions to indicate inner IP addresses; i.e.\n> > \n> > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_SRC\n> > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_DST\n> > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_SRC\n> > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_DST\n> > \n> > Thanks,\n> > Rahul\n> > \n> > > In our scenarios, we need to specific that NAT action is on inner or outer IP\n> > header.\n> > >\n> > > Thanks,\n> > > -Jack\n> > >\n> > > > -----Original Message-----\n> > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Rahul Lakkireddy\n> > > > Sent: June 22, 2018 17:56\n> > > > To: dev@dpdk.org\n> > > > Cc: shaguna@chelsio.com; indranil@chelsio.com; nirranjan@chelsio.com\n> > > > Subject: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP\n> > > > port rewrite actions to flow API\n> > > >\n> > > > This series of patches add support for actions:\n> > > > - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.\n> > > > - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.\n> > > > - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.\n> > > > - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.\n> > > > - OF_SET_TP_SRC - set a new TCP/UDP source port number.\n> > > > - OF_SET_TP_DST - set a new TCP/UDP destination port number.\n> > > >\n> > > > These actions are useful in Network Address Translation use case to\n> > > > edit IP address and TCP/UDP port numbers before switching the\n> > > > packets out to the destination device port.\n> > > >\n> > > > The IP address and TCP/UDP port rewrite actions are based on\n> > > > OFPAT_SET_NW_SRC, OFPAT_SET_NW_DST, OFPAT_SET_TP_SRC, and\n> > > > OFPAT_SET_TP_DST actions from OpenFlow Specification [1].\n> > > >\n> > > > Patch 1 adds support for IP address rewrite to rte_flow and testpmd.\n> > > >\n> > > > Patch 2 adds support for TCP/UDP port rewrite to rte_flow and testpmd.\n> > > >\n> > > > Patch 3 shows CXGBE PMD example to offload these actions to hardware.\n> > > >\n> > > > Feedback and suggestions will be much appreciated.\n> > > >\n> > > > Thanks,\n> > > > Rahul\n> > > >\n> > > > [1]\n> > > > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fww\n> > > > w.open\n> > > > networking.org%2Fimages%2Fopenflow-switch-\n> > > >\n> > v1.5.1.pdf&data=02%7C01%7Cxuemingl%40mellanox.com%7C74c8ce3b79954b2f\n> > > >\n> > 123208d5d8268617%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C1%7C636\n> > > >\n> > 652582334142929&sdata=uoFc1KjVTkGI9fdaPNXvXYRmh%2F6HLMKT79IwgvDSH\n> > > > 0k%3D&reserved=0\n> > > >\n> > > > Shagun Agrawal (3):\n> > > > ethdev: add flow api actions to modify IP addresses\n> > > > ethdev: add flow api actions to modify TCP/UDP port numbers\n> > > > net/cxgbe: add flow actions to modify IP and TCP/UDP port address\n> > > >\n> > > > app/test-pmd/cmdline_flow.c | 150\n> > > > ++++++++++++++++++++++++++++\n> > > > app/test-pmd/config.c | 12 +++\n> > > > doc/guides/prog_guide/rte_flow.rst | 102 +++++++++++++++++++\n> > > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 24 +++++\n> > > > drivers/net/cxgbe/base/common.h | 1 +\n> > > > drivers/net/cxgbe/base/t4fw_interface.h | 50 ++++++++++\n> > > > drivers/net/cxgbe/cxgbe_filter.c | 23 ++++-\n> > > > drivers/net/cxgbe/cxgbe_filter.h | 26 ++++-\n> > > > drivers/net/cxgbe/cxgbe_flow.c | 127 +++++++++++++++++++++++\n> > > > drivers/net/cxgbe/cxgbe_main.c | 10 ++\n> > > > lib/librte_ethdev/rte_flow.c | 12 +++\n> > > > lib/librte_ethdev/rte_flow.h | 92 +++++++++++++++++\n> > > > 12 files changed, 625 insertions(+), 4 deletions(-)\n> > > >\n> > > > --\n> > > > 2.14.1\n> > >", "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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id D2C271B558;\n\tTue, 3 Jul 2018 15:40:31 +0200 (CEST)", "from stargate.chelsio.com (stargate.chelsio.com [12.32.117.8])\n\tby dpdk.org (Postfix) with ESMTP id 2D8C61B54F\n\tfor <dev@dpdk.org>; Tue, 3 Jul 2018 15:40:29 +0200 (CEST)", "from localhost (scalar.blr.asicdesigners.com [10.193.185.94])\n\tby stargate.chelsio.com (8.13.8/8.13.8) with ESMTP id w63DePRc028549; \n\tTue, 3 Jul 2018 06:40:26 -0700" ], "Date": "Tue, 3 Jul 2018 19:09:22 +0530", "From": "Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>", "To": "Jack Min <jackmin@mellanox.com>", "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>, Shagun Agarwal <shaguna@chelsio.com>,\n\tIndranil Choudhury <indranil@chelsio.com>,\n\tNirranjan Kirubaharan <nirranjan@chelsio.com>,\n\tShahaf Shuler <shahafs@mellanox.com>,\n\t\"Xueming(Steven) Li\" <xuemingl@mellanox.com>", "Message-ID": "<20180703133920.GA15447@chelsio.com>", "References": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>\n\t<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180702120421.GA28446@chelsio.com>\n\t<HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com>", "User-Agent": "Mutt/1.5.24 (2015-08-30)", "Subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 83124, "web_url": "http://patches.dpdk.org/comment/83124/", "msgid": "<HE1PR05MB4617C2F7D037ADA96E5FEBABCC410@HE1PR05MB4617.eurprd05.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/HE1PR05MB4617C2F7D037ADA96E5FEBABCC410@HE1PR05MB4617.eurprd05.prod.outlook.com", "date": "2018-07-04T01:11:54", "subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "submitter": { "id": 1065, "url": "http://patches.dpdk.org/api/people/1065/?format=api", "name": "Xiaoyu Min", "email": "jackmin@mellanox.com" }, "content": "Rahul, Thank you 😊!\n\n-Jack\n\n> -----Original Message-----\n> From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n> Sent: July 3, 2018 21:39\n> To: Jack Min <jackmin@mellanox.com>\n> Cc: dev@dpdk.org; Shagun Agarwal <shaguna@chelsio.com>; Indranil Choudhury\n> <indranil@chelsio.com>; Nirranjan Kirubaharan <nirranjan@chelsio.com>; Shahaf\n> Shuler <shahafs@mellanox.com>; Xueming(Steven) Li <xuemingl@mellanox.com>\n> Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n> rewrite actions to flow API\n> \n> On Tuesday, July 07/03/18, 2018 at 07:57:55 +0530, Jack Min wrote:\n> > Hey Rahul,\n> >\n> > Thank you, those two are the ways to achieve that.\n> >\n> > Personally I prefer the option 1 but with a little bit difference, something like:\n> >\n> > struct rte_flow_action_of_set_nw_ipv4 {\n> > \t uint32_t ipv4_addr;\n> > uint8_t level; /* 0 - outer (default), 1 - inner, 2 -255 deeper if available\n> */\n> > };\n> >\n> > What do you think ?\n> >\n> \n> Looks good. I'll update the API and use the above approach in v2.\n> \n> Thanks,\n> Rahul\n> \n> >\n> > > -----Original Message-----\n> > > From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n> > > Sent: July 2, 2018 20:04\n> > > To: Jack Min <jackmin@mellanox.com>\n> > > Cc: dev@dpdk.org; Shagun Agarwal <shaguna@chelsio.com>; Indranil\n> > > Choudhury <indranil@chelsio.com>; Nirranjan Kirubaharan\n> > > <nirranjan@chelsio.com>; Shahaf Shuler <shahafs@mellanox.com>;\n> > > Xueming(Steven) Li <xuemingl@mellanox.com>\n> > > Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP\n> > > port rewrite actions to flow API\n> > >\n> > > Hi Jack,\n> > >\n> > > On Monday, July 07/02/18, 2018 at 14:39:06 +0530, Jack Min wrote:\n> > > > Hey,\n> > > >\n> > > > I've one question:\n> > > >\n> > > > Do those APIs support modify inner IP headers?\n> > > >\n> > >\n> > > I'm afraid not. These API only modify outer IP addresses.\n> > >\n> > > I can think of two ways to achieve this:\n> > >\n> > > 1. Enhance these API to accept an additional flag to indicate\n> > > inner or outer. For example, to set inner IPv4 address, we can\n> > > set inner to 1 in following structure.\n> > >\n> > > struct rte_flow_action_of_set_nw_ipv4 {\n> > > \t uint32_t inner:1; /* 1 - Inner, 0 - Outer */\n> > > \t uint32_t reserved:31;\n> > > \t uint32_t ipv4_addr;\n> > > };\n> > >\n> > > 2. Add new actions to indicate inner IP addresses; i.e.\n> > >\n> > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_SRC\n> > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_DST\n> > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_SRC\n> > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_DST\n> > >\n> > > Thanks,\n> > > Rahul\n> > >\n> > > > In our scenarios, we need to specific that NAT action is on inner\n> > > > or outer IP\n> > > header.\n> > > >\n> > > > Thanks,\n> > > > -Jack\n> > > >\n> > > > > -----Original Message-----\n> > > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Rahul Lakkireddy\n> > > > > Sent: June 22, 2018 17:56\n> > > > > To: dev@dpdk.org\n> > > > > Cc: shaguna@chelsio.com; indranil@chelsio.com;\n> > > > > nirranjan@chelsio.com\n> > > > > Subject: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP\n> > > > > port rewrite actions to flow API\n> > > > >\n> > > > > This series of patches add support for actions:\n> > > > > - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.\n> > > > > - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.\n> > > > > - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.\n> > > > > - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.\n> > > > > - OF_SET_TP_SRC - set a new TCP/UDP source port number.\n> > > > > - OF_SET_TP_DST - set a new TCP/UDP destination port number.\n> > > > >\n> > > > > These actions are useful in Network Address Translation use case\n> > > > > to edit IP address and TCP/UDP port numbers before switching the\n> > > > > packets out to the destination device port.\n> > > > >\n> > > > > The IP address and TCP/UDP port rewrite actions are based on\n> > > > > OFPAT_SET_NW_SRC, OFPAT_SET_NW_DST, OFPAT_SET_TP_SRC,\n> and\n> > > > > OFPAT_SET_TP_DST actions from OpenFlow Specification [1].\n> > > > >\n> > > > > Patch 1 adds support for IP address rewrite to rte_flow and testpmd.\n> > > > >\n> > > > > Patch 2 adds support for TCP/UDP port rewrite to rte_flow and testpmd.\n> > > > >\n> > > > > Patch 3 shows CXGBE PMD example to offload these actions to hardware.\n> > > > >\n> > > > > Feedback and suggestions will be much appreciated.\n> > > > >\n> > > > > Thanks,\n> > > > > Rahul\n> > > > >\n> > > > > [1]\n> > > > > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%\n> > > > > 2Fww\n> > > > > w.open\n> > > > > networking.org%2Fimages%2Fopenflow-switch-\n> > > > >\n> > >\n> v1.5.1.pdf&data=02%7C01%7Cxuemingl%40mellanox.com%7C74c8ce3b79954b2f\n> > > > >\n> > >\n> 123208d5d8268617%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C1%7C636\n> > > > >\n> > >\n> 652582334142929&sdata=uoFc1KjVTkGI9fdaPNXvXYRmh%2F6HLMKT79IwgvDSH\n> > > > > 0k%3D&reserved=0\n> > > > >\n> > > > > Shagun Agrawal (3):\n> > > > > ethdev: add flow api actions to modify IP addresses\n> > > > > ethdev: add flow api actions to modify TCP/UDP port numbers\n> > > > > net/cxgbe: add flow actions to modify IP and TCP/UDP port\n> > > > > address\n> > > > >\n> > > > > app/test-pmd/cmdline_flow.c | 150\n> > > > > ++++++++++++++++++++++++++++\n> > > > > app/test-pmd/config.c | 12 +++\n> > > > > doc/guides/prog_guide/rte_flow.rst | 102 +++++++++++++++++++\n> > > > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 24 +++++\n> > > > > drivers/net/cxgbe/base/common.h | 1 +\n> > > > > drivers/net/cxgbe/base/t4fw_interface.h | 50 ++++++++++\n> > > > > drivers/net/cxgbe/cxgbe_filter.c | 23 ++++-\n> > > > > drivers/net/cxgbe/cxgbe_filter.h | 26 ++++-\n> > > > > drivers/net/cxgbe/cxgbe_flow.c | 127\n> +++++++++++++++++++++++\n> > > > > drivers/net/cxgbe/cxgbe_main.c | 10 ++\n> > > > > lib/librte_ethdev/rte_flow.c | 12 +++\n> > > > > lib/librte_ethdev/rte_flow.h | 92 +++++++++++++++++\n> > > > > 12 files changed, 625 insertions(+), 4 deletions(-)\n> > > > >\n> > > > > --\n> > > > > 2.14.1\n> > > >", "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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id CEC261BE1E;\n\tWed, 4 Jul 2018 03:11:56 +0200 (CEST)", "from EUR04-DB3-obe.outbound.protection.outlook.com\n\t(mail-eopbgr60079.outbound.protection.outlook.com [40.107.6.79])\n\tby dpdk.org (Postfix) with ESMTP id 43C901BE0D\n\tfor <dev@dpdk.org>; Wed, 4 Jul 2018 03:11:56 +0200 (CEST)", "from HE1PR05MB4617.eurprd05.prod.outlook.com (20.176.163.142) by\n\tHE1PR05MB4684.eurprd05.prod.outlook.com (20.176.163.161) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.906.25; Wed, 4 Jul 2018 01:11:54 +0000", "from HE1PR05MB4617.eurprd05.prod.outlook.com\n\t([fe80::8056:160a:6cc2:e7c0]) by\n\tHE1PR05MB4617.eurprd05.prod.outlook.com\n\t([fe80::8056:160a:6cc2:e7c0%2]) with mapi id 15.20.0906.026;\n\tWed, 4 Jul 2018 01:11:54 +0000" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=tY5tnOTp+mXTr+iwg7kOC1U8Rx6NNhKsRIkx3LyhFHg=;\n\tb=qheMsPmsPj/0orQ5C7O7oCN4jC3ACBDA7wK5U64pbw3OnJHo5fOYmmv8CwYk1QXc977rxZYfP3MAoCQNnjimkbhO995hYzLR7zNdPBUHphY8UTScpx02ygmsSNW1p1PeB+0dttRYTZTXxHKJNvhdGF97jCXX2lwyK3UUvb4u4Qg=", "From": "Jack Min <jackmin@mellanox.com>", "To": "Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>", "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, Shagun Agarwal <shaguna@chelsio.com>,\n\tIndranil Choudhury <indranil@chelsio.com>, Nirranjan Kirubaharan\n\t<nirranjan@chelsio.com>, Shahaf Shuler <shahafs@mellanox.com>,\n\t\"Xueming(Steven) Li\" <xuemingl@mellanox.com>", "Thread-Topic": "[dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "Thread-Index": "AQHUEfz8avEwNjsRdU+lfRVu3r+6MKR8wsoQgAC/uwCAAMESYA==", "Date": "Wed, 4 Jul 2018 01:11:54 +0000", "Message-ID": "<HE1PR05MB4617C2F7D037ADA96E5FEBABCC410@HE1PR05MB4617.eurprd05.prod.outlook.com>", "References": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>\n\t<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180702120421.GA28446@chelsio.com>\n\t<HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180703133920.GA15447@chelsio.com>", "In-Reply-To": "<20180703133920.GA15447@chelsio.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=jackmin@mellanox.com; ", "x-originating-ip": "[58.34.203.114]", "x-ms-publictraffictype": "Email", "x-microsoft-exchange-diagnostics": "1; HE1PR05MB4684;\n\t7:TtLyL1EcUVxOFhoEHPiIfYnKYX2cmGuwnJZVZeceqo9PYV78fj1ka63DgjR8wB20sXM37G3A7sw4r5EuIvcKeDl/Vi8nrSnBH1CAcS5Zg5aMPkOqcOQLnU8Yjbhi5BGn1GwJC8bc/zI5KvFCq9Xjj82bzCTsLNw7F18QyxEY+g6/IHqJpFBy7cWrccuceIM4dy+MCv1fXoG3B6N9Kq4YbuN4+TPjfPBgZ+SUQ6s5MqKY+lb/D4aFWHFyfL1Ioy8b", "x-ms-exchange-antispam-srfa-diagnostics": "SOS;", "x-ms-office365-filtering-correlation-id": "79c5c8ca-4901-46f7-3fac-08d5e14b2168", "x-ms-office365-filtering-ht": "Tenant", "x-microsoft-antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989117)(5600053)(711020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020);\n\tSRVR:HE1PR05MB4684; ", "x-ms-traffictypediagnostic": "HE1PR05MB4684:", "x-microsoft-antispam-prvs": "<HE1PR05MB468495800C127E91DC3DD162CC410@HE1PR05MB4684.eurprd05.prod.outlook.com>", "x-exchange-antispam-report-test": "UriScan:(189930954265078)(45079756050767);", "x-ms-exchange-senderadcheck": "1", "x-exchange-antispam-report-cfa-test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(3231254)(944501410)(52105095)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(6072148)(201708071742011)(7699016);\n\tSRVR:HE1PR05MB4684; BCL:0; PCL:0; RULEID:; SRVR:HE1PR05MB4684; ", "x-forefront-prvs": "0723A02764", "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(39860400002)(136003)(396003)(366004)(346002)(376002)(189003)(199004)(13464003)(14444005)(105586002)(316002)(11346002)(476003)(446003)(53936002)(8676002)(55016002)(33656002)(486006)(26005)(81166006)(9686003)(86362001)(256004)(5250100002)(2906002)(305945005)(6306002)(74316002)(7736002)(8936002)(6436002)(81156014)(107886003)(6916009)(54906003)(6506007)(45080400002)(99286004)(229853002)(5660300001)(478600001)(53546011)(97736004)(3846002)(6116002)(6246003)(66066001)(7696005)(186003)(4326008)(2900100001)(106356001)(102836004)(25786009)(68736007)(93886005)(76176011)(14454004)(966005);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR05MB4684;\n\tH:HE1PR05MB4617.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en;\n\tPTR:InfoNoRecords; MX:1; A:1; ", "received-spf": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)", "x-microsoft-antispam-message-info": "lfsz0V/BjZkD9KYJA0dR3LX3NdEY1rEIVqPXTkY8HS3SWfNf6M6ZBe/EBCWQDF94DS0Ckv0CjxyXal6TnjYmTXzePnVlRF0apd8oQ2JfAm5DNcgt83VIkt36Eoq8or+OhsA4J6Gm5sr+4NyOCerEPXjXRooYpINLOqx8ZD3na7KMEWp5XqMxO1iARazHx/ftRGtwRS14rYP5n+VJFq/er814u84XJhORg+I00skCUjsjzgxtP72+7LztqFV4z31SBUFZL9b1yE22Tv99mcjmGDouY+/9mhCp0Pzw0Y+9G4f2n91DNbsO4AokmYcjBrxsMYYdh/zBLgpObqHMpYN13uQ0oYCk8F/k4e3jP8KMMx0=", "spamdiagnosticoutput": "1:99", "spamdiagnosticmetadata": "NSPM", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "MIME-Version": "1.0", "X-OriginatorOrg": "Mellanox.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "79c5c8ca-4901-46f7-3fac-08d5e14b2168", "X-MS-Exchange-CrossTenant-originalarrivaltime": "04 Jul 2018 01:11:54.0507\n\t(UTC)", "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted", "X-MS-Exchange-CrossTenant-id": "a652971c-7d2e-4d9b-a6a4-d149256f461b", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "HE1PR05MB4684", "Subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 83292, "web_url": "http://patches.dpdk.org/comment/83292/", "msgid": "<20180705201640.GR4025@6wind.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20180705201640.GR4025@6wind.com", "date": "2018-07-05T20:16:40", "subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "submitter": { "id": 165, "url": "http://patches.dpdk.org/api/people/165/?format=api", "name": "Adrien Mazarguil", "email": "adrien.mazarguil@6wind.com" }, "content": "On Tue, Jul 03, 2018 at 07:09:22PM +0530, Rahul Lakkireddy wrote:\n> On Tuesday, July 07/03/18, 2018 at 07:57:55 +0530, Jack Min wrote:\n> > Hey Rahul,\n> > \n> > Thank you, those two are the ways to achieve that.\n> > \n> > Personally I prefer the option 1 but with a little bit difference, something like:\n> > \n> > struct rte_flow_action_of_set_nw_ipv4 {\n> > \t uint32_t ipv4_addr;\n> > uint8_t level; /* 0 - outer (default), 1 - inner, 2 -255 deeper if available */\n> > };\n> > \n> > What do you think ?\n> > \n> \n> Looks good. I'll update the API and use the above approach in v2.\n\nI still haven't looked at the original proposal (will get there eventually),\nhowever keep in mind the presence of \"OF\" in action names stands for\n\"OpenFlow\".\n\nSince you chose this route, these actions must be implemented exactly as\ndefined by the OpenFlow specification, which comprises their name, input\nparameters and behavior.\n\nFor instance there is no support/distinction for IPv6. NW actions must be\nnamed OF_SET_NW_SRC and OF_SET_NW_DST, only support IPv4 (a single be32) and\nnot have the ability to tell inner from outer as it's unspecified (note a\nsafe approach would be to interpret this as \"outermost\" given the tendency\nof OpenFlow actions to prepend empty headers and modify them afterward).\n\nIn short you can't be creative if you want to keep the OF prefix.\n\nMy suggestion would be to stick with OF if your target use case is OVS and\nimplement these actions exactly as defined by OpenFlow, even if it means\nlimitations due to API (not HW) constraints. Not having to spend time to\nfigure how to map OF actions to rte_flow and handle quirks on both sides\nshould be much more convenient to users, particularly so if these actions\nbear the same name.\n\n> > > -----Original Message-----\n> > > From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n> > > Sent: July 2, 2018 20:04\n> > > To: Jack Min <jackmin@mellanox.com>\n> > > Cc: dev@dpdk.org; Shagun Agarwal <shaguna@chelsio.com>; Indranil Choudhury\n> > > <indranil@chelsio.com>; Nirranjan Kirubaharan <nirranjan@chelsio.com>; Shahaf\n> > > Shuler <shahafs@mellanox.com>; Xueming(Steven) Li <xuemingl@mellanox.com>\n> > > Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n> > > rewrite actions to flow API\n> > > \n> > > Hi Jack,\n> > > \n> > > On Monday, July 07/02/18, 2018 at 14:39:06 +0530, Jack Min wrote:\n> > > > Hey,\n> > > >\n> > > > I've one question:\n> > > >\n> > > > Do those APIs support modify inner IP headers?\n> > > >\n> > > \n> > > I'm afraid not. These API only modify outer IP addresses.\n> > > \n> > > I can think of two ways to achieve this:\n> > > \n> > > 1. Enhance these API to accept an additional flag to indicate\n> > > inner or outer. For example, to set inner IPv4 address, we can\n> > > set inner to 1 in following structure.\n> > > \n> > > struct rte_flow_action_of_set_nw_ipv4 {\n> > > \t uint32_t inner:1; /* 1 - Inner, 0 - Outer */\n> > > \t uint32_t reserved:31;\n> > > \t uint32_t ipv4_addr;\n> > > };\n> > > \n> > > 2. Add new actions to indicate inner IP addresses; i.e.\n> > > \n> > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_SRC\n> > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_DST\n> > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_SRC\n> > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_DST\n> > > \n> > > Thanks,\n> > > Rahul\n> > > \n> > > > In our scenarios, we need to specific that NAT action is on inner or outer IP\n> > > header.\n> > > >\n> > > > Thanks,\n> > > > -Jack\n> > > >\n> > > > > -----Original Message-----\n> > > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Rahul Lakkireddy\n> > > > > Sent: June 22, 2018 17:56\n> > > > > To: dev@dpdk.org\n> > > > > Cc: shaguna@chelsio.com; indranil@chelsio.com; nirranjan@chelsio.com\n> > > > > Subject: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP\n> > > > > port rewrite actions to flow API\n> > > > >\n> > > > > This series of patches add support for actions:\n> > > > > - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.\n> > > > > - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.\n> > > > > - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.\n> > > > > - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.\n> > > > > - OF_SET_TP_SRC - set a new TCP/UDP source port number.\n> > > > > - OF_SET_TP_DST - set a new TCP/UDP destination port number.\n> > > > >\n> > > > > These actions are useful in Network Address Translation use case to\n> > > > > edit IP address and TCP/UDP port numbers before switching the\n> > > > > packets out to the destination device port.\n> > > > >\n> > > > > The IP address and TCP/UDP port rewrite actions are based on\n> > > > > OFPAT_SET_NW_SRC, OFPAT_SET_NW_DST, OFPAT_SET_TP_SRC, and\n> > > > > OFPAT_SET_TP_DST actions from OpenFlow Specification [1].\n> > > > >\n> > > > > Patch 1 adds support for IP address rewrite to rte_flow and testpmd.\n> > > > >\n> > > > > Patch 2 adds support for TCP/UDP port rewrite to rte_flow and testpmd.\n> > > > >\n> > > > > Patch 3 shows CXGBE PMD example to offload these actions to hardware.\n> > > > >\n> > > > > Feedback and suggestions will be much appreciated.\n> > > > >\n> > > > > Thanks,\n> > > > > Rahul\n> > > > >\n> > > > > [1]\n> > > > > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fww\n> > > > > w.open\n> > > > > networking.org%2Fimages%2Fopenflow-switch-\n> > > > >\n> > > v1.5.1.pdf&data=02%7C01%7Cxuemingl%40mellanox.com%7C74c8ce3b79954b2f\n> > > > >\n> > > 123208d5d8268617%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C1%7C636\n> > > > >\n> > > 652582334142929&sdata=uoFc1KjVTkGI9fdaPNXvXYRmh%2F6HLMKT79IwgvDSH\n> > > > > 0k%3D&reserved=0\n> > > > >\n> > > > > Shagun Agrawal (3):\n> > > > > ethdev: add flow api actions to modify IP addresses\n> > > > > ethdev: add flow api actions to modify TCP/UDP port numbers\n> > > > > net/cxgbe: add flow actions to modify IP and TCP/UDP port address\n> > > > >\n> > > > > app/test-pmd/cmdline_flow.c | 150\n> > > > > ++++++++++++++++++++++++++++\n> > > > > app/test-pmd/config.c | 12 +++\n> > > > > doc/guides/prog_guide/rte_flow.rst | 102 +++++++++++++++++++\n> > > > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 24 +++++\n> > > > > drivers/net/cxgbe/base/common.h | 1 +\n> > > > > drivers/net/cxgbe/base/t4fw_interface.h | 50 ++++++++++\n> > > > > drivers/net/cxgbe/cxgbe_filter.c | 23 ++++-\n> > > > > drivers/net/cxgbe/cxgbe_filter.h | 26 ++++-\n> > > > > drivers/net/cxgbe/cxgbe_flow.c | 127 +++++++++++++++++++++++\n> > > > > drivers/net/cxgbe/cxgbe_main.c | 10 ++\n> > > > > lib/librte_ethdev/rte_flow.c | 12 +++\n> > > > > lib/librte_ethdev/rte_flow.h | 92 +++++++++++++++++\n> > > > > 12 files changed, 625 insertions(+), 4 deletions(-)\n> > > > >\n> > > > > --\n> > > > > 2.14.1\n> > > >", "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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 9825F1BEB6;\n\tThu, 5 Jul 2018 22:16:59 +0200 (CEST)", "from mail-wr1-f68.google.com (mail-wr1-f68.google.com\n\t[209.85.221.68]) by dpdk.org (Postfix) with ESMTP id 3685A1BEA9\n\tfor <dev@dpdk.org>; Thu, 5 Jul 2018 22:16:58 +0200 (CEST)", "by mail-wr1-f68.google.com with SMTP id h10-v6so2051764wrq.8\n\tfor <dev@dpdk.org>; Thu, 05 Jul 2018 13:16:58 -0700 (PDT)", "from 6wind.com (host.78.145.23.62.rev.coltfrance.com.\n\t[62.23.145.78]) by smtp.gmail.com with ESMTPSA id\n\ts41-v6sm12569017wrc.5.2018.07.05.13.16.56\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tThu, 05 Jul 2018 13:16:56 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=6wind-com.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:in-reply-to;\n\tbh=yrQP4Qdc8eEU1tqH4/lv2x2OsMKQzzFxi/ykRF2vhSE=;\n\tb=WJP4VNZwa0YoCHbgvyOLzNZuB2FPUCtiLolv4ZWHFOwOacrNoxNz1cbu7IN1E65l20\n\tLhAm8vXG8A0i2/gBIkcOTU+CIe2G/0vACjQAJdQKMNzG8RFS9CznM9PrSlOuHsbxbJXU\n\tmx6lLAUtwsbsK9okhZVKJ4oz9ECU6q+q0nz469CkfregjBPaBZdWxT9hsxW/avw6GVL+\n\tNmucTlSoVT+uyxIsNmVFuCvk7kPHYmawQ5wDDKZVSsB7jlLbmnBDV3yM1GqRHV9Hhn4R\n\tN20Kc3/9/o40n4hEe/DBfrkpivBEmNbD1hASH3oiuUqNq/Kr8KX/zIBY+03vMHqJtPZc\n\tRqzg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:in-reply-to;\n\tbh=yrQP4Qdc8eEU1tqH4/lv2x2OsMKQzzFxi/ykRF2vhSE=;\n\tb=o5nlFuf09pjzJ8wCGtu6I+g2/Nz48BThf5UvbCIwpQtLoukdpqQqKgAZ2lOb6GWliy\n\tnovd5O8AxfakwwzBgKOrohFtZoqaWPehFhE706xLlsQSy5DXDU8STyUlTerb2IfrdI+g\n\tKzzTKheo/o/gbmqyYcApdMpI1urdEsHffJB5jUaq8XG1/0LAVsRrB3yIeoCZ4RiiKC/S\n\t6Uc6n1HgZNZiZT24QVuJD2beesW2SwOc5VTDFXEHow4dF4Z9Hf3jN0ytbHNNPFhryBcy\n\t2T4Vsq9gZw6d1C4D9rwM4luL8MHVVuNzuWoVU19lkPBhrKiFYPC2XK126Q2XY/7SaQKB\n\tgREA==", "X-Gm-Message-State": "APt69E158p3mYjqm6S+4jsFxG88T/kdv01PAvk+NOgoAj0jSHGiyqDdt\n\tptsRJQJe6htWeyLOA1hU5+H4qw==", "X-Google-Smtp-Source": "AAOMgpcJZwWf4LCFO2LxjPcjzmQELhnVjVfbVsPbyklCzA3XikMo2A8QZvyUAoJTUpNmAHA84NBz3g==", "X-Received": "by 2002:a5d:6550:: with SMTP id\n\tz16-v6mr5356688wrv.194.1530821817905; \n\tThu, 05 Jul 2018 13:16:57 -0700 (PDT)", "Date": "Thu, 5 Jul 2018 22:16:40 +0200", "From": "Adrien Mazarguil <adrien.mazarguil@6wind.com>", "To": "Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>", "Cc": "Jack Min <jackmin@mellanox.com>, \"dev@dpdk.org\" <dev@dpdk.org>,\n\tShagun Agarwal <shaguna@chelsio.com>,\n\tIndranil Choudhury <indranil@chelsio.com>,\n\tNirranjan Kirubaharan <nirranjan@chelsio.com>,\n\tShahaf Shuler <shahafs@mellanox.com>,\n\t\"Xueming(Steven) Li\" <xuemingl@mellanox.com>", "Message-ID": "<20180705201640.GR4025@6wind.com>", "References": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>\n\t<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180702120421.GA28446@chelsio.com>\n\t<HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180703133920.GA15447@chelsio.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<20180703133920.GA15447@chelsio.com>", "Subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 83537, "web_url": "http://patches.dpdk.org/comment/83537/", "msgid": "<20180710131413.GA9722@chelsio.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20180710131413.GA9722@chelsio.com", "date": "2018-07-10T13:14:15", "subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "submitter": { "id": 241, "url": "http://patches.dpdk.org/api/people/241/?format=api", "name": "Rahul Lakkireddy", "email": "rahul.lakkireddy@chelsio.com" }, "content": "On Friday, July 07/06/18, 2018 at 01:46:40 +0530, Adrien Mazarguil wrote:\n> On Tue, Jul 03, 2018 at 07:09:22PM +0530, Rahul Lakkireddy wrote:\n> > On Tuesday, July 07/03/18, 2018 at 07:57:55 +0530, Jack Min wrote:\n> > > Hey Rahul,\n> > > \n> > > Thank you, those two are the ways to achieve that.\n> > > \n> > > Personally I prefer the option 1 but with a little bit difference, something like:\n> > > \n> > > struct rte_flow_action_of_set_nw_ipv4 {\n> > > \t uint32_t ipv4_addr;\n> > > uint8_t level; /* 0 - outer (default), 1 - inner, 2 -255 deeper if available */\n> > > };\n> > > \n> > > What do you think ?\n> > > \n> > \n> > Looks good. I'll update the API and use the above approach in v2.\n> \n> I still haven't looked at the original proposal (will get there eventually),\n> however keep in mind the presence of \"OF\" in action names stands for\n> \"OpenFlow\".\n> \n> Since you chose this route, these actions must be implemented exactly as\n> defined by the OpenFlow specification, which comprises their name, input\n> parameters and behavior.\n> \n> For instance there is no support/distinction for IPv6. NW actions must be\n> named OF_SET_NW_SRC and OF_SET_NW_DST, only support IPv4 (a single be32) and\n> not have the ability to tell inner from outer as it's unspecified (note a\n> safe approach would be to interpret this as \"outermost\" given the tendency\n> of OpenFlow actions to prepend empty headers and modify them afterward).\n> \n> In short you can't be creative if you want to keep the OF prefix.\n> \n\nOk, will drop OF prefix for these actions in v2.\n\n> My suggestion would be to stick with OF if your target use case is OVS and\n> implement these actions exactly as defined by OpenFlow, even if it means\n> limitations due to API (not HW) constraints. Not having to spend time to\n> figure how to map OF actions to rte_flow and handle quirks on both sides\n> should be much more convenient to users, particularly so if these actions\n> bear the same name.\n> \n\nWe can translate OF_SET_NW_* actions to RTE_FLOW_ACTION_SET_NW_IPV4_*\nactions in OVS stack itself before sending them via DPDK stack for\noffload.\n\nThanks,\nRahul\n\n> > > > -----Original Message-----\n> > > > From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n> > > > Sent: July 2, 2018 20:04\n> > > > To: Jack Min <jackmin@mellanox.com>\n> > > > Cc: dev@dpdk.org; Shagun Agarwal <shaguna@chelsio.com>; Indranil Choudhury\n> > > > <indranil@chelsio.com>; Nirranjan Kirubaharan <nirranjan@chelsio.com>; Shahaf\n> > > > Shuler <shahafs@mellanox.com>; Xueming(Steven) Li <xuemingl@mellanox.com>\n> > > > Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n> > > > rewrite actions to flow API\n> > > > \n> > > > Hi Jack,\n> > > > \n> > > > On Monday, July 07/02/18, 2018 at 14:39:06 +0530, Jack Min wrote:\n> > > > > Hey,\n> > > > >\n> > > > > I've one question:\n> > > > >\n> > > > > Do those APIs support modify inner IP headers?\n> > > > >\n> > > > \n> > > > I'm afraid not. These API only modify outer IP addresses.\n> > > > \n> > > > I can think of two ways to achieve this:\n> > > > \n> > > > 1. Enhance these API to accept an additional flag to indicate\n> > > > inner or outer. For example, to set inner IPv4 address, we can\n> > > > set inner to 1 in following structure.\n> > > > \n> > > > struct rte_flow_action_of_set_nw_ipv4 {\n> > > > \t uint32_t inner:1; /* 1 - Inner, 0 - Outer */\n> > > > \t uint32_t reserved:31;\n> > > > \t uint32_t ipv4_addr;\n> > > > };\n> > > > \n> > > > 2. Add new actions to indicate inner IP addresses; i.e.\n> > > > \n> > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_SRC\n> > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_DST\n> > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_SRC\n> > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_DST\n> > > > \n> > > > Thanks,\n> > > > Rahul\n> > > > \n> > > > > In our scenarios, we need to specific that NAT action is on inner or outer IP\n> > > > header.\n> > > > >\n> > > > > Thanks,\n> > > > > -Jack\n> > > > >\n> > > > > > -----Original Message-----\n> > > > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Rahul Lakkireddy\n> > > > > > Sent: June 22, 2018 17:56\n> > > > > > To: dev@dpdk.org\n> > > > > > Cc: shaguna@chelsio.com; indranil@chelsio.com; nirranjan@chelsio.com\n> > > > > > Subject: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP\n> > > > > > port rewrite actions to flow API\n> > > > > >\n> > > > > > This series of patches add support for actions:\n> > > > > > - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.\n> > > > > > - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.\n> > > > > > - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.\n> > > > > > - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.\n> > > > > > - OF_SET_TP_SRC - set a new TCP/UDP source port number.\n> > > > > > - OF_SET_TP_DST - set a new TCP/UDP destination port number.\n> > > > > >\n> > > > > > These actions are useful in Network Address Translation use case to\n> > > > > > edit IP address and TCP/UDP port numbers before switching the\n> > > > > > packets out to the destination device port.\n> > > > > >\n> > > > > > The IP address and TCP/UDP port rewrite actions are based on\n> > > > > > OFPAT_SET_NW_SRC, OFPAT_SET_NW_DST, OFPAT_SET_TP_SRC, and\n> > > > > > OFPAT_SET_TP_DST actions from OpenFlow Specification [1].\n> > > > > >\n> > > > > > Patch 1 adds support for IP address rewrite to rte_flow and testpmd.\n> > > > > >\n> > > > > > Patch 2 adds support for TCP/UDP port rewrite to rte_flow and testpmd.\n> > > > > >\n> > > > > > Patch 3 shows CXGBE PMD example to offload these actions to hardware.\n> > > > > >\n> > > > > > Feedback and suggestions will be much appreciated.\n> > > > > >\n> > > > > > Thanks,\n> > > > > > Rahul\n> > > > > >\n> > > > > > [1]\n> > > > > > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fww\n> > > > > > w.open\n> > > > > > networking.org%2Fimages%2Fopenflow-switch-\n> > > > > >\n> > > > v1.5.1.pdf&data=02%7C01%7Cxuemingl%40mellanox.com%7C74c8ce3b79954b2f\n> > > > > >\n> > > > 123208d5d8268617%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C1%7C636\n> > > > > >\n> > > > 652582334142929&sdata=uoFc1KjVTkGI9fdaPNXvXYRmh%2F6HLMKT79IwgvDSH\n> > > > > > 0k%3D&reserved=0\n> > > > > >\n> > > > > > Shagun Agrawal (3):\n> > > > > > ethdev: add flow api actions to modify IP addresses\n> > > > > > ethdev: add flow api actions to modify TCP/UDP port numbers\n> > > > > > net/cxgbe: add flow actions to modify IP and TCP/UDP port address\n> > > > > >\n> > > > > > app/test-pmd/cmdline_flow.c | 150\n> > > > > > ++++++++++++++++++++++++++++\n> > > > > > app/test-pmd/config.c | 12 +++\n> > > > > > doc/guides/prog_guide/rte_flow.rst | 102 +++++++++++++++++++\n> > > > > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 24 +++++\n> > > > > > drivers/net/cxgbe/base/common.h | 1 +\n> > > > > > drivers/net/cxgbe/base/t4fw_interface.h | 50 ++++++++++\n> > > > > > drivers/net/cxgbe/cxgbe_filter.c | 23 ++++-\n> > > > > > drivers/net/cxgbe/cxgbe_filter.h | 26 ++++-\n> > > > > > drivers/net/cxgbe/cxgbe_flow.c | 127 +++++++++++++++++++++++\n> > > > > > drivers/net/cxgbe/cxgbe_main.c | 10 ++\n> > > > > > lib/librte_ethdev/rte_flow.c | 12 +++\n> > > > > > lib/librte_ethdev/rte_flow.h | 92 +++++++++++++++++\n> > > > > > 12 files changed, 625 insertions(+), 4 deletions(-)\n> > > > > >\n> > > > > > --\n> > > > > > 2.14.1\n> > > > >\n> \n> -- \n> Adrien Mazarguil\n> 6WIND", "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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id C6AD07EC7;\n\tTue, 10 Jul 2018 15:15:38 +0200 (CEST)", "from stargate.chelsio.com (stargate.chelsio.com [12.32.117.8])\n\tby dpdk.org (Postfix) with ESMTP id 4F17F5B12\n\tfor <dev@dpdk.org>; Tue, 10 Jul 2018 15:15:37 +0200 (CEST)", "from localhost (scalar.blr.asicdesigners.com [10.193.185.94])\n\tby stargate.chelsio.com (8.13.8/8.13.8) with ESMTP id w6ADFWDc022293; \n\tTue, 10 Jul 2018 06:15:33 -0700" ], "Date": "Tue, 10 Jul 2018 18:44:15 +0530", "From": "Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>", "To": "Adrien Mazarguil <adrien.mazarguil@6wind.com>", "Cc": "Jack Min <jackmin@mellanox.com>, \"dev@dpdk.org\" <dev@dpdk.org>,\n\tShagun Agarwal <shaguna@chelsio.com>,\n\tIndranil Choudhury <indranil@chelsio.com>,\n\tNirranjan Kirubaharan <nirranjan@chelsio.com>,\n\tShahaf Shuler <shahafs@mellanox.com>,\n\t\"Xueming(Steven) Li\" <xuemingl@mellanox.com>", "Message-ID": "<20180710131413.GA9722@chelsio.com>", "References": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>\n\t<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180702120421.GA28446@chelsio.com>\n\t<HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180703133920.GA15447@chelsio.com>\n\t<20180705201640.GR4025@6wind.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<20180705201640.GR4025@6wind.com>", "User-Agent": "Mutt/1.5.24 (2015-08-30)", "Subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 84439, "web_url": "http://patches.dpdk.org/comment/84439/", "msgid": "<HE1PR05MB4617970135BAA3A7880CC9C5CC2D0@HE1PR05MB4617.eurprd05.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/HE1PR05MB4617970135BAA3A7880CC9C5CC2D0@HE1PR05MB4617.eurprd05.prod.outlook.com", "date": "2018-08-01T23:35:34", "subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "submitter": { "id": 1065, "url": "http://patches.dpdk.org/api/people/1065/?format=api", "name": "Xiaoyu Min", "email": "jackmin@mellanox.com" }, "content": "> -----Original Message-----\n> From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n> Sent: July 10, 2018 21:14\n> To: Adrien Mazarguil <adrien.mazarguil@6wind.com>\n> Cc: Jack Min <jackmin@mellanox.com>; dev@dpdk.org; Shagun Agarwal\n> <shaguna@chelsio.com>; Indranil Choudhury <indranil@chelsio.com>; Nirranjan\n> Kirubaharan <nirranjan@chelsio.com>; Shahaf Shuler <shahafs@mellanox.com>;\n> Xueming(Steven) Li <xuemingl@mellanox.com>\n> Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n> rewrite actions to flow API\n> \n> On Friday, July 07/06/18, 2018 at 01:46:40 +0530, Adrien Mazarguil wrote:\n> > On Tue, Jul 03, 2018 at 07:09:22PM +0530, Rahul Lakkireddy wrote:\n> > > On Tuesday, July 07/03/18, 2018 at 07:57:55 +0530, Jack Min wrote:\n> > > > Hey Rahul,\n> > > >\n> > > > Thank you, those two are the ways to achieve that.\n> > > >\n> > > > Personally I prefer the option 1 but with a little bit difference, something like:\n> > > >\n> > > > struct rte_flow_action_of_set_nw_ipv4 {\n> > > > \t uint32_t ipv4_addr;\n> > > > uint8_t level; /* 0 - outer (default), 1 - inner, 2 -255 deeper if\n> available */\n> > > > };\n> > > >\n> > > > What do you think ?\n> > > >\n> > >\n> > > Looks good. I'll update the API and use the above approach in v2.\n> >\nRahul, we have second thought about **level** parameter. We found there are\nno any *real* user case which really need to modify the inner layer. Do you have any?\nIf no, **level** could be removed in order to keep API clean and simple.\n\n> > I still haven't looked at the original proposal (will get there\n> > eventually), however keep in mind the presence of \"OF\" in action names\n> > stands for \"OpenFlow\".\n> >\n> > Since you chose this route, these actions must be implemented exactly\n> > as defined by the OpenFlow specification, which comprises their name,\n> > input parameters and behavior.\n> >\n> > For instance there is no support/distinction for IPv6. NW actions must\n> > be named OF_SET_NW_SRC and OF_SET_NW_DST, only support IPv4 (a\n> single\n> > be32) and not have the ability to tell inner from outer as it's\n> > unspecified (note a safe approach would be to interpret this as\n> > \"outermost\" given the tendency of OpenFlow actions to prepend empty headers\n> and modify them afterward).\n> >\n> > In short you can't be creative if you want to keep the OF prefix.\n> >\n> \n> Ok, will drop OF prefix for these actions in v2.\nHow about drop the NW prefix as well? Since we don't want to stick on openflow,\nNW prefix seems redundant. Names like RTE_FLOW_ACTION_SET_IPV4_SRC\nis clear enough, isn't it? What do you think?\n\n> > My suggestion would be to stick with OF if your target use case is OVS\n> > and implement these actions exactly as defined by OpenFlow, even if it\n> > means limitations due to API (not HW) constraints. Not having to spend\n> > time to figure how to map OF actions to rte_flow and handle quirks on\n> > both sides should be much more convenient to users, particularly so if\n> > these actions bear the same name.\n> >\n> \n> We can translate OF_SET_NW_* actions to RTE_FLOW_ACTION_SET_NW_IPV4_*\n> actions in OVS stack itself before sending them via DPDK stack for offload.\n> \n> Thanks,\n> Rahul\n> \n> > > > > -----Original Message-----\n> > > > > From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n> > > > > Sent: July 2, 2018 20:04\n> > > > > To: Jack Min <jackmin@mellanox.com>\n> > > > > Cc: dev@dpdk.org; Shagun Agarwal <shaguna@chelsio.com>; Indranil\n> > > > > Choudhury <indranil@chelsio.com>; Nirranjan Kirubaharan\n> > > > > <nirranjan@chelsio.com>; Shahaf Shuler <shahafs@mellanox.com>;\n> > > > > Xueming(Steven) Li <xuemingl@mellanox.com>\n> > > > > Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and\n> > > > > TCP/UDP port rewrite actions to flow API\n> > > > >\n> > > > > Hi Jack,\n> > > > >\n> > > > > On Monday, July 07/02/18, 2018 at 14:39:06 +0530, Jack Min wrote:\n> > > > > > Hey,\n> > > > > >\n> > > > > > I've one question:\n> > > > > >\n> > > > > > Do those APIs support modify inner IP headers?\n> > > > > >\n> > > > >\n> > > > > I'm afraid not. These API only modify outer IP addresses.\n> > > > >\n> > > > > I can think of two ways to achieve this:\n> > > > >\n> > > > > 1. Enhance these API to accept an additional flag to indicate\n> > > > > inner or outer. For example, to set inner IPv4 address, we can\n> > > > > set inner to 1 in following structure.\n> > > > >\n> > > > > struct rte_flow_action_of_set_nw_ipv4 {\n> > > > > \t uint32_t inner:1; /* 1 - Inner, 0 - Outer */\n> > > > > \t uint32_t reserved:31;\n> > > > > \t uint32_t ipv4_addr;\n> > > > > };\n> > > > >\n> > > > > 2. Add new actions to indicate inner IP addresses; i.e.\n> > > > >\n> > > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_SRC\n> > > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_DST\n> > > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_SRC\n> > > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_DST\n> > > > >\n> > > > > Thanks,\n> > > > > Rahul\n> > > > >\n> > > > > > In our scenarios, we need to specific that NAT action is on\n> > > > > > inner or outer IP\n> > > > > header.\n> > > > > >\n> > > > > > Thanks,\n> > > > > > -Jack\n> > > > > >\n> > > > > > > -----Original Message-----\n> > > > > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Rahul\n> > > > > > > Lakkireddy\n> > > > > > > Sent: June 22, 2018 17:56\n> > > > > > > To: dev@dpdk.org\n> > > > > > > Cc: shaguna@chelsio.com; indranil@chelsio.com;\n> > > > > > > nirranjan@chelsio.com\n> > > > > > > Subject: [dpdk-dev] [RFC 0/3] ethdev: add IP address and\n> > > > > > > TCP/UDP port rewrite actions to flow API\n> > > > > > >\n> > > > > > > This series of patches add support for actions:\n> > > > > > > - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.\n> > > > > > > - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.\n> > > > > > > - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.\n> > > > > > > - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.\n> > > > > > > - OF_SET_TP_SRC - set a new TCP/UDP source port number.\n> > > > > > > - OF_SET_TP_DST - set a new TCP/UDP destination port number.\n> > > > > > >\n> > > > > > > These actions are useful in Network Address Translation use\n> > > > > > > case to edit IP address and TCP/UDP port numbers before\n> > > > > > > switching the packets out to the destination device port.\n> > > > > > >\n> > > > > > > The IP address and TCP/UDP port rewrite actions are based on\n> > > > > > > OFPAT_SET_NW_SRC, OFPAT_SET_NW_DST, OFPAT_SET_TP_SRC,\n> and\n> > > > > > > OFPAT_SET_TP_DST actions from OpenFlow Specification [1].\n> > > > > > >\n> > > > > > > Patch 1 adds support for IP address rewrite to rte_flow and testpmd.\n> > > > > > >\n> > > > > > > Patch 2 adds support for TCP/UDP port rewrite to rte_flow and\n> testpmd.\n> > > > > > >\n> > > > > > > Patch 3 shows CXGBE PMD example to offload these actions to\n> hardware.\n> > > > > > >\n> > > > > > > Feedback and suggestions will be much appreciated.\n> > > > > > >\n> > > > > > > Thanks,\n> > > > > > > Rahul\n> > > > > > >\n> > > > > > > [1]\n> > > > > > > https://emea01.safelinks.protection.outlook.com/?url=http%3A\n> > > > > > > %2F%2Fww\n> > > > > > > w.open\n> > > > > > > networking.org%2Fimages%2Fopenflow-switch-\n> > > > > > >\n> > > > >\n> v1.5.1.pdf&data=02%7C01%7Cxuemingl%40mellanox.com%7C74c8ce3b7995\n> > > > > 4b2f\n> > > > > > >\n> > > > >\n> 123208d5d8268617%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C1%7C63\n> > > > > 6\n> > > > > > >\n> > > > >\n> 652582334142929&sdata=uoFc1KjVTkGI9fdaPNXvXYRmh%2F6HLMKT79IwgvDS\n> > > > > H\n> > > > > > > 0k%3D&reserved=0\n> > > > > > >\n> > > > > > > Shagun Agrawal (3):\n> > > > > > > ethdev: add flow api actions to modify IP addresses\n> > > > > > > ethdev: add flow api actions to modify TCP/UDP port numbers\n> > > > > > > net/cxgbe: add flow actions to modify IP and TCP/UDP port\n> > > > > > > address\n> > > > > > >\n> > > > > > > app/test-pmd/cmdline_flow.c | 150\n> > > > > > > ++++++++++++++++++++++++++++\n> > > > > > > app/test-pmd/config.c | 12 +++\n> > > > > > > doc/guides/prog_guide/rte_flow.rst | 102\n> +++++++++++++++++++\n> > > > > > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 24 +++++\n> > > > > > > drivers/net/cxgbe/base/common.h | 1 +\n> > > > > > > drivers/net/cxgbe/base/t4fw_interface.h | 50 ++++++++++\n> > > > > > > drivers/net/cxgbe/cxgbe_filter.c | 23 ++++-\n> > > > > > > drivers/net/cxgbe/cxgbe_filter.h | 26 ++++-\n> > > > > > > drivers/net/cxgbe/cxgbe_flow.c | 127\n> +++++++++++++++++++++++\n> > > > > > > drivers/net/cxgbe/cxgbe_main.c | 10 ++\n> > > > > > > lib/librte_ethdev/rte_flow.c | 12 +++\n> > > > > > > lib/librte_ethdev/rte_flow.h | 92 +++++++++++++++++\n> > > > > > > 12 files changed, 625 insertions(+), 4 deletions(-)\n> > > > > > >\n> > > > > > > --\n> > > > > > > 2.14.1\n> > > > > >\n> >\n> > --\n> > Adrien Mazarguil\n> > 6WIND", "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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 7996098;\n\tThu, 2 Aug 2018 01:35:38 +0200 (CEST)", "from EUR04-HE1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr70055.outbound.protection.outlook.com [40.107.7.55])\n\tby dpdk.org (Postfix) with ESMTP id 9E5CD1B3A7\n\tfor <dev@dpdk.org>; Thu, 2 Aug 2018 01:35:37 +0200 (CEST)", "from HE1PR05MB4617.eurprd05.prod.outlook.com (20.176.163.142) by\n\tHE1PR05MB1435.eurprd05.prod.outlook.com (10.162.253.141) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.995.20; Wed, 1 Aug 2018 23:35:34 +0000", "from HE1PR05MB4617.eurprd05.prod.outlook.com\n\t([fe80::d41c:1108:b991:1aa0]) by\n\tHE1PR05MB4617.eurprd05.prod.outlook.com\n\t([fe80::d41c:1108:b991:1aa0%4]) with mapi id 15.20.0995.020;\n\tWed, 1 Aug 2018 23:35:34 +0000" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=mk+x+haqm808T45fE3BjYO8lpB+3hgKUdp8xPLul+F4=;\n\tb=mIQx64uGDBnH+B0NWeJokYocAmzRNwQnL0WJFZmgJsYA8sg7gmlROhdnL1qu7YDY+3JhA/GfhsZotEM/RB4UC/vG7h2kpm/8D+KEi6XS+H8bNJpQCs6o7m9H0UPxnHya9Rtdnm/s4a3eagEB8mnF0O7iFZth5ECd0+KpAya4VS0=", "From": "Jack Min <jackmin@mellanox.com>", "To": "Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>, Adrien Mazarguil\n\t<adrien.mazarguil@6wind.com>", "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, Shagun Agarwal <shaguna@chelsio.com>,\n\tIndranil Choudhury <indranil@chelsio.com>, Nirranjan Kirubaharan\n\t<nirranjan@chelsio.com>, Shahaf Shuler <shahafs@mellanox.com>,\n\t\"Xueming(Steven) Li\" <xuemingl@mellanox.com>", "Thread-Topic": "[dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "Thread-Index": "AQHUEfz8avEwNjsRdU+lfRVu3r+6MKR8wsoQgAC/uwCAA5OrAIAHZaOAgCM6AdA=", "Date": "Wed, 1 Aug 2018 23:35:34 +0000", "Message-ID": "<HE1PR05MB4617970135BAA3A7880CC9C5CC2D0@HE1PR05MB4617.eurprd05.prod.outlook.com>", "References": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>\n\t<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180702120421.GA28446@chelsio.com>\n\t<HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180703133920.GA15447@chelsio.com>\n\t<20180705201640.GR4025@6wind.com>\n\t<20180710131413.GA9722@chelsio.com>", "In-Reply-To": "<20180710131413.GA9722@chelsio.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=jackmin@mellanox.com; ", "x-originating-ip": "[61.173.96.19]", "x-ms-publictraffictype": "Email", "x-microsoft-exchange-diagnostics": "1; HE1PR05MB1435;\n\t6:Ysfj1h8yhhV234nX2kDFl1vS2c2daBKk1GEMATv/m4DM9HEofysFr1T6hsEwE20OncLD/zhBKqUuvqNlA0PLSaVuo2VwqRodebNxYWIFq2Tm3vY+EyVRzU65P28Cbe7arI67fPE9m0umaK3Giq5Z9lkpdTjCptridiwCCZtwWbbMAtApBSk2jtMmqMO3egFSMs2Jpia469AyOKYnyD/1okuxlVaP9XQNE9A17ZdQyal3BNdJ9SHoCDjJMaS6Kfj2yeEgm0I3j3x6RlMnUjKi3M14IjQCcNnYRJD0mRf1CwX4+KD5mzfrZZ1hXLZ2CWfixlm8JHBPNYpqcSlsft1o1jYVaHdCJZ0439Eqt0bJWdf8DdlokaqaZFur9bZ8S2pVsDjEiduX8AoyJM4SPMdx0ljHKXizLHm9z9MJfiaH+ufSg/G6X9kJwSwQyyAZAZb11OzXWl6/qC6hMwlQs5AcUg==;\n\t5:tHm74nJIRCqFuPdAqe9a8ZIuhbjFmeFW7XZ+R+/DI1F6+YipKjBFDx5RCj7mOCVWJEOswMB85UtcA5EEIj/l+IImxhMWvmQMsZC1nRg66REcLDwo1RCc951fql7FhhuTqG2HhslS8Wa687SdYuROhPFSpNp+u1wj1uLqib9akEE=;\n\t7:kTPlywFYiuBdJuAkoIJI7kCUaOiCZNFyqI99h8Em5ymXO9Kysmgj4OmzPwK8n9/+5XqYFf4jnSGe3H37+05iN1OUlpWeUgh2oTAMAEO05Hm2BBt6hA/jc3x0lYNqnYNhE5fBDuuuv4NEq+LoFbKJ3wyNbPw4l51L5i4NBCFKQaczUC7HQgzd4bD7EPOxqxdX4GyIXFAvnkbvhYCLJZLE4RReZQ4rnxBIvpT3IRkRxg4bNwQlgWDKl/zEm6ELA6Or", "x-ms-exchange-antispam-srfa-diagnostics": "SOS;", "x-ms-office365-filtering-correlation-id": "5cb2d73f-3584-4668-d500-08d5f8077a30", "x-ms-office365-filtering-ht": "Tenant", "x-microsoft-antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);\n\tSRVR:HE1PR05MB1435; ", "x-ms-traffictypediagnostic": "HE1PR05MB1435:", "x-ld-processed": "a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr", "x-microsoft-antispam-prvs": "<HE1PR05MB1435C48FB3885C65C33692F1CC2D0@HE1PR05MB1435.eurprd05.prod.outlook.com>", "x-exchange-antispam-report-test": "UriScan:(189930954265078)(45079756050767);", "x-ms-exchange-senderadcheck": "1", "x-exchange-antispam-report-cfa-test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(3231311)(944501410)(52105095)(93006095)(93001095)(10201501046)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(6072148)(201708071742011)(7699016);\n\tSRVR:HE1PR05MB1435; BCL:0; PCL:0; RULEID:; SRVR:HE1PR05MB1435; ", "x-forefront-prvs": "0751474A44", "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(136003)(346002)(39860400002)(366004)(376002)(396003)(189003)(199004)(13464003)(106356001)(3846002)(8936002)(33656002)(53546011)(6506007)(105586002)(26005)(81166006)(186003)(81156014)(8676002)(2906002)(7696005)(7736002)(6116002)(107886003)(561944003)(76176011)(53936002)(102836004)(4326008)(6246003)(45080400002)(68736007)(25786009)(97736004)(478600001)(5660300001)(99286004)(476003)(5250100002)(9686003)(14454004)(110136005)(54906003)(316002)(86362001)(305945005)(2900100001)(486006)(93886005)(966005)(229853002)(74316002)(446003)(11346002)(14444005)(6436002)(66066001)(55016002)(256004)(6306002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR05MB1435;\n\tH:HE1PR05MB4617.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en;\n\tPTR:InfoNoRecords; MX:1; A:1; ", "received-spf": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)", "x-microsoft-antispam-message-info": "ScoxFFuKsj76EO/hKmhYT/SdfPA2WqIPQbtKFqUsIdpA+P/ws6VHuIGwvc79P76XU2P4WLBGPaAH16Y7S3yKGVWeBz9La/fy6qQje8aoWKA0WKeI8bQG9NroTlQ4uqEvVW2BM0t94vuxZIlMOCcbtdLZ8QPdonrwmsWadqethvxXCCv8bHIrGKIY6vT9FhGjC7FsVF5IoXzAdp9U5GeG+tfrY2GzQp2kqkN1lOXg8IE13sNJ7oxeF6/zhxDcs9mmzomIhoKNatjzoxcFovDSZ+WPVGDjZ3i+TAYLXEBRXoZOB3Am/p3DJB7Bls7HZSE6/LWDWDpOyqdnhmzMZebRyt6UITiPCNO1EAW5RcGF21Q=", "spamdiagnosticoutput": "1:99", "spamdiagnosticmetadata": "NSPM", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "X-OriginatorOrg": "Mellanox.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "5cb2d73f-3584-4668-d500-08d5f8077a30", "X-MS-Exchange-CrossTenant-originalarrivaltime": "01 Aug 2018 23:35:34.0648\n\t(UTC)", "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted", "X-MS-Exchange-CrossTenant-id": "a652971c-7d2e-4d9b-a6a4-d149256f461b", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "HE1PR05MB1435", "Subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 84493, "web_url": "http://patches.dpdk.org/comment/84493/", "msgid": "<20180802145909.GA28613@chelsio.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20180802145909.GA28613@chelsio.com", "date": "2018-08-02T14:59:11", "subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "submitter": { "id": 241, "url": "http://patches.dpdk.org/api/people/241/?format=api", "name": "Rahul Lakkireddy", "email": "rahul.lakkireddy@chelsio.com" }, "content": "On Thursday, August 08/02/18, 2018 at 05:05:34 +0530, Jack Min wrote:\n> > -----Original Message-----\n> > From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n> > Sent: July 10, 2018 21:14\n> > To: Adrien Mazarguil <adrien.mazarguil@6wind.com>\n> > Cc: Jack Min <jackmin@mellanox.com>; dev@dpdk.org; Shagun Agarwal\n> > <shaguna@chelsio.com>; Indranil Choudhury <indranil@chelsio.com>; Nirranjan\n> > Kirubaharan <nirranjan@chelsio.com>; Shahaf Shuler <shahafs@mellanox.com>;\n> > Xueming(Steven) Li <xuemingl@mellanox.com>\n> > Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n> > rewrite actions to flow API\n> > \n> > On Friday, July 07/06/18, 2018 at 01:46:40 +0530, Adrien Mazarguil wrote:\n> > > On Tue, Jul 03, 2018 at 07:09:22PM +0530, Rahul Lakkireddy wrote:\n> > > > On Tuesday, July 07/03/18, 2018 at 07:57:55 +0530, Jack Min wrote:\n> > > > > Hey Rahul,\n> > > > >\n> > > > > Thank you, those two are the ways to achieve that.\n> > > > >\n> > > > > Personally I prefer the option 1 but with a little bit difference, something like:\n> > > > >\n> > > > > struct rte_flow_action_of_set_nw_ipv4 {\n> > > > > \t uint32_t ipv4_addr;\n> > > > > uint8_t level; /* 0 - outer (default), 1 - inner, 2 -255 deeper if\n> > available */\n> > > > > };\n> > > > >\n> > > > > What do you think ?\n> > > > >\n> > > >\n> > > > Looks good. I'll update the API and use the above approach in v2.\n> > >\n> Rahul, we have second thought about **level** parameter. We found there are\n> no any *real* user case which really need to modify the inner layer. Do you have any?\n> If no, **level** could be removed in order to keep API clean and simple.\n> \n\nI'm also not aware of any use case to modify inner IP headers. So,\nwill not add 'level' to the API for now, unless anyone else have\na use case for modifying inner IP headers.\n\n> > > I still haven't looked at the original proposal (will get there\n> > > eventually), however keep in mind the presence of \"OF\" in action names\n> > > stands for \"OpenFlow\".\n> > >\n> > > Since you chose this route, these actions must be implemented exactly\n> > > as defined by the OpenFlow specification, which comprises their name,\n> > > input parameters and behavior.\n> > >\n> > > For instance there is no support/distinction for IPv6. NW actions must\n> > > be named OF_SET_NW_SRC and OF_SET_NW_DST, only support IPv4 (a\n> > single\n> > > be32) and not have the ability to tell inner from outer as it's\n> > > unspecified (note a safe approach would be to interpret this as\n> > > \"outermost\" given the tendency of OpenFlow actions to prepend empty headers\n> > and modify them afterward).\n> > >\n> > > In short you can't be creative if you want to keep the OF prefix.\n> > >\n> > \n> > Ok, will drop OF prefix for these actions in v2.\n> How about drop the NW prefix as well? Since we don't want to stick on openflow,\n> NW prefix seems redundant. Names like RTE_FLOW_ACTION_SET_IPV4_SRC\n> is clear enough, isn't it? What do you think?\n> \n\nAgreed. Will drop the NW prefix as well.\n\nThanks,\nRahul\n\n> > > My suggestion would be to stick with OF if your target use case is OVS\n> > > and implement these actions exactly as defined by OpenFlow, even if it\n> > > means limitations due to API (not HW) constraints. Not having to spend\n> > > time to figure how to map OF actions to rte_flow and handle quirks on\n> > > both sides should be much more convenient to users, particularly so if\n> > > these actions bear the same name.\n> > >\n> > \n> > We can translate OF_SET_NW_* actions to RTE_FLOW_ACTION_SET_NW_IPV4_*\n> > actions in OVS stack itself before sending them via DPDK stack for offload.\n> > \n> > Thanks,\n> > Rahul\n> > \n> > > > > > -----Original Message-----\n> > > > > > From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>\n> > > > > > Sent: July 2, 2018 20:04\n> > > > > > To: Jack Min <jackmin@mellanox.com>\n> > > > > > Cc: dev@dpdk.org; Shagun Agarwal <shaguna@chelsio.com>; Indranil\n> > > > > > Choudhury <indranil@chelsio.com>; Nirranjan Kirubaharan\n> > > > > > <nirranjan@chelsio.com>; Shahaf Shuler <shahafs@mellanox.com>;\n> > > > > > Xueming(Steven) Li <xuemingl@mellanox.com>\n> > > > > > Subject: Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and\n> > > > > > TCP/UDP port rewrite actions to flow API\n> > > > > >\n> > > > > > Hi Jack,\n> > > > > >\n> > > > > > On Monday, July 07/02/18, 2018 at 14:39:06 +0530, Jack Min wrote:\n> > > > > > > Hey,\n> > > > > > >\n> > > > > > > I've one question:\n> > > > > > >\n> > > > > > > Do those APIs support modify inner IP headers?\n> > > > > > >\n> > > > > >\n> > > > > > I'm afraid not. These API only modify outer IP addresses.\n> > > > > >\n> > > > > > I can think of two ways to achieve this:\n> > > > > >\n> > > > > > 1. Enhance these API to accept an additional flag to indicate\n> > > > > > inner or outer. For example, to set inner IPv4 address, we can\n> > > > > > set inner to 1 in following structure.\n> > > > > >\n> > > > > > struct rte_flow_action_of_set_nw_ipv4 {\n> > > > > > \t uint32_t inner:1; /* 1 - Inner, 0 - Outer */\n> > > > > > \t uint32_t reserved:31;\n> > > > > > \t uint32_t ipv4_addr;\n> > > > > > };\n> > > > > >\n> > > > > > 2. Add new actions to indicate inner IP addresses; i.e.\n> > > > > >\n> > > > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_SRC\n> > > > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV4_DST\n> > > > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_SRC\n> > > > > > RTE_FLOW_ACTION_TYPE_OF_SET_INNER_NW_IPV6_DST\n> > > > > >\n> > > > > > Thanks,\n> > > > > > Rahul\n> > > > > >\n> > > > > > > In our scenarios, we need to specific that NAT action is on\n> > > > > > > inner or outer IP\n> > > > > > header.\n> > > > > > >\n> > > > > > > Thanks,\n> > > > > > > -Jack\n> > > > > > >\n> > > > > > > > -----Original Message-----\n> > > > > > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Rahul\n> > > > > > > > Lakkireddy\n> > > > > > > > Sent: June 22, 2018 17:56\n> > > > > > > > To: dev@dpdk.org\n> > > > > > > > Cc: shaguna@chelsio.com; indranil@chelsio.com;\n> > > > > > > > nirranjan@chelsio.com\n> > > > > > > > Subject: [dpdk-dev] [RFC 0/3] ethdev: add IP address and\n> > > > > > > > TCP/UDP port rewrite actions to flow API\n> > > > > > > >\n> > > > > > > > This series of patches add support for actions:\n> > > > > > > > - OF_SET_NW_IPV4_SRC - set a new IPv4 source address.\n> > > > > > > > - OF_SET_NW_IPV4_DST - set a new IPv4 destination address.\n> > > > > > > > - OF_SET_NW_IPV6_SRC - set a new IPv6 source address.\n> > > > > > > > - OF_SET_NW_IPV6_DST - set a new IPv6 destination address.\n> > > > > > > > - OF_SET_TP_SRC - set a new TCP/UDP source port number.\n> > > > > > > > - OF_SET_TP_DST - set a new TCP/UDP destination port number.\n> > > > > > > >\n> > > > > > > > These actions are useful in Network Address Translation use\n> > > > > > > > case to edit IP address and TCP/UDP port numbers before\n> > > > > > > > switching the packets out to the destination device port.\n> > > > > > > >\n> > > > > > > > The IP address and TCP/UDP port rewrite actions are based on\n> > > > > > > > OFPAT_SET_NW_SRC, OFPAT_SET_NW_DST, OFPAT_SET_TP_SRC,\n> > and\n> > > > > > > > OFPAT_SET_TP_DST actions from OpenFlow Specification [1].\n> > > > > > > >\n> > > > > > > > Patch 1 adds support for IP address rewrite to rte_flow and testpmd.\n> > > > > > > >\n> > > > > > > > Patch 2 adds support for TCP/UDP port rewrite to rte_flow and\n> > testpmd.\n> > > > > > > >\n> > > > > > > > Patch 3 shows CXGBE PMD example to offload these actions to\n> > hardware.\n> > > > > > > >\n> > > > > > > > Feedback and suggestions will be much appreciated.\n> > > > > > > >\n> > > > > > > > Thanks,\n> > > > > > > > Rahul\n> > > > > > > >\n> > > > > > > > [1]\n> > > > > > > > https://emea01.safelinks.protection.outlook.com/?url=http%3A\n> > > > > > > > %2F%2Fww\n> > > > > > > > w.open\n> > > > > > > > networking.org%2Fimages%2Fopenflow-switch-\n> > > > > > > >\n> > > > > >\n> > v1.5.1.pdf&data=02%7C01%7Cxuemingl%40mellanox.com%7C74c8ce3b7995\n> > > > > > 4b2f\n> > > > > > > >\n> > > > > >\n> > 123208d5d8268617%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C1%7C63\n> > > > > > 6\n> > > > > > > >\n> > > > > >\n> > 652582334142929&sdata=uoFc1KjVTkGI9fdaPNXvXYRmh%2F6HLMKT79IwgvDS\n> > > > > > H\n> > > > > > > > 0k%3D&reserved=0\n> > > > > > > >\n> > > > > > > > Shagun Agrawal (3):\n> > > > > > > > ethdev: add flow api actions to modify IP addresses\n> > > > > > > > ethdev: add flow api actions to modify TCP/UDP port numbers\n> > > > > > > > net/cxgbe: add flow actions to modify IP and TCP/UDP port\n> > > > > > > > address\n> > > > > > > >\n> > > > > > > > app/test-pmd/cmdline_flow.c | 150\n> > > > > > > > ++++++++++++++++++++++++++++\n> > > > > > > > app/test-pmd/config.c | 12 +++\n> > > > > > > > doc/guides/prog_guide/rte_flow.rst | 102\n> > +++++++++++++++++++\n> > > > > > > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 24 +++++\n> > > > > > > > drivers/net/cxgbe/base/common.h | 1 +\n> > > > > > > > drivers/net/cxgbe/base/t4fw_interface.h | 50 ++++++++++\n> > > > > > > > drivers/net/cxgbe/cxgbe_filter.c | 23 ++++-\n> > > > > > > > drivers/net/cxgbe/cxgbe_filter.h | 26 ++++-\n> > > > > > > > drivers/net/cxgbe/cxgbe_flow.c | 127\n> > +++++++++++++++++++++++\n> > > > > > > > drivers/net/cxgbe/cxgbe_main.c | 10 ++\n> > > > > > > > lib/librte_ethdev/rte_flow.c | 12 +++\n> > > > > > > > lib/librte_ethdev/rte_flow.h | 92 +++++++++++++++++\n> > > > > > > > 12 files changed, 625 insertions(+), 4 deletions(-)\n> > > > > > > >\n> > > > > > > > --\n> > > > > > > > 2.14.1\n> > > > > > >\n> > >\n> > > --\n> > > Adrien Mazarguil\n> > > 6WIND", "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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 6F82F1B4B0;\n\tThu, 2 Aug 2018 17:01:06 +0200 (CEST)", "from stargate.chelsio.com (stargate.chelsio.com [12.32.117.8])\n\tby dpdk.org (Postfix) with ESMTP id 9F4731B4AD\n\tfor <dev@dpdk.org>; Thu, 2 Aug 2018 17:01:04 +0200 (CEST)", "from localhost (scalar.blr.asicdesigners.com [10.193.185.94])\n\tby stargate.chelsio.com (8.13.8/8.13.8) with ESMTP id w72F0nU4015369; \n\tThu, 2 Aug 2018 08:00:55 -0700" ], "Date": "Thu, 2 Aug 2018 20:29:11 +0530", "From": "Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>", "To": "Jack Min <jackmin@mellanox.com>", "Cc": "Adrien Mazarguil <adrien.mazarguil@6wind.com>,\n\t\"dev@dpdk.org\" <dev@dpdk.org>, Shagun Agarwal <shaguna@chelsio.com>, \n\tIndranil Choudhury <indranil@chelsio.com>,\n\tNirranjan Kirubaharan <nirranjan@chelsio.com>,\n\tShahaf Shuler <shahafs@mellanox.com>,\n\t\"Xueming(Steven) Li\" <xuemingl@mellanox.com>", "Message-ID": "<20180802145909.GA28613@chelsio.com>", "References": "<cover.1529650435.git.rahul.lakkireddy@chelsio.com>\n\t<HE1PR05MB4617EFC7AEC5C38D2D0E43A4CC430@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180702120421.GA28446@chelsio.com>\n\t<HE1PR05MB461792B2555900AF638488C5CC420@HE1PR05MB4617.eurprd05.prod.outlook.com>\n\t<20180703133920.GA15447@chelsio.com>\n\t<20180705201640.GR4025@6wind.com>\n\t<20180710131413.GA9722@chelsio.com>\n\t<HE1PR05MB4617970135BAA3A7880CC9C5CC2D0@HE1PR05MB4617.eurprd05.prod.outlook.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<HE1PR05MB4617970135BAA3A7880CC9C5CC2D0@HE1PR05MB4617.eurprd05.prod.outlook.com>", "User-Agent": "Mutt/1.5.24 (2015-08-30)", "Subject": "Re: [dpdk-dev] [RFC 0/3] ethdev: add IP address and TCP/UDP port\n\trewrite actions to flow API", "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null } ]