excamera, what I'm hacking on, daily.

jamesb@excamera.com


       
Sun, 13 Jul 2003

TCP data sent
Phew, I just successfully opened TCP, send a short segment, and closed the TCP connection. I wasn't getting my own sequence numbers right, which upset the other end's state machine. Using netstat I check that the other end goes into TIME_WAIT, as it should.

Next task: dealing with big packets. When I do something like:

ping -s 1000 192.168.0.199
I get missing packets when the RTL8019 receieve pointer wraps. The machine thinks it's sending a reply, but it doesn't reach the other end.

OK, I fixed DMA reads so that reading off the end (i.e. above 0x6000) so that they wrap back to 0x4600. Big pings now return.

But there's some very frustrating issues with the RT8019AS. One is the disastrous documentation. I mean, nowhere does it even describe the memory map for DMA transfers: you apparently just know this by copying other peoples' drivers. For example, it's meant to have 16kbytes of SRAM on board, but everyone seems to set the buffers up for 8k - 0x4000 to 0x5fff - I can't see anywhere how to get a 16k buffer. I see that Rabbit Semiconductor is selling the AX88796L for $11.20 each. This part does 100Base-T, and the documentation looks really clear.

*