Local Retransmission

Napatech Link™ Capture Software Features

Platform
Intel® PAC
Napatech SmartNIC
Content Type
Feature Description
Capture Software Version
Link™ Capture Software 12.7

Local retransmission enables frames received on one or more network ports to be retransmitted to one network port on the same SmartNIC without involving the host CPU. The frames are transmitted locally on the SmartNIC without being transferred to the host memory.

Purpose

Local retransmission can be used to daisy-chain SmartNICs (to avoid multiple taps) or to load-balance network processing between multiple host servers (spillover).

Features

Note: Local retransmission does not apply to NT200A01 running at 2 × 100 Gbit/s.
Local retransmission is based on the filtering functionality (see Filtering). Capture and local retransmission are controlled by different recipes, and can be specified independently of each other. For example, a SmartNIC can be set up to locally retransmit frames from port 0 to port 1, while at the same time capturing all IP frames received on port 0.
Note: As for other recipes (except for ColorMask), if more than one filter match the same frames, the recipe from the highest priority filter becomes the resulting recipe. Only one destination port can be specified in a local retransmission recipe. As a consequence, the same frames cannot be locally retransmitted to more than one destination port, while disjunct subsets of the frames can be locally retransmitted to different destination ports.

The latency from RX port to TX port is typically 5 µs.

Normally frames are retransmitted without any changes, except that the FCS is recalculated. However, in NT200A02 SmartNICs running on a capture/replay image and NT100A01 SmartNICs running on a test and measurement image, VLAN tags can be inserted into frames to be locally retransmitted to enable load balancing, and frames can be sliced before being locally retransmitted.

It is possible to retransmit frames received at one line rate on a port running another line rate.

Local retransmission can be applied together with host-based transmission (see Host-Based Transmission) on all SmartNICs supporting both features. In case of oversubscription of a TX port, frames that are locally retransmitted are prioritized over frames from the host.

Limitations

Local retransmission can lead to oversubscription of a TX port in a number of ways:
  • Local retransmission from a 10 Gbit/s source port to a 1 Gbit/s destination port.
  • Local retransmission from several source ports to the one destination port.
  • Simultaneous host transmission and local retransmission on the same port.
In case of oversubscription, locally retransmitted packets may be dropped. Such packet drops are counted by the TX dropEvents counter (see Port Counters).

Frames are retransmitted as soon as possible, there is no traffic control.

Due to the 5 µs latency from RX port to TX port, statistics read from downlink appliances is not synchronized with statistics read from the retransmitting appliance.

Local retransmission is only possible between ports on the same SmartNIC.
Note: Include a port test in the NTPL filter expression to exclude ports on other SmartNICs if multiple SmartNICs are installed in the host.
Received frames larger than 10,000 bytes are sliced to 10,000 bytes by the receive pipeline, and a new FCS will be calculated by the TX pipeline. If truncated frames are retransmitted, there is no way for downlink appliances to discover that these frames are erroneous.
Note: If truncated frames should not be locally retransmitted, exclude truncated frames from local retransmission with a Truncated error test in the NTPL filter expression.

Configuration interface

Local retransmission is configured using NTPL.

The NTPL command Assign using the DestinationPort parameter can retransmit traffic from more than one port, and can embed a time stamp in retransmitted traffic.

For NT200A02 SmartNICs running on a capture/replay image and NT100A01 SmartNICs running on a test and measurement image, the Action NTPL command using the DestinationPort parameter can be used together with the Assign NTPL command for advanced load balancing to external servers.

For Napatech SmartNICs other than NT200A02 SmartNICs running on a capture/replay imageand NT100A01 SmartNICs running on a test and measurement image , the legacy NTPL command Retransmit is also supported with unchanged syntax for one source port and one destination port.

Example

In this NTPL example, SMTP traffic is retransmitted on one port, HTTP traffic is retransmitted on another, and the rest of the traffic is retransmitted on a third port, while everything is captured.

DefineMacro("mTcpSrcPort", "Data[DynOffset=DynOffTcpFrame;Offset=0;DataType=ByteStr2;DataMask=[15:0]]")
DefineMacro("mTcpPort_HTTP", "80")
DefineMacro("mTcpPort_SMTP", "25")

Assign[StreamId=0] = Port==0 # Capture all
Assign[Priority=0; DestinationPort=1] = (mTcpSrcPort == mTcpPort_SMTP AND Port==0 AND Truncated==False)
Assign[Priority=0; DestinationPort=2] = (mTcpSrcPort == mTcpPort_HTTP AND Port==0 AND Truncated==False)
Assign[Priority=10;DestinationPort=3] = Port==0 # The remaining traffic

This figure illustrates the example.

Various types of traffic are retransmitted on SMTP traffic is retransmitted on different ports, while all traffic is captured

Slicing of locally retransmitted frames

In NT200A02 SmartNICs running on a capture/replay image and NT100A01 SmartNICs running on a test and measurement image, frames can sliced before being locally retransmitted using the using the SliceReTx parameter. Since the slicing changes the frames, the CRC is recalculated before the frames are transmitted. The last 4 bytes of each frame contain the new CRC value. Slicing in the TX path is configured using NTPL similarly to slicing in the RX path (see DN-0449).

Load balancing using VLAN tags

In NT200A02 SmartNICs running on a capture/replay image and NT100A01 SmartNICs running on a test and measurement image, VLAN tags can be inserted into frames to be locally retransmitted to enable load balancing to external servers. For more details, see DN-0449.

This example distributes all traffic to the server with the SmartNIC receiving the traffic and to 3 other servers, with 25% of the traffic to each of the external servers (on VLANs 101, 102 and 103) and 25% to 4 streams in the receiving server.

Action[Tag=Example3; Width=16] = {Index=0..3; StreamId=0..3}, {Index=4..15; DestinationPort=1; VLAN=101..103}
Assign[Action=Example3] = All