|
@@ -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 */
|