>> 1) Why do checksum errors occur even though I run everything in a >> virtual machine and no hardware is involved? How can I reduce this?
> > I would guess a bug in your system. To reduce it fix the bug! For > example, if there was a problem with a packet buffer being reused before > the previous data had been sent you would see the data in the first
> packet corrupted with contents from a later one. The checksum would now > show up this error. I would look at the packets (through a packet > capture) that have checksum errors and see if it's either that the
> payload is incorrect (e.g. for each iteration set payload of your > ping-pong packets to the number of the iteration and look for values out > of order) or if the checksum has been computed wrongly.
I checked the packets through the debug message in the rtl8139 network card driver in kitten LWK. I found that there is no error in payload but I feel the error may be in computing the checksum.
The below packet causes checksum problem, but the packet is sent and received without errors. The content is in decimal notation.
The following packet is sent again since the previous packet had checksum errors and it was also sent and received without any errors. The data which has changed from the previous packet is in typed in bold.
Also I found that the version of LWIP used in kitten is lwip 1.3.0. I also tried replacing inet_chksum.c (which has the code for computing checksum) from lwip 1.3.2 but the results are same. Can you please give your insights on where it is going wrong?