1. Overview of CNDP Poll Mode Drivers

The networking drivers may be classified in two categories:

  • physical for real devices

  • virtual for emulated devices

The pktdev and xskdev layers exposes APIs to use the networking functions of these devices.

Note

For AF_XDP you have the option of using the low-level xskdev API directly if you don’t want to use the mempool management that comes with the pktdev API. Refer to the xskdev buffer management guide for details.

../images/APIs.svg

There are more differences between drivers regarding some internal properties, portability or even documentation availability.

1.1. xskdev

This is the lowest level API that abstracts some of the low level complexities of AF_XDP sockets.

1.2. pktdev

This is a higher level API that allows you to interact with a number of underlying devices such as rings and AF_XDP sockets. It has builtin mempool management and uses the xskdev APIs to create and manage logical ports. The pktdev API uses the pktmbuf_t structure defined in the pktmbuf library.