Hi guys, I hacked part of the route.c under /net/ipv6. I made modifications to ip6_route_output, trying to change the destination address, so that a different interface will be chosen. This will then affect the hash_val that will be calculated under neigh_lookup (ndisc.c) used for neighbour discovery. I tested the codes listed below in the user-land and everything is okay. However, when I merged it into the kernel and it always goes into kernel panic at the memcpy statement. I must apologize as I am not well versed with c and always made silly mistakes over pointers. I would appreciate it if anyone can help point out my errors. Thanks in advance. Jon. The codes are basically: struct in6_addr *daddr; my_function(daddr); .... (in another file) void my_function(struct in6_addr *addr) { struct in6_addr *newaddr; .... memcpy(&(*addr), &(*newaddr), sizeof(struct in6_addr)); ... } -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ IRC Channel: irc.openprojects.net / #kernelnewbies Web Page: http://www.kernelnewbies.org/