Вы правы, очереди rx / tx содержат дескрипторы DMA для входящих и исходящих пакетов.
Если вам интересно, как работают сетевые драйверы, я рекомендую взглянуть на сетевой драйвер ixy userpace: https://github.com/emmericp/ixy
Код относительно прост и очень хорошо прокомментирован, и есть статья, которая объясняет, как он работает: https://www.net.in.tum.de/fileadmin/bibtex/publications/papers/ixy-writing-user-space-network-drivers.pdf
См. Раздел 4.1 NIC Ring API в документедля объяснения очередей приема (rx) и передачи (tx):
NIC предоставляют множество циклических буферов, называемых очередями или кольцами для передачи пакетов. Самая простая настройка использует только одну очередь приема и одну очередь передачи. Множество очередей передачи объединяются на сетевой карте, входящий трафик разделяется в соответствии с фильтрами или алгоритмом хеширования, если настроено несколько очередей приема. Кольца приема и передачи работают аналогичным образом: драйвер программирует физический базовый адрес и размер кольца. Затем он заполняет область памяти дескрипторами DMA , то есть указателями на физические адреса, где данные пакета хранятся с некоторыми метаданными. Отправка и получение пакетов осуществляется путем передачи владения дескрипторами DMA между драйвером и оборудованием через головной и хвостовой указатели. Водитель управляет хвостом, железо - головой. Оба указателя хранятся в регистрах устройств, доступных через MMIO.