zoukankan      html  css  js  c++  java
  • pktgen使用说明(转发)

    Pktgen-DPDK使用说明
    安装配置
    获取源码
    # cd<InstallDir>
    # exporthttps_proxy=https://proxy.austin.hp.com:8080
    # gitclone https://github.com/pktgen/Pktgen-DPDK.git
    Ubuntu14.04,pktgen2.7.7 ,DPDK1.7.1
    注:Pktgen-DPDK/dpdk/example目录中包含有pktgen源码

    编译安装
    Build DPDK
    1.      设置运行时环境

    # sudo apt-get install libpcap-dev
    # export RTE_SDK=<installDir>/Pktgen-DPDK/dpdk
    # export RTE_TARGET=x86_64-pktgen-linuxapp-gcc
    2.      编译安装

    # cd $RTE_SDK
    # ./tools/setup.sh
    选择安装x86_64-pktgen-linuxapp-gcc,然后配置hugepagemappings for non-NUMA systems。安装成功后在dpdk目录下会出现x86_64-pktgen-linuxapp-gcc文件夹。

    Build pktgen
    1.      编译安装

    构建pktgen时确保RTE_SDK、RTE_TARGET两个环境变量的值(同dpdk配置)存在有效。

    # cd examples/pktgen

    # make

    2.      配置脚本

    在pktgen目录下,setup.sh和doit.sh两个脚本文件需要根据自身系统来配置。

    # lspci | grep Ethernet //
    查看以太网端口信息
    # name=`uname -n`       //
    获取主机名
    setup.sh脚本主要用来a.检查环境变量和hugepages的设置; b.加载uio、igb_uio和rte_kni三个模块;c.绑定绑定网卡。在环境变量设置正确的情况下b会正确执行。需要手动配置的是c,绑定网卡。如node3上的配置:

    name=`uname -n`
    if [ $name == "node3" ]; then
    $sdk/tools/dpdk_nic_bind.py -b igb_uio 01:00.0 06:00.0
    fi
    doit.sh脚本是设置pktgen运行参数并启动

    name=`uname -n`
    if [ $name == "node3" ]; then
    ./app/build/pktgen -c f -n 3 --proc-type auto --socket-mem 256,256 --file-prefix pg -b 0000:00:19.0  -- -T -P -m "[1:3].0, [2:4].1" -f test/set_seq.lua
    fi
    注:

    -c                是指选择的core的掩码,f等于1111也就是选择  1 、 2 、3 core; 

    --proc-type        选择的auto  ,如果是当前系统第一执行的dpdk相关的程序,选择primary模式,如果是第二是secondary 模式;

    --file-prefix  pg    设置/mnt/huge/内存分配模块的文件名前缀;

    -p 0x14          0x14等于    00010100  , 选择你当前系统的其中2块intel相关网卡端口;

    -P               使能网络混装模式,

    -m "2.0, 3.1"       是指一个矩阵模型,2.0是指,在2号lcore上绑定的端口0 , 3.1是指在lcore3上绑定端口1

    -f test/set_seq.lua  导入pktgen的执行配置文件;在执行pktgen时,利用配置产生数据包;

    安装指导:https://github.com/Pktgen/Pktgen-DPDK/

    测试举例
     +-----------+          +-----------+

       |node0    |          | node3     |

       |       eth1 +--------+ eth2      |

       |            |          |            |

       |            |          |            |

       +-----------+          +-----------+

    Eth1与Eth2网线直连,node0和node3编译安装dpdk和pktgen。在dpdk/example/pktgen/目录下先后执行setup.sh和doIt.sh.

    Pktgen参数选择及运行时命令文档:http://pktgen.readthedocs.org/en/latest/commands.html

    执行./setup.sh输出如下:

    执行./doit.sh输出如下

    在node3一端执行

    Pktgen>start 0   //
    端口
    0
    开始发包
    通过当前窗口可以监控发包状态

    Node0一端可以查看端口2的收包状态
    ————————————————
    版权声明:本文为CSDN博主「jhxifeng」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/jhxifeng/article/details/45101805

  • 相关阅读:
    Excel导入
    Git 操作命令
    java线程池
    jquery 初始化数据 添加html 第一次玩0.0
    设计模式六大原则之二:里氏替换原则
    升级指令
    strtok和strtok_r(转载)
    docker进阶之路-基础篇 | 二:portainer安装与基本使用
    docker进阶之路-基础篇 | 一:环境搭建
    集群式Quartz定时任务框架实践
  • 原文地址:https://www.cnblogs.com/gaosq/p/12666678.html
Copyright © 2011-2022 走看看