X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fvport-gre.c;h=46e0be82a0bdf668033b20341473f9ae8023a8b2;hb=f3399cd5be32fb67364959d75b973a4c23f2b19a;hp=9c1c1cc825388ed64229f28058f338077c21d20f;hpb=465b509c7ce1023af9665ec2553c1c7baee5963e;p=sliver-openvswitch.git diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c index 9c1c1cc82..46e0be82a 100644 --- a/datapath/vport-gre.c +++ b/datapath/vport-gre.c @@ -103,9 +103,12 @@ static struct sk_buff *gre_update_header(const struct vport *vport, 0)); /* * Allow our local IP stack to fragment the outer packet even if the - * DF bit is set as a last resort. + * DF bit is set as a last resort. We also need to force selection of + * an IP ID here because Linux will otherwise leave it at 0 if the + * packet originally had DF set. */ skb->local_df = 1; + __ip_select_ident(ip_hdr(skb), dst, 0); return skb; }