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``.