> Taking a cursory glance it looks as if it just reading at most one > full packet at a time > (the size of the buffer is 2000)
That's the asix driver: the raspberry pi adapter has an SMSC LAN95xx, see /n/sources/contrib/miller/usb/ether/smsc.c for my driver which reads up to 37*512=18944 bytes at a time.