Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp4621180imw; Tue, 12 Jul 2022 11:07:52 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tBbQt3U5ZxTZiULQxpcOT6ndEa9VD4q57uWVzWjwoaGW9xFGZNXSpuRLYTdHHbjDIoGgFU X-Received: by 2002:a17:907:1c87:b0:6f0:29ea:cc01 with SMTP id nb7-20020a1709071c8700b006f029eacc01mr25760011ejc.671.1657649272275; Tue, 12 Jul 2022 11:07:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657649272; cv=none; d=google.com; s=arc-20160816; b=lqEzOQ/2o7wHKYymn5lNGrOgBafG8qYaqsxXac9TmEfdjmK8oMJfv3K/fXf7WYs2do JFXoJ1rFNyxSoUuPPnqS5flMzQh7zakW5grlkYhhLrCE2j4XY056L2HDQsCRmfEWBnQz olq+wuHzOXyflLp+yNPnPBQiQn8+Z2ksUeeH2F3DtaRug/8uvU4rhG1lsp1c/SvEMDEg Z2Y1vjTm0zjwIC6vCGRYFI0H6NVIwzJjpDIVaMQi0dTPdQt5y0lgKJh3fSfSvhjM9SBj 2NdtHFQ+WSV1M6JYVdQ5CQZ44TSKzwEoah2j7TKkw96QL9rUxoDhrfqG45BvV42XQc5N 0QbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=/2SzNPQoGcYuHKawTtGC19xgR7+eToRMAf1gIBPLCXs=; b=XF1C2RklPLJvQ+BgGvaILvA6ZIYh/7oijIQKDWZ8Khv2049WN7bhEN551QuGLy4qaJ XHaJPUgTA4yyYo5a7lhFZduMiA2y4jPaWqtGDfkrqxtJkf05I+WuRPq/BNI7oPvrwckC kRvn+LV6M8gMzbSviln1FeeyTKOKRTW02jM3lndhVvSADllkpX3amo3GkRxSQcagdPSF h+hfP3+DsaRaCc+4xMb3UJKbQKriAMkfKVQVbmpitajNQSUcT63eH93SiI6Mu6Zbrdow bJGYIQngPyeVNHCgTmgBtjN5RP2urNCjKQEbQxUUUR8+gS6QmRgh+hN3bzwuJn/NfTxB P6zQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=uniroma2.it Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gs36-20020a1709072d2400b0072b49c6369esi12286947ejc.361.2022.07.12.11.07.24; Tue, 12 Jul 2022 11:07:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=uniroma2.it Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233489AbiGLSAH (ORCPT + 99 others); Tue, 12 Jul 2022 14:00:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233456AbiGLSAG (ORCPT ); Tue, 12 Jul 2022 14:00:06 -0400 Received: from smtp.uniroma2.it (smtp.uniroma2.it [160.80.6.16]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B5965B93C2; Tue, 12 Jul 2022 11:00:01 -0700 (PDT) Received: from localhost.localdomain ([160.80.103.126]) by smtp-2015.uniroma2.it (8.14.4/8.14.4/Debian-8) with ESMTP id 26CHxCBu005871 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Tue, 12 Jul 2022 19:59:14 +0200 From: Andrea Mayer To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Hideaki YOSHIFUJI , David Ahern , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , David Lebrun , Mathieu Xhonneux , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org Cc: Stefano Salsano , Paolo Lungaroni , Ahmed Abdelsalam , Anton Makarov , Andrea Mayer Subject: [net 3/3] seg6: bpf: fix skb checksum in bpf_push_seg6_encap() Date: Tue, 12 Jul 2022 19:58:37 +0200 Message-Id: <20220712175837.16267-4-andrea.mayer@uniroma2.it> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220712175837.16267-1-andrea.mayer@uniroma2.it> References: <20220712175837.16267-1-andrea.mayer@uniroma2.it> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Virus-Scanned: clamav-milter 0.100.0 at smtp-2015 X-Virus-Status: Clean X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Both helper functions bpf_lwt_seg6_action() and bpf_lwt_push_encap() use the bpf_push_seg6_encap() to encapsulate the packet in an IPv6 with Segment Routing Header (SRH) or insert an SRH between the IPv6 header and the payload. To achieve this result, such helper functions rely on bpf_push_seg6_encap() which, in turn, leverages seg6_do_srh_{encap,inline}() to perform the required operation (i.e. encap/inline). This patch removes the initialization of the IPv6 header payload length from bpf_push_seg6_encap(), as it is now handled properly by seg6_do_srh_{encap,inline}() to prevent corruption of the skb checksum. Fixes: fe94cc290f53 ("bpf: Add IPv6 Segment Routing helpers") Signed-off-by: Andrea Mayer --- net/core/filter.c | 1 - 1 file changed, 1 deletion(-) diff --git a/net/core/filter.c b/net/core/filter.c index 4ef77ec5255e..59aada9c4e19 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -6204,7 +6204,6 @@ static int bpf_push_seg6_encap(struct sk_buff *skb, u32 type, void *hdr, u32 len if (err) return err; - ipv6_hdr(skb)->payload_len = htons(skb->len - sizeof(struct ipv6hdr)); skb_set_transport_header(skb, sizeof(struct ipv6hdr)); return seg6_lookup_nexthop(skb, NULL, 0); -- 2.20.1