X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fvport-gre.c;h=eb1000910d17e19cc1179cbbde0e5505e22f5210;hb=1fba445bdafea8318707991c4ac1edc3b2528690;hp=4411cac93840effa31749ec61e6e0c0b51145568;hpb=d80a55abae13fdee776114a4f2fd5fb29fea87f6;p=sliver-openvswitch.git diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c index 4411cac93..eb1000910 100644 --- a/datapath/vport-gre.c +++ b/datapath/vport-gre.c @@ -101,10 +101,11 @@ static struct sk_buff *gre_update_header(const struct vport *vport, - GRE_HEADER_SECTION); /* Work backwards over the options so the checksum is last. */ - if (mutable->flags & TNL_F_OUT_KEY_ACTION) { + if (mutable->flags & TNL_F_OUT_KEY_ACTION) *options = be64_get_low32(OVS_CB(skb)->tun_id); + + if (mutable->out_key || mutable->flags & TNL_F_OUT_KEY_ACTION) options--; - } if (mutable->flags & TNL_F_CSUM) *(__sum16 *)options = csum_fold(skb_checksum(skb,