From patchwork Wed Oct 3 18:16:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 45987 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BA13C1B1CC; Wed, 3 Oct 2018 20:18:55 +0200 (CEST) Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-eopbgr690061.outbound.protection.outlook.com [40.107.69.61]) by dpdk.org (Postfix) with ESMTP id ABB891B111 for ; Wed, 3 Oct 2018 20:18:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=b0tlrVlqgmHjmA5jietcQ+Xv0zaRlk/Ky3BvCirSuE4=; b=VqyW2EU+yzXBLeuzKTPPjsYvM5b3q5UqPU5SXfzFhyfInDYUkP0G94FtVAiFX214E/xeN3g7tnnPH2BazBdvKB81u8h7Waj2FLqRgSS5fGm4xjDFbYFTpmj3pJLHTw/NBEWc3WNI30rQ7TM07hp6jCM7kEP+xhg746/a7Mw8ppw= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.JacobKollanukkaran@cavium.com; Received: from jerin.8.8.4.4 (106.201.57.251) by BL0PR07MB4996.namprd07.prod.outlook.com (2603:10b6:208:49::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.18; Wed, 3 Oct 2018 18:17:28 +0000 From: Jerin Jacob To: Wenzhuo Lu , Jingjing Wu , Bernard Iremonger , John McNamara , Marko Kovacevic , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko , Olivier Matz Cc: dev@dpdk.org, shahafs@mellanox.com, Jerin Jacob Date: Wed, 3 Oct 2018 23:46:54 +0530 Message-Id: <20181003181657.32236-1-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180913134707.23698-1-jerin.jacob@caviumnetworks.com> References: <20180913134707.23698-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [106.201.57.251] X-ClientProxiedBy: BMXPR01CA0023.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:d::33) To BL0PR07MB4996.namprd07.prod.outlook.com (2603:10b6:208:49::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0fd17600-8a90-4413-7c65-08d6295c7cd5 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BL0PR07MB4996; X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 3:yK0w/XawueDLS7AgcU4r3uXuBYCfGTEsM+cwPdM9Uv8ivEw4KmU9xIJSZqVP/Hyb9yAwri2S2a36cI20nofBy/eBSj86RJwwDmLL2/lB7elkVR9SlJzuAoRu2QxgdxfvCcClH45njWxgaFQIWgr9MrKFf0kJq10IoVlcwxmhivh4jf2DfqH2hu9Xt8i26/ovilmk8cm80v2V8kPJekfvzwbooz1hfJuIoSyoe4cPkyEydXErlqycAYJWNh92HP1l; 25:j5hgrNXPS5ZC4ebywCEIGuksQW+dJzt1XtLnxGSRgwwNgPGxLFA8z4UIYyGWywkkSxHnfi/54okCgllXfTrKUc8VmbdzsCXJxcnL8XyWjPBD5DtOSgmuBm1LoZBU/2GigrmtV+VAsC3pY+3imc+x0JNjIP4XIbimCkX+695Y+orjf5gNTs7MuyMsGWL4+XkOC5iRZ726cXT/N5+hg70irNzfR6QWZCRnM98dWG1NxuVypCPQms8bDpPnLDoEXDt0FFeZG4T+TtPNqP6p4IYF9YhHeX+70IsBChFXjPIpfWRUNE9E+QAMgbZZQeOoLMxylssGeFd1ip55cKA3yVt5IA==; 31:XYKkGSf20rf24EozRJO6uRonlHsMRtI0NCXtlLf++y0ebJPUS2c/lznQb17hqKbLPPLqbOhuv3rDOw8gN9zrbFUqyIv7iX2co4olS+7AUDo/pivNevVjgvTEhQl7wR+446PD3yOMcz8zRB/8c1OAX1ISq0cPC+wQRUGmdOm3BbruZJ5KPORBOB/YZLhj6G77fxVzD+bcNgVaQtYgKqLOEjFXwFjDDsntveqVbm0dbiY= X-MS-TrafficTypeDiagnostic: BL0PR07MB4996: X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 20:TZ3JBrkU4vPvM4bbum9UB3NpDs79XuIP+nn+t1G/Dlw8aGyxB+Rpjuu2nfYWeuK05hTM8VNwkayoMYrlsGZYdd62beBYikjZwDdqoo8HO7yZk+c9Ly/OHjvo03IL8MqxFO2FKD2CBAXu5AsZ2RTj2gJC1wehEiqsX0pdfaGh8Ksb7iqouORxGjtq7NXgcxPnnP+58cOTmI2lw30NXW6cVVXNZdZCK3gmxB5WL7h3wOWHEzSmBO6AVm6cdcpmWS1MJ5En5jyZNIAp3L9lWDFnYsEHGLa06mDgd91FYoTbmYVD2DXWDwaO6ZM1FU85GBt8o/ZfpQuGt8ncN9WgCVAkMFUT6Ky0jwxIuLuS2gfHufcDQJUnoC4ZzVoOcMWl0RO9jhsieZxcVPAljQY40N4jtcQuow7hXhrwYNkxTdWag+s6R92NwrQ+4Kvc6SuhyV0DjYeLSgrl9Lz58UyaQPZbu8dWcXG83/fpFA4kpmyX8Hvkacn6jctmdV/XXgPss0nC1NrYWvE+JOhf1oJN3anWq/Ut2G3cV+oOFz20gIGb3L7B5bGIB820atqfPi9EP5QjXV+CiQhW6nymuhL/VCG3p1Uq+d4BOpB+yDpXiaFzqDE=; 4:RR2hqq05pKncgKpI9LamHNBrn3lhLvgWViHk+zoMaTnrvyy2Zawe0PMveggDcbit1nEQ5N+U6mzzjT6Yby2kIsywWTcPXdZDE8cJQK/x8iNFTXNlFd5uQWU1fs6ZznYii/RXzZCkZHif/O2gFm3MVUixOWTkpFAp7cOsgnYCrrWZsS4s3X1mSwxU0Ehi7r+5GGc6ffmx2QNMa2EyTMoZIgE1rl56C7Tq4bNgC8LvKYCOqB+iQ51nyVtxBXNpoPybQy6sNb4bTOPA0tvfQiWx4w== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(10201501046)(3231355)(944501410)(4982022)(52105095)(3002001)(149066)(150057)(6041310)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(201708071742011)(7699051); SRVR:BL0PR07MB4996; BCL:0; PCL:0; RULEID:; SRVR:BL0PR07MB4996; X-Forefront-PRVS: 0814A2C7A3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(136003)(366004)(396003)(39860400002)(346002)(376002)(189003)(199004)(386003)(110136005)(36756003)(956004)(14444005)(55236004)(2616005)(446003)(97736004)(26005)(105586002)(106356001)(16526019)(186003)(11346002)(107886003)(6486002)(50466002)(48376002)(51416003)(76176011)(1857600001)(52116002)(966005)(7736002)(6306002)(478600001)(72206003)(42882007)(53936002)(66066001)(8676002)(2870700001)(50226002)(305945005)(5660300001)(486006)(81166006)(44832011)(47776003)(8936002)(81156014)(68736007)(5009440100003)(2906002)(6666003)(316002)(1076002)(3846002)(7416002)(6116002)(4326008)(476003)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:BL0PR07MB4996; H:jerin.8.8.4.4; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL0PR07MB4996; 23:xkfArsWZv4VzSbts8T3zVtxuwL/dc43x9Op74nFH3?= WDyn4Dwxc5HRwKF5Z1OsyXWw9vVEdFgLGrjR4kCwD6Vtn2cH9pEYzHIGSknM4nIpJ71VyMO6nvUe5z6R6M3h7CXUkO/h7op+rIuEHiQjIQKvaUz+9ymC77xccE84D5mvyw/KLGOmi/FTKCaOcjg8nVRNKpoDTOFhwA60loRK6jao18W6ryZgUVZLIw+wtuKBIAVO/p6G/1o54xG6SW8VZW1xMyY3Ni37yOXRUfwE3vyhENL9H2eBSoDOSkwbLKDLAhIDIu6tNe3Qh3zhqg4TWaRedibQBj90k0l8QnxRsDFojeWdQH+75S9x2w+SERZ0U3r2ik5qiZlBuZF3XdSxMY+JaoFJ0s63FeyRQ2oe48hpTHWBoX5AYsWKBv0mrAjD8mZLmuSWunANrB7/hZLwbl3Hwxle2uWJpq7uR2uhIye4gx0tsZJiJDVg3ZUIOpb3vVHq2EbbLJlA1FvK3z4a2UK40uN8/B7uoyTHAJiTXYFKuQPzOySprDGHRWwmxLir4SBT5Yrfesn27CkAOhQ5zV1FA2UtL5Ynu9vxys/rml7orZsjEdhF/zjfmAu/n+/iVRhPDPUiNV0G6rmMyVK3t5qooBaf1dHRFXZ+siI+vDhjp2yhquxETZAs1/XmyBZaLytul3DGYys308pH3WH/5cMIy0wYA3kyPke01WUdFfO153tSt+WmwAdHmW0T3NmGsqymcUxIq2ZQUy3GBbN5K5XT2mV3SzO5QSzc5fLARmNjlGgGkwFeqdliZl03m6TekhefY8Pu6y4052Y9q+AsF1vq6yMIuTXjulh90B2FzDW9E2uWbQLRGZfDQzSdewxwbqDS8Bl7ZPe79nSK+gmeHlIAy6XPcdzIt4v4XgTil78dtjePov4D4FQnUfqpliAs9XpMgeozQzZJvyQJ1/LwTGlq4qEs8Y6wi0+MKF97WW/jIRszMszkawNK9HRHpUorb+jj7Cc448og1Jn3JX1Vp6BuG60PA67Yd2s/jukztMwlOEs4a5/wwGW4aKxIzMI8hJnOiH29ecAbvcHM+S1sN1ndNu8LaUWJoDU6ueqT32q7XWt43D9CkHLo6DoX0FGYRaU05z7AyN3CY3b9dNfvWMEb0zTQzj6jWq2MpGmsYFk2pBCKqBwmVOyTLdxqFZzmz93hE0Z/Ge7laDg0khGzS9plPaMo28QfxfzZEbHciwI7zUuLVGOg10aaz6WQ2JX+2C2Vyt6d3S4ZHYnoDp7e/kADXnKwzWfwmRkFdtDI16sjM9TzVZeKHR6022BrzWUJqslKDb7GAKfHMCe0CDpnKjtFZoHpJ1qR4bOHaV27M7ofNOdYvu3OCIuLlNSOWGCzjg3KpB+D8K85nBzMukeegpA X-Microsoft-Antispam-Message-Info: xhg/I4kyBHwJGV8zTDOuTP+ULeOkNYC1f6SE9gTFIJKHkFKNxAxqJ/bpvPJ9KEN+FJJ2XzBRuLt82SQ+6wjRqPgy/adaSdA2eBjHOAm9bI9vYRkq67/NtzZgjDaChULVjwsK1Z9Q7bp1E4OsfAn+3lND9n6guaS4HeHBWAcdKwrpGenwnJ2DIpPWsCDAxW5+WPSaAFfDPOwHDOfL7hjb39SSfGtOA42vZL76PGYADkH/W090NuQvLrSzxeTJjK4bPDzPdIYCZtwbtn0+sLUFMgn9Caw4OpuRMNvZJ4SojKNoevEsNWaRLBy5KuaB1D3mkLxoPTVTV8ejV76im6znyRM2qktyfpYXyt7puaBc/vw= X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 6:eun3f/EYLaLuECWmEO/dhDKfHltrocYinoYGEsbvDRGG9bnS/jNTBCaTsUjXhJvzfa+pEgEmRmmT1KmpC/HFgmrao/S/EfzVF/x9AsoMbGjan4rU7dEsX8x4r/HTK2b18sqKItDGAkBzoZ/5j/h3229v2a52bE9hTQKM5PLyevD8S0d1lxNzIVh8Rp6gtnmUS3b32EzELh9lL5hSmXKh1pENiLP5K8PUQaSk++Q2ALUwf26fsuj7dBXXaWHeZxHMCJ3dLRaE29bGUSzaQkv2uuRhgWjAV7GQ8wlvvHURQecqdxFOSvamZheevnVAcxL4EImIpPyUs8DI6um8IONyIEXXxe4skYH0FkLbhtGJlpU6Yy3wNPnoy8n65xfYGwuan6sjpTc4wwkXZMvmrkHt9bQZn6BpfVwJY10BD99hh8yy9BfovJ8zv4oDu2EEFjbNueuuhR2VJeIYzWwKNySSYA==; 5:pRVHvbIHDLMS88Kly8j76YFiFRYhg3x+lWIsRPsuhYaSPhUDxgcKzUD5iV0Kw93svxnW5w/wO1UMKpoz4ot/rqjm2/fs6WeUph1xVqqNRkHM/4FSMCR29MnZngai6MZJbFWTGUQYaA38nJ0gxidzZMwKk8lCgWBi21VREaFiVA4=; 7:lHv7gAvGDG4SMshXTp6fqQl2ksFsAh0B8/DiVRVdXvSjLCKJuYuhmd8XExhUfIUDKJ3sj/3MAK+FoEphQDI/ANBrCWjHJY80BdEXwj9JLEd8pUOZnxOOAFf0h2Zpq0aAK6IaUMLgAFZpQVMqGuYncSgrwium++ln2HvVYTZVMppLZbmjUzYHIT8t1lnOfz7XaE0nj0wmmaqPKpesT2BuP/bO1BmYZFLCYMkie+6EcKO8lTl0hfkwtblVeaUZbwkg SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Oct 2018 18:17:28.9161 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0fd17600-8a90-4413-7c65-08d6295c7cd5 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR07MB4996 Subject: [dpdk-dev] [PATCH v3 1/4] ethdev: add Rx offload outer UDP checksum definition X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Introduced DEV_RX_OFFLOAD_OUTER_UDP_CKSUM Rx offload flag and PKT_RX_EL4_CKSUM_BAD mbuf ol_flags to detect outer UDP checksum failure. - To use hardware Rx outer UDP checksum offload, the user needs to configure DEV_RX_OFFLOAD_OUTER_UDP_CKSUM offload flags in slowpath. - Driver updates the PKT_RX_EL4_CKSUM_BAD mbuf ol_flag on checksum failure similar to the outer L3 PKT_RX_EIP_CKSUM_BAD flag. Signed-off-by: Jerin Jacob --- This patch series is depended on http://patches.dpdk.org/patch/45840/ v3: - Mention in git commit log that PKT_RX_EL4_CKSUM_BAD based one bit scheme selected based on exiting outer L3 PKT_RX_EIP_CKSUM_BAD one bit flag scheme. - Removed extra empty line in features.rst (Andrew Rybchenko) v2: - Removed DEV_RX_OFFLOAD_OUTER_TCP_CKSUM and DEV_RX_OFFLOAD_OUTER_SCTP_CKSUM as there is no realworld use case for it. See: http://patches.dpdk.org/patch/44692/ -- app/test-pmd/config.c | 9 +++++++++ doc/guides/nics/features.rst | 4 ++++ lib/librte_ethdev/rte_ethdev.c | 1 + lib/librte_ethdev/rte_ethdev.h | 1 + lib/librte_mbuf/rte_mbuf.c | 2 ++ lib/librte_mbuf/rte_mbuf.h | 3 +++ 6 files changed, 20 insertions(+) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 1adc9b94b..d53c527e5 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -594,6 +594,15 @@ port_offload_cap_display(portid_t port_id) printf("off\n"); } + if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_OUTER_UDP_CKSUM) { + printf("RX Outer UDP checksum: "); + if (ports[port_id].dev_conf.rxmode.offloads & + DEV_RX_OFFLOAD_OUTER_UDP_CKSUM) + printf("on\n"); + else + printf("off\n"); + } + if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_TCP_LRO) { printf("Large receive offload: "); if (ports[port_id].dev_conf.rxmode.offloads & diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index d42489b6d..266c9f14b 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -639,6 +639,10 @@ Inner L4 checksum Supports inner packet L4 checksum. +* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_OUTER_UDP_CKSUM``. +* **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_EL4_CKSUM_BAD``. +* **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_OUTER_UDP_CKSUM``, + .. _nic_features_packet_type_parsing: diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index e9a82fe7f..a630c4fda 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -127,6 +127,7 @@ static const struct { RTE_RX_OFFLOAD_BIT2STR(SECURITY), RTE_RX_OFFLOAD_BIT2STR(KEEP_CRC), RTE_RX_OFFLOAD_BIT2STR(SCTP_CKSUM), + RTE_RX_OFFLOAD_BIT2STR(OUTER_UDP_CKSUM), }; #undef RTE_RX_OFFLOAD_BIT2STR diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index d02db14ad..821d371c3 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -889,6 +889,7 @@ struct rte_eth_conf { #define DEV_RX_OFFLOAD_SECURITY 0x00008000 #define DEV_RX_OFFLOAD_KEEP_CRC 0x00010000 #define DEV_RX_OFFLOAD_SCTP_CKSUM 0x00020000 +#define DEV_RX_OFFLOAD_OUTER_UDP_CKSUM 0x00040000 #define DEV_RX_OFFLOAD_CHECKSUM (DEV_RX_OFFLOAD_IPV4_CKSUM | \ DEV_RX_OFFLOAD_UDP_CKSUM | \ diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c index e714c5a59..022e92b3c 100644 --- a/lib/librte_mbuf/rte_mbuf.c +++ b/lib/librte_mbuf/rte_mbuf.c @@ -301,6 +301,7 @@ const char *rte_get_rx_ol_flag_name(uint64_t mask) case PKT_RX_TIMESTAMP: return "PKT_RX_TIMESTAMP"; case PKT_RX_SEC_OFFLOAD: return "PKT_RX_SEC_OFFLOAD"; case PKT_RX_SEC_OFFLOAD_FAILED: return "PKT_RX_SEC_OFFLOAD_FAILED"; + case PKT_RX_EL4_CKSUM_BAD: return "PKT_RX_EL4_CKSUM_BAD"; default: return NULL; } } @@ -339,6 +340,7 @@ rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen) { PKT_RX_SEC_OFFLOAD, PKT_RX_SEC_OFFLOAD, NULL }, { PKT_RX_SEC_OFFLOAD_FAILED, PKT_RX_SEC_OFFLOAD_FAILED, NULL }, { PKT_RX_QINQ, PKT_RX_QINQ, NULL }, + { PKT_RX_EL4_CKSUM_BAD, PKT_RX_EL4_CKSUM_BAD, NULL }, }; const char *name; unsigned int i; diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index eb11779e7..5c03e98b3 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -177,6 +177,9 @@ extern "C" { */ #define PKT_RX_QINQ (1ULL << 20) +/**< External/Outer Layer4 header checksum error. */ +#define PKT_RX_EL4_CKSUM_BAD (1ULL << 21) + /* add new RX flags here */ /* add new TX flags here */ From patchwork Wed Oct 3 18:16:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 45985 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4D25B5F57; Wed, 3 Oct 2018 20:18:51 +0200 (CEST) Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-eopbgr690084.outbound.protection.outlook.com [40.107.69.84]) by dpdk.org (Postfix) with ESMTP id 896F85F3C for ; Wed, 3 Oct 2018 20:18:49 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=M1j/Db0L7ZXbes85wVIPhytgLVaiK2qUUrTBdZt+MdM=; b=j7tFIjyT/TtFxKYRS+pJonLee22J64XCllA9yDSfznVxNatgSmcGkqQ9ndlUip4PwsTHkyWBjM7tmBkwg1abGedoXelbR4nUEwJ9cZcebN2diDK0DgxT0saZ7gVrJiVeaF9SPe1W+pAAmygsbhdCKm6odzHXUsAlLmN2TzejJBA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.JacobKollanukkaran@cavium.com; Received: from jerin.8.8.4.4 (106.201.57.251) by BL0PR07MB4996.namprd07.prod.outlook.com (2603:10b6:208:49::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.18; Wed, 3 Oct 2018 18:17:33 +0000 From: Jerin Jacob To: Wenzhuo Lu , Jingjing Wu , Bernard Iremonger , John McNamara , Marko Kovacevic , Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko , Olivier Matz Cc: dev@dpdk.org, shahafs@mellanox.com, Jerin Jacob Date: Wed, 3 Oct 2018 23:46:55 +0530 Message-Id: <20181003181657.32236-2-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181003181657.32236-1-jerin.jacob@caviumnetworks.com> References: <20180913134707.23698-1-jerin.jacob@caviumnetworks.com> <20181003181657.32236-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [106.201.57.251] X-ClientProxiedBy: BMXPR01CA0023.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:d::33) To BL0PR07MB4996.namprd07.prod.outlook.com (2603:10b6:208:49::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8e4004ea-7abf-4ce0-c18c-08d6295c7fa0 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BL0PR07MB4996; X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 3:7d8/6GFEFqA/1kL61B1cGOk/V3huV4/XHWHSW1Tz9Wm+Mqa0/USR3EyhtJ7fcbQEdkjD1Gs8Fwq8YJDn6GzaNnrFGC+EruB0Vh5Wq2NcRuSFwJBgNT+hW9yIvk1JSMd2i92cPODF7JFeDYtGNa8gf+b9V+58E9OUKiK3LujcPOdzjQpCHFhViMLxPLmumMF4EfEi2kVcXW3nFPBRozO6zBm2OtxYWKIRKsJqmcVJcfwJpon9NkYuBRSdLabDJuO7; 25:fiUG5LyEIDyWm+Av+uO7X3zpzvEpFo86qaB5WQ4FAklzSDD9DE2O43ufg7S7yZKXW3Kg1oiRdaJlmTB3uVgFJcRQuZ1To+QfrvYbIXf+hV0GiIF0Ak7mNmuzkTUFSeSfhnBb2YKzSobIMIP4JTxmd30l3njyws5LKyL1Rf6MDWLmRfPu0d8XyGksF0qs2TWucfHwdCg+KMDp9oZAe36E6sDSoPmkTR8EBPnJAe5jFlLSsttyAxESA0OJR3dpuXx2Mcd5sWPWg+vhXPTf9NOmC5L66oihIyW+yj/O+rsOshdovS8cVFK4jGC4yAhmpu8D/ii7ew29MxqDUfJpMk9nIg==; 31:nUfXA25q9MXP+K1tNGVimoQxhrgReqa552gAWp/lHo7junav6jFT+liKdA+KryPNt6mo6mWd+5pMq+DR/SgDLESBHOUc5V6UWQ1KzvGQRn9UsPBdTWuZgqw0raO+EDDPCLg7+5Ux80tUJvLAlNPDjEsxKu+cEZY3R04SQ5Pv26CSnMlVkJCyU/uw/k3Vfb2Xy/PmAzQ6LvCtSuBpoPDcPdqIYYEC54WSbtTppSBm8KQ= X-MS-TrafficTypeDiagnostic: BL0PR07MB4996: X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 20:U5/pAGY4ERUQ4pe2TDmoS93m+3/QgEbPDwRVxOJrg/WfL9KDKVaXs9uOlP0OQvd9nGA3X68TAsvQFMy0Z7yZfalKkdyYsHBCcS55Q3q4IPIBqQYmZxUr9mP/kUZMUAuMs1RnafjyJWkf+xP/bm3+QrCkfLdawhghovw/bUGLkauSCRQ/zvjyTnz9orhOoQKFO8SER+b7YPptEqpPoUaAtnqc/cDlDYccDW0UEiydiGwGHkm4sBpmcS7b+9/UdoDn4HUZfGc1IpRDHB/N+0mwIjVazSQfe2mSvHbmpMF4h8gJmvwN9pgEA8SB9SCj2N74eAsWEiGM7qfdO/dyeshitsjQwCyruhcuzcZGZbfP+PO2ci9GlW3MGgfJYWdlyI+fOjRlFE8e7aoi7Fi5tVT29sebuvSjGpe1IJQi4jzoU1+iuhOg8QtN5O9HUKX3MPWgSJDHIycyCuq1v/1vPM8rCrj6gLKwoD6p87XjVk1ZYnVUdizEdYm4Ex6kI0bsqJRj9vV2c++6oxYbcW1L5SINF4FP2ItB7mLur5x0+qHO2CeqdvxN5IfBk5srk4Jy65xgqPblYwUQqPXKaN36CkJeTxblV2j2mZ/NJV7dy7FLxMg=; 4:iFR4gGxvwVz454k4WFKX2iSANgAu3LZOU79fRi6L7oO6a5/SSGeK4qSHPgkAxx0B0PQz2OlsAoz1f9/VOliwG++KdCNAACSquQ4f3I6/QElVsH0Q7xuIgOsZPLzthaG379Gpf/xdPrq/Z8cB0N9rNw5vDccD22fexZg+n3hVYTNs41Rj0gqZzRCpefnG6/RagD/6PleO259gnjb6SHjlXf9JHSCNl7G146RPLMYajjxNrTfjo4CHi0pWsiecuZMJEn2NXuLwqs4m8l+4Yy72dQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(10201501046)(3231355)(944501410)(4982022)(52105095)(3002001)(149066)(150057)(6041310)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(201708071742011)(7699051); SRVR:BL0PR07MB4996; BCL:0; PCL:0; RULEID:; SRVR:BL0PR07MB4996; X-Forefront-PRVS: 0814A2C7A3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(136003)(366004)(396003)(39860400002)(346002)(376002)(189003)(199004)(386003)(110136005)(36756003)(956004)(5024004)(14444005)(55236004)(2616005)(446003)(97736004)(26005)(105586002)(106356001)(16526019)(186003)(11346002)(107886003)(6486002)(50466002)(48376002)(51416003)(76176011)(1857600001)(52116002)(966005)(7736002)(6306002)(478600001)(72206003)(42882007)(53936002)(66066001)(8676002)(2870700001)(50226002)(305945005)(5660300001)(486006)(81166006)(44832011)(47776003)(8936002)(81156014)(68736007)(5009440100003)(2906002)(6666003)(316002)(1076002)(3846002)(7416002)(6116002)(4326008)(476003)(575784001)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:BL0PR07MB4996; H:jerin.8.8.4.4; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL0PR07MB4996; 23:7bys9C6oqWyxWN0gJ21ZpoAc2iRkX1F0GcMDc5zDB?= zBXNAalX9UsFM48aqAxn3/tSXc4iNuyXSc9kLHVumPgIQ2bE/yJsaV91peWikwjU3GFVNikHcJqvKWCYP82tn5/CKBwZYqXq8EGKJmpXBj1nBzbQOLSWiqVG5MRI7PPH0aEeh6poh40J30AyJDsbdLnOiRF85jUivaYIaliK6Ok56ufVkbuGP2uxjC7vtOPSfT1X8Xw/PhdAm1UKrbT7i2BezP+cUimpTXIWkTEZItqRpfCbRlQOYrQHaa+5C9k2ZoIL8obX6g6DnceYgDLvTMBqMJGYGzeSC/dgzy3cVyY5kFJAwM3zOMPX1d5QY/TDJQ4jDOZ73ItUIx1tgqtd4Id0Hg3q81xX3QwccVmexVWenl7LHJIonYukgIm9SyMKnvYICXmpmoGzOWUgknjXIt7MHLEwNMf/lP5XUuskLdOyaw7/BV2r9td/J3jN5XgeNgCzkoAoYWazTsa6mECgjZDbsvMFlRgd12/PPlVZXEyAfiaTFjzu50Lt7z4WCeMn2fM31A5wxuzkhv+Ta4CK9E29zNWhXKNUyhGFgAondIhYM7HxRHYxYUrPsRl0svaVv5fFDcbhYuEwjYSuJHaOLFK+duQVyzla6vOV2tvopCaO2J5OBPZxuRMBAH9sp2/jzVMnV1qBZ6gigw+4ICa3MW2L9gyl/gyMzjpXtRS7Cwiyhc0dC/KEiWLviPsZShMoCcb0DDt4MBrnT6GybnoY0nu20Bk2MjhQwBPoBz8tf/aJmOTuP5By9PjxWptVH2YTcGtsK4u3EKxhNYg+p++LGI3xKSjbGTbIbZl0V125RLHKM7HM12jxi31/KLpXH7XFMTHYhkSlAIvVNkpWG7nQswrRmRmq7T78BllD0wzyd8UlxXxnnxj2NQfEq7jVziOrgLeY3RLTNE3+KXjRM+SZZv/BS7JzbxwFwTVlCCHifS/2V3iPv8Ks1aZPVnCW7VANMx7qwKV5taASd4cOVoTn7C5Q3pWbilFcbUnVR2F8MbmAM+mI+EYAi721Ys9HXB1F0LOYfkPxGJotVKzR+ioYdm92+FO/q+2Jep2Dv2h0cApu7GYgCq1SnxTnDqypka5Os2v9ALmoOqpBucVN2c1EC3fSlKhXMqoDoljqULFndd4K7weDJxhoMmUJ+isAws2sx/mEa176NNswgM4agYs6FjgoDB732SVMF8IOD7eaCFh36eCevq7AGUepNQ1m3Tp+jVh3WKaKeS5pKAfZAzdxyb1vp0SbeBIikJRvbVeowFzmdU0gxJ3GfGZgjISiRuIXPh2lGjXlhsg370C2ppS8uyQMqGYBAYfJUykIt8hathXX1dZH4v79zYPEpiHvltNXcm9wb9ZSZ3MzCt4EILu2CnswHnIdo389cESle/GiddS4+nUcgDIQcJ0CKsQYqu4FZc= X-Microsoft-Antispam-Message-Info: RtWf75AlqRq3yPPIYfLRjC6oKIHt4ufcL+yVX9G2umtT4UQUwy/t6h1vlj6bzi+uVJsp4otjdeKUZSqyjgv4l99eMqJlLmiHakPNAnK6v8n+r7ShfhASF1O2z7T5FC9w436D2mFGXSvx0i7w/5pH36sNEaPtxDrlT51HqTW6GABI4MHfSKCrkmnEMxW/7SLWtj8vaFpgv4PuFNLAX98fJeGLo/s6RsnxuHW//mgGf8fFkt3hWzg98uNcjP6zWSmmcWu/ggLLvrbag5bsT1QznQw6iasWwrzX7VGWMwlFe03MlHw+K5OfhrpHyQhVJIU3VzxOKrIKbJH8sRJSI0kbpcRMqN1XfwZDmB8mt+MZncY= X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 6:C3Ka92JBv6UqZuVyB2iwZ1DRbWYtyo0Ue2nGlZAWG+nXtmjahYKoz7p4nP25GHf0tZA+rnDoRTehs1Rjq2diqwEd96kY+zj9GtamZ3W3wil+SKQ/+7Q5FOjIPas5N5DGU0i3onC0V73+uMtF5ZiiwmQAL7QNm+XCxXcpUo/A29vb4TTuJ2e/cksg85x6f7Oxa2OalRcPqtMub1T+yLgF7i8mYUWMLBpAjX1NK6wVF5GWYg9T+HrOFfGb48by7VV1oacGCdWNhHQXq1ZcKuPSF/1Hjj4eagL4s/ygoUpCczkxb8pVF+hn5bItzM1kl1CFFLB8VFvG/QIg1NWCSKPdqGhXEWsm8zvP3t6+Ly/YiYA058wxRGHtBM7D6yCVHzot3Vl547MmY6EdLr0/jwU4tqezhu3AwEeZyTUGRdxoSAJubw8/031XoGbcItj/wiBFDFSJLH2kybS2afpdGWOOdQ==; 5:E5VeMR6vle18BXzOMtbtzP8b1JNJ617fzH+hZXLKnkhNnwVss69mVul+U+ovs3XyKiPdi3vukSEB1ARQCWOVZLKyJ6Z4WCSvH0DD5t3gYAf1PA39LH2WvECiW3xGZ6vr0n3fOJBKPklxklKjmx6iu9JTRMqbPqU5VsxJ0Vu843Q=; 7:VM4NutlXyCgMskwO8sVJih7nArRwtMlm/EXnnsX7rWiwuxlQslN7Ai8A2NlQg06COyUiAl2H0qZgA8zolE1D8LsiNgp1WmqzcFDSwjem4l3EGicQ1l8s3D25ozLk5LZtxHEMlJwNcr2RxxMnk0U41wsZ25OtlPcjM9VhgKGYhcWv3x/Tem4Rx7kWhS+1j5IceVCsNtOu5JwaMmmtJsn7iPlWg0YVbf/jxUwnuuNm6Z0kQh+n7iilBhFe3WO/RzgI SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Oct 2018 18:17:33.6349 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8e4004ea-7abf-4ce0-c18c-08d6295c7fa0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR07MB4996 Subject: [dpdk-dev] [PATCH v3 2/4] ethdev: add Tx offload outer UDP checksum definition X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Introduced DEV_TX_OFFLOAD_OUTER_UDP_CKSUM offload flags and PKT_TX_OUTER_UDP_CKSUM mbuf ol_flags to enable Tx outer UDP checksum offload. To use hardware Tx outer UDP checksum offload, the user needs to, - enable following in mbuf: a) fill outer_l2_len and outer_l3_len in mbuf b) set the PKT_TX_OUTER_UDP_CKSUM flag c) set the flag PKT_TX_OUTER_IPV4 or PKT_TX_OUTER_IPV6 - configure DEV_TX_OFFLOAD_OUTER_UDP_CKSUM offload flags in slow path Signed-off-by: Jerin Jacob --- v3: - Git comment corrections (Andrew Rybchenko) s/PKT_TX_OUTER_TCP_CKSUM/PKT_TX_OUTER_UDP_CKSUM/g s/mbuff/mbuf/g v2: - Removed DEV_TX_OFFLOAD_OUTER_TCP_CKSUM and DEV_TX_OFFLOAD_OUTER_SCTP_CKSUM as there is no realworld use case for it. See: http://patches.dpdk.org/patch/44692/ This patch series is depended on http://patches.dpdk.org/patch/45840/ --- app/test-pmd/config.c | 10 ++++++++++ doc/guides/nics/features.rst | 5 +++++ lib/librte_ethdev/rte_ethdev.c | 1 + lib/librte_ethdev/rte_ethdev.h | 2 ++ lib/librte_mbuf/rte_mbuf.c | 1 + lib/librte_mbuf/rte_mbuf.h | 6 +++++- 6 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index d53c527e5..5d9745ae5 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -773,6 +773,16 @@ port_offload_cap_display(portid_t port_id) else printf("off\n"); } + + if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_OUTER_UDP_CKSUM) { + printf("TX Outer UDP checksum: "); + if (ports[port_id].dev_conf.txmode.offloads & + DEV_TX_OFFLOAD_OUTER_UDP_CKSUM) + printf("on\n"); + else + printf("off\n"); + } + } int diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index 266c9f14b..1390e9668 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -640,8 +640,13 @@ Inner L4 checksum Supports inner packet L4 checksum. * **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_OUTER_UDP_CKSUM``. +* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_OUTER_UDP_CKSUM``. +* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_OUTER_IPV4`` | ``PKT_TX_OUTER_IPV6``. + ``mbuf.ol_flags:PKT_TX_OUTER_UDP_CKSUM``. +* **[uses] mbuf**: ``mbuf.outer_l2_len``, ``mbuf.outer_l3_len``. * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_EL4_CKSUM_BAD``. * **[provides] rte_eth_dev_info**: ``rx_offload_capa,rx_queue_offload_capa:DEV_RX_OFFLOAD_OUTER_UDP_CKSUM``, + ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_OUTER_UDP_CKSUM``. .. _nic_features_packet_type_parsing: diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index a630c4fda..bb48b5a0f 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -159,6 +159,7 @@ static const struct { RTE_TX_OFFLOAD_BIT2STR(SECURITY), RTE_TX_OFFLOAD_BIT2STR(UDP_TNL_TSO), RTE_TX_OFFLOAD_BIT2STR(IP_TNL_TSO), + RTE_TX_OFFLOAD_BIT2STR(OUTER_UDP_CKSUM), }; #undef RTE_TX_OFFLOAD_BIT2STR diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index 821d371c3..79d0bb1ed 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -944,6 +944,8 @@ struct rte_eth_conf { * for tunnel TSO. */ #define DEV_TX_OFFLOAD_IP_TNL_TSO 0x00080000 +/** Device supports outer UDP checksum */ +#define DEV_TX_OFFLOAD_OUTER_UDP_CKSUM 0x00100000 #define RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP 0x00000001 /**< Device supports Rx queue setup after device started*/ diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c index 022e92b3c..9db4317ef 100644 --- a/lib/librte_mbuf/rte_mbuf.c +++ b/lib/librte_mbuf/rte_mbuf.c @@ -437,6 +437,7 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen) "PKT_TX_TUNNEL_NONE" }, { PKT_TX_MACSEC, PKT_TX_MACSEC, NULL }, { PKT_TX_SEC_OFFLOAD, PKT_TX_SEC_OFFLOAD, NULL }, + { PKT_TX_OUTER_UDP_CKSUM, PKT_TX_OUTER_UDP_CKSUM, NULL }, }; const char *name; unsigned int i; diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index 5c03e98b3..0a2de50ca 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -184,6 +184,9 @@ extern "C" { /* add new TX flags here */ +/**< Outer UDP cksum of TX pkt. computed by NIC. */ +#define PKT_TX_OUTER_UDP_CKSUM (1ULL << 41) + /** * UDP Fragmentation Offload flag. This flag is used for enabling UDP * fragmentation in SW or in HW. When use UFO, mbuf->tso_segsz is used @@ -351,7 +354,8 @@ extern "C" { PKT_TX_TUNNEL_MASK | \ PKT_TX_MACSEC | \ PKT_TX_SEC_OFFLOAD | \ - PKT_TX_UDP_SEG) + PKT_TX_UDP_SEG | \ + PKT_TX_OUTER_UDP_CKSUM) /** * Mbuf having an external buffer attached. shinfo in mbuf must be filled. From patchwork Wed Oct 3 18:16:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 45986 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BB2AA1B161; Wed, 3 Oct 2018 20:18:53 +0200 (CEST) Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-eopbgr690084.outbound.protection.outlook.com [40.107.69.84]) by dpdk.org (Postfix) with ESMTP id 5A4E35F3C for ; Wed, 3 Oct 2018 20:18:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a+pn9jIrPC6i4rChxyWpG4+keJq2SEXpO50RVhNhDCg=; b=mfLK2/+0X7k0a//Lb1lxJJOURZ3vnpsAt47tHKtyvwad2pMZDFEWGDiqFPJ/eKK5yNEBDvR4VZJ6LiCutU3T4NHvDOPQ1kZNXFPu8vqkdZmTFegImQzhpsTyN2MSuCTVTGQp0jW9ctBt8/hqCqYTXxuoOQyG4v5gMZRl0fngxGI= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.JacobKollanukkaran@cavium.com; Received: from jerin.8.8.4.4 (106.201.57.251) by BL0PR07MB4996.namprd07.prod.outlook.com (2603:10b6:208:49::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.18; Wed, 3 Oct 2018 18:17:38 +0000 From: Jerin Jacob To: Wenzhuo Lu , Jingjing Wu , Bernard Iremonger , John McNamara , Marko Kovacevic Cc: dev@dpdk.org, shahafs@mellanox.com, Jerin Jacob Date: Wed, 3 Oct 2018 23:46:56 +0530 Message-Id: <20181003181657.32236-3-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181003181657.32236-1-jerin.jacob@caviumnetworks.com> References: <20180913134707.23698-1-jerin.jacob@caviumnetworks.com> <20181003181657.32236-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [106.201.57.251] X-ClientProxiedBy: BMXPR01CA0023.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:d::33) To BL0PR07MB4996.namprd07.prod.outlook.com (2603:10b6:208:49::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9a1b003f-bdfd-4df6-6f67-08d6295c81d3 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BL0PR07MB4996; X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 3:AFIa6+A30aUalJOw1JRbRrlKxUCx8Imv3ZWuNenvx4mqUHI9sROxmsQsmCClw6N8GjlR9uCwttuAOzwFqttzUCFHyu2e4ub6uEjPb/ruMZ0oYZ7leZTKn3qw4cTWRvbGlqZdqEeW8qOEV7wOr9krlCAKudi4fL+KfzmgtwX88qC931Qv35q46GMiX8rHgtUy+O+rKV11SSxemn5j5JQ70QwjZ1t6dMRgOJ4G6LpWK2Fx9LrnMsvbaBYkjxMIptyi; 25:dGylhKMkYoog8EWMYupXGbcS+rbU569AbO3q6/PktklN9k4TQmFTu73qW8za/JNbRlZ1UKjn0DaCa565Dbo+vkeo2phWuqB3lYzV867lVAhNGtI2lCNi8d9CXiazR7ZqWE439v57YJegzs1eP15/TjJMi2oD4z//+D1QMN9LiNEJT+DW1pxIFswFJvzLAcLCG8ujl9EwUBoZAFHtEfdQA/7zAKW2XG8yyfECYQHrgji9W4hhBKpqurW5iYT6/3vHIgqupoYbBDkJ08Ux5tsR4UqbZVU4THKb6bQax+oKph2IbOZex3lJ6cYrfrEEW2jILdQc3OxjmAaw/lT7+tO7IA==; 31:KIqkWqqHOFUOUwS9C3bc4x7H6uF1dO1paXgwbQR8ibROslAvcVG3geLLREMEZpI9AP9O4ZcYmREdqFW+QdaR79fiR6y2ClZYweIWlsGNl1CHI548t7HBFaFhwmzqT6Q9f//7bEbeiAe6c0POBWCGO+5YJGw7s8Z6w7yBi1BIcDDVqQ8S+I/0KLylTncZR0yrxF96t6ERcLTsaK9Gmo27RSaCbgwE0tHGaobIkWWLxos= X-MS-TrafficTypeDiagnostic: BL0PR07MB4996: X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 20:Sy+EScMv3GdoL8wGYIiTWyhHsf8m4km+lV7K24Z+v3bHeEGrf9eLya//u49XsyG8Xx6cMzaeMOqsYxHZXCjQxaJ6xD1Gu1RAvpMe3r/TKbFe3ajx+FCyITqfnBA03nAtysrKBXA9+cU/9FhdUXygSPVZCi9AKG8iTfJwVtoc1ZtqQjbctkUJH9mOJ8NT5AXvvzNLX5r5aOEjyubjbXDa7/EqjIEwX3vKdFKGaTEfWoVRVcIzQicLSy9ofVayNl9LInDohrM8CnrbX9VP/rqvY+JUqpeaotCOho6NLicVuFmHmSJN0EV+QUOk04+xQppwY0ASPG+YEtsGI9wQNW8zhiZH5l2hHFt9Q/nTeoc6j4jo5kLovio6gVQzFUIpFYgZUFNz8hdMh/L9cYp1m/9+gTsD0WyfatwXK957y4t6vSEFYLBQka969uvEC4jAMEDqEi1eD88z1X2Hw+3+ciDkq8MIRs6xC03WBivFAOR5mn8hxT/EFSJvAsxVsC9TO8OUDwWomHRln/7CYUIsMIJOsFmljKL/g4H6cM6GHjGIFWlfPSxsIRPxeK1CBVcEXKGh5b6uRx07Uv/4njiFIMm2GBqk7DaVCrqYctVLxxygZPQ=; 4:rtZuN9XLDnM7ij1iyBuPT9Z1ZWWTGbtD0IRZN9NTghpMarSMD1XWTocNC5W+YbTEHFU+zM77GtweF0sSLSf4spSpUzdEoHgW3bTEo9h0tKSc/oFvs4YkXV1kyWc9+/KFupr4NTrqvFuKDymQpkDuAlTbCzBQbtADIMzalnD3qUtOxoop21lY9HM5ykoz7OYmpZqILZZH5VOA5AvTyi9HY+GCczLOQvCvK/r5WBkaZ3z8v7tFJZjbr/G+sbrO8Bd+HTD7w6znasa/LEi176n0zzFm5lIMV07mAj0BUGsabZd7Kuf83DwAL9R+6zY87kik X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(10201501046)(3231355)(944501410)(52105095)(3002001)(149066)(150057)(6041310)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(201708071742011)(7699051); SRVR:BL0PR07MB4996; BCL:0; PCL:0; RULEID:; SRVR:BL0PR07MB4996; X-Forefront-PRVS: 0814A2C7A3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(136003)(366004)(396003)(39860400002)(346002)(376002)(189003)(199004)(386003)(110136005)(36756003)(956004)(14444005)(55236004)(2616005)(446003)(97736004)(26005)(105586002)(106356001)(16526019)(186003)(11346002)(107886003)(6486002)(50466002)(48376002)(51416003)(76176011)(1857600001)(52116002)(7736002)(478600001)(72206003)(42882007)(53936002)(66066001)(8676002)(2870700001)(50226002)(305945005)(5660300001)(486006)(81166006)(44832011)(47776003)(8936002)(81156014)(68736007)(5009440100003)(2906002)(6666003)(316002)(1076002)(3846002)(6116002)(4326008)(476003)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:BL0PR07MB4996; H:jerin.8.8.4.4; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL0PR07MB4996; 23:lvWEmMZGH6Y90SU/xZ5Wr6H47PqdMXJUILq3EdcG2?= B4l8Dt2FDjUB5Dh7tt2MdJNQvQ5kbvxdQoKU3fJV6TCN6TUL0smDnitli04X+X+04OvNn4cXiC54N4bnsv2zIFkYMT1Poaz4FVzq/n4pXR7jXmffaee761wSqtv2Fw5h2XKYRR2yg9cFGDnAe4je764q5v3JHIIHo27LDqTi0rYbdR/yR7CRQiJmUZegCz/RAZfFecCpZdQc0KAvwZwLFRGnT8xQiHJLl8gNbV+zMdDF6ztTvoYIcU0ZhT6IwGIWuPQ5gswurJdssA4tVQlIQjGc7H0luE+mXi1rs/gZX+Fge20Kx98Xn+t/AMpNPiZYlPrRhIHvGg/Ha18ixZ55lBmRdSX5xRoxG49BoKJ0SnLOZVHHRYnPRg0Ftv8DaAO2d0tfV/dlwmByjQl5CQ7P6iCEXUgX3FDiYY4yHkH1BFA0vxM+qT9I/og6UETSCLuPORTkUz8BZCeChBhtRqBHMDLcw/ABT2HAXIqzH73h3ESBKTfYb8NE3mG47jMNtSPStZFFNxlx4ISVLdEyNdCPfq8uyZEWTIDm8l+rj7cUaeuBYPBsafhPCiNKSclp9fzo4EwU0NHZOjCNwsdC46yIjkRID33lxzrDDgVqA4aWgWcswlTAP5/f69cAd2TyEIJ474EWam5XFNdFLIlcNSgZdH/rZkixLx+739VA/nki5PPFr100YJRK94ro8mQH/BxvU7bPVsAZgzO15lPSOk8SMygk+kV+vR0M0U5UhV7LyMsxg4rgWd8OEgT2tRC8jvfJvb81w7EcVbIhUwGVkFDUy3t8/asYAaJwkfk0SDhbYAB7DZri4bBWvt4w7WL+bcYiMlVHPXOwtXfE7Jx9nWG0jRN9LzLXH+SxLPcS+/dnj3RCSFZvSMIP3CYM8EdJ/kr/506gOwz1d4k37dh0wYe0J6z63DHxwP69bm+qC3JaOQmHde/RzdimfaM8TraqpKqJWZeuf8Gpl8d6iCO1R+rXXS0QQJk4dQHsncwDP/0ppKqQRjKZsAKyfSBY4kSAdw/rOXu0VIIfrOEMNpnx6Lc58OvbNUUIe12My11wv8Gx+Ii/Sb1Bw4lrV+2zHnIGGDzjerIITqvgdi3uv3dz8G8XoLkkNhaoW6yCS60M4hEcr1BtNTTzLbTkdI4yaQ2c/cFTy0KTMDRCTn4FvHSO+I/STbFa09vSBhYn431Buf6J7/rh2A7OiehfXD1mKAUy5BbhB2I84S+c4oYCRYSS6zJVB0wVOXLMrsZARSKpEAgwrwdOWXPAeBPbXoRkplTWmk0qMY9ix6/IWdiJyNhXKEnijzr X-Microsoft-Antispam-Message-Info: OvvSYClCY1v3bOGmQ8ZaA+w62vW0wAXY3Po/kqhJtSz3JFoCA3W1zz/Bg2rJqAkro0FwAmw4ANUiECQHe4n06ddxp6Nzb4Gp0GLuf7/2ovQkwByDyUeLuXW0ulgRq+ffUbSkKYm2FckAPBToxevFDkJcl21L6gOAYI+DxfTqCXGdnsquEhIsv2yXNj8MNNVT6fKaX8ke8V/S45/IxZciwDgNjlls+dxHSDTJ5dhkgh5aD7ySiBSAm9ilNPM/Sc7A5zEkz3VuHar/0qfDH3wFSjwRlakg20eu7Is6UF2Mk8HO2/IBftCWZgpxJf/N096bqbb1pKdqEwI1XNCfsWjL7dMKyGTuBhI0rp+wmVtF9EQ= X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 6:mP0vZQb+GYYALphtZ/zhGv9FrbOHUqBLRI7qdKINbKP1ghMW3EzP5LZtsSmtAv3BihaX2i41Zw0X9NZ4T6xc/NkpEhHyWMpE2GtFqMIGgjzjU9wOdU+03rPWHmvwvXXbQsSMVjpWeOubId8U1zDX9pJF48dQSCpLKgb3SpllnrXUKA8aRePeFv3RPE01DOrcEtVDOzuLZIbQic+hpjRT1i1BC6a7l+0WA1TTvHW5xxnr2gdi7BJU/Q1J3wC/Re2PkDv3kku6c6mZ1vcD1ik6ues6jRk4NCDgENbvxYlljCT+jBA2ZibH9Ej2M0o2hhsWtwHpP/Zv7eVQjoRwXYI2REvi05h3IimhxVctjS977X/X6BsTHMiMOF425DMKKivp9mKjpYK+bPmL7RGBvMzNRYifCtavo9CvLXDriDlA6DyT1wMVzdv/nObef3WWepOwwli3mL2kLow4U6uWXtip7w==; 5:3VzZps8fZ84XEF3WSRyxFMCLBZlHf+nmnjEMsmpIEoAcYZ0o0PmPDYyT8caE/juKlne8JAeFtf/u0ibXREAiNz7ITyhm6XeHxnEVlECdSmaU0g95maQRjKB0XKtgX6ewGyBlgu0w+TB+fBb6T9YcRqSlOZEkr3iDvpqgtkHCaHc=; 7:Mx+u0qCeeCR6+QcN1bVti2PYyTJtcJDFGwrJu4ujGLJwZtXRlon+6/caIXx4+E3ViV95vfkZab61nIYUs5+8JypnxFHsL63u+m66d3/Z/raVWyu/JW87EwqHD50WkQ75iTdjKEBDxFTZ5zWduZxLmKIOD7sRtmENXn6Yf2JibfhZ2dhoPlsvrkSOC1crzaSXlv2njHwCBz8Foo0HcHDUx6iUNOUZLlElk7DQZdCz2/31Ksp+ebH7zafUPs9WzTri SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Oct 2018 18:17:38.2913 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9a1b003f-bdfd-4df6-6f67-08d6295c81d3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR07MB4996 Subject: [dpdk-dev] [PATCH v3 3/4] app/testpmd: add outer UDP HW checksum support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Added outer-udp Tx HW checksum support for csum forward engine if device supports DEV_TX_OFFLOAD_OUTER_UDP_CKSUM. Signed-off-by: Jerin Jacob Acked-by: Bernard Iremonger --- v3: - Added Acked-by: Bernard Iremonger v2: - Added outer-udp support for csum engine --- app/test-pmd/cmdline.c | 24 ++++++++++++++++++--- app/test-pmd/csumonly.c | 13 +++++++++-- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 8 +++++-- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 0c5399dc4..2fd007423 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -397,12 +397,13 @@ static void cmd_help_long_parsed(void *parsed_result, " Disable hardware insertion of a VLAN header in" " packets sent on a port.\n\n" - "csum set (ip|udp|tcp|sctp|outer-ip) (hw|sw) (port_id)\n" + "csum set (ip|udp|tcp|sctp|outer-ip|outer-udp) (hw|sw) (port_id)\n" " Select hardware or software calculation of the" " checksum when transmitting a packet using the" " csum forward engine.\n" " ip|udp|tcp|sctp always concern the inner layer.\n" " outer-ip concerns the outer IP layer in" + " outer-udp concerns the outer UDP layer in" " case the packet is recognized as a tunnel packet by" " the forward engine (vxlan, gre and ipip are supported)\n" " Please check the NIC datasheet for HW limits.\n\n" @@ -4177,6 +4178,8 @@ csum_show(int port_id) (tx_offloads & DEV_TX_OFFLOAD_SCTP_CKSUM) ? "hw" : "sw"); printf("Outer-Ip checksum offload is %s\n", (tx_offloads & DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM) ? "hw" : "sw"); + printf("Outer-Udp checksum offload is %s\n", + (tx_offloads & DEV_TX_OFFLOAD_OUTER_UDP_CKSUM) ? "hw" : "sw"); /* display warnings if configuration is not supported by the NIC */ rte_eth_dev_info_get(port_id, &dev_info); @@ -4205,6 +4208,12 @@ csum_show(int port_id) printf("Warning: hardware outer IP checksum enabled but not " "supported by port %d\n", port_id); } + if ((tx_offloads & DEV_TX_OFFLOAD_OUTER_UDP_CKSUM) && + (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_OUTER_UDP_CKSUM) + == 0) { + printf("Warning: hardware outer UDP checksum enabled but not " + "supported by port %d\n", port_id); + } } static void @@ -4273,6 +4282,15 @@ cmd_csum_parsed(void *parsed_result, printf("Outer IP checksum offload is not " "supported by port %u\n", res->port_id); } + } else if (!strcmp(res->proto, "outer-udp")) { + if (hw == 0 || (dev_info.tx_offload_capa & + DEV_TX_OFFLOAD_OUTER_UDP_CKSUM)) { + csum_offloads |= + DEV_TX_OFFLOAD_OUTER_UDP_CKSUM; + } else { + printf("Outer UDP checksum offload is not " + "supported by port %u\n", res->port_id); + } } if (hw) { @@ -4296,7 +4314,7 @@ cmdline_parse_token_string_t cmd_csum_mode = mode, "set"); cmdline_parse_token_string_t cmd_csum_proto = TOKEN_STRING_INITIALIZER(struct cmd_csum_result, - proto, "ip#tcp#udp#sctp#outer-ip"); + proto, "ip#tcp#udp#sctp#outer-ip#outer-udp"); cmdline_parse_token_string_t cmd_csum_hwsw = TOKEN_STRING_INITIALIZER(struct cmd_csum_result, hwsw, "hw#sw"); @@ -4307,7 +4325,7 @@ cmdline_parse_token_num_t cmd_csum_portid = cmdline_parse_inst_t cmd_csum_set = { .f = cmd_csum_parsed, .data = NULL, - .help_str = "csum set ip|tcp|udp|sctp|outer-ip hw|sw : " + .help_str = "csum set ip|tcp|udp|sctp|outer-ip|outer-udp hw|sw : " "Enable/Disable hardware calculation of L3/L4 checksum when " "using csum forward engine", .tokens = { diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index 494829266..ea5b112d6 100644 --- a/app/test-pmd/csumonly.c +++ b/app/test-pmd/csumonly.c @@ -468,10 +468,15 @@ process_outer_cksums(void *outer_l3_hdr, struct testpmd_offload_info *info, if (info->outer_l4_proto != IPPROTO_UDP) return ol_flags; + /* Skip SW outer UDP checksum generation if HW supports it */ + if (tx_offloads & DEV_TX_OFFLOAD_OUTER_UDP_CKSUM) { + ol_flags |= PKT_TX_OUTER_UDP_CKSUM; + return ol_flags; + } + udp_hdr = (struct udp_hdr *)((char *)outer_l3_hdr + info->outer_l3_len); - /* outer UDP checksum is done in software as we have no hardware - * supporting it today, and no API for it. In the other side, for + /* outer UDP checksum is done in software. In the other side, for * UDP tunneling, like VXLAN or Geneve, outer UDP checksum can be * set to zero. * @@ -826,6 +831,8 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) if (info.tunnel_tso_segsz || (tx_offloads & DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM) || + (tx_offloads & + DEV_TX_OFFLOAD_OUTER_UDP_CKSUM) || (tx_ol_flags & PKT_TX_OUTER_IPV6)) { m->outer_l2_len = info.outer_l2_len; m->outer_l3_len = info.outer_l3_len; @@ -898,6 +905,8 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) if (info.is_tunnel == 1) { if ((tx_offloads & DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM) || + (tx_offloads & + DEV_TX_OFFLOAD_OUTER_UDP_CKSUM) || (tx_ol_flags & PKT_TX_OUTER_IPV6)) printf("tx: m->outer_l2_len=%d " "m->outer_l3_len=%d\n", diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index 3a73000a6..cfcabf6f0 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -857,7 +857,7 @@ csum set Select hardware or software calculation of the checksum when transmitting a packet using the ``csum`` forwarding engine:: - testpmd> csum set (ip|udp|tcp|sctp|outer-ip) (hw|sw) (port_id) + testpmd> csum set (ip|udp|tcp|sctp|outer-ip|outer-udp) (hw|sw) (port_id) Where: @@ -867,6 +867,10 @@ Where: as a tunnel packet by the forwarding engine (vxlan, gre and ipip are supported). See also the ``csum parse-tunnel`` command. +* ``outer-udp`` relates to the outer UDP layer in the case where the packet is recognized + as a tunnel packet by the forwarding engine (vxlan, vxlan-gpe are + supported). See also the ``csum parse-tunnel`` command. + .. note:: Check the NIC Datasheet for hardware limits. @@ -940,7 +944,7 @@ Consider a packet in packet like the following:: * If parse-tunnel is enabled, the ``ip|udp|tcp|sctp`` parameters of ``csum set`` command relate to the inner headers (here ``ipv4_in`` and ``tcp_in``), and the - ``outer-ip parameter`` relates to the outer headers (here ``ipv4_out``). + ``outer-ip|outer-udp`` parameter relates to the outer headers (here ``ipv4_out`` and ``udp_out``). * If parse-tunnel is disabled, the ``ip|udp|tcp|sctp`` parameters of ``csum set`` command relate to the outer headers, here ``ipv4_out`` and ``udp_out``. From patchwork Wed Oct 3 18:16:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 45988 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1DD961B20D; Wed, 3 Oct 2018 20:18:58 +0200 (CEST) Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-eopbgr690061.outbound.protection.outlook.com [40.107.69.61]) by dpdk.org (Postfix) with ESMTP id 847CD1B121 for ; Wed, 3 Oct 2018 20:18:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WJRaSoyYQEb2e3nDo1VjjgoA52Y2Nwr+TzKFA0mbRfA=; b=N8YnGG76cuJehBSW5gabUwOAYf17hGju9825ekIveiQN6eZspVrQ3T8R2FJCQcjC91DgrfbG0p0REagxD18ytlrpS2WoSuGRXBZGHoYhmwyee9CF0II8gU85XftsEKxyvx8pAa5t2AAxLr883KrV2tRMvRSyLMMO6eneqmKPkgo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.JacobKollanukkaran@cavium.com; Received: from jerin.8.8.4.4 (106.201.57.251) by BL0PR07MB4996.namprd07.prod.outlook.com (2603:10b6:208:49::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.18; Wed, 3 Oct 2018 18:17:41 +0000 From: Jerin Jacob To: Wenzhuo Lu , Jingjing Wu , Bernard Iremonger Cc: dev@dpdk.org, shahafs@mellanox.com, Jerin Jacob Date: Wed, 3 Oct 2018 23:46:57 +0530 Message-Id: <20181003181657.32236-4-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181003181657.32236-1-jerin.jacob@caviumnetworks.com> References: <20180913134707.23698-1-jerin.jacob@caviumnetworks.com> <20181003181657.32236-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [106.201.57.251] X-ClientProxiedBy: BMXPR01CA0023.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:d::33) To BL0PR07MB4996.namprd07.prod.outlook.com (2603:10b6:208:49::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b9f9d8bd-29ae-42b6-2112-08d6295c83a9 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:BL0PR07MB4996; X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 3:pPGmAH2uqkCzIxwsZV244ifNMB5CGHxnYdJq7fkHwzoLq9ANh6ixYB/jC2yALwMGKE9kQ+/LDUEqvMra1WevXoUU6cQMFEj3t/rd2NnEf9bRxLKwQbAp9QB8E4zVFvMir7SerKr90SuE4kG7KqGqWWo/xB50tRtBXfql2iIEh/ajgnj0sBSG0bvDQ7O68/IUFn+fjhxSBcAKABILOk0H2R9q62NUdlPag9vKTHXgrZW1WcIJVHEaTpLVG5Qz+goW; 25:7cFNcKZShBq6l9K5Byx4WpAPz+f3Vwm/JgUP5IjPGlESPr7X5MvsLKyQadN2Zn8mRh5OQhmnsTuxGkOdjzWqm6SiFEMf9l7dtAmtvD13pixAs6TxvfaeLUbBz3VesYQxbLv6WNapPmv/HmnqLomjX2p5yyVJVjg/mVlCj3AX9m5zTZByOvFHwt1DlCI0gRHGZouS7iAxuhcQOPrxR72R0mtOKCsOV6RZAqZojv/hf+SRbM3KgHAxDp293+FTnx/l4o5rB+mv8uoE7t9aYq7joe/rPEwT67OJjGjy/EJe8uHZBzs1Tj9CbpB6C+4l13Kjhy7ADusHGnCFOxyK2T/X/w==; 31:7MxYazJ3sWoZrMqXxQTfasyC9zWI+oXmMDe4tD5ho7fs7aM6H9l5qx7YBOJ2YIw2jO+d56QHZw6aU6xVrjKmSaq2t/4h2qRjWurpxbHkCIjRu0t8X/Gv/3KCfvW6HC/sJan00uoRVLmz74w+IEL3dCSUTMPbDKXqhP53LIN+Y/1DdHZMTPf8aWGs6HYchaDCAoXis5HlMu7MiwYlZN9FahH4/WjHGxW0tIpw7feYN34= X-MS-TrafficTypeDiagnostic: BL0PR07MB4996: X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 20:EZn1u2SuNPywusHZLtPwR9oaXfWZ1h5QwczGY4tvZlkpHXh14k//mfTwSmPjI2Fw1wNHVKgK/U9CcP7fqxa7di8gUuhHMch9gNmvLKSJQ23/+xfYX6SoWyzVRps4WCMSO5UeDGN0gjpVHwj+iuAP0y1C+7K7w7b2pcZJZ/6lbfct1SHXqao0WjntJBPfb4BVQNSNfy+cI5lqaKZ0tExO8WOQPWdjMVMngzzsVc1ywwjA6gnjr8tYyt8tweWqqLTxvR0kXb/vZpa/E5eA8UqPHZjr+dVQJWVB0l2BAp1O9ENFvMUwMg5bYxviFDwt6XOBasY241dkVDjFTqwV2/qFxdrMtQwHhweiG3mJ1lIHrn1P9uqK0UQxLx4DYGkAZJfmJZDjE9lwoEkrPJe98Llp34oq/CFk+bvbWVF9+m89nhdvZR7QkWbNboKaqPPoomIvpIdR4WLjmS55zpDM3+WHOJZXt2oWsPvuWSQfLrYS6uGBGUM3Ui0JRrVnenQxVMUSd6OOIPCjULDhDmZYFzVDgwVudH0hMWw+bB8x6Gblt1DxHVQ32/zC9pqewd+sZafHhJeQOb/v44ZK/X0B+r1+rFXOCI4uc7q0oLX9CKDhfEE=; 4:PlLSr1yRdIi+DTNhUq/oAPPvGNKPVEeGCZGj0XM/rTkmr6Yh56Q/zC5feceykx/KcYZv3wE1aOKzEcGuSkj8vJ2KWZH7yPdliYLw/7qY7yqeXj7aAwvbQJGo0gv7XzwZgZetVTfSy0mqnlU66Ed8pti+Ly2QtFmLHGl7s8x4Vve8UaXzQlhqOcUrs9x5cPBVelS44o8GMRAW8DiqoAL9If0HhZTSnDLm8SMvTnApZM+t1hzabtxW2pYaN1zBsHbhnQuXJgLycsZ5d3Z4eJ7TUw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(10201501046)(3231355)(944501410)(52105095)(3002001)(149066)(150057)(6041310)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(201708071742011)(7699051); SRVR:BL0PR07MB4996; BCL:0; PCL:0; RULEID:; SRVR:BL0PR07MB4996; X-Forefront-PRVS: 0814A2C7A3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(136003)(366004)(396003)(39860400002)(346002)(376002)(189003)(199004)(386003)(110136005)(36756003)(956004)(55236004)(2616005)(446003)(97736004)(26005)(105586002)(106356001)(16526019)(186003)(11346002)(107886003)(6486002)(50466002)(48376002)(51416003)(76176011)(1857600001)(52116002)(7736002)(478600001)(72206003)(42882007)(53936002)(66066001)(8676002)(2870700001)(50226002)(305945005)(5660300001)(486006)(81166006)(44832011)(47776003)(8936002)(81156014)(68736007)(5009440100003)(2906002)(6666003)(316002)(1076002)(3846002)(6116002)(4326008)(476003)(575784001)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:BL0PR07MB4996; H:jerin.8.8.4.4; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL0PR07MB4996; 23:Z8Aq+Zi/wq3FVEhxY3H+PtcN61aSPxCx3No23mcbg?= LQQueZxlIItzXnKROOP8lljti12JDViTowlGThGgAEdxkavTmcOg6SjeiAYX7MiHTXeMl0mLba7jneBkLv1DZ/gW4x1ARcBYQ94+ADelhMcbJryEPcQH5GIWBkffek8d7LG75JinFVSCcgC73l3EKMTuK75JkzDZ2gRLBOTg74quz8mTQxpKNUb8+2b/RczNchQxPGP2Q4AHu/ERGSF4MAv9WoUD8F0ZkGApLHA6X/1YoLjQqvHgfa7LuyWniCuBF+JBkCwLoRHp0TsCPDk1mjritzGc0MGsSFKkiQjg28L4+Jdbhv41ZOGlufQZNN+dtcd2jAZ0UXWdnzAZKsL9Ax1jhNIScJbJ7DW2qjS1lxQuOfpWv6FdyFF8D/u9BX/kaLgmMEeTpv//bPNRxVtDCrwUoEi8+rAfSPXOPzh4eIHfZzC9gHwDQvDU4zxWYQvk2Bi/QI+yPPRUIEqPW8sDzuA3LYIi2/klAFtd1PIkN1mKdhhu0jU02jbw2FnrDiPvRoYZ0vGZuH5zv6D13jXj9srZD5hYHpdf3pwRnxN15C1RQ6lHTkzUh/jZELAX621DVovHwRoWEYkkCtYlxBvPW9tNGs2LWN4m2jyVttT1ZGSGDZeL4GxSf+tu7jagQnnPLhLw9jjPt7XpMCMSzCUKYvK4+n56u6k0RL+wwRdOn1NrU/n80BQjLBcpVm0l/sQbBwmdvaXr/m/5RgG2uAunqrhGaRUgM3SNkWP2ICwwLNmyLNxvgFzdkaJzR9a8FKk1P6ARjSHBqyDsls0OtqbT3cAfNgrEY7V9qp9cgT7/EHlj2qVQeuZN8tsn/egULiW/pjx8Bkqj6025VVm/7B1h/P2nj0MkY1Eu5DmUrCz3ePuU/xlgyNtkhEg9mazcLnNzV1rTkzC0NOXOITJ0zeyXn2k+MCDNpJ0kIftKDmADv+6esioPDGN/hoCkW4E4fsvlApYPt7xgF0lKGGO/USpZGj/W0JcnW+ilzOIsCLtUHKTFNXA+Ec+0Etv5/WVK/D3rriYSl5V5KFR9dHDr93XNwBAfEhfFVdJULrffViNbfzd1BGrKU2sfAzeywVXsjX5/MAGRn/wtVQIHZyg4K7yK0BYnBoYtI5zTNTlhHx6MqR9PLqNzS8DS6BVotwXH7Dq/3mTV77QLo/4ZfkmlmQqabhPREYV+TsZZq+XCA50pMpDkZW26/cQLICzpUTocivgBosm02VmyufMbTK8FKRInEG89z24fLtVMr0wLMV3U1bSWun4DAPCXB/macUICuxoU5eUiVeUwP2MUqlMgrGmT1oB X-Microsoft-Antispam-Message-Info: 6Qg7f4TtJPICR6nTT/qcwZU/CHnGiYyyS5W/p6n1Vz9N6eTMImO5kbSqYDF/xwNSiO/yTLwDVrx0bcWrVj9TFNt7K5e9BLYdasBWhAjIbaM4N5/KF2Gj0exYAO248xcE0sABtJ2qYeL/X1vlOOWw+PWCQ2hoMrI7S8hUknkLVOorfElhmDg6hKP26KuckxYppyvBEZBUiPs/Wyz8Jtye64XJDqahhhmXbJR+dk3dwjWByYv8CXfmk7W4IE8PMNSOctl/ZXcSEKbs+rK0dabb8js5nYh+1xBQQXXiPLk8QtI8Oow5GMKYQVXP42VVsyPFWz8IJs0/gaqEzyCBcy7kkTSEYwd+8v8yhzic4Iro6Aw= X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4996; 6:MnL8tYQ7eAyu5fReNsBy+GbdQ4EFpQX3J2/Sg84JleCrzOCGPJCcz+g/5xnidNjkEhNjUH+LmNLlxj937CjJL8fDKOiehcgNvP2AbNo+Aq7cJvEGniicZG5N3iOdAg1g+Ga0JJaQijAmnfdh7y1FyRKLDwMFPbVAI8Ja8egDlvWVaGU7BXXLcysr2VF6pyqhdVYSBnbz+070gbh/JoU35DmyvKbbBCqoGKiIc7me03OSNtQI1pXjyDXlxtMOmDq8slXhRegPjOQDr8ZMvp3V+XZtzSZR9kIULDdzwB5DdVw0qWieAK58i+GJHtkrl/pPiDDJd6q72J8lbTI5fyK78PJWhGhfmun6Lt4/Bhi9d5wtVfICu4Ga8HzqTroKnOyYORKuWRtpid+wqMxHb4AuJMUkFS57g5v1YXw4BWVylaTVwhwBdSnTUa13yb7Z5s5SQ6QS7i3WJfOqbT+iWmCD8Q==; 5:J2C6zwo4zKz5yulTiKyCkC9BJPKycHnBsHvr3G9lmadhHU2UNcQt7Z/lQWVjQgIYOfhdHkQ72b298g/K7whiTSfvQrkRK8BzsfwaMFyaJnhIUEEL9ZjGMep99oOinkssh2kZt65rL4tRmH+SHPdP4xwB2xb4YCyUTHoEhpOVPEI=; 7:ESsWYOpR4E8T8wnaO8hQeZj0R1jDvvdEGaq53NQi2nRw6zODthkioDBIwkMt5HQVj0PNidMKy6v2etfEgQCF2WrkqoIY+SOkBgm39tgATMOQYeyddFrSLJecipu4MQ1TfkcLKVP8zDNutSiEFQQRWEvtANIZbzPfvUZgLeR2T2cNf561xc84hIV1vdAu9nv2qHx3Y9/7dm2rLab1+823AcHi8PypI56ZOyi6jPdrC9+60lTuSbQz1NH5676ZpYox SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Oct 2018 18:17:41.9789 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b9f9d8bd-29ae-42b6-2112-08d6295c83a9 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR07MB4996 Subject: [dpdk-dev] [PATCH v3 4/4] app/testpmd: collect bad outer L4 checksum for csum engine X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Collect and prints the statistics for PKT_RX_EL4_CKSUM_BAD errors. Signed-off-by: Jerin Jacob Reviewed-by: Andrew Rybchenko Acked-by: Bernard Iremonger --- v3: - Added Reviewed-by: Andrew Rybchenko - Removed unnecessary extra empty line(Andrew Rybchenko) - Simplify calculation rx_bad_outer_l4_csum logic(Andrew Rybchenko) v2: - Added PKT_RX_EL4_CKSUM_BAD statistics --- app/test-pmd/csumonly.c | 5 +++++ app/test-pmd/testpmd.c | 18 +++++++++++++----- app/test-pmd/testpmd.h | 4 ++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index ea5b112d6..312b7e1e3 100644 --- a/app/test-pmd/csumonly.c +++ b/app/test-pmd/csumonly.c @@ -701,6 +701,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) uint32_t retry; uint32_t rx_bad_ip_csum; uint32_t rx_bad_l4_csum; + uint32_t rx_bad_outer_l4_csum; struct testpmd_offload_info info; uint16_t nb_segments = 0; int ret; @@ -726,6 +727,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) fs->rx_packets += nb_rx; rx_bad_ip_csum = 0; rx_bad_l4_csum = 0; + rx_bad_outer_l4_csum = 0; gro_enable = gro_ports[fs->rx_port].enable; txp = &ports[fs->tx_port]; @@ -753,6 +755,8 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) rx_bad_ip_csum += 1; if ((rx_ol_flags & PKT_RX_L4_CKSUM_MASK) == PKT_RX_L4_CKSUM_BAD) rx_bad_l4_csum += 1; + if (rx_ol_flags & PKT_RX_EL4_CKSUM_BAD) + rx_bad_outer_l4_csum += 1; /* step 1: dissect packet, parsing optional vlan, ip4/ip6, vxlan * and inner headers */ @@ -991,6 +995,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) fs->tx_packets += nb_tx; fs->rx_bad_ip_csum += rx_bad_ip_csum; fs->rx_bad_l4_csum += rx_bad_l4_csum; + fs->rx_bad_outer_l4_csum += rx_bad_outer_l4_csum; #ifdef RTE_TEST_PMD_RECORD_BURST_STATS fs->tx_burst_stats.pkt_burst_spread[nb_tx]++; diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 001f0e552..2a641fcfe 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -1040,8 +1040,9 @@ fwd_port_stats_display(portid_t port_id, struct rte_eth_stats *stats) (uint64_t) (stats->ipackets + stats->imissed)); if (cur_fwd_eng == &csum_fwd_engine) - printf(" Bad-ipcsum: %-14"PRIu64" Bad-l4csum: %-14"PRIu64" \n", - port->rx_bad_ip_csum, port->rx_bad_l4_csum); + printf(" Bad-ipcsum: %-14"PRIu64" Bad-l4csum: %-14"PRIu64"Bad-outer-l4csum: %-14"PRIu64"\n", + port->rx_bad_ip_csum, port->rx_bad_l4_csum, + port->rx_bad_outer_l4_csum); if ((stats->ierrors + stats->rx_nombuf) > 0) { printf(" RX-error: %-"PRIu64"\n", stats->ierrors); printf(" RX-nombufs: %-14"PRIu64"\n", stats->rx_nombuf); @@ -1059,8 +1060,9 @@ fwd_port_stats_display(portid_t port_id, struct rte_eth_stats *stats) (uint64_t) (stats->ipackets + stats->imissed)); if (cur_fwd_eng == &csum_fwd_engine) - printf(" Bad-ipcsum:%14"PRIu64" Bad-l4csum:%14"PRIu64"\n", - port->rx_bad_ip_csum, port->rx_bad_l4_csum); + printf(" Bad-ipcsum:%14"PRIu64" Bad-l4csum:%14"PRIu64" Bad-outer-l4csum: %-14"PRIu64"\n", + port->rx_bad_ip_csum, port->rx_bad_l4_csum, + port->rx_bad_outer_l4_csum); if ((stats->ierrors + stats->rx_nombuf) > 0) { printf(" RX-error:%"PRIu64"\n", stats->ierrors); printf(" RX-nombufs: %14"PRIu64"\n", @@ -1124,7 +1126,9 @@ fwd_stream_stats_display(streamid_t stream_id) /* if checksum mode */ if (cur_fwd_eng == &csum_fwd_engine) { printf(" RX- bad IP checksum: %-14u Rx- bad L4 checksum: " - "%-14u\n", fs->rx_bad_ip_csum, fs->rx_bad_l4_csum); + "%-14u Rx- bad outer L4 checksum: %-14u\n", + fs->rx_bad_ip_csum, fs->rx_bad_l4_csum, + fs->rx_bad_outer_l4_csum); } #ifdef RTE_TEST_PMD_RECORD_BURST_STATS @@ -1378,6 +1382,7 @@ start_packet_forwarding(int with_tx_first) fwd_streams[sm_id]->fwd_dropped = 0; fwd_streams[sm_id]->rx_bad_ip_csum = 0; fwd_streams[sm_id]->rx_bad_l4_csum = 0; + fwd_streams[sm_id]->rx_bad_outer_l4_csum = 0; #ifdef RTE_TEST_PMD_RECORD_BURST_STATS memset(&fwd_streams[sm_id]->rx_burst_stats, 0, @@ -1483,6 +1488,9 @@ stop_packet_forwarding(void) ports[fwd_streams[sm_id]->rx_port].rx_bad_l4_csum = rx_bad_l4_csum; + ports[fwd_streams[sm_id]->rx_port].rx_bad_outer_l4_csum += + fwd_streams[sm_id]->rx_bad_outer_l4_csum; + #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES fwd_cycles = (uint64_t) (fwd_cycles + fwd_streams[sm_id]->core_cycles); diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index a1f661472..106aeefc2 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -112,6 +112,8 @@ struct fwd_stream { unsigned int fwd_dropped; /**< received packets not forwarded */ unsigned int rx_bad_ip_csum ; /**< received packets has bad ip checksum */ unsigned int rx_bad_l4_csum ; /**< received packets has bad l4 checksum */ + unsigned int rx_bad_outer_l4_csum; + /**< received packets has bad outer l4 checksum */ unsigned int gro_times; /**< GRO operation times */ #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES uint64_t core_cycles; /**< used for RX and TX processing */ @@ -165,6 +167,8 @@ struct rte_port { void *fwd_ctx; /**< Forwarding mode context */ uint64_t rx_bad_ip_csum; /**< rx pkts with bad ip checksum */ uint64_t rx_bad_l4_csum; /**< rx pkts with bad l4 checksum */ + uint64_t rx_bad_outer_l4_csum; + /**< rx pkts with bad outer l4 checksum */ uint8_t tx_queue_stats_mapping_enabled; uint8_t rx_queue_stats_mapping_enabled; volatile uint16_t port_status; /**< port started or not */