IPv6 routing table implementation

Madhavi (madhavis@sasken.com)
Tue, 2 Jul 2002 16:24:19 +0530 (IST)


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/