目录

DMA 与 Buffer descriptor

Linux Kernel TCP/IP Stack — L1 Layer — NIC Controller — Buffer descriptor table_SDN/NFV 网络技术专栏

NIC Controller 会在 RAM 中建立并为例两个环形队列,称为 BD Table(Buffer descriptor,缓存描述符),一个收(Rx)、一个发(Tx),每一个表项称为 descriptor(描述符)。

descriptor 所存放的内容是由 CPU 决定的,一般会存放指向 Data buffer(实际的数据存储空间)的指针(总线地址)、数据长度以及一些标志位。

Linux Kernel TCP/IP Stack — L1 Layer — NIC Controller — Buffer descriptor table_SDN/NFV 网络技术专栏_02

Rx/Tx 的 BD Table 的首地址分别存放于 CPU 的寄存器中,这样 CPU 就可以通过 BD 表项中的指针,索引到实际 Dat