lkml.org 
[lkml]   [2005]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectQuestion about CONFIG_IPV6_SUBTREES
    Hi all

    In ip6_fib.c, fib6_lookup_1() does't make sense to me with
    CONFIG_IPV6_SUBTREES enable. It seem to only match source address when
    fib6_node has subtree. So I write a patch to show my opinion.
    unfortunately, this changes don't cooperate with BACKTRACK() in route.c.

    Can somebody explain the exact meaning of CONFIG_IPV6_SUBTREES!

    Thanks.


    --- linux-2.6.14-rc3-git8/net/ipv6/ip6_fib.c 2005-10-10
    08:57:40.000000000 +0800
    +++ linux/net/ipv6/ip6_fib.c 2005-10-10 08:53:44.000000000 +0800
    @@ -616,21 +616,6 @@
    }

    while ((fn->fn_flags & RTN_ROOT) == 0) {
    -#ifdef CONFIG_IPV6_SUBTREES
    - if (fn->subtree) {
    - struct fib6_node *st;
    - struct lookup_args *narg;
    -
    - narg = args + 1;
    -
    - if (narg->addr) {
    - st = fib6_lookup_1(fn->subtree, narg);
    -
    - if (st && !(st->fn_flags & RTN_ROOT))
    - return st;
    - }
    - }
    -#endif

    if (fn->fn_flags & RTN_RTINFO) {
    struct rt6key *key;
    @@ -639,7 +624,24 @@
    args->offset);

    if (ipv6_prefix_equal(&key->addr, args->addr,
    key->plen))
    - return fn;
    +#ifdef CONFIG_IPV6_SUBTREES
    + if (fn->subtree) {
    + struct fib6_node *st;
    + struct lookup_args *narg;
    +
    + narg = args + 1;
    +
    + if (narg->addr) {
    + st =
    fib6_lookup_1(fn->subtree, narg);
    +
    + if (st && !(st->fn_flags
    & RTN_ROOT))
    + return st;
    + if (fn->subtree->leaf !=
    &ip6_null_entry)
    + return fn->subtree;
    + }
    + } else
    +#endif
    + return fn;
    }

    fn = fn->parent;

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-10-10 03:32    [W:0.028 / U:0.028 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site