Commit 76eeb12b authored by Heiner Kallweit's avatar Heiner Kallweit Committed by David S. Miller

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, so let's factor it out to a helper.
A difference is that some drivers reset the payload_len whilst others
don't do this. This value is overwritten by TSO anyway, therefore
the new helper resets it in general.
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: default avatarAlexander Duyck <alexander.h.duyck@linux.intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9cb8e048
...@@ -76,6 +76,15 @@ static inline void __tcp_v6_send_check(struct sk_buff *skb, ...@@ -76,6 +76,15 @@ static inline void __tcp_v6_send_check(struct sk_buff *skb,
} }
} }
static inline void tcp_v6_gso_csum_prep(struct sk_buff *skb)
{
struct ipv6hdr *ipv6h = ipv6_hdr(skb);
struct tcphdr *th = tcp_hdr(skb);
ipv6h->payload_len = 0;
th->check = ~tcp_v6_check(0, &ipv6h->saddr, &ipv6h->daddr, 0);
}
#if IS_ENABLED(CONFIG_IPV6) #if IS_ENABLED(CONFIG_IPV6)
static inline void tcp_v6_send_check(struct sock *sk, struct sk_buff *skb) static inline void tcp_v6_send_check(struct sock *sk, struct sk_buff *skb)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment