ubantu18.04@Intel 82545EM 【安装文档】TRex流量分析仪保姆级安装指南--基于VMware虚拟机( 四 )


root@ubuntu:/root/trex/v3.00/dpdk-stable-18.11.9/x86_64-native-linuxapp-gcc/build/kernel/linux# echo 2048 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepagesroot@ubuntu:/root/trex/v3.00/dpdk-stable-18.11.9/x86_64-native-linuxapp-gcc/build/kernel/linux# cat /proc/meminfo | grep HugeAnonHugePages:0 kBShmemHugePages:0 kBFileHugePages:0 kBHugePages_Total:1448HugePages_Free:1199HugePages_Rsvd:0HugePages_Surp:0Hugepagesize:2048 kBHugetlb:2965504 kB此时再去脚本中运行测试[28]会得到以下输出
Option: 28Enter hex bitmask of cores to execute testpmd app onExample: to execute app on cores 0 to 7, enter 0xffbitmask: 0x3Launching appEAL: Detected 4 lcore(s)EAL: Detected 1 NUMA nodesEAL: Multi-process socket /var/run/dpdk/rte/mp_socketEAL: No free hugepages reported in hugepages-1048576kBEAL: Probing VFIO support...EAL: VFIO support initializedEAL: PCI device 0000:02:01.0 on NUMA socket -1EAL:Invalid NUMA socket, default to 0EAL:probe driver: 8086:100f net_e1000_emEAL: PCI device 0000:02:06.0 on NUMA socket -1EAL:Invalid NUMA socket, default to 0EAL:probe driver: 8086:100f net_e1000_emEAL: PCI device 0000:02:07.0 on NUMA socket -1EAL:Invalid NUMA socket, default to 0EAL:probe driver: 8086:100f net_e1000_emInteractive-mode selectedtestpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=155456, size=2176, socket=0testpmd: preferred mempool ops selected: ring_mp_mcConfiguring Port 0 (socket 0)Port 0: 00:0C:29:AE:BF:4DConfiguring Port 1 (socket 0)Port 1: 00:0C:29:AE:BF:43Checking link statuses...Donetestpmd>这是正常的,包括"EAL: No free hugepages reported in hugepages-1048576kB"提示也是正常的
之后再去/[你的DPDK目录]/x86_64-native-linuxapp-gcc/app下运行testpmd可得到与本文一致的结果
2、82545EM 虚拟网卡问题
若物理机的网卡为82545EM,使用VMware建立虚拟机后 , 该网卡对于dpdk的支持会存在问题,
报错为"Eal:Error reading from file descriptor 33: Input/output error"
具体见[5]的分析
为了跳过dpdk对82545EM某些兼容性的检测,我们需要修改dpdk的配置文件igb_uio.c
该文件位于/[你的DPDK目录]//kernel/linux/igb_uio/igb_uio.c
使用vscode打开该文件(或者vim也行)
定位到
if (pci_intx_mask_supported(udev->pdev)  , 大概是第260行
然后修改为if (pci_intx_mask_supported(udev->pdev)|| 1),如下:
#endif /* falls through - to INTX 修改*/ case RTE_INTR_MODE_LEGACY:if (pci_intx_mask_supported(udev->pdev)|| 1) {dev_dbg(&udev->pdev->dev, "using INTX");udev->info.irq_flags = IRQF_SHARED | IRQF_NO_THREAD;udev->info.irq = udev->pdev->irq;udev->mode = RTE_INTR_MODE_LEGACY;break;}然后重新执行编译
modprobe uio并重新运行脚本中的[15]项,安装环境
解决
启动TRex编辑配置文件
sudo cp cfg/simple_cfg.yaml/etc/trex_cfg.yamlsudo vim /etc/trex_cfg.yaml- port_limit: 2version: 2#List of interfaces. Change to suit your setup. Use ./dpdk_setup_ports.py -s to see available optionsinterfaces: ["02:06.0","02:07.0"] #将之前绑定uio驱动的网卡添加到这里port_info:# Port IPs. Change to suit your needs. In case of loopback, you can leave as is.- ip: 1.1.1.1default_gw : 2.2.2.2- ip: 2.2.2.2default_gw : 1.1.1.1打开两个终端,分别运行以下指令启动stateless服务器
root@ubuntu:/root/trex/v3.00# sudo ./t-rex-64 -iroot@ubuntu:/root/trex/v3.00# sudo ./trex-console效果如下(图挂了看代码块)

ubantu18.04@Intel 82545EM 【安装文档】TRex流量分析仪保姆级安装指南--基于VMware虚拟机

文章插图
##服务器启动-Per port stats tableports |0 |1 -----------------------------------------------------------------------------------------opackets |0 |0obytes |0 |0ipackets |0 |0ibytes |0 |0ierrors |0 |0oerrors |0 |0Tx Bw |0.00bps |0.00bps -Global stats enabled Cpu Utilization : 0.0% Platform_factor : 1.0 Total-Tx:0.00bps Total-Rx:0.00bps Total-PPS:0.00pps Total-CPS:0.00cpsExpected-PPS:0.00pps Expected-CPS:0.00cps Expected-BPS:0.00bpsActive-flows:0Clients :0Socket-util : 0.0000 % Open-flows:0Servers :0Socket :0 Socket/Clients :-nan drop-rate:0.00bps current time: 63.5 sec test duration: 0.0 sec *** TRex is shutting down - cause: 'CTRL + C detected' All cores stopped !!Killing Scapy server... Scapy server is killedroot@ubuntu:/root/trex/v3.00###console启动Using 'python3' as Python interpeterConnecting to RPC server on localhost:4501[SUCCESS]Connecting to publisher server on localhost:4500[SUCCESS]Acquiring ports [0, 1]:[SUCCESS]Server Info:Server version:v3.00 @ STLServer mode:StatelessServer CPU:1 x Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHzPorts count:2 x 1Gbps @ 82545EM Gigabit Ethernet Controller (Copper)-=TRex Console v3.0=-Type 'help' or '?' for supported actionstrex>quitShutting down RPC clientroot@ubuntu:/home/ag/trex/v3.00#

推荐阅读