[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9fdc5f0c-fdf0-122e-48a5-43ff029cf8d9@gmail.com>
Date: Mon, 17 Feb 2020 22:40:10 +0100
From: Heiner Kallweit <hkallweit1@...il.com>
To: David Miller <davem@...emloft.net>,
Realtek linux nic maintainers <nic_swsd@...ltek.com>,
Jay Cliburn <jcliburn@...il.com>,
Chris Snook <chris.snook@...il.com>,
Rasesh Mody <rmody@...vell.com>,
Sudarsana Kalluru <skalluru@...vell.com>,
GR-Linux-NIC-Dev@...vell.com,
Christian Benvenuti <benve@...co.com>,
Govindarajulu Varadarajan <_govind@....com>,
Parvi Kaustubhi <pkaustub@...co.com>,
Jeff Kirsher <jeffrey.t.kirsher@...el.com>,
Guo-Fu Tseng <cooldavid@...ldavid.org>,
Shannon Nelson <snelson@...sando.io>,
Pensando Drivers <drivers@...sando.io>,
Timur Tabi <timur@...nel.org>,
Jassi Brar <jaswinder.singh@...aro.org>,
Ilias Apalodimas <ilias.apalodimas@...aro.org>,
"K. Y. Srinivasan" <kys@...rosoft.com>,
Haiyang Zhang <haiyangz@...rosoft.com>,
Stephen Hemminger <sthemmin@...rosoft.com>,
Sasha Levin <sashal@...nel.org>,
Ronak Doshi <doshir@...are.com>,
"VMware, Inc." <pv-drivers@...are.com>
Cc: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
intel-wired-lan@...ts.osuosl.org, linux-hyperv@...r.kernel.org,
Linux USB Mailing List <linux-usb@...r.kernel.org>
Subject: [PATCH net-next 1/3] net: core: add helper tcp_v6_gso_csum_prep
Several network drivers for chips that support TSO6 share the same code
for preparing the TCP header. A difference is that some reset the
payload_len whilst others don't do this. Let's factor out this common
code to a new helper.
Signed-off-by: Heiner Kallweit <hkallweit1@...il.com>
---
include/net/ip6_checksum.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/include/net/ip6_checksum.h b/include/net/ip6_checksum.h
index 7bec95df4..ef0130023 100644
--- a/include/net/ip6_checksum.h
+++ b/include/net/ip6_checksum.h
@@ -76,6 +76,18 @@ static inline void __tcp_v6_send_check(struct sk_buff *skb,
}
}
+static inline void tcp_v6_gso_csum_prep(struct sk_buff *skb,
+ bool clear_payload_len)
+{
+ struct ipv6hdr *ipv6h = ipv6_hdr(skb);
+ struct tcphdr *th = tcp_hdr(skb);
+
+ if (clear_payload_len)
+ ipv6h->payload_len = 0;
+
+ th->check = ~tcp_v6_check(0, &ipv6h->saddr, &ipv6h->daddr, 0);
+}
+
#if IS_ENABLED(CONFIG_IPV6)
static inline void tcp_v6_send_check(struct sock *sk, struct sk_buff *skb)
{
--
2.25.0
Powered by blists - more mailing lists