]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - include/net/ip6_fib.h
[IPv6]: Use rtnl registration interface
[net-next-2.6.git] / include / net / ip6_fib.h
index e4438de3bd6b821e3c16d627ae63b5e39e9b198b..c48ea873f1e091271d3e377fe16f67c4860ba453 100644 (file)
@@ -50,14 +50,15 @@ struct fib6_node
        struct fib6_node        *parent;
        struct fib6_node        *left;
        struct fib6_node        *right;
-
+#ifdef CONFIG_IPV6_SUBTREES
        struct fib6_node        *subtree;
-
+#endif
        struct rt6_info         *leaf;
 
        __u16                   fn_bit;         /* bit key */
        __u16                   fn_flags;
        __u32                   fn_sernum;
+       struct rt6_info         *rr_ptr;
 };
 
 #ifndef CONFIG_IPV6_SUBTREES
@@ -83,7 +84,6 @@ struct rt6_info
 {
        union {
                struct dst_entry        dst;
-               struct rt6_info         *next;
        } u;
 
        struct inet6_dev                *rt6i_idev;
@@ -107,6 +107,11 @@ struct rt6_info
        u8                              rt6i_protocol;
 };
 
+static inline struct inet6_dev *ip6_dst_idev(struct dst_entry *dst)
+{
+       return ((struct rt6_info *)dst)->rt6i_idev;
+}
+
 struct fib6_walker_t
 {
        struct fib6_walker_t *prev, *next;
@@ -214,8 +219,6 @@ extern void                 fib6_init(void);
 
 extern void                    fib6_rules_init(void);
 extern void                    fib6_rules_cleanup(void);
-extern int                     fib6_rules_dump(struct sk_buff *,
-                                               struct netlink_callback *);
 
 #endif
 #endif