[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [task #6849] Test how checksum on copy could be integrated
From: |
Simon Goldschmidt |
Subject: |
[lwip-devel] [task #6849] Test how checksum on copy could be integrated into the stack |
Date: |
Thu, 07 May 2009 05:47:16 +0000 |
User-agent: |
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; de; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10 |
Follow-up Comment #8, task #6849 (project lwip):
> We can have our hardware stream data and generate checksums while copying
the data.
Implemented in an FPGA, I guess? A shame everyone has to create their own
:-(
Anyway, the main issue is not how to generated the checksum but how to store
it: For UDP it would have to be passed in with the pbuf, but it's yet unclear
if only once for a pbuf chain or once in every pbuf in a chain.
For TCP, the problem lies in pbuf chains, also: you don't always create a
full segment with a call to tcp_enqueue, you can also enqueue new data in an
existing segment. We would then have to update the checksum in the header...
And this alone is a change to the current implementation, which creates the
checksum at a later point in tcp_output.
Also, I want to have standard implementations of copy_and_checksum (in
inet_chksum.h) which does not require changing the TCP API. (It might be
enhanced for no-copy TCP writes, though.)
To sum it up, we have to store a checksum in a pbuf for UDP/RAW and somewhere
with a segment for TCP (we could also store it with a pbuf for TCP and then
sum it up later), and we mainly need a decision on the first and someone who
implements the latter (which moves some code from tcp_output(_segment) to
tcp_enqueue).
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/task/?6849>
_______________________________________________
Nachricht geschickt von/durch Savannah
http://savannah.nongnu.org/