Verify checksum of IP header and TCP header
Hi, I am looking for the code in linux kernel that verifies the checksum of TCP header and IP header for inbound packet. The packet supposes to be dropped if the checksum doesn't match. I tried tcp_input.c and ip_input.c, also with global search. But I couldn't find any code that does this job. Can anyone tell me where is the code? Thanks.
On Tue, Feb 11, 2014 at 03:03:42PM -0500, Guibin(Bill) Tian wrote:
Hi, I am looking for the code in linux kernel that verifies the checksum of TCP header and IP header for inbound packet. The packet supposes to be dropped if the checksum doesn't match.
Here is some code that checks the TCP checksum. /* * Calculate(/check) TCP checksum */ static inline __sum16 tcp_v4_check(int len, __be32 saddr, __be32 daddr, __wsum base) { return csum_tcpudp_magic(saddr,daddr,len,IPPROTO_TCP,base); } from: include/net/tcp.h also, try searching for csum_error in net/ipv4/tcp_ipv4.c
oh, thank you so much!!! On Tue, Feb 11, 2014 at 4:19 PM, John de la Garza <john@jjdev.com> wrote:
On Tue, Feb 11, 2014 at 03:03:42PM -0500, Guibin(Bill) Tian wrote:
Hi, I am looking for the code in linux kernel that verifies the checksum of TCP header and IP header for inbound packet. The packet supposes to be dropped if the checksum doesn't match.
Here is some code that checks the TCP checksum.
/* * Calculate(/check) TCP checksum */ static inline __sum16 tcp_v4_check(int len, __be32 saddr, __be32 daddr, __wsum base) { return csum_tcpudp_magic(saddr,daddr,len,IPPROTO_TCP,base); }
from: include/net/tcp.h
also, try searching for csum_error in net/ipv4/tcp_ipv4.c
participants (2)
-
Guibin(Bill) Tian -
John de la Garza