From patchwork Wed Jun 8 12:49:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Coquelin X-Patchwork-Id: 112566 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C95B7A04FD; Wed, 8 Jun 2022 14:50:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B11A7427F9; Wed, 8 Jun 2022 14:50:00 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 682B540687 for ; Wed, 8 Jun 2022 14:49:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1654692598; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KNv4AmhWLOmbkB9pe+Mu+hsMwB8io2CSkPeQPxV/lS0=; b=E+zNiaRaxcnCyOjB/f6IEqfTyMSKMxiv4UGqNmFiqUVJ2vbmdDqBfOMqs0D7WDBBSX7A7f 66dypumryN6FF+hZWgTYGgbeQS/aAD6hLCzbcEcNUSUwcD0wMRvGxZfFZJz0hIRxDO5FeB HOsRlmf9pEv2b2MNut5CzT4aoD0qXhU= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-94-Y63UxOZ6O4qM8RNyBqDENA-1; Wed, 08 Jun 2022 08:49:56 -0400 X-MC-Unique: Y63UxOZ6O4qM8RNyBqDENA-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 95BC7101AA6A; Wed, 8 Jun 2022 12:49:55 +0000 (UTC) Received: from max-t490s.redhat.com (unknown [10.39.208.20]) by smtp.corp.redhat.com (Postfix) with ESMTP id E625C40CF8E8; Wed, 8 Jun 2022 12:49:53 +0000 (UTC) From: Maxime Coquelin To: dev@dpdk.org, jasowang@redhat.com, chenbo.xia@intel.com, david.marchand@redhat.com, olivier.matz@6wind.com, wenwux.ma@intel.com, yuying.zhang@intel.com, aman.deep.singh@intel.com Cc: Maxime Coquelin Subject: [PATCH v2 0/6] Vhost checksum offload improvements Date: Wed, 8 Jun 2022 14:49:40 +0200 Message-Id: <20220608124946.102623-1-maxime.coquelin@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=maxime.coquelin@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org This series aims at improving Vhost checksum offloading support. The first patch reverts overwritting MAC address in testpmd CSUM forward mode. This is required to be able to test checksum offloading with real traffic. MAC forwarding mode should be used if the MAC addresses need to be changed. Second patch is a Vhost library fix to be compliant with the Virtio specification, which requires that the pseudo-header checksum is being set by the device when offloading the checksum to the guest. Third patch enables the compliant offloading mode of Vhost library in Vhost PMD by default, since the legacy mode violates the mbuf API by setting Tx flags in the receive path. A new devarg is introduced for application willing to use the legacy mode. Fourth patch is just a small cleanup to represent a boolean value as a boolean. The two last patches introduces compatibility layers that performs checksum in SW when the ethdev and Virtio features are not aligned. Note that the two last patches are not tagged as fixes because they rely on the new compliant offload mode of Vhost library, and so would casue an ABI breakage if backported. With this series, it is now possible to perform IO forwarding between a vhost-user port and a Vitio-user with kernel backend port even if the guest has negotiated VIRTIO_NET_F_CSUM. With csum forward mode, it now works whathever the offloading configuration set either on Virtio or Ethdev sides. Changes in v2: ============== - Add the new devarg to validation array (Wenwu) - Fix typos in commit messages (Chenbo, checkpatch, Yuying) Maxime Coquelin (6): Revert "app/testpmd: modify mac in csum forwarding" vhost: fix missing enqueue pseudo-header calculation net/vhost: enable compliant offloading mode net/vhost: make VLAN stripping flag a boolean net/vhost: perform SW checksum in Rx path net/vhost: perform SW checksum in Tx path app/test-pmd/csumonly.c | 4 - doc/guides/nics/features/vhost.ini | 1 + doc/guides/nics/vhost.rst | 6 ++ drivers/net/vhost/rte_eth_vhost.c | 167 ++++++++++++++++++++++++++++- lib/vhost/virtio_net.c | 10 ++ 5 files changed, 180 insertions(+), 8 deletions(-)