A little Back story:
I am playing around with an ENC28J60 and arduino nano, and I am using it to maintain a connection to a device(ATEM BlackMagic ME/1 Switcher). The Arduino is no way fast enough to catch all packets coming from a BlackMagic Switcher, however it seems that the BlackMagic Device does not really care as long as the Arduino does not lose too many packets.
My Question:
I noticed that when the arduino was not keeping up with all of these packets and the ENC28J60's buffer overflowed, it(ENC28J60) would throw out old packets and only keep the new incoming ones in its buffer. I was wondering if there is a way for the ENC28J60 to keep the old Packets instead of the new ones until the Arduino can read them and throw out any new incoming packets if there is no space in the (ENC28J60)buffer? I am experimenting with different ways of handling these dropped packets and was wondering if this method might help with it.
Sorry for writing mistakes and bad grammer, I am a little tired
Did a little Digging and eventually found what I am looking for is actaully called LIFO(Last In First Out) and what I have right now is FIFO(First In First Out). I checked the enc28j60 datasheet (http://ww1.microchip.com/downloads/en/devicedoc/39662c.pdf) and it looks like it is a hardware configured FIFO so no way of making it LIFO
@Juraj
Yes, that is what it is. I've worked with the same buffering systems before(mostly with serial and i2c), just did not know the term for them.
Hey awesome job on the enc library, I really appreciate your hard work. It has some nice features in it, but yes same problem. Its a hardware issue(limitation). In most cases FIFO makes sense, but in my case, the arduino is far to slow to keep up and missing a lot of important packets that come first
it is UDP?
my EthernetENC library has a backlog for UDP. UIPEthernet doesn't. The size of the backlog is configurable with UIP_UDP_BACKLOG https://github.com/jandrassy/EthernetENC/wiki/Settings
and you can turn off TCP with UIP_CONF_MAX_CONNECTIONS to save flash and RAM.
and you can set more frequent network handling with UIP_PERIODIC_TIMER