> // Validate the data returned from the ENC624J600 Family device. What a load of CYA crap. =93Sometimes the packet is invalid; it must be a = layout problem! Or maybe Alpha Particles!=94 That =93CRCError=94 is am ac= tual ethernet packet CRC error, as far as I can tell. While those are supp= osed to be pretty rare in modern real ethernets > if(header.NextPacketPointer > RXSTOP || > ((BYTE_VAL*)(&header.NextPacketPointer))->bits.b0 || > header.StatusVector.bits.Zero || header.StatusVector.bits.ZeroH || > header.StatusVector.bits.CRCError || > header.StatusVector.bits.ByteCount > 1522u || > !header.StatusVector.bits.ReceiveOk) > { > Reset(); > } > I've found that this condition occurs causing a system reset when the > network is very busy. > Is there a way of recovering without resetting the system, maybe > without even breaking an existing TCP connection? You can try just dropping the packet. They seem to be assuming =93the hard= ware is in a weird state, we=92d better reset everything=94, and I don=92t = think that=92s true of all of the errors. A more complete fix might be to = separate out the individual errors, count them, and only do the reset when = there is =93unacceptable frequency of an error.=94 BillW --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .