Message ID | 1372570818-15651-1-git-send-email-pshelar@nicira.com |
---|---|
State | Superseded, archived |
Delegated to: | David Miller |
Headers | show |
On Sat, 29 Jun 2013 22:40:18 -0700 Pravin B Shelar <pshelar@nicira.com> wrote: > 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 <timo.teras@iki.fi> > Signed-off-by: Pravin B Shelar <pshelar@nicira.com> > --- > 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, struct > net_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 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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, struct net_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;
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 <timo.teras@iki.fi> Signed-off-by: Pravin B Shelar <pshelar@nicira.com> --- net/ipv4/ip_tunnel.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)