All of lore.kernel.org
 help / color / mirror / Atom feed
* tcp checksumming
@ 2003-11-04 13:32 an7
  0 siblings, 0 replies; 2+ messages in thread
From: an7 @ 2003-11-04 13:32 UTC (permalink / raw)
  To: netdev

Hello,

In tcp_rcv_established(), when you are in fast path,
you use checksum and copy (the first function in the
chain is tcp_copy_to_iovec) to finally delivering data
to the user.

I browse datagram.c,checksum.h,skbuff.c,tcp_input.c
and only sees (mainly by following function calls in
datagram.c) checksum calculation, by a lot of calls to
csum_fold() and csum_partial(), and copy to iovec, but
i have never seen the checksum _verification_.

I learn that skb->csum is (when you have not CHECKSUM
UNECESSARY defined in the case of a device computing
the checksum by itself) the checksum on running
data.But it is used in all functions,and get replaced
by a function result. I don't see where it is used as
a comparison

My question is pretty simple : where in the code, is
the tcp checksum verified (compared to the computed
one). My first impression was that it was done in the
*copy_and_csum* functions, but i only see checksum
computation.

That is to say, it is like a side effect of keeping
data in a buffer with a bad checksum.(maybe it is
removed after ? i don't think so)

PS : i have posted here many times, never get an
answer. Please pay a little attention 


___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

* tcp checksumming
@ 2003-11-04 13:36 an7
  0 siblings, 0 replies; 2+ messages in thread
From: an7 @ 2003-11-04 13:36 UTC (permalink / raw)
  To: davem; +Cc: netdev

Hello,

In tcp_rcv_established(), when you are in fast path,
you use checksum and copy (the first function in the
chain is tcp_copy_to_iovec) to finally delivering data
to the user.

I browse datagram.c,checksum.h,skbuff.c,tcp_input.c
and only sees (mainly by following function calls in
datagram.c) checksum calculation, by a lot of calls to
csum_fold() and csum_partial(), and copy to iovec, but
i have never seen the checksum _verification_.

I learn that skb->csum is (when you have not CHECKSUM
UNECESSARY defined in the case of a device computing
the checksum by itself) the checksum on running
data.But it is used in all functions,and get replaced
by a function result. I don't see where it is used as
a comparison

My question is pretty simple : where in the code, is
the tcp checksum verified (compared to the computed
one). My first impression was that it was done in the
*copy_and_csum* functions, but i only see checksum
computation.

That is to say, it is like a side effect of keeping
data in a buffer with a bad checksum.(maybe it is
removed after ? i don't think so)



___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-11-04 13:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-04 13:32 tcp checksumming an7
2003-11-04 13:36 an7

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.