IPv6 routing table implementation

From: Madhavi (madhavis@sasken.com)
Date: Tue Jul 02 2002 - 05:54:19 EST


Hi

While going through the routing table implementation for linux-ipv6, I
found this piece of code.

struct fib6_node * fib6_lookup(struct fib6_node *root, struct in6_addr
                        *daddr, struct in6_addr *saddr)
{
        struct lookup_args args[2];
        struct rt6_info *rt = NULL;
        struct fib6_node *fn;

        args[0].offset = (u8*) &rt->rt6i_dst - (u8*) rt;
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        args[0].addr = daddr;

#ifdef CONFIG_IPV6_SUBTREES
        args[1].offset = (u8*) &rt->rt6i_src - (u8*) rt;
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        args[1].addr = saddr;
#endif

.
.
.
.
}

I found out that this code is called from inet6_route_input() which will
always be called on the receiving end for IPv6 packets (ip6_rcv_finish()).

The underlined lines will be creating a kernel panic ALWAYS.

I am using 2.4.16 kernel. I have checked version 2.4.18 also and no
change in this part. Aren't these versions supposed to include a working
IPv6 implementation? Am I missing something?

regards
Madhavi.

-
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/



This archive was generated by hypermail 2b29 : Sun Jul 07 2002 - 22:00:09 EST