From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ophir Munk Subject: [RFC 0/2] TAP TSO Implementation Date: Fri, 9 Mar 2018 21:10:24 +0000 Message-ID: <1520629826-23055-1-git-send-email-ophirmu@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain Cc: Thomas Monjalon , Olga Shern , Ophir Munk To: dev@dpdk.org, Pascal Mazon Return-path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0047.outbound.protection.outlook.com [104.47.1.47]) by dpdk.org (Postfix) with ESMTP id 8B18E5F1D for ; Fri, 9 Mar 2018 22:10:51 +0100 (CET) List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This RFC suggests TAP TSO (TSP segmentation offload) implementation in SW. It uses dpdk library rte_gso which is also used by testpmd. Dpdk rte_gso library segments large TCP payloads (e.g. 64K bytes) into smaller MTU 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 RFC 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 small TCP packets may be composed by themselves by more than one segment. 2. Core TAP TSO implementation: calling rte_gso_segment() segments large TCP packets. To be added: creation of a small private mbuf pool in TAP required by librte_gso. The number of buffers will be 64 - each of 128 bytes length. Ophir Munk (2): net/tap: calculate checksum for multi segs packets net/tap: implement TAP TSO drivers/net/tap/Makefile | 2 +- drivers/net/tap/rte_eth_tap.c | 183 +++++++++++++++++++++++++++++++++--------- drivers/net/tap/rte_eth_tap.h | 4 + 3 files changed, 150 insertions(+), 39 deletions(-) -- 2.7.4