¿Para qué se utilizan los descriptores de transmisión y recepción en Ethernet MAC?

En primer lugar, permíteme darte un resumen sobre el interior de Ethernet MAC.
Tenemos un módulo MAC que interactúa con la capa física y tenemos DMA que interactúa con la memoria. Entonces el flujo de trama de Ethernet es así

Transmitir:
Memoria–> DMA–> MAC–> Capa física
Recibir:
Memoria <–DMA <–MAC <–Capa física

Los descriptores de transmisión y recepción son utilizados básicamente por DMA. En estos descriptores, proporcionamos la dirección de la ubicación de la memoria desde donde DMA lee y escribe la trama de Ethernet mientras transmite y recibe, respectivamente. Además de la ubicación de la memoria, muchos otros parámetros importantes que requiere DMA para procesar un marco se programan en descriptores. Una vez que se programa toda la información, le damos el control de los descriptores a DMA. Podemos tener uno o varios descriptores para un cuadro. Cuando se completa la transmisión o recepción de la trama, DMA actualiza el estado en los descriptores y los asigna de nuevo al usuario. Una vez que leemos el estado y los datos del marco, nuevamente le devolvemos el control de los descriptores a DMA y el proceso continúa.
Es nuestra elección cuántos descriptores queremos programar. Cuantos más descriptores programemos … más marcos podemos procesar de una vez (alto rendimiento) pero sí a costa de más recursos del núcleo. Siempre hay una compensación en el núcleo.