美文网首页
pkt-gen的dpdk版本安装

pkt-gen的dpdk版本安装

作者: 明翼 | 来源:发表于2021-04-29 21:56 被阅读0次

    一 安装

    1.1 安装依赖

    rpm -qa | grep numa
    numactl-2.0.12-11.el8.x86_64
    numactl-devel-2.0.12-11.el8.x86_64
    numactl-libs-2.0.12-11.el8.x86_64
    

    1.2 安装dpdk

    1.3 报错处理

    sed -i 's/PG_ETHER_TYPE_IPv4/RTE_ETHER_TYPE_IPV4/g'  /root/pktgen-dpdk/app/pktgen-stats.c
    sed -i 's/PG_ETHER_TYPE_IPv6/RTE_ETHER_TYPE_IPV6/g' /root/pktgen-dpdk/app/pktgen-stats.c
    

    二 make

    make && make install
    

    三 运行帮助

    命令行方式执行
    -P 和 -m 这两个参数是必要的!
    ./app/build/pktgen [EAL options] -- [-h] [-P] [-G] [-T] [-f cmd_file] [-l log_file] [-s P:PCAP_file] [-m ]
    
    -s P:  file    PCAP packet stream file, 'P' is the port number
    -f filename  Command file (.pkt) to execute or a Lua script (.lua) file 
    -l filename  Write log to filename  
    -P Enable PROMISCUOUS mode on all ports 
    -g address  Optional IP address and port number default is (localhost:0x5606)If -g is used that enable socket support as a server application       
    -G Enable socket support using default server values localhost:0x5606       
    -N Enable NUMA support 
    -T Enable the color output  
    --crc-strip  Strip CRC on all ports
    -h  Display the help information
    
    -c 用于指定运行程序的CPU内核掩码。研究了一下大概是这样的,假如我的虚拟机CPU有5个核,那么就按照 5 4 3 2 1来进行排位,然后从右自左,每4位组成一个16进制数值(二进制1111-> 0xf),不够的补0,算出分配给pktgen使用5个核的掩码就是0x1f,假设我们有10个核,想分配给pktgen使用8个,那么掩码就是0xff。
    -n 用来指定内存通道。
    -s  : 如果你想用pktgen发送pcap文件  例如 [-s P:PCAP_file]  -s 0 : 1.pcap     0表示在第0个网卡,1.pcap及文件名
    -f  : 在运行pktgen时可以运行指定的脚步文件,进行初始化配置
    -P  : 启动所有网卡,并进入混杂模式,想指定特定网卡 用 -p mask
    -G  : 让pktgen成为服务器,之后后可以进行远程控制 默认是 localhost:0x5606
    -g  : 让pktgen成为服务器,之后后可以进行远程控制 可以进行IP和端口的设置
    -m  : 指定lcore和port的映射关系
    

    四 运行

    运行转发

    ./dpdk-l2fwd -l 2 -m 128 --proc-type auto --file-prefix pg1 -- -p 02
    
    

    运行生成

      ./pktgen -l 0-2 -n 4 -b 02:06.0 -- -P -m "1.0" 
    set 0 dst mac 00:0c:29:cc:ff:ad 
    start 0 
    
    [https://blog.csdn.net/qq_41854763/article/details/88426972](https://blog.csdn.net/qq_41854763/article/details/88426972)
    
    

    查看mac地址:

    [root@localhost usertools]# ./dpdk-devbind.py  --bind=e1000 02:05.0
    [root@localhost usertools]# ./dpdk-devbind.py  --bind=e1000 02:06.0
    
    
    ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            ether 00:0c:29:cc:ff:a3  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            ether 00:0c:29:cc:ff:ad  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    

    相关文章

      网友评论

          本文标题:pkt-gen的dpdk版本安装

          本文链接:https://www.haomeiwen.com/subject/hmtgrltx.html