Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp6906230ybi; Wed, 29 May 2019 15:24:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqwF+jqxBtWDco56LJRkceiAultFvRDC4dzE8bLh63k/0RlKD/5J6nEnMRnRnWg0xxBV2nXq X-Received: by 2002:a17:90a:6fc5:: with SMTP id e63mr7156pjk.29.1559168681440; Wed, 29 May 2019 15:24:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559168681; cv=none; d=google.com; s=arc-20160816; b=W2NCwaRjvItfz4KMhNA2jXUT3UaXsy+SCf/zMB8mQWcZNdYuiipTeM0292kblGz6Ac W//sFy78YAPdcMZyTk67f5NUJTGFZZfhpFFPop6OkK3flNsDlp7NrGZV/QqYK9hMzs96 PQV91c3XMTh5j5ylkM9YgREITrEB77mRXh+ItCwwgV5R3vGVSj4Umhf8mof/2JVVpRrO zazpwd+cvoVQttXNKzYhlWOf6+zKLi0+yH4sokjmS0G0HsSkLpq89Puvni1nImQN7Ma4 xYDgtDWK7hOmcrOao8TmCXmXrVny9YZ4N2Tz4k23plMU2lBJyU7LwI/tLswbQi++9AZX Pmmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date; bh=ZYxacExIRRSuBLVBUAbVZXa7C4nBVeWH0cbzO6m5WnY=; b=Sd6F5vLHj+lM+Ijs/a21r2NfIM8jMAtOK2OZC0EQMNb4gWcuwOw8/pca+JwvB148Yu wFR7Syr0vV730HMtlh3OLd99IABhwXIfVBx5voux4E/XAqm5KDr98dA2uv68N3+jAAiI /AOtCsPwSXMtlug2uUsSvc50yg+XRjWMfDymVVGVMRzy/hegXmhuLxLvfih3CwOrNtHw qJ55NXQ2kMFRVW05MnUj1D8nhIgA3zYHfPELr9pDNt52PKWJ3hThk8qaYAix6XRdJyYI a+dJ4siBQLBmMsmpDcEK7O9yMqsgN28W1ZfzQhFwXDyNviJUzMVxmAvs45DHHxdkJWJx znpA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z14si1014171pgv.128.2019.05.29.15.24.24; Wed, 29 May 2019 15:24:41 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726628AbfE2WXR (ORCPT + 99 others); Wed, 29 May 2019 18:23:17 -0400 Received: from ja.ssi.bg ([178.16.129.10]:56316 "EHLO ja.ssi.bg" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726018AbfE2WXR (ORCPT ); Wed, 29 May 2019 18:23:17 -0400 Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by ja.ssi.bg (8.15.2/8.15.2) with ESMTP id x4TMM6Qe021583; Thu, 30 May 2019 01:22:06 +0300 Date: Thu, 30 May 2019 01:22:06 +0300 (EEST) From: Julian Anastasov To: Jacky Hu cc: jacky.hu@walmart.com, jason.niesz@walmart.com, "David S. Miller" , Alexey Kuznetsov , Hideaki YOSHIFUJI , Wensong Zhang , Simon Horman , Pablo Neira Ayuso , Jozsef Kadlecsik , Florian Westphal , netdev@vger.kernel.org, lvs-devel@vger.kernel.org, linux-kernel@vger.kernel.org, netfilter-devel@vger.kernel.org, coreteam@netfilter.org Subject: Re: [PATCH v3] ipvs: add checksum support for gue encapsulation In-Reply-To: <20190528231107.14197-1-hengqing.hu@gmail.com> Message-ID: References: <20190528231107.14197-1-hengqing.hu@gmail.com> User-Agent: Alpine 2.21 (LFD 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, On Wed, 29 May 2019, Jacky Hu wrote: > gueh = (struct guehdr *)skb->data; > > gueh->control = 0; > gueh->version = 0; > - gueh->hlen = 0; > + gueh->hlen = optlen >> 2; > gueh->flags = 0; > gueh->proto_ctype = *next_protocol; > > + data = &gueh[1]; > + > + if (need_priv) { > + __be32 *flags = data; > + u16 csum_start = skb_checksum_start_offset(skb); > + __be16 *pd = data; Packet tests show another problem. Fix is to defer pd assignment after data += GUE_LEN_PRIV: __be16 *pd; > + > + gueh->flags |= GUE_FLAG_PRIV; > + *flags = 0; > + data += GUE_LEN_PRIV; > + > + if (csum_start < hdrlen) > + return -EINVAL; > + > + csum_start -= hdrlen; pd = data; > + pd[0] = htons(csum_start); > + pd[1] = htons(csum_start + skb->csum_offset); > + > + if (!skb_is_gso(skb)) { > + skb->ip_summed = CHECKSUM_NONE; > + skb->encapsulation = 0; > + } > + > + *flags |= GUE_PFLAG_REMCSUM; > + data += GUE_PLEN_REMCSUM; > + } > + Regards -- Julian Anastasov