How to calculate the TCP checksum

Pei Lin telent997 at gmail.com
Mon Jul 16 23:05:36 EDT 2012


http://lxr.oss.org.cn/source/lib/checksum.c

2012/7/16 Adel Kodmani <mpcadel at gmail.com>:
>
>
> On Mon, Jul 16, 2012 at 1:30 PM, पारस <beparas at gmail.com> wrote:
>>
>>
>>
>> On Tue, Jul 10, 2012 at 11:42 AM, Adel Kodmani <mpcadel at gmail.com> wrote:
>>>
>>> I am writing a kernel module that actually modifies the TCP header(both
>>> at sending and receiving) and I need to re-calculate the header because of
>>> that.
>>> I am capturing the packets using netfilter, so I have access to the whole
>>> SKB, I am using Linux 2.6.35-22
>>>
>>> Looking into the source code of the TCP/IP, I found this function
>>> void tcp_v4_send_check(struct sock *sk, struct sk_buff *skb);
>>> The comment above it says this routing computes the IPv4 TCP checksum
>>>
>>> Trying to use this function, I called it passing to it skb->sk and skb
>>> With no success so far.
>>>
>>> So my question is, how do I correctly calculate the TCP checksum? I know
>>> there's a psudoheader that must be created, and added to the calculation but
>>> there must be a function in the kernel I can call that already does that.
>>>
>>>
>>> Thanks in advance,
>>> Adel
>>>
>>> _______________________________________________
>>> Kernelnewbies mailing list
>>> Kernelnewbies at kernelnewbies.org
>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>>
>> I think this may be helpful to you
>> http://www.thegeekstuff.com/2012/05/ip-header-checksum/
>>
>>
>
>
> Nope, what I need to calculate is the TCP checksum, not the IP checksum
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>



-- 
Best Regards
Lin



More information about the Kernelnewbies mailing list