On Tue, Jun 7, 2016, at 21:48, Philip Prindeville wrote: > static struct rtnl_link_ops ipgre_link_ops __read_mostly = { > diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c > index d8f5e0a..95649eb 100644 > --- a/net/ipv4/ip_tunnel.c > +++ b/net/ipv4/ip_tunnel.c > @@ -682,7 +682,7 @@ void ip_tunnel_xmit(struct sk_buff *skb, struct > net_device *dev, > } > > df = tnl_params->frag_off; > - if (skb->protocol == htons(ETH_P_IP)) > + if (skb->protocol == htons(ETH_P_IP) && !tunnel->ignore_df) > df |= (inner_iph->frag_off&htons(IP_DF)); > > max_headroom = LL_RESERVED_SPACE(rt->dst.dev) + sizeof(struct iphdr)
Is still enforce that we inherit the ttl from the inner header to the outer header if we don't set df bit? Thanks, Hannes