We will use the cross reference tool created by Arne Georg Gleditsch and Per Kristian Gjermshus <lxr@linux.no> . It is available at http://lxr.linux.no/blurb.html
Received packet from Ethernet,
hardware interrupt called ei_interrupt(), which puts the packet in skbuf
and set up software interrupt to be served by ip_rcv().
http://lxr.linux.no/source/drivers/net/8390.c#L405
Kernel serve, call ip_rcv(), http://lxr.linux.no/source/net/ipv4/ip_input.c?v=2.2.16#L395
If the packet is for local, then call ip_local_deliver(), http://lxr.linux.no/source/net/ipv4/ip_input.c?v=2.2.16#L227
If the packet i s for remote machine, then call ip_forward(), http://lxr.linux.no/source/net/ipv4/ip_forward.c?v=2.2.16#L72
In our case, from client
it sends packets to LCS using VIP therefore it is considered to be local
delivery.
In ip_local_deliver(), call
ip_fw_demasquerade(),
http://lxr.linux.no/source/net/ipv4/ip_masq.c?v=2.2.16#L1968