This is regarding the piece of networking code which sends the incoming packet to the upper layer protocol of IP.
Specifically the function ip_local_deliver_finish().
This function checks if there are any raw sockets over IPv4, if any, it calls raw_v4_input().
The function raw_v4_input() traverses through the list of raw sockets (matching the given upper layer protocol of ip) & calls raw_rcv() to send the packet to the socket.
The function does so for all the sockets except the last socket in that list.
The last socket is processed after the procossing of the upper layer protocol (by the function ip_run_ipprot() ).
I am trying to understand the reason behind this sequence of processing.
Why do we not process all the raw sockets before going ahead with the processing of the upper layer protocol ?
Also letme know in case my understanding regarding the above is incorrect !
Regards, Hoobastang.
_______________________________________________________________________ Odomos - the only mosquito protection outside 4 walls - Click here to know more! http://r.rediff.com/r?http://clients.rediff.com/odomos/Odomos.htm&&odomos&&wn
- : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html