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
- NT40A11 running on a 4 × 10/1 Gbit/s capture image
- NT40E3 running on a 4 × 10/1 Gbit/s capture image
The latency from RX port to TX port is typically 5 µs.
- NT400D11 running on a test and measurement image
- NT200A02 running on a capture/replay image
- NT100A01 running on a test and measurement image
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 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.
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.
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.
- NT400D11 running on a test and measurement image
- NT200A02 running on a capture/replay image
- NT100A01 running on a test and measurement image
For Napatech SmartNICs other than those listed above, 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.
Define mTcpSrcPort = \\ Macro("Data[DynOffset=DynOffTcpFrame;Offset=0;DataType=ByteStr2;DataMask=[15:0]]") Define mTcpPort_HTTP = Macro("80") Define mTcpPort_SMTP = Macro("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.
Slicing of locally retransmitted frames
- NT400D11 running on a test and measurement image
- NT200A02 running on a capture/replay image
- NT100A01 running on a test and measurement image
Load distribution using VLAN tags
- NT400D11 running on a test and measurement image
- NT200A02 SmartNICs running on a capture/replay image
- NT100A01 SmartNICs running on a test and measurement image
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] = AllFor more details, see Load Distribution or DN-0988.