简介
Testpmd是dpdk自带的测试工具,也可以被看做一个APP。当运行testpmd时,可以展示和验证网卡支持的各种PMD相关功能。
1-testpmd的基础代码
包括testpmd的启动运行,参数解析,设备的检测和配置。包括如下文件
config.c //这个文件名可能有些误导。实际上,这个文件中包含的是UI相关的配置和显示的代码 cmdline.c bpf_cmd.c cmdline_flow.c cmdline_mtr.c cmdline_tm.c
2-转发功能代码
为了方便对PMD功能的测试,testpmd中预设了若干种不同的转发模式。不同的转发模式意味着testpmd对收到的包进行了不同的处理,然后将其发送甚至是丢弃
//转发模式的设计是一种简化问题的思路。 //简单的切换转发模式可以规避复杂的难以实现的配置。 //包括以下文件,每个文件是一种单独的转发模式 csumonly.c flowgen.c icmpecho.c ieee1588fwd.c iofwd.c macfwd.c macswap.c rxonly.c softnicfwd.c txonly.c
基础代码
Main函数
testpmd的执行过程
rte_eal_init :对DPDK运行环境的初始化
set_def_fwd_config :进行转发相关的默认配置。
1,set_default_fwd_lcores_config
- 实际上是对配置的逻辑core的信息进行记录,包括socket相关的信息
2, set_def_peer_eth_addrs
- 设置了一个默认的以太网地址,用于转发时填写以太帧头的目的地址
3, set_default_fwd_ports_config
- 简单的将前面解析出来的port的信息记录下来。主要是明确有几个port,以便后续的处理。
launch_args_par