|
@@ -48,6 +48,14 @@ static inline __wsum ip6_compute_pseudo(struct sk_buff *skb, int proto)
|
|
skb->len, proto, 0));
|
|
skb->len, proto, 0));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static inline __wsum ip6_gro_compute_pseudo(struct sk_buff *skb, int proto)
|
|
|
|
+{
|
|
|
|
+ const struct ipv6hdr *iph = skb_gro_network_header(skb);
|
|
|
|
+
|
|
|
|
+ return ~csum_unfold(csum_ipv6_magic(&iph->saddr, &iph->daddr,
|
|
|
|
+ skb_gro_len(skb), proto, 0));
|
|
|
|
+}
|
|
|
|
+
|
|
static __inline__ __sum16 tcp_v6_check(int len,
|
|
static __inline__ __sum16 tcp_v6_check(int len,
|
|
const struct in6_addr *saddr,
|
|
const struct in6_addr *saddr,
|
|
const struct in6_addr *daddr,
|
|
const struct in6_addr *daddr,
|