The good thing about this "fakeARP" driver is we don't need to mess with interrupt, PCI, DMA related stuff.
I also wanted to write a longer post about how tx and rx works in general but it was taking so long I had to put that aside.
I will instead go from down to up on code.