I'm trying to trace a received IPv6 packet through the kernel, but I'm
having a hard time. I can't find the point at which a packet IP header
is examined by the kernel which then says, "You're IPv4; you go this
way," or "You're IPv6; you go that way."
I can follow the packet through the device driver until it's handed up
to netif_rx() in net/core/dev.c, at which time it gets enqueued and an
interrupt is raised, but I can't find the entry point for the packet on
the other side of the interrupt. It looks like the packet eventually
ends up at ipv6_rcv() in /net/ipv6/ip6_input.c, but I can't find how it
gets there, nor what happened after it was enqueued that identified it
as an IPv6 packet.
Can someone point me in the right direction?
Thanks,
Jay
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/