Re: [PATCH net] ip_tunnels: Use skb-len to PMTU check.
From: Timo Teras <hidden>
Date: 2013-06-30 07:49:51
On Sat, 29 Jun 2013 22:40:18 -0700 Pravin B Shelar [off-list ref] wrote:
quoted hunk ↗ jump to hunk
In path mtu check, ip header total length works for gre device but not for gre-tap device. Use skb len which is consistent for all tunneling types. This also fixes bug introduced by commit c54419321455631079c7d (GRE: Refactor GRE tunneling code). Reported-by: Timo Teras <redacted> Signed-off-by: Pravin B Shelar <redacted> --- net/ipv4/ip_tunnel.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c index 7fa8f08..4e9f530 100644 --- a/net/ipv4/ip_tunnel.c +++ b/net/ipv4/ip_tunnel.c@@ -595,7 +595,7 @@ void ip_tunnel_xmit(struct sk_buff *skb, structnet_device *dev, if (!skb_is_gso(skb) && (inner_iph->frag_off&htons(IP_DF)) && - mtu < ntohs(inner_iph->tot_len)) { + mtu < skb->len) { icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu)); ip_rt_put(rt); goto tx_error;
I think icmp_send's mtu parameter should be adjusted too. Since it's sent to the inner flow, but the mtu now is disregarding the possible tunnel headers. - Timo