Packet-Based Interface

Software Architecture

IntelĀ® PAC
Napatech SmartNIC
Overview Document


The packet-based interface enables processing of packets. This means that the driver software has access to every single packet. It is possible to merge packets from multiple SmartNICs based on the time stamps in the individual packets. This is defined as packet merging (see Packet Merging).The packet-based interface is a zero-copy interface meaning that the driver software gives a pointer to the original packet buffer to the application or even to multiple applications. In cases with more than one application it is the responsibility of the applications to make sure that they can work on the same buffer either at the same time or one after the other. The driver software lets the applications get the packets when they are ready, so if any synchronization is needed between applications sharing a stream, this must be provided by the applications.

Packet-based interface is specified in the NT_NetRxOpen function in the stream_net.h file.

When the packet-based interface is used, every call to the NT_NetRxGet function returns a packet, and every call to the NT_NetRxRelease function releases a packet (see NTAPI).
Note: The NT_NetRxGetNextPacket function (see NTAPI) automatically releases the previous packet so NT_NetRxRelease must not be called after the NT_NetRxGetNextPacket function.