A network is designed with the right buffering in place at the right spots in the network. This is to avoid packets are lost in case there are not enough resources available for immediate processing in the next steps of a pipeline. When the buffer is not large enough, the packet loss will go up. When the buffers are too large, valuable resources are wasted and high latency might become an issue.

 

Finding the right balance between all available compute/network resources and the sizes of buffers is something we need to carefully design.

 

This balance is also important when looking at the interaction within a server between the network cards (which have some on-board buffering) and the DPDK managed buffer resources on the host. A better tuning of the buffer sizes can eliminate potential packet losses. This paper is summarizing what to do when going from one type of network card to another one that has different on-board buffer behavior. It also has the potential to explain and fix certain packet loss issues going from one generation of a NIC card to another (e.g. when moving from Intel® Ethernet Server Adapter X520 to Intel® Ethernet Controller XL710)