规格:
Ubuntu 20.04版
英特尔E810网卡2x 100 GbE
DPDK db2 1.11.0
Package 生成器22.04.1
超微414 GS-TNR双AMD霄龙处理器
这是我第一次使用DPDK和pktgen,我在设置时遇到了麻烦。文档中缺少设置后的具体操作。我正在开发一个读取100 gbe udp数据包并以线速将有效负载写入文件的应用程序。此时,我只是想让pktgen在我将用于生成流量的机器上工作。最终,此流量将通过另一台计算机上的Mellanox ConnectX-5网卡接收。
我按照说明设置了pktgen,但它似乎没有执行任何操作。下面是cfg文件:
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'
}
输出如下:
>>> 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
问题是:
1.我还应该做些什么来开始产生100 gbe流量?
1.我注意到,一旦驱动程序切换到dpdk的vfio-pci驱动程序,接口名称不再显示在ifconfig或dpdk驱动程序工具中,为什么?
- 谢谢-谢谢
1条答案
按热度按时间6kkfgxo01#
有多个假设是不正确或不完整的,这导致了主要的疑问,如
1.要开始生成100 gbe流量,我还应该做些什么?
1.驱动程序被切换到dpdk的vfio-pci驱动程序,接口名称不再显示在ifconfig中
1.出现了pktgen提示符,但我不确定该在那里做什么。我分配mac地址吗?Ip地址吗?
1.文档中没有任何地方有一个例子。
因此,下面逐一解决这些问题
*无法使用Pktgen:
1.用默认值开始分组生成的最简单的方法是简单地通过
start all
。1.要创建一系列的数据包,请参考stackoverflow-1或pktgen运行时选项
1.由于提到MLX NIC是下一个使用的NIC,因此也请参阅StackOverflow中的link-1和like-2。
注意:Pktgen文档和官方站点中几乎涵盖了入门所需的所有信息。2所以我强烈建议您花些时间去那里。3因此我不同意***文档中没有任何地方有示例***的说法。
*接口名称不再显示在ifconfig中
UIO (Userspace IO)
绑定来绕过内核NIC驱动程序和堆栈层处理。1.在DPDK中,NIC大致分为物理NIC(带PCIe ID)和少数虚拟NIC(带netdev
1.英特尔E810是一个物理网卡,可通过igb_uio或vfio在用户空间中为PF和VF(refer)绑定DPDK。
注意事项:
访问DPDK Linux入门指南和快速启动页面也将有助于解决查询。
*是否分配mac地址?Ip地址
对于DPDK应用程序和DPDK pktgen,简单的答案是否定的。一旦绕过内核和网络堆栈,就不再有本地IP终止或数据包转发的概念。Pktgen提示符已经有一组默认值,它使用这些值传输具有所需mac、vlan、IP和tcp的数据包|UDP有效载荷。