From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg0-f67.google.com (mail-pg0-f67.google.com [74.125.83.67]) by dpdk.org (Postfix) with ESMTP id C8C23276C for ; Sat, 15 Jul 2017 13:18:18 +0200 (CEST) Received: by mail-pg0-f67.google.com with SMTP id 123so1870061pgd.0 for ; Sat, 15 Jul 2017 04:18:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fridaylinux-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=eFC5Mb6+KtALFI1/GqRgqpPgmbO2ShxCsWQJhdZkljM=; b=ATY/G5U4IPt1eUhc7vMLMJ9cz+1VwMnqa17MhPG5i4mHMdsa9oGR8Np6x2F1xdbmt0 mLRM/wtbVRMFbLTaSEbTqmnxZTGzvpGoZHGsUJEyawF807PE9bh82lj/nNY49BwT+1Bv pJgzGr/StuQwwZckq/1R0Ib5K21qk/X1WqMEntRt80XSO00l8iesHOfdNjM4EipXZ/SO JR995uoA+kafbOISSu1Em9sFKhWmgfPJc8sN/XcxNLpy388fNN348GptJbIcn9GEIWFZ AJKGIwOlG4Ei9f7RhNdO3zoOdbbpAKBU5S2grthY73+2Kl2KpNUqSEL9GbhNeo4kOo8o Rnfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=eFC5Mb6+KtALFI1/GqRgqpPgmbO2ShxCsWQJhdZkljM=; b=fKnM76bE6DIdaKpchK+ZWshCczW36ofQqdwIj23pMGcf6J7/9+/mB/2MCMwrAkmwJA MC2cWsy+d/UmObJfCWYkag/8DwUCG1uCPYw0Gp/sInigcUY0kfyQYuH2i2zH8bO+XwK6 Go1PLnIT8xjwaSB4rjyXlQVGUZsZzNjLVebzAdRUdUtdIcjaSIdjeussFdHP4DFqGxFv onJ0NFWy+Y3T43sfjXn6q+0MLFw2VzdMzZS68W8kbMyFTfBi+AEa7kPKdDSt+4awDqL9 o/Mj71/MreShbgfVjNHgtG56FnRVbWQKW7/wALR9L6bm9vUM2aU4Dp9+2gHT8gX7gTzd g2ZQ== X-Gm-Message-State: AIVw111Mc9B2XK2wwauXrXQQh5QqPwXY3jynCU5AKmyuMgo6uOYLsC5t xiJ7FeFDsh/skFv+ X-Received: by 10.99.48.7 with SMTP id w7mr19079026pgw.244.1500117497745; Sat, 15 Jul 2017 04:18:17 -0700 (PDT) Received: from localhost.localdomain ([45.63.61.64]) by smtp.gmail.com with ESMTPSA id k194sm19000874pgc.31.2017.07.15.04.18.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 15 Jul 2017 04:18:16 -0700 (PDT) From: Yuanhan Liu To: Stephen Hemminger Cc: dpdk stable Date: Sat, 15 Jul 2017 19:17:12 +0800 Message-Id: <1500117433-28932-6-git-send-email-yliu@fridaylinux.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1500117433-28932-1-git-send-email-yliu@fridaylinux.org> References: <1500117433-28932-1-git-send-email-yliu@fridaylinux.org> Subject: [dpdk-stable] patch 'net/virtio: do not falsely claim to do IP checksum' has been queued to LTS release 16.11.3 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Jul 2017 11:18:19 -0000 Hi, FYI, your patch has been queued to LTS release 16.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 07/19/17. So please shout if anyone has objections. Thanks. --yliu --- >>From 8a20d34f959d56f8a83867fe70fd8941a912d20a Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Fri, 7 Jul 2017 12:52:49 -0700 Subject: [PATCH] net/virtio: do not falsely claim to do IP checksum [ upstream commit 4dab342b752222c6e248dae5ec9de2302aacd746 ] The virtio driver is confused about the meaning of the ip_checksum flag. In DPDK, ip_checksum means the hardware is capable of checking the Layer 3 IP checksum. But KVM/QEMU does not do that. The flag VIRTIO_NET_F_GUEST_CSUM controls whether the receive side does Layer 4 (TCP/UDP) checksum offload. Fix by erroring out any requests to do IP checksum. Fixes: 96cb6711939e ("net/virtio: support Rx checksum offload") Signed-off-by: Stephen Hemminger Acked-by: Yuanhan Liu --- drivers/net/virtio/virtio_ethdev.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 1d2b8e4..e86d12e 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -1482,8 +1482,13 @@ virtio_dev_configure(struct rte_eth_dev *dev) PMD_INIT_LOG(DEBUG, "configure"); req_features = VIRTIO_PMD_DEFAULT_GUEST_FEATURES; - if (rxmode->hw_ip_checksum) - req_features |= (1ULL << VIRTIO_NET_F_GUEST_CSUM); + + /* Virtio does L4 checksum but not L3! */ + if (rxmode->hw_ip_checksum) { + PMD_DRV_LOG(NOTICE, + "virtio does not support IP checksum"); + return -ENOTSUP; + } if (rxmode->enable_lro) req_features |= (1ULL << VIRTIO_NET_F_GUEST_TSO4) | @@ -1496,13 +1501,6 @@ virtio_dev_configure(struct rte_eth_dev *dev) return ret; } - if (rxmode->hw_ip_checksum && - !vtpci_with_feature(hw, VIRTIO_NET_F_GUEST_CSUM)) { - PMD_DRV_LOG(NOTICE, - "rx ip checksum not available on this host"); - return -ENOTSUP; - } - if (rxmode->enable_lro && (!vtpci_with_feature(hw, VIRTIO_NET_F_GUEST_TSO4) || !vtpci_with_feature(hw, VIRTIO_NET_F_GUEST_TSO4))) { -- 2.7.4