1 #ifndef __NET_DST_METADATA_WRAPPER_H
2 #define __NET_DST_METADATA_WRAPPER_H 1
4 #ifdef HAVE_METADATA_DST
5 #include_next <net/dst_metadata.h>
7 #include <linux/skbuff.h>
8 #include <net/ip_tunnels.h>
14 struct ip_tunnel_info tun_info;
18 static inline struct metadata_dst *metadata_dst_alloc(u8 optslen, gfp_t flags)
20 struct metadata_dst *md_dst;
22 md_dst = kmalloc(sizeof(*md_dst) + optslen, flags);
28 #define skb_tunnel_info ovs_skb_tunnel_info
30 static inline void ovs_ip_tun_rx_dst(struct ip_tunnel_info *tun_info,
31 struct sk_buff *skb, __be16 flags,
32 __be64 tunnel_id, int md_size)
34 const struct iphdr *iph = ip_hdr(skb);
36 ip_tunnel_key_init(&tun_info->key,
37 iph->saddr, iph->daddr, iph->tos, iph->ttl,
38 0, 0, tunnel_id, flags);
42 void ovs_ip_tunnel_rcv(struct net_device *dev, struct sk_buff *skb,
43 struct metadata_dst *tun_dst);
44 #endif /* __NET_DST_METADATA_WRAPPER_H */