+static struct sk_buff *gre_update_header(const struct vport *vport,
+ const struct tnl_mutable_config *mutable,
+ struct dst_entry *dst,
+ struct sk_buff *skb)
+{
+ __be32 *options = (__be32 *)(skb_network_header(skb) + mutable->tunnel_hlen
+ - GRE_HEADER_SECTION);
+
+ /* Work backwards over the options so the checksum is last. */
+ if (mutable->flags & TNL_F_OUT_KEY_ACTION) {
+ *options = be64_get_low32(OVS_CB(skb)->tun_id);