+ const struct tnl_vport *tnl_vport = tnl_vport_priv(vport);
+ const struct tnl_mutable_config *mutable = rcu_dereference_rtnl(tnl_vport->mutable);
+
+ NLA_PUT_U32(skb, ODP_TUNNEL_ATTR_FLAGS, mutable->flags & TNL_F_PUBLIC);
+ NLA_PUT_BE32(skb, ODP_TUNNEL_ATTR_DST_IPV4, mutable->daddr);
+
+ if (!(mutable->flags & TNL_F_IN_KEY_MATCH))
+ NLA_PUT_BE64(skb, ODP_TUNNEL_ATTR_IN_KEY, mutable->in_key);
+ if (!(mutable->flags & TNL_F_OUT_KEY_ACTION))
+ NLA_PUT_BE64(skb, ODP_TUNNEL_ATTR_OUT_KEY, mutable->out_key);
+ if (mutable->saddr)
+ NLA_PUT_BE32(skb, ODP_TUNNEL_ATTR_SRC_IPV4, mutable->saddr);
+ if (mutable->tos)
+ NLA_PUT_U8(skb, ODP_TUNNEL_ATTR_TOS, mutable->tos);
+ if (mutable->ttl)
+ NLA_PUT_U8(skb, ODP_TUNNEL_ATTR_TTL, mutable->ttl);