Opening Multiple Streams and Merging Packets from them

Opening Multiple Network Streams as One

product_line_custom
Intel® PAC
Napatech SmartNIC
category
Application Note

NT_NetRxOpenMulti

The 3GD API function NT_NetRxOpenMulti can open multiple streams and merge packets from them. This will result in packets from the streams specified being merged by the driver (based on time stamps) – similar to merging of host buffers from multiple SmartNICs.

This function makes it possible to configure multi-CPU distribution of one type of traffic to a range of streams, and to send another type of traffic to a separate stream, and then from each application thread to open one of the split streams in combination with the separate shared stream.

Multi-CPU distribution and sharing combined

This figure shows a number of application threads that each open their own multi-CPU split stream combined with a shared stream.

The SmartNIC uses four host buffers, each of which has its own stream. The streams can transmit to any application.

In this way, the one stream to one host buffer relation (per SmartNIC) is maintained, which is how the 3GD driver is architected to optimize performance, but still allow applications to combine multi-CPU distribution and sharing to mimic load distribution combined with replication. Limited PCI bandwidth is not wasted on replicating data, and zero-copy is maintained as sharing is used instead of replication.