[NET]: Don't send ICMP_FRAG_NEEDED for GSO packets
Commit 9af3912ec9
("[NET] Move DF check
to ip_forward") added a new check to send ICMP fragmentation needed
for large packets.
Unlike the check in ip_finish_output(), it doesn't check for GSO.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d41a95e04a
commit
32aced7509
|
@ -85,7 +85,7 @@ int ip_forward(struct sk_buff *skb)
|
||||||
if (opt->is_strictroute && rt->rt_dst != rt->rt_gateway)
|
if (opt->is_strictroute && rt->rt_dst != rt->rt_gateway)
|
||||||
goto sr_failed;
|
goto sr_failed;
|
||||||
|
|
||||||
if (unlikely(skb->len > dst_mtu(&rt->u.dst) &&
|
if (unlikely(skb->len > dst_mtu(&rt->u.dst) && !skb_is_gso(skb) &&
|
||||||
(ip_hdr(skb)->frag_off & htons(IP_DF))) && !skb->local_df) {
|
(ip_hdr(skb)->frag_off & htons(IP_DF))) && !skb->local_df) {
|
||||||
IP_INC_STATS(IPSTATS_MIB_FRAGFAILS);
|
IP_INC_STATS(IPSTATS_MIB_FRAGFAILS);
|
||||||
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
|
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
|
||||||
|
|
Loading…
Reference in a new issue