dpdk-pktgen简单使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dpdk-pktgen简单使用相关的知识,希望对你有一定的参考价值。

参考技术A 这一步之前,DPDK环境已塔好,pktgen已编译成功,网卡已绑定成功等一系列初始化工作已完成。

命令行参数:-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

参数中,最复杂的是 -m <string>

-m  <string> 配置端口到逻辑核的映射关系,使用类似BNF类语法.映射的逻辑核要与 [EAL options]中的逻辑核要一致。

如下,也可以用 来代替 [].

[EAL options]里的参数与DPDK基本一样,主要是配置逻辑核掩码和内存通道数。这里不详解。以上是命令行参数,下面介绍运行时参数。

详细可参考官网中的资料: pktgen运行时参数

Pktgen:/> help #有帮助提示

这里只介绍最常用的命令,最常用的配置就是MAC,IPv4|IPv6|ARP,TCP|UDP|ICMP,SPORT|DPORT,PROTO,SEQ等

这些配置可以用 set命令来完成。

除了set命令,常用的还有显示主页面,page 0  | page main

加载和保存 .lua脚本的配置信息  load | save <path-to-file>

启动/结束发包:start | stop <portlist>.

其实不用刻意去记命令怎么使用,按两次Tab键会有命令使用的提示。我现在用的是版本是3.1.2,最新版已到了3.5.0,所以一些配置命令会有些不一样,比如配置ip时,<portlist>的顺序就不一样。以上配置是基于最新版来的,如果在实际中发现按上面的命令不对,请先确认是否为最新版.其实只要大致记住一些命令就行,实际使用时可以按两次Tab键就会有提示,也可以把配置保存成.lua文件,下一次运行时候,直接加载就不用再配置了。由于对lua脚本不太熟,关于lua脚本的使用,等使用熟悉了再来深入讨论一些功能。最后,放一张运行时候的图来压压惊。。。

运行命令:./app/app/x86_64-native-linuxapp-gcc/pktgen -l 1-4 -n 4 -- -P -T -m "[1:2].0,[3:4].1"

祝大家生活愉快。

idea自我使用简单使用方式和出现的一些简单问题以及常用快捷键

首先配置完Idea的简单使用步骤后,今天在使用Idea时,一直持续提示web项目404的错误提示,因为之前使用idea时,部署的是springBoot的项目,使用的是SpringBoot自带的Tomcat插件构建直接启动的项目,所以一直没有使用到Idea中配置的Tomcat,今天出现问题解决后决定简单的记录一下这种错误的出现原因,

首先Idea中File -->找到ProjectStructure 然后单击打开,快捷键(Ctrl+Alt+Shift+S),页面如图下所示:

讲真写博客是比较浪费时间的,因为一些 步骤或者技术你本身感觉已经掌握了以后,还再描述出来,的确是个挺费时的事情,并且现在还是在下班时间~唉~,简单记录一下吧,后续需要的话也可以简单的看一下,哈哈,OK继续吧,

简单的提一下:

此处这里的Project Structure是这个项目的整体资源的查看器,你可在此处获取该项目的输出目录,更改项目的JDK版本,查看并管理当前该项目的所有的引用和依赖项,以及当前 web所对应的所有 jar包的信息等,话句话说,你想要获取的当前项目的所有信息,一般情况下在这个目录是 都可以看到的,因为这个页面的名字叫做Project Structure 哈哈(也就是(项目结构的意思))所以在此处一般 可以获取该当前项目的所有 结构信息一般是没有问题的~, 哈  啊哈 

OK 故事还要继续,

 

---恢复内容结束---

首先配置完Idea的简单使用步骤后,今天在使用Idea时,一直持续提示web项目404的错误提示,因为之前使用idea时,部署的是springBoot的项目,使用的是SpringBoot自带的Tomcat插件构建直接启动的项目,所以一直没有使用到Idea中配置的Tomcat,今天出现问题解决后决定简单的记录一下这种错误的出现原因,

首先Idea中File -->找到ProjectStructure 然后单击打开,快捷键(Ctrl+Alt+Shift+S),页面如图下所示:

讲真写博客是比较浪费时间的,因为一些 步骤或者技术你本身感觉已经掌握了以后,还再描述出来,的确是个挺费时的事情,并且现在还是在下班时间~唉~,简单记录一下吧,后续需要的话也可以简单的看一下,哈哈,OK继续吧,

简单的提一下:

此处这里的Project Structure是这个项目的整体资源的查看器,你可在此处获取该项目的输出目录,更改项目的JDK版本,查看并管理当前该项目的所有的引用和依赖项,以及当前 web所对应的所有 jar包的信息等,话句话说,你想要获取的当前项目的所有信息,一般情况下在这个目录是 都可以看到的,因为这个页面的名字叫做Project Structure 哈哈(也就是(项目结构的意思))所以在此处一般 可以获取该当前项目的所有 结构信息一般是没有问题的~, 哈  啊哈 

OK 故事还要继续,

 

此处看到该页面是当前Project Structure 界面中的Project选项中,此处该选项包含设置当前Project的名称,以及设置 当前项目的jdk的版本,还有第三个框Project  Language level

此处这个似乎,似乎是表示设置,当前该web项目的最低支持的jdk的版本吧?此处不是很肯定暂做记载,后续清楚后再进行更改,因为没有出现过这个类型的错误 ,所以目前 也不是很清除,,哈哈~,后续这篇的随手文章一定要改的,哈哈,BG 太低,O(∩_  ~,然后最后一个框Project compiler output表示当前项目的编译后的输出目录,

此处当前该页面表示为当前Project Structure 的Modules选项,也即项目的模块管理,此处当前项目也属于表示为一个模块,

此处可以选中项目下方指定的文件夹,然后点击Mark as :后面的文件夹标识,便可设置将当前文件夹设置 为不同的类型,分别有:

Mark as: ---> Sources , Tests , Resources , Test REsources ,  Excluded 等,将对应的文件夹设置不同的类型,则Idea 对此 不同的文件夹的编译方式则也会有所不同。

此处上方选项卡,点击Paths选项

此处显示 并可设置项目的输出 路径,

其中第三个选项卡,Dependencies

表示显示当前该项目中的所有引用,所引用的数据可以是资源也可以是jar包 ,也或者是另外的module等,此处Export 所对应的列

如果被点击选中,则表示将来如果其他的modul引用了当前该module时,则被选中的项也将会出现在另外一个module中,即表示依赖之间有一个传递性;

当然此处也可以增加项目中的module模块:如下所示,

 

也可在该Module选项卡中添加所对应的Hibernate , Spring等其他idea已经自动集成的项目模块(此处简单提一下,简单略过)

此处第三个左侧选项卡:Libraries表示当前项目中所对应的lib 库数据:操作也相对简单提一下:

此处可以使用上方+号添加新的库方案:

比如 :Maven,或其他jar包等,

此处所显示的jar包详情中,使用上方的三个+号和 一个 减(--)号分别表示,第一个+:表示选择其他本地文件夹下的jar包 ,然后添加到当前项目中,

第二个(+):则表示给定一个互联网jar包位置,然后使用到当前项目中

哇塞,此处比较有意思的应该是:左侧选项卡面板中的Factes以及Artifacts,终于算是到了~

以上是关于dpdk-pktgen简单使用的主要内容,如果未能解决你的问题,请参考以下文章

RocksDB简单使用

JWT简单使用

Timer 的简单使用

Yaml的简单说明与使用

Jvisualvm简单使用

PromQL的简单使用