LCS code trace

 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