- if (mutable->port_config.flags & TNL_F_OUT_KEY_ACTION)
- *options = OVS_CB(skb)->tun_id;
- else
- *options = mutable->port_config.out_key;
+ if (mutable->port_config.out_key)
+ *options = mutable->port_config.out_key;
+}
+
+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);