lwip-devel
[Top][All Lists]
Advanced

[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/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]