Does a Linux or OpenBSD TAP adapter queue up packets, or will it miss packets if I try to process them on a single thread as they come in? I'm not worried about not being able to process all the packets that come in, but if multiple packets come in right as processing starts on one then it might miss some if the adapter doesn't have an internal queue.
After reading through Linux'
drivers/net/tun.c and OpenBSD's
sys/net/if_tun.c I have come to the conclusion that they both use queues for the packets.
Specifically, Linux uses a queue within the tun/tap driver and OpenBSD uses the preexisting network stack's queue.
I have not manually tested the queue functionality.