xfrm: introduce helper for safe determination of mtu
[deliverable/linux.git] / include / net / xfrm.h
index e823786e7c66a6763e1cfa29bfcc76a3b4f7f6ba..b41d2d10ff0e2088b14ba3513b5483bb3df6786c 100644 (file)
@@ -20,6 +20,7 @@
 #include <net/route.h>
 #include <net/ipv6.h>
 #include <net/ip6_fib.h>
+#include <net/ip6_route.h>
 #include <net/flow.h>
 
 #include <linux/interrupt.h>
@@ -1723,4 +1724,15 @@ static inline int xfrm_mark_put(struct sk_buff *skb, const struct xfrm_mark *m)
        return ret;
 }
 
+static inline int xfrm_skb_dst_mtu(struct sk_buff *skb)
+{
+       struct sock *sk = skb->sk;
+
+       if (sk && sk->sk_family == AF_INET6)
+               return ip6_skb_dst_mtu(skb);
+       else if (sk && sk->sk_family == AF_INET)
+               return ip_skb_dst_mtu(skb);
+       return dst_mtu(skb_dst(skb));
+}
+
 #endif /* _NET_XFRM_H */
This page took 0.038035 seconds and 5 git commands to generate.