> 1. I find a few structure definitions related to IPV6 headers in both > (a)/usr/include/netinet/ip6.h and /usr/include/linux/ipv6.h . For > example, IPV6 Routing extension header is defined as struct ip6_rthdr > in (a) and struct ipv6_rt_hdr in (b). I think, similar duplication is > there for many such protocol headers like icmp, tcp etc. Why do we > have such duplication? I believe the headers in /usr/include/netinet are from glibc and those in /usr/include/linux are from the kernel source tree. You should be able to write user-mode IPv6 programs using only (a). If you are looking for the kernel's IPv6 implementation details, you should look at (b). Or even better, download kernel sources for the required version and use it. > 2. How are ipv6 headers getting getting filled, when a source sends a > packet to a destination. Could someone direct me to an explanation of > flow in the stack. Or even, a direction towards the functions to be > explored to understand these concepts.. I am not very familiar with IPv6, but I know the related functions are in net/ipv6/*.c (in the kernel source tree). Hope this helps Ravi. __________________________________________________ Do you Yahoo!? New DSL Internet Access from SBC & Yahoo! http://sbc.yahoo.com -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/