From patchwork Tue Jun 12 16:31:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ophir Munk X-Patchwork-Id: 41012 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 75EDE1E9FA; Tue, 12 Jun 2018 18:32:15 +0200 (CEST) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01hn0230.outbound.protection.outlook.com [104.47.1.230]) by dpdk.org (Postfix) with ESMTP id 16E9D1E9F6 for ; Tue, 12 Jun 2018 18:32:14 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LQrQOqx6qf4WQCDjm9pLkuif5jEOYOb5VV+5e6NsQGE=; b=mnqsboPbXieAzXuWKdY4D/UEkaqB20WJn3txg85l6Q4dfR+Z+hFiFR9wx6Qknra6nfhJLcFXkY1aYlYofyGbH7lOcsFE+9BT2tNHpKOomqxx0uJJNHwXKzMLNeGJg8xYvTdcOgrBkFmRKbr/RUp8OaTi/Cq8w78v+ekB94EwMq0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ophirmu@mellanox.com; Received: from mellanox.com (37.142.13.130) by HE1PR0501MB2314.eurprd05.prod.outlook.com (2603:10a6:3:27::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.17; Tue, 12 Jun 2018 16:32:01 +0000 From: Ophir Munk To: dev@dpdk.org, Pascal Mazon , Keith Wiles Cc: Thomas Monjalon , Olga Shern , Ophir Munk Date: Tue, 12 Jun 2018 16:31:46 +0000 Message-Id: <1528821108-12405-1-git-send-email-ophirmu@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1520629826-23055-2-git-send-email-ophirmu@mellanox.com> References: <1520629826-23055-2-git-send-email-ophirmu@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: VI1PR08CA0183.eurprd08.prod.outlook.com (2603:10a6:800:d2::13) To HE1PR0501MB2314.eurprd05.prod.outlook.com (2603:10a6:3:27::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0501MB2314; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2314; 3:Uq7S7nsH8xHeNQsoX6wm5Iyd34jjL8v6XqaAL+0Eyo6V1dIc4nYTJYeaJvuCqxzgj1cZWiMkEPcxAix7wGtfDM08YMnTyOt1MPUfL9YdS1jU31We6KW/5rwU1MFrfOb9J44n4UI/dMa1mDa5gUvLtropsShtFu+JQswdBO+aamicRAQEmnF6YlUQzgbsdgGd03jORRFcU0E3JV3GaKePLhLOvx6L+p/a8CMf8mA9n/0ZQofr7zARBkqYpyu18y71; 25:gOL2N14UMJ127YdfXwYTlMUlAPUCrkBfoYAZakXYmtFZqUDK6VSGLE7wLVll77YBsrgrBl8AujZkSIdA6Kk3AoCf7jeDpcAapB7gGbJ8dsNMUNim/fI7xFQd+3uyxpe1ldWkVGImIzsSuDEiIl2ih3z9SI7U1Mb7FvhuGGXe5+QoOe8G5A9gLwyYLW9ps93K2RICfp0RZBBtggBNuicw4ZhvG4mqDOCOw8A1JZYONBon2jGY6GNht3sdwIzIhqxlc53tM60YsBPWCli7wGnJqlY7fIlaBY0mGvcCkLSlSfU1P0belsaEtGGgqV/NEkKHuwWZeZHhO4mDlDjHBUiJRA==; 31:z6eBZjBdT2QzVM46fPdJBDb+bR1ICELFeZMMkGR5T97i2M+lgA8Qx1dS0kN0F2vXGU1iZ03i5ft5Ls5AR9WRb40ZGHGEnUN26mHngcw0eaPLgdZvPsRGaohv/baHHppylulEU8K5pN9as3EWqFuvC5FCRa/xs5cRNxEVsKywDftw14Er0W/BYL3TmPhPAPaloxgpLanQY9dIRbJnjJkJ9odoC0SyXULOOlF7gsBL08c= X-MS-TrafficTypeDiagnostic: HE1PR0501MB2314:|HE1PR0501MB2314: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2314; 20:0sQy8zQRzacw0hzSfWAoMrrGXoxTflJkIdTqnOjriZ+xSx3XHAFlnZSG8DNDYkjQphxkFh18IRuf6xlImd2yJYuXBLb1a7F3JOf0ju1UVVyAN8hferOVxccRKMxeWoOAGuHxd0uebKtP2jSuQTHOyw10JaeWWfN9A22ahjmZu+gtj4YbNN77hDGC+paG1lBOKGFUbHFYN6wA92wfj3nwHAO2yasQ3VIYosQOyMaCqSoMe3W7pN3cyZQI18np/9pA8YKw4RkA2/KvyCCGuINZ6KGsI/yYUZoEUj4z3iZTFHMnYMwoOsmihMg5ETyj7XTVkCK5gWzfPuNxg11hNmqt9N3U2aRE3imFEGQpdJZAE7toskXj8xjEkupHHxK4GVBiTyguNvp8fIo2BVnePq4XGIv5o65FdfPb1enrY5CZ/PCOgCqvVBH8U3M7QUDqR8ScSZkqBJMfog6s7vd+Rdb7zO2Sp1eSFQxOwgpy4Hi42m4+tUgRq/CgdADfG5t83YRi; 4:fl09XO2UOID7MTX3UQ5jigYAky1Dh157gaO5v/0uU1kYGjLtRkLBEzDu2T19ttPPbjYtmzAhrultay/rI1ZqW9j9T15Yq03kWD+GAjU95iOI6NCsAkFO33S0+MyZRC0r4VL1EQYbDD54C0M2EXvlZFekmUCQHXZ3SGyBMciMMAUBKYqJAs3xbIFZUqa9WxoXdbJYS0JGG+8BFs1LxDwLyMFoV0rEvZ6IxVAheIJXp/xHTfO1D8Rz4BJA5E0l+RE/kVK0iFzh5/n4mvq915z2Nf8e8MLVCxtQwsvf/oY95Al7HYJkUjdkpGW/RbyexS+p X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(66839620246622); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231254)(2232076)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:HE1PR0501MB2314; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0501MB2314; X-Forefront-PRVS: 07013D7479 X-Forefront-Antispam-Report: SFV:SPM; SFS:(10009020)(376002)(366004)(346002)(396003)(39860400002)(39380400002)(199004)(189003)(478600001)(2906002)(33026002)(69596002)(106356001)(16586007)(316002)(48376002)(110136005)(86362001)(105586002)(54906003)(21086003)(66066001)(47776003)(50466002)(6116002)(3846002)(68736007)(446003)(55016002)(186003)(81156014)(107886003)(2616005)(52116002)(956004)(11346002)(7736002)(476003)(76176011)(59450400001)(7696005)(26005)(486006)(51416003)(4720700003)(53936002)(386003)(36756003)(5660300001)(97736004)(8676002)(16526019)(81166006)(8936002)(305945005)(50226002)(25786009)(6666003)(4326008)(59010400001); DIR:OUT; SFP:1501; SCL:5; SRVR:HE1PR0501MB2314; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0501MB2314; 23:hq8j9PYMWUrD8kt4LaB+YE3JP92YGtJNb2Dqm5/?= OC/J0UG0oKx+NKHbMR/h2CpTMbkV8vSFfV10AUdXfj9a6LV/Kv54wdSgynEqryQ4Q5+kukWQizoPUHpGtRicaY3e5JoAt9HXIR9T1vNsdyZTfpni5K+Bqw3W6NrQPthFDnb+ID7HNj/f44I5AWs54fPD/WRmI5R50ftC1f1R+Cq9L27ilHQPKV+Qc+R/I7eGRSh+lXnmckrhYAno9gOjQv0mCdn/2zBnSUhiTLpdXDnVAioF3KeucyTBrxw2RZV6BLkkXScvqIjGo//4oqPSOgCnuOia3KhImjWs+xcJqL/yXACe2SjyT+6n2v+7TWzz6d5R2bY4VzNxZChluiLwgjOYptKQw9Zzg2rj7LdhOX5+Y8s59cuGqxGOCtm732zFIKdvJriNP+g7N3yN9X5eY6edc1pV4qcHvahLVRXNGQfHhZeNntytsl8HP59uLkmSqr9lNo/RSfnv9ww3r7LeKkeMs3hBdy0q7wHdrhxF4MPHJqFOlf8RZayEzptYzDyRaQqptUzyOQDIliAXqDbtIv24ZUA6RaZhaBG0GbeASyOUjvYKxC85oQeeZuhCZ/IW/i/RCNrX+lZun73ItwQkcyHuIzU+DFv/vQurls/Pgzk/eYAExOIhA+LpBMRADEsq/K+BAXizP4+jqalvcCnHy50pvJWNFYzWghsD1YcIAF1WroY+NCVhPAYQv13/rkM307eFu4QEYojhfhzns6cRLctBJJs+j5PGz8Ur1PiEdYNWtnSZ8+rbrbJbAbjYEALUw+IoeqM5Fag9aJBOjQYGx8sEypDhW3I6hdHQ+IMF3VLujjBfU3a2VGw64Qc2Qh4uYR6sZxNmXgzagHkuIljb8ceFtK6y2oTd2/yqP0wubif3LOe6WvshmjLLCRHwie3siE9cEZ4z+OqObpkHUFk+kz0XEr9uIKuu9fQaE9zz//FKYNglMsmjTpTP8PWSM95L0C7qa2jb2W15P8YpuBmoAjkswChF6cvnt7yXqTNhGH3MkUz8nBdBVpj6n9vYlqi8wa9gA9qzBOzzKMBGNn069jnze1fdnz+vq6R7HtK317AxMPKI3ieAdEk8fH1KW/54pjYAuNIyoEzrAhPKO96Z4oFUm5mT0SF5MLWahPaXgwpbIYlZxkjRnm86YOfE+ODlZT8nzZtG4tm49EvhdFEzH0dhXigguy7/5yxOkAxVEOEnxktE1D3O6orTY5H5KoSlDV1I8vheOQFSlbWTcGT0Ef2LbRRt61OkEp20i79RX0rMCU5NDQq0ZWgRV0M02erT+tw1QhYBcV/182RX3hV5BRYah6rmYYvnkEkOFMRvD5GiMebgOrKfknc2oustTmAtDdr22aIb0H8brmAFUNQqXEXTw X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2314; 23:yHUtqVAxosAluOsFLPDMl3SCi/4VAaGH/U4DCuooFu+mScz8gYC0QYlVmJXlQdV2zwCiRECKcYvL59DTqALJIHx5ArAWCLMk26g+4ZMnmPnEVIvKL84E0b2JbtL9Fl/xVx3vJ4n7MiN7PrTjF4tZhQ==; 6:208rDAI8tTaF6tnPBce9GYUFK2Ohpp0rS4nSAZYNpHO1RJJwv1USzVulSFm9+/N9XSRT9VaBDhlqvLK+5Thn29O/RXP2i/qB1YMhSGkqVpteO2tOWFB72w1HysvwwL/MRoSj8gSJ32KChknjfFYyqdtiYq3JJ61za5MlcDctFMBZiqgUGRk++uATZ/INXF3nSgxmxGCU6d5rw7PUfM+x9YazMgBLegRirpvX7Z/p2Ofasqpwn0366ZykeJ/zPYtmTM9hJzQ8CSxdanl9ojClqRjp4lZcZxFbH7WyZm9ApSr1/v9fcK8uOnKQ9QMpbNmQrpvLEL+bZYdR9Tn2KWtiZac02hK5DSGuWIxrD08yuTKDPWS/I43p85LjtMfMZNO7kldBqLu92E5BGCbpEJMzjMlKxCa8bsw+F3k6ISNBH9qxIrpHT34l/Rx/oi0DLWmGGkSP6uXBC0x3m+/4jBi/11zHYT+0Yd2SALjjiCt102BcA98zHIo0JTQ5w63ER9pT; 5:x2JUmrjGSNKIowukpDvppu/nn/+0Lc8mA0kl/3bjkNv9f58VaqP7SZHA5wGKlowHlHIWNqrEzOATdCtky6z8ONVi/LvdTDtgLvzDRTDhkrGt7Hd8EXM+HrWQVtRNm8ofeUVJCawBcpmCQ+veMmStAdJasZTOmLZ1R0ANFf+fGvM= X-Microsoft-Antispam-Message-Info: /SsH/aYV4pU0Z3ZTP6j08nyFQDEe+jO6QsPx413Qfemnb3Gt3GP5b+8R+C0UH6hTD9XZyUf5MhRAN4gkC7D2L/OmkEPe4urWqw1gq5/Dr7ymlggmAK5Fo3VCOLU+WLe6Kd2YKzF38L1dTgsf07qnQjoOhY1p7X673PGAsR85jU+quQaz9G6VrDyNNGjjEMF2r0LtxKZPsgkWcTXF+q8MMqkODqqrHPX2YDL9XYTjGtLY+hM5l1gUSVVAtb4eM5kTVtEGM2GRVJXMgPEMNjxDz5IJOOzcPzZ4qvR4a3wig2+X4vlAJFA4qXq4UssVTP+GlKuyAWUj3KF6LDAe/bkQgaPEKI5SnM42+vU/fNcROlkoJxkcms56LyOWAD14LKbBamo83uis9k/MTKXswjP091isqcorbcajABtFWeAZ0toV+fCUon5Z9JRJhfUvojy/2P9txQFlhioPhZafBFhUITqE+3hhx8knLdYLoU81M1Z6zgcKwqWsT/c+kpqqr6TdeGHORuHxhe4F8t4VTRYGgq8GiENbnUGiE9zChBUpd2g= SpamDiagnosticOutput: 1:22 X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2314; 7:aWiOWXPkLiRKRcp76T4Mq5WNH77es1aZ7T/p5qwigcNNNX6vL3+IZc9hg0uleeH4FRbGHTXV15H2dWgYtZlCw+YKdwyqmj4CFR2djYxYtOVGAIPkGtHuXMGwQ5O+4IaxbHZn5LWNkxoxZ1v29m9FoXpV+X86Co3/w0M/8cOKIr1tNiTf9RvWwUqYj1fDqERbo864EmP+G+mUVeSrqio/6ImZDDvQnBWcQuyA3hvwWxD2OYobziX/YH08Ky7RJy1W X-MS-Office365-Filtering-Correlation-Id: 3710375e-5330-49b4-bab0-08d5d08206f7 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2018 16:32:01.2142 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3710375e-5330-49b4-bab0-08d5d08206f7 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2314 Subject: [dpdk-dev] [PATCH v4 0/2] TAP TSO 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" v1: - Initial release v2: - Fixing cksum errors - TCP segment size refers to TCP payload size (not including l2,l3,l4 headers) v3 (8 May 2018): - Bug fixing in case input mbuf is segmented - Following review comments by Raslan Darawsha This patch implements TAP TSO (TSP segmentation offload) in SW. It uses dpdk library librte_gso. Dpdk librte_gso library segments large TCP payloads (e.g. 64K bytes) into smaller size buffers. By supporting TSO offload capability in software a TAP device can be used as a failsafe sub device and be paired with another PCI device which supports TSO capability in HW. This patch includes 2 commits: 1. Calculation of IP/TCP/UDP checksums for multi segments packets. Previously checksum offload was skipped if the number of packet segments was greater than 1. This commit removes this limitation. It is required before supporting TAP TSO since the generated TCP TSO may be composed of two segments where the first segment includes l2,l3,l4 headers. 2. TAP TSO implementation: calling rte_gso_segment() to segment large TCP packets. This commits creates of a small private mbuf pool in TAP PMD required by librte_gso. The number of buffers will be 64 - each of 128 bytes length. TSO segments size refers to TCP payload size (not including l2,l3,l4 headers) librte_gso supports TCP segmentation above IPv4 The serie was marked as suppressed before 18.05 release in order to include it in 18.08. v4 (12 Jun 2018): Updates following a rebase on top of v18.05 Ophir Munk (2): net/tap: calculate checksums of multi segs packets net/tap: support TSO (TCP Segment Offload) drivers/net/tap/Makefile | 2 +- drivers/net/tap/rte_eth_tap.c | 309 ++++++++++++++++++++++++++++++++---------- drivers/net/tap/rte_eth_tap.h | 3 + mk/rte.app.mk | 4 +- 4 files changed, 244 insertions(+), 74 deletions(-)