Status Report June 14
Zach Riggle
zachriggle at gmail.com
Mon Jun 15 05:36:23 UTC 2009
Status report from this week... more work on getting the framework in
place. I'm trying to make it as flexible as possible, so that there
won't have to be too many instances of tacked-on functionality. The
last thing to do before the core functionality is done is to implement
(cleanly) TCP and IP checksumming. The PCS library faced some issues
with this, since the TCP-layer object is unaware of the IP-layer
object. Since TCP checksum requires IP-level information (addresses,
etc.) a mild kluge was implemented to traverse back up a packet
"Chain" -- the problem with this being that, if the same TCP object is
used in more than one chain, it will just use the data from one of
them. The TCP state machine that I implemented is aware of the
necessary IP information, and can generate a pseudo-IP header (per the
RFC) that will be used for TCP checksumming, essentially sidestepping
this problem. A more graceful solution (which I may implement as a
patch for PCS) is to pass a 'parent' object to the pcs.Packet.encode
method.
More as it happens. As always, the blog is the best place for up-to-
date news: gsoc-tcpregression
More information about the soc-status
mailing list