Configure the SmartNIC and capture frames using two host buffers / streams based on
received port numbers.
About this task
This figure shows the test setup.
Two ports of the SmartNIC on the server are connected to each other. Two instances of the
pktgen tool are used to generate and transmit frames, and two instances
of the throughput tool are used to capture and measure throughput.
Procedure
-
Configure the SmartNIC to capture received frames on port 0 and 1.
Create a file with the following NTPL commands which configure two port filters.
Each filter is set to capture frames that are received on a specific port.
# Delete previously configured filters.
Delete = All
# Stream 0 captures frames received on port 0.
Assign[StreamId=0] = Port==0
# Stream 1 captures frames received on port 1.
Assign[StreamId=1] = Port==1
Apply
the configuration.
/opt/napatech3/bin/ntpl -f <file_name>
For
example:
/opt/napatech3/bin/ntpl -f config.ntpl
An output
example:
NTPL CMD: Delete = All
NTPL ID: 0
NTPL CMD: Assign[StreamId=0] = Port==0
NTPL ID: 1
NTPL CMD: Assign[StreamId=1] = Port==1
NTPL ID: 2
-
Start throughput.
On one terminal:
/opt/napatech3/bin/throughput -s 0
On another
terminal:
/opt/napatech3/bin/throughput -s 1
-
Start pktgen.
On one
terminal:
/opt/napatech3/bin/pktgen -p0 -n0 -r 10G -s r[64:1518] -t udp
On
another
terminal:
/opt/napatech3/bin/pktgen -p1 -n0 -r 10G -s r[64:1518] -t udp
Note: The command line options in the
pktgen examples are:
- -p0: Transmit on port 0.
- -n0: Transmit frames until pktgen is
stopped.
- -r 10G: Transmit frames at 10 Gbytes/s.
- -s r[64:1518]: Generate frames with random size between 64 to
1518 bytes.
- -t udp: Generate UDP frames.
-
Check the statistics in the monitoring tool.
/opt/napatech3/bin/monitoring
An output
example:
*───────────────────── monitoring (v. 3.25.4.5-5a719256) ──────────────────────┐
│ P A Type Link Down Rx Tx Max Temp. │
│ 0 0 SFP28-SR-DR 25G Full 0 9999.89M 0.00M 9018 47.30 C │
│ 1 0 SFP28-SR-DR 25G Full 0 9999.90M 0.00M 9018 47.30 C │
└──────────────────────────────────────────────────────────────────────────────┘
Port 0 - Adapter 0 Intf 0: NT50B01_2x25
┌──────────────────────────────────────────────────────────────────────────────┐
│ RX RMON1 counters Totals │
│ Packets : #000000000115529206 Octets : #000000091712211227 │
│ Broadcast : #000000000000000000 Multicast : #000000000000000000 │
│ 64 octets : #000000000000050645 65-127 octets : #000000000005323199 │
│ 128-255 octets : #000000000009785473 256-511 octets : #000000000020167384 │
│ 512-1023 octets : #000000000040559833 1024-1518 octets: #000000000039642672 │
│ Undersize : #000000000000000000 Oversize : #000000000000000000 │
│ Fragments : #000000000000000000 Collisions : #000000000000000000 │
│ Drop events : #000000000000000000 Crc/Align errors: #000000000000000000 │
│ Jabbers : #000000000000000000 Ext drops : #000000000000000000 │
└──────────────────────────────────────────────────────────────────────────────┘
Reset Tx/Rx 0RMON 1ExtRMON 2Checksum 3Decode 4Drop 5IPF Dec/Hex Tot/Spd
Quit Sensors Color stat XTimeSync IEEE 1588 PTP EStream LFlowstat FDump
Results
Frames are transmitted on one port and received on another port.