X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Fvport-gre.c;h=eb1000910d17e19cc1179cbbde0e5505e22f5210;hb=fe4a02e4fa6be030a0478f6b01b0d4b6ab9b808f;hp=4411cac93840effa31749ec61e6e0c0b51145568;hpb=850b6b3b9f8c38b42e315c2c07d232a33b82da3e;p=openvswitch diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c index 4411cac9..eb100091 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,