mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-23 15:11:16 +00:00
gre: Add support for checksum unnecessary conversions
Call skb_checksum_try_convert and skb_gro_checksum_try_convert after checksum is found present and validated in the GRE header for normal and GRO paths respectively. In GRO path, call skb_gro_checksum_try_convert Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2abb7cdc0d
commit
884d338c04
2 changed files with 10 additions and 2 deletions
|
@ -125,6 +125,10 @@ static int parse_gre_header(struct sk_buff *skb, struct tnl_ptk_info *tpi,
|
||||||
*csum_err = true;
|
*csum_err = true;
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
skb_checksum_try_convert(skb, IPPROTO_GRE, 0,
|
||||||
|
null_compute_pseudo);
|
||||||
|
|
||||||
options++;
|
options++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -172,10 +172,14 @@ static struct sk_buff **gre_gro_receive(struct sk_buff **head,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Don't bother verifying checksum if we're going to flush anyway. */
|
/* Don't bother verifying checksum if we're going to flush anyway. */
|
||||||
if ((greh->flags & GRE_CSUM) && !NAPI_GRO_CB(skb)->flush &&
|
if ((greh->flags & GRE_CSUM) && !NAPI_GRO_CB(skb)->flush) {
|
||||||
skb_gro_checksum_simple_validate(skb))
|
if (skb_gro_checksum_simple_validate(skb))
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
|
|
||||||
|
skb_gro_checksum_try_convert(skb, IPPROTO_GRE, 0,
|
||||||
|
null_compute_pseudo);
|
||||||
|
}
|
||||||
|
|
||||||
flush = 0;
|
flush = 0;
|
||||||
|
|
||||||
for (p = *head; p; p = p->next) {
|
for (p = *head; p; p = p->next) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue