Specs:
Ubuntu 20.04
Intel E810 NIC 2x100Gbe
DPDK 21.11.0
pktgen 22.04.1
Supermicro 414GS-TNR Dual AMD EPYC Processors
This is my first time using DPDK and pktgen and I am having trouble getting things setup. The documentation is lacking on what exactly to do once you have things setup. I am working on an application that reads 100gbe udp packets and writes the payload to file at line rate. At this point I am simply trying to get pktgen to work on the machine that I will be using to generate traffic. Eventually this traffic will be received via a Mellanox ConnectX-5 nic on a different machine.
I followed the directions for setting up pktgen and it does not seem to be doing anything. Here is the cfg file:
description = 'A Pktgen default simple configuration'
# Setup configuration
setup = {
'exec': (
'sudo', '-E'
),
'devices': (
'a1:00.0'
),
# UIO module type, igb_uio, vfio-pci or uio_pci_generic
'uio': 'vfio-pci'
}
# Run command and options
run = {
'exec': ('sudo', '-E'),
# Application name and use app_path to help locate the app
'app_name': 'pktgen',
# using (sdk) or (target) for specific variables
# add (app_name) of the application
# Each path is tested for the application
'app_path': (
'./usr/local/bin/%(app_name)s',
'/usr/local/bin/%(app_name)s'
),
'cores': '2,24-26,27-29',
'nrank': '4',
'proc': 'auto',
'log': '7',
'prefix': 'pg',
'blocklist': (
#'03:00.0', '05:00.0',
#'81:00.0', '84:00.0'
),
'allowlist': (
'a1:00.0,safe-mode-support=1',
),
'opts': (
'-v',
'-T',
'-P',
'-j',
),
'map': (
'[24:26].0',
),
'theme': 'themes/black-yellow.theme'
}
And here is the output:
>>> sdk 'None', target 'None'
<module 'cfg' from 'cfg/default-100G.cfg'>
Trying ./usr/local/bin/pktgen
sudo -E ./usr/local/bin/pktgen -l 2,24-26,27-29 -n 4 --proc-type auto --log-level 7 --file-prefix pg -a a1:00.0,safe-mode-support=1 -- -v -T -P -j -m [24:26].0 -f themes/black-yellow.theme
[sudo] password for cogrfserver:
Copyright(c) <2010-2021>, Intel Corporation. All rights reserved. Powered by DPDK
EAL: Detected CPU lcores: 96
EAL: Detected NUMA nodes: 2
EAL: Auto-detected process type: PRIMARY
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/pg/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: No available 2048 kB hugepages reported
EAL: VFIO support initialized
EAL: Using IOMMU type 1 (Type 1)
EAL: Ignore mapping IO port bar(1)
EAL: Ignore mapping IO port bar(4)
EAL: Probe PCI driver: net_ice (8086:1592) device: 0000:a1:00.0 (socket 1)
ice_load_pkg_type(): Active package is: 1.3.30.0, ICE OS Default Package (single VLAN mode)
TELEMETRY: No legacy callbacks, legacy socket not created
**** Jumbo Frames of 9618 enabled.
*** Copyright(c) <2010-2021>, Intel Corporation. All rights reserved.
*** Pktgen created by: Keith Wiles -- >>> Powered by DPDK <<<
>>> Packet Burst 128, RX Desc 1024, TX Desc 2048, mbufs/port 16384, mbuf cache 2048
Port: Name IfIndex Alias NUMA PCI
0: net_ice 0 1 8086:1592/a1:00.0
=== port to lcore mapping table (# lcores 7) ===
lcore: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Total
port 0: ( D: T) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 1: 0) ( 0: 0) ( 0: 1) ( 0: 0) ( 0: 0) ( 0: 0) = ( 1: 1)
Total : ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 0: 0) ( 1: 0) ( 0: 0) ( 0: 1) ( 0: 0) ( 0: 0) ( 0: 0)
Display and Timer on lcore 2, rx:tx counts per port/lcore
>>>> Configuring 1 ports, MBUF Size 9746, MBUF Cache Size 2048
Lcore:
24, RX-Only
RX_cnt( 1): (pid= 0:qid= 0)
26, TX-Only
TX_cnt( 1): (pid= 0:qid= 0)
Port :
0, nb_lcores 2, private 0x555d4c620700, lcores: 24 26
Initialize Port 0 -- TxQ 1, RxQ 1
** Device Info (a1:00.0, if_index:0, flags 00000066) **
min_rx_bufsize : 1024 max_rx_pktlen : 9728 hash_key_size : 52
max_rx_queues : 64 max_tx_queues : 64 max_vfs : 0
max_mac_addrs : 64 max_hash_mac_addrs: 0 max_vmdq_pools: 0
vmdq_queue_base: 0 vmdq_queue_num : 0 vmdq_pool_base: 0
nb_rx_queues : 0 nb_tx_queues : 0 speed_capa : 000057f4
flow_type_rss_offloads:0000000000007ffc reta_size : 512
rx_offload_capa :VLAN_STRIP IPV4_CKSUM UDP_CKSUM TCP_CKSUM QINQ_STRIP OUTER_IPV4_CKSUM VLAN_FILTER VLAN_EXTEND SCATTER TIMESTAMP KEEP_CRC
tx_offload_capa :VLAN_INSERT IPV4_CKSUM UDP_CKSUM TCP_CKSUM SCTP_CKSUM TCP_TSO OUTER_IPV4_CKSUM QINQ_INSERT MULTI_SEGS MBUF_FAST_FREE OUTER_UDP_CKSUM
rx_queue_offload_capa :0000000000000000 tx_queue_offload_capa :0000000000010000
dev_capa :0000000000000000
RX Conf:
pthresh : 8 hthresh : 8 wthresh : 0
Free Thresh : 32 Drop Enable : 0 Deferred Start : 0
offloads :0000000000000000
TX Conf:
pthresh : 32 hthresh : 0 wthresh : 0
Free Thresh : 32 RS Thresh : 32 Deferred Start : 0
offloads :0000000000000000
Rx: descriptor Limits
nb_max : 4096 nb_min : 64 nb_align : 32
nb_seg_max : 0 nb_mtu_seg_max : 0
Tx: descriptor Limits
nb_max : 4096 nb_min : 64 nb_align : 32
nb_seg_max : 0 nb_mtu_seg_max : 0
Rx: Port Config
burst_size : 32 ring_size : 1024 nb_queues : 1
Tx: Port Config
burst_size : 32 ring_size : 1024 nb_queues : 1
Switch Info: (null)
domain_id :65535 port_id : 0
Create: Default RX 0:0 - Memory used (MBUFs 16384 x (size 9746 + Hdr 128)) + 192 = 157985 KB, headroom 128
Set RX queue stats mapping pid 0, q 0, lcore 24
Create: Default TX 0:0 - Memory used (MBUFs 16384 x (size 9746 + Hdr 128)) + 192 = 157985 KB, headroom 128
Create: Range TX 0:0 - Memory used (MBUFs 16384 x (size 9746 + Hdr 128)) + 192 = 157985 KB, headroom 128
Create: Rate TX 0:0 - Memory used (MBUFs 16384 x (size 9746 + Hdr 128)) + 192 = 157985 KB, headroom 128
Create: Sequence TX 0:0 - Memory used (MBUFs 16384 x (size 9746 + Hdr 128)) + 192 = 157985 KB, headroom 128
Create: Special TX 0:0 - Memory used (MBUFs 64 x (size 9746 + Hdr 128)) + 192 = 618 KB, headroom 128
Port memory used = 790543 KB
Src MAC b4:96:91:b0:0d:f8
<Promiscuous mode Enabled>
Total memory used = 790543 KB
ice_set_rx_function(): Using AVX2 Vector Rx (port 0).
=== Display processing on lcore 2
WARNING: Nothing to do on lcore 25: exiting
WARNING: Nothing to do on lcore 27: exiting
WARNING: Nothing to do on lcore 28: exiting
WARNING: Nothing to do on lcore 29: exiting
- Ports 0-0 of 1 <Main Page> Copyright(c) <2010-2021>, Intel Corporation
Flags:Port : P------Sngl :0
Link State : <--Down--> ---Total Rate---
Pkts/s Rx : 0 0
Tx : 0 0
MBits/s Rx/Tx : 0/0 0/0
Pkts/s Rx Max : 0 0
Tx Max : 0 0
Broadcast : 0
Multicast : 0
Sizes 64 : 0
65-127 : 0
128-255 : 0
256-511 : 0
512-1023 : 0
1024-1518 : 0
Runts/Jumbos : 0/0
ARP/ICMP Pkts : 0/0
Errors Rx/Tx : 0/0
Total Rx Pkts : 0
Tx Pkts : 0
Rx/Tx MBs : 0/0
TCP Flags : .A....
TCP Seq/Ack : 305419896/305419920
Pattern Type : abcd...
Tx Count/% Rate : Forever /100%
Pkt Size/Tx Burst : 64 / 128
TTL/Port Src/Dest : 64/ 1234/ 5678
Pkt Type:VLAN ID : IPv4 / TCP:0001
-- Pktgen 22.04.1 (D: 8086:1592/a1:00.0by DPDK (pid:12889) ----------------
** Version: DPDK 21.11.0, Command Line Interface without timers
Pktgen:/>
Executing 'themes/black-yellow.theme'
t theme default white white off
Pktgen:/> theme top.spinner cyan none bold
Pktgen:/> theme top.ports green none bold
Pktgen:/> theme top.page white none bold
Pktgen:/> theme top.copyright yellow none off
Pktgen:/> theme top.poweredby blue none bold
Pktgen:/> theme sep.dash blue none off
Pktgen:/> theme sep.text white none off
Pktgen:/> theme stats.port.label blue none bold
Pktgen:/> theme stats.port.flags blue none bold
Pktgen:/> theme stats.port.data blue none off
Pktgen:/> theme stats.port.status green none off
Pktgen:/> theme stats.port.linklbl green none bold
Pktgen:/> theme stats.port.link green none off
Pktgen:/> theme stats.port.ratelbl white none bold
Pktgen:/> theme stats.port.rate white none off
Pktgen:/> theme stats.port.sizelbl cyan none bold
Pktgen:/> theme stats.port.sizes cyan none off
Pktgen:/> theme stats.port.errlbl red none bold
Pktgen:/> theme stats.port.errors red none off
Pktgen:/> theme stats.port.totlbl blue none bold
Pktgen:/> theme stats.port.totals blue none off
Pktgen:/> theme stats.dyn.label blue none bold
Pktgen:/> theme stats.dyn.values green none off
Pktgen:/> theme stats.stat.label magenta none off
Pktgen:/> theme stats.stat.values white none off
Pktgen:/> theme stats.total.label red none bold
Pktgen:/> theme stats.total.data blue none bold
Pktgen:/> theme stats.colon blue none bold
Pktgen:/> theme stats.rate.count blue none bold
Pktgen:/> theme stats.bdf blue none off
Pktgen:/> theme stats.mac green none off
Pktgen:/> theme stats.ip cyan none off
Pktgen:/> theme pktgen.prompt green none off
Pktgen:/> cls
| Ports 0-0 of 1 <Main Page> Copyright(c) <2010-2021>, Intel Corporation
Flags:Port : P------Sngl :0
Link State : <UP-100000-FD> ---Total Rate---
Pkts/s Rx : 0 0
Tx : 0 0
MBits/s Rx/Tx : 0/0 0/0
Pkts/s Rx Max : 7 7
Tx Max : 0 0
Broadcast : 0
Multicast : 60
Sizes 64 : 0
65-127 : 178
128-255 : 29
256-511 : 60
512-1023 : 0
1024-1518 : 0
Runts/Jumbos : 0/0
ARP/ICMP Pkts : 0/0
Errors Rx/Tx : 0/0
Total Rx Pkts : 267
Tx Pkts : 0
Rx/Tx MBs : 0/0
TCP Flags : .A....
TCP Seq/Ack : 305419896/305419920
Pattern Type : abcd...
Tx Count/% Rate : Forever /100%
Pkt Size/Tx Burst : 64 / 128
TTL/Port Src/Dest : 64/ 1234/ 5678
Pkt Type:VLAN ID : IPv4 / TCP:0001
Questions are:
- What else am I supposed to do to start generating 100gbe traffic?
- I notice that once the driver is switched to the vfio-pci driver for dpdk, the interface name no longer shows up in ifconfig or the dpdk driver tool, why?
Thanks.