]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - include/net/ip6_route.h
Merge branch 'master' into tk71
[mv-sheeva.git] / include / net / ip6_route.h
index 278312c95f9600bd863fa0dc76c52a7c048a9d19..8552f0a2e85400433f9481e531e0ee88fe6b59ef 100644 (file)
@@ -3,7 +3,6 @@
 
 #define IP6_RT_PRIO_USER       1024
 #define IP6_RT_PRIO_ADDRCONF   256
-#define IP6_RT_PRIO_KERN       512
 
 struct route_info {
        __u8                    type;
@@ -56,6 +55,18 @@ static inline unsigned int rt6_flags2srcprefs(int flags)
        return (flags >> 3) & 7;
 }
 
+extern void                    rt6_bind_peer(struct rt6_info *rt,
+                                             int create);
+
+static inline struct inet_peer *rt6_get_peer(struct rt6_info *rt)
+{
+       if (rt->rt6i_peer)
+               return rt->rt6i_peer;
+
+       rt6_bind_peer(rt, 0);
+       return rt->rt6i_peer;
+}
+
 extern void                    ip6_route_input(struct sk_buff *skb);
 
 extern struct dst_entry *      ip6_route_output(struct net *net,
@@ -164,5 +175,15 @@ static inline int ipv6_unicast_destination(struct sk_buff *skb)
        return rt->rt6i_flags & RTF_LOCAL;
 }
 
+int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *));
+
+static inline int ip6_skb_dst_mtu(struct sk_buff *skb)
+{
+       struct ipv6_pinfo *np = skb->sk ? inet6_sk(skb->sk) : NULL;
+
+       return (np && np->pmtudisc == IPV6_PMTUDISC_PROBE) ?
+              skb_dst(skb)->dev->mtu : dst_mtu(skb_dst(skb));
+}
+
 #endif
 #endif