From patchwork Mon Dec 14 03:09:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tonghao Zhang X-Patchwork-Id: 1415738 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.133; helo=hemlock.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=nWwXef7O; dkim-atps=neutral Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CvRJ00Z6bz9sRR for ; Mon, 14 Dec 2020 14:11:44 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 3C67E873A0; Mon, 14 Dec 2020 03:11:42 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id O70ticyQZwJ0; Mon, 14 Dec 2020 03:11:41 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by hemlock.osuosl.org (Postfix) with ESMTP id 1D22687168; Mon, 14 Dec 2020 03:11:41 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 04B38C0893; Mon, 14 Dec 2020 03:11:41 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 54EC5C013B for ; Mon, 14 Dec 2020 03:11:39 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 3957C20426 for ; Mon, 14 Dec 2020 03:11:39 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4N5FHtW9d6mZ for ; Mon, 14 Dec 2020 03:11:37 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by silver.osuosl.org (Postfix) with ESMTPS id D4EB9203B2 for ; Mon, 14 Dec 2020 03:11:37 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id t3so11515630pgi.11 for ; Sun, 13 Dec 2020 19:11:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=M6K8hGAnYDAvcrY5LBgaI2EGSZ8/+0iUJiR9P40HAPU=; b=nWwXef7ONLzFSXh3ykDk7AOgjOkbZIK0cwxnnvPkeSBgSNLQsf/udiQiulB/fiEHlH WhM5o6U4aVXmwMCe//R5au1LEVmhn8H/LuI/3ZBt4wsxhWIgDosAiVBA3Bp4QIsvL9g7 KPpdDyrO+WsASyfM1mNaCD5SuzrOGmTO6+fc4eqKR/P58aA8YOuv/+Jx1TMfHp9dm3rJ HI5A73CmSIMHzmu/9Ukc9TMZtnfMaign6be1MvnQ8M5kgRgaGGjtudHx9MSVobgt9Y53 41yHDsxDldepgAICcQnC3vUdalpZSQtSoR1KL36ZLenTqZscSrwSfkoON3Km/07K7AfT 9utA== 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; bh=M6K8hGAnYDAvcrY5LBgaI2EGSZ8/+0iUJiR9P40HAPU=; b=MTMQGJpp+29RRkQdnPmCiUxQRJ/sZs3+cqbREHb2aYx1N97IWZ9oX8+4iJjZfvf/1D p7cMO8fz/zmWZ89dsxHEJ+g0XLfg50Qzt73POHoD9zwg6KUJF2A55J/hwTqi69ZNr+2y sFhyAm2mVBy45EICSqsVj+x77KGDjUEV0BbDwl/5O8lNp8nP47GcHSamjI3wjomEtlT3 sonuTXdGdociU7TBEa2EZ2Yj/Yght21afll/33PC+KNZsGAuHLfV4S4vPz2/4Y4unbw+ HrJLXmFcra7MuT7fD+fZheHmPkYtoytB8VWdvwyA5LVd1883+CLwrmjKPi/nB2TahQFr 1a0w== X-Gm-Message-State: AOAM530xIdyz7Q0TH3HVnqWb+W7tjyfPwv4Gcg16GbhwNnlbe7YWCSHf QCz0qrsAtuuq5FranSWTX6o= X-Google-Smtp-Source: ABdhPJy9t6IKq0YpuLJmUvJIIp9D3s02CVMn2u2QRkkX+fFopet5CR7qGNMSTCMNEnOvzUuapt9eqA== X-Received: by 2002:a63:cb47:: with SMTP id m7mr22249479pgi.395.1607915497535; Sun, 13 Dec 2020 19:11:37 -0800 (PST) Received: from localhost.localdomain ([50.236.19.102]) by smtp.gmail.com with ESMTPSA id c62sm14083806pfa.116.2020.12.13.19.11.30 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 13 Dec 2020 19:11:36 -0800 (PST) From: xiangxia.m.yue@gmail.com To: blp@ovn.org, i.maximets@ovn.org, u9012063@gmail.com, elibr@nvidia.com Date: Mon, 14 Dec 2020 11:09:36 +0800 Message-Id: <20201214030936.87354-1-xiangxia.m.yue@gmail.com> X-Mailer: git-send-email 2.15.0 Cc: dev@openvswitch.org Subject: [ovs-dev] [PATCH ovs v1] tunnel: Remove the padding from packet when encapsulating. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: Tonghao Zhang The root cause is that the old version of openvswitch doesn't remove the padding from packet before L3+ conntrack processing and then packets is dropped in linux kernel stack. The patch [1] fixes the issue. We fix this issue on gateway which running ovs-dpdk as a quick workaround. Padding should be removed because tunnel size + inner size > 64B. More detailes, see [1] [1] - https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=9382fe71c0058465e942a633869629929102843d Signed-off-by: Tonghao Zhang --- lib/netdev-native-tnl.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c index b89dfdd52..acfbb13c4 100644 --- a/lib/netdev-native-tnl.c +++ b/lib/netdev-native-tnl.c @@ -149,11 +149,15 @@ void * netdev_tnl_push_ip_header(struct dp_packet *packet, const void *header, int size, int *ip_tot_size) { + int padding = dp_packet_l2_pad_size(packet); struct eth_header *eth; struct ip_header *ip; struct ovs_16aligned_ip6_hdr *ip6; eth = dp_packet_push_uninit(packet, size); + if (padding) { + dp_packet_set_size(packet, dp_packet_size(packet) - padding); + } *ip_tot_size = dp_packet_size(packet) - sizeof (struct eth_header); memcpy(eth, header, size);