Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp5749000pxb; Mon, 14 Feb 2022 06:48:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJza/QXsDoelft30LcgKMpuuGaKWKxMh8TTTMQ40sjiJzIEO+N+IQHABZOVRm/dNjNtOelFF X-Received: by 2002:a17:902:f689:: with SMTP id l9mr7664plg.166.1644850094722; Mon, 14 Feb 2022 06:48:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644850094; cv=none; d=google.com; s=arc-20160816; b=BcN3vu6pMvn6ro9sqEF+qxu0CO3ATIj2eVIDpC7T0+3ronlDd3vXacdUyMpG8ZwzDm nX65EJOh03qEmGD11r5lKr9bzW2NOke9199NesBs6yelHC/lUx/w2GO04T2+kZCjYoVn sgnFxyask61NHPp+ftNsni20ByiR4S9Y0iP0ory1tsVVPY+4h9FBZAEBpnxmq/+5sNUb n4kmVAbQpi3wvxZzJoFv6jMto7YirTk7XG5HSib1R29HeDQKbbHVm+4v51wjhmEjrQ9V WmrPSUzlrKdxBAYled6wyvLc7YVL91Oy8QqMuQkS34T4WQ2Ohys/kZeAvD36k0+s9i6A Kt3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=EbSg9QvGTEG7MjQvzrDkvoNELNPgB+85sOLBqpa4AUA=; b=pUwblGRPJhqHFkJEC/q47iyMT2B4apC5nEMV4WFKz8RCcUmV2dEsdfpl1PeHH1aPEp ymJ86kKsZNZ1niemWE0Fy7ryyKitNR11zQyAQkqkPpvSoAf+si6tHmmhlPjB7adpxtuV Mvyo4Nh9yRS0gmRu6o80bV3P0aimxRAVAamQ2nnW7+b1HpzDuGfrsIZFeIlxWVDbe2qO 5Fx8gWfE53BL4CrnT/b8NKxc1HAjw2wMSGhoa5JxeFZfNA7k4R6nYMZLDxAzhYO6dRtd Ro3n3OUVfgOhk5jEVBjswxIMFLGshoNTlEKUDPlB8Xq8pY/oMnO7dS2N/mFM9SaS3k6n PVWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=SS0XHSKc; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s21si1822556plr.275.2022.02.14.06.47.54; Mon, 14 Feb 2022 06:48:14 -0800 (PST) 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; dkim=pass header.i=@google.com header.s=20210112 header.b=SS0XHSKc; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237128AbiBKFyi (ORCPT + 94 others); Fri, 11 Feb 2022 00:54:38 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:37746 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237078AbiBKFyg (ORCPT ); Fri, 11 Feb 2022 00:54:36 -0500 Received: from mail-vs1-xe2b.google.com (mail-vs1-xe2b.google.com [IPv6:2607:f8b0:4864:20::e2b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 94A05102F for ; Thu, 10 Feb 2022 21:54:36 -0800 (PST) Received: by mail-vs1-xe2b.google.com with SMTP id z62so6844876vsz.2 for ; Thu, 10 Feb 2022 21:54:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=EbSg9QvGTEG7MjQvzrDkvoNELNPgB+85sOLBqpa4AUA=; b=SS0XHSKcCaEsbQ4Wwn5QnKULou7/nRrOZDqvOOMFchl7PA2YkNlTMluAlF78eL3OYQ aqnX2q2M8LhDU64/bBNClIsemboTs0HTNUd+0of+BhXy1fFSemYC+igZDiJz/ZESPzRd beXCsmmRUkop/mDS4598qhe4S6adC9cqK24amqV0AX+xQxm2Mwg/jIz1LZa22h3Y/nZx wgvEK8FFChU2l3ty8WWlxGBgcENp62qqVG56A+1mnDMi+ofrJ/XYlh3CuSczlfeWJFoG Jv84tEFBEvjLuwUJl9lTtwqS6hE3/MtPnZeYync0MbqbWslvenfPrOH2XkqynFA+fi9V QpTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=EbSg9QvGTEG7MjQvzrDkvoNELNPgB+85sOLBqpa4AUA=; b=vnz2Ww+wE+56LDzjshc6o0u88RKgZ7wIFIBiJBSWByyESra+0XZcl68ZlmoPS6lG0z GDi7T4Ma8m+DPZwcXQdOcTkbBILECgHPoGnnVxC5ni5bXD+X5mcS53BUBzHbmZgrjh2g v531YqU3kfTu0koDfz7pCCpgk/qYG6BV3Zlu3r6jok+CzzIqNzaxjuKFgv8BDLNWdmnF OdJFmthsvudPUfKpXsPyriys4QocLfWeBBxG0oYdu9jZkTRsFq5CLI3tCICN8EtF4JYt WntQ4Z6ReofyM5W7lVAzOoOUV1NyD+m1w8SotK5+zGxjVhDT7kQtr9SGNPFjCKGQJ3ii hs8w== X-Gm-Message-State: AOAM530/BK9X/qe95DkesNK8FfzFs81n1llqOcPQRhu4h8bl1fSGnUcP xCi5LGa6vNE4bTz6CowW05eyA4ci11kP1j20vmdUtg== X-Received: by 2002:a67:ea8f:: with SMTP id f15mr45351vso.46.1644558875472; Thu, 10 Feb 2022 21:54:35 -0800 (PST) MIME-Version: 1.0 References: <20220211040629.23703-1-lina.wang@mediatek.com> In-Reply-To: <20220211040629.23703-1-lina.wang@mediatek.com> From: =?UTF-8?Q?Maciej_=C5=BBenczykowski?= Date: Thu, 10 Feb 2022 21:54:23 -0800 Message-ID: Subject: Re: [PATCH] net: fix wrong network header length To: Lina Wang Cc: "David S . Miller" , Jakub Kicinski , Matthias Brugger , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Linux NetDev , Kernel hackers , bpf , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Willem Bruijn , Eric Dumazet , zhuoliang.zhang@mediatek.com, chao.song@mediatek.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL 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 On Thu, Feb 10, 2022 at 8:12 PM Lina Wang wrote: > > On Thu, 2022-02-10 at 17:02 +0100, Paolo Abeni wrote: > > > > @@ -3682,6 +3682,7 @@ struct sk_buff *skb_segment_list(struct > > > sk_buff *skb, > > > struct sk_buff *tail =3D NULL; > > > struct sk_buff *nskb, *tmp; > > > int err; > > > + unsigned int len_diff =3D 0; > > > > Mintor nit: please respect the reverse x-mas tree order. > > > > Yes,v2 has change unsigned int to int Reverse christmas tree, means from longest to shortest, like so: struct sk_buff *tail =3D NULL; struct sk_buff *nskb, *tmp; + int len_diff =3D 0; int err; That said, I think the =3D 0 is not needed, so this can be just + int len_diff, err; > > > > > > > skb_push(skb, -skb_network_offset(skb) + offset); > > > @@ -3721,9 +3722,11 @@ struct sk_buff *skb_segment_list(struct > > > sk_buff *skb, > > > skb_push(nskb, -skb_network_offset(nskb) + offset); > > > > > > skb_release_head_state(nskb); > > > + len_diff =3D skb_network_header_len(nskb) - > > > skb_network_header_len(skb); > > > __copy_skb_header(nskb, skb); > > > > > > skb_headers_offset_update(nskb, skb_headroom(nskb) - > > > skb_headroom(skb)); > > > + nskb->transport_header +=3D len_diff; > > > > This does not look correct ?!? the network hdr position for nskb will > > still be uncorrect?!? and even the mac hdr likely?!? possibly you > > need > > to change the offset in skb_headers_offset_update(). > > > > Network hdr position and mac hdr are both right, because bpf processing & > skb_headers_offset_update have updated them to right position. After bpf > loading, the first skb's network header&mac_header became 44, transport > header still is 64. After skb_headers_offset_update, fraglist skb's mac > header and network header are still 24, the same with original packet. > Just fraglist skb's transport header became 44, as original is 64. > Only transport header cannot be easily updated the same offset, because > 6to4 has different network header. > > Actually,at the beginning, I want to change skb_headers_offset_update, bu= t > it has been called also in other place, maybe a new function should be > needed here. > > Skb_headers_offset_update has other wrong part in my scenary, > inner_transport_header\inner_network_header\inner_mac_header shouldnot be > changed, but they are been updated because of different headroom. They ar= e > not used later, so wrong value didnot affect anything. > > > Paolo > > > > Thanks!Maciej =C5=BBenczykowski, Kernel Networking Developer @ Google