Skip to main content
HomeAgent portalContact support

NIC example

How Network-Card DMA Works: Intel X520 and 82599 as an Example

A PCIe network adapter uses DMA to move data between system memory and a network link. This is a normal foundation of high-speed networking. Intel's X520 family uses the 82599 10GbE controller, whose official datasheet describes the responsibilities of the driver, descriptor queues, DMA engine, and MAC on transmit and receive paths.

Last reviewed: 2026-09-05Published by Heino HMA Hardware Lab

The boundary around NIC DMA

A network adapter does not receive an arbitrary memory doorway. Its driver prepares buffers and descriptors, the operating system creates DMA mappings, and the controller should process only authorized addresses and lengths in its queues. When this site says no DMA device is required, it means no additional dedicated DMA capture card is required; the X520 remains a normal PCIe NIC that uses standard packet DMA, not arbitrary memory access.

Example adapterIntel X520
ControllerIntel 82599
Host interfacePCIe
Data structuresTx / Rx descriptors

Why high-speed NICs use DMA

Requiring the CPU to copy every byte of every packet would constrain throughput and consume processing time. A bus-master network adapter can follow driver-prepared descriptors to read transmit buffers or write received data into allocated buffers.

The CPU still establishes queues, submits work, handles interrupts or completion polling, and reclaims buffers. DMA reduces data movement by the CPU; it does not remove software control.

Transmit path: from a descriptor to the wire

For transmission, the host driver prepares packet buffers and descriptors containing DMA-mapped addresses, lengths, and required control information, then advances the queue tail.

The 82599 DMA engine fetches descriptors and packet data, applies configured offloads, and passes the frame to the MAC. Only after status is written back and completion is reported may the driver release the related buffers.

Receive path: buffers come first

Before reception, the driver supplies the queue with buffers that the device may write. When a frame arrives, the adapter places data into a buffer described by the receive ring and updates completion status.

The driver waits for hardware to return ownership and performs required synchronization before passing data to the network stack and replenishing the ring. Queue depth, ownership, and error handling all affect stability.

Scatter/gather and hardware offload

A network buffer may span several non-contiguous physical regions. Windows NDIS Scatter/Gather DMA lets a miniport driver obtain a valid segment list through system interfaces, reducing unnecessary full-packet copies.

Checksum and segmentation offloads reduce CPU work, but they do not remove memory boundaries. Descriptor addresses, lengths, hardware capability, and DMA mappings must remain consistent.

Compatibility and security checks

For an X520/82599 or any other adapter, use vendor- and OS-supported drivers, record PCI IDs plus driver and NVM versions, and test sustained load, reboot, link transitions, and recovery.

On an IOMMU-capable platform, also review DMA remapping and Kernel DMA Protection state. Normal packet DMA is not arbitrary memory access and must not be represented as a way around platform protections.

Frequently asked questions

01Does the Intel X520 use DMA?

Yes. Like other high-performance PCIe NICs, it uses descriptor queues and DMA to move packets between mapped host buffers and the controller.

02Is ordinary NIC DMA the same as RDMA?

No. Local packet DMA moves data for one host. RDMA adds remote operations, memory registration, and protection semantics across a network.

03Is a descriptor address an application pointer?

No. It should be a device address obtained through the operating system's DMA interfaces and may be translated by an IOMMU.

04Should a driver or NVM change trigger retesting?

Yes. Queue behavior, offloads, recovery, and platform compatibility can all change with version.

Official references

  1. Intel: 82599 10GbE Controller Datasheet
  2. Intel: Ethernet Server Adapter X520 Product Brief
  3. Microsoft: NDIS Scatter/Gather DMA
  4. Microsoft: Enable DMA remapping for device drivers
Heino HMA · Approved hardware validation and support
HMA installation support