]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/net/ip6_fib.h
[SK_BUFF]: Introduce skb_transport_header(skb)
[karo-tx-linux.git] / include / net / ip6_fib.h
index 6a3f26a04509c8cfcbb64f4b308e4343864605a5..cf355a3c2ad5945c95d2fe24cc44efb679b042b1 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;
@@ -173,9 +178,6 @@ struct fib6_table {
 #define RT6_TABLE_LOCAL                RT6_TABLE_MAIN
 #endif
 
-#define RT6_F_STRICT           1
-#define RT6_F_HAS_SADDR                2
-
 typedef struct rt6_info *(*pol_lookup_t)(struct fib6_table *,
                                         struct flowi *, int);