vxlan: Flow based tunneling
[cascardo/linux.git] / include / net / dst_metadata.h
index 4f7694f..e843937 100644 (file)
@@ -8,6 +8,9 @@
 struct metadata_dst {
        struct dst_entry                dst;
        size_t                          opts_len;
+       union {
+               struct ip_tunnel_info   tun_info;
+       } u;
 };
 
 static inline struct metadata_dst *skb_metadata_dst(struct sk_buff *skb)
@@ -20,6 +23,16 @@ static inline struct metadata_dst *skb_metadata_dst(struct sk_buff *skb)
        return NULL;
 }
 
+static inline struct ip_tunnel_info *skb_tunnel_info(struct sk_buff *skb)
+{
+       struct metadata_dst *md_dst = skb_metadata_dst(skb);
+
+       if (md_dst)
+               return &md_dst->u.tun_info;
+
+       return NULL;
+}
+
 static inline bool skb_valid_dst(const struct sk_buff *skb)
 {
        struct dst_entry *dst = skb_dst(skb);