How to Get Started
This section will help you to get your system up and running by showing typical simple use cases for Napatech Software Suite and Napatech adapters.
Typical use cases are:
It is important to understand your use case to get the best possible help. Clicking one of the use cases above will take you to that specific use case.
Capture for Real-Time Analysis
This use case covers two use cases; Capture for real-time analysis and capture to disk.
For both use cases the application can either be single threaded, or Multi-CPU splitting to further utilize multi-core systems.
Single Thread
In the single threaded solution, a system with 2 NT4E adapters is used:
In this use case the ntservice.ini file will have to specify one or more host buffers for NUMA node 0. The number of host buffers depends on how many distinct streams are needed by the application.
In this example 2 host buffers are set up for each of the 2 adapters:
This will result in 2 host buffers being allocated for each adapter in the NUMA node 0 memory controller:
Application A on NUMA node 0 will then set up the streamId 0 to only use host buffers allocated on NUMA node 0 and then open streamId 0:
Application A assigns data from port 0 to streamId 0:
Resulting in:
This gives an idea about how a typical capture user case looks and how it is configured. It also shows how the NTAPI is used to control NUMA nodes and open up streams. A network stream can be opened either in PACKET mode, as shown here, or in SEGMENT mode, where the only difference is if that NT_NetRxGet() returns a packet or a segment.
Multiple Threads
The same system is considered in a multi-threaded (multi-CPU) use case:
In this use case the ntservice.ini file will have to specify one or more host buffers for each of the involved NUMA nodes. The number of host buffers per NUMA node still depends on how many distinct streams are needed by the applications.
In this example, one host buffer is set up for each of the two adapters for each NUMA node:
This will result in two host buffers being allocated for each adapter in all three NUMA node memory controllers:
Application A on NUMA node 0 will then set up streamId 0 to only use host buffers allocated on NUMA node 0, streamId 1 to only use host buffers allocated on NUMA node 1, and streamId 2 to only use host buffers allocated on NUMA node 2. It will then set up the hash mode to be 2-tuple hashing and finally assign data from all ports and split it into stream 0, 1 and 2:
Resulting in:
Application A will open streamId 0:
Resulting in:
Application B will open streamId 1:
Resulting in:
Application C will open streamId 2:
Resulting in:
This gives an idea on how to set up and configure a multi-CPU splitting use case.
In-Line Real-Time Analysis
In this use case the ntservice.ini file will have to specify one or more host buffers for NUMA node 0. The number of host buffers depends on how many distinct streams are needed by the application.
Application A assigns data from port 0 to streamId 0 and forward it to port 1:
As can be seen, the host buffer is set up to forward all traffic received on port 0 to port 1.
Note: If no application opens streamId 0 then host based retransmit results which can be used instead of local retransmit on 1G adapters.
Transmit
Replay of Captured Traffic
Traffic Generation
In this use case, the ntservice.ini file has to specify one or more TX host buffers for NUMA node 0. The number of host buffers depends on how many ports/adapters the spplication transmits to.
When application A now opens a TX stream, it specifies which ports this stream is able to transmit to. In this case ports 0 and 1: