This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

concertoif_receive using raw TCP with lwip problem

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

.