ipv4: Pass ipv4 flow objects into fib_lookup() paths.
[pandora-kernel.git] / net / ipv4 / fib_trie.c
index d5ff80e..3d28a35 100644 (file)
@@ -1341,7 +1341,7 @@ err:
 
 /* should be called with rcu_read_lock */
 static int check_leaf(struct fib_table *tb, struct trie *t, struct leaf *l,
-                     t_key key,  const struct flowi *flp,
+                     t_key key,  const struct flowi4 *flp,
                      struct fib_result *res, int fib_flags)
 {
        struct leaf_info *li;
@@ -1360,9 +1360,9 @@ static int check_leaf(struct fib_table *tb, struct trie *t, struct leaf *l,
                        struct fib_info *fi = fa->fa_info;
                        int nhsel, err;
 
-                       if (fa->fa_tos && fa->fa_tos != flp->fl4_tos)
+                       if (fa->fa_tos && fa->fa_tos != flp->flowi4_tos)
                                continue;
-                       if (fa->fa_scope < flp->fl4_scope)
+                       if (fa->fa_scope < flp->flowi4_scope)
                                continue;
                        fib_alias_accessed(fa);
                        err = fib_props[fa->fa_type].error;
@@ -1379,7 +1379,7 @@ static int check_leaf(struct fib_table *tb, struct trie *t, struct leaf *l,
 
                                if (nh->nh_flags & RTNH_F_DEAD)
                                        continue;
-                               if (flp->flowi_oif && flp->flowi_oif != nh->nh_oif)
+                               if (flp->flowi4_oif && flp->flowi4_oif != nh->nh_oif)
                                        continue;
 
 #ifdef CONFIG_IP_FIB_TRIE_STATS
@@ -1406,7 +1406,7 @@ static int check_leaf(struct fib_table *tb, struct trie *t, struct leaf *l,
        return 1;
 }
 
-int fib_table_lookup(struct fib_table *tb, const struct flowi *flp,
+int fib_table_lookup(struct fib_table *tb, const struct flowi4 *flp,
                     struct fib_result *res, int fib_flags)
 {
        struct trie *t = (struct trie *) tb->tb_data;
@@ -1414,7 +1414,7 @@ int fib_table_lookup(struct fib_table *tb, const struct flowi *flp,
        struct rt_trie_node *n;
        struct tnode *pn;
        unsigned int pos, bits;
-       t_key key = ntohl(flp->fl4_dst);
+       t_key key = ntohl(flp->daddr);
        unsigned int chopped_off;
        t_key cindex = 0;
        unsigned int current_prefix_length = KEYLENGTH;