Hi. Please Help! We are sending large amounts of data via raw TCP (no sys) using LWIP, and at random times in the Concertoif interrupt, the header which contains the payload length is not there, and it is just raw data it seems. This is in concertoif_receive where the payload length is read from HWREG(ETH_BASE + MAC_O_DATA). The concertoif_receive does no error checking about this length in any way, and since the raw data is large numbers, it tries to allocate too much memory, fails, then tries to drain the RX fifo by this same ridiculously large amount. Is there supposed to be some kind of checksum or something that validates the header? How can we recover from this? Seems like there should be some way to figure out the header is missing, flush the FIFO completely without reading an incorrect number of items, and thus reset the ethernet or send some NAK back to the client. I have tried to reset via concertoif_hwinit, but that doesn't work, unable to reconnect after (for some reason the tcp accept callback is not called on subsequent interrupts. Thanks, Paul
.