原文链接:TestPmd转发模式官方英文文档
TestPMD的设置转发模式命令:
testpmd> set fwd (io|mac|macswap|flowgen| rxonly|txonly|csum|icmpecho|noisy) (""|retry)
除rx_only模式外的其他几种转发模式都可以指定retry参数
各种转发模式的说明如下:
- io: 使用I/O模式转发报文,这是TestPmd的默认转发模式。在此模式下,一个CPU核从一个port(Rx)接收报文并转发给宁外一个port(Tx),同一个端口可以同时接收和转发报文,因为此模式不对报文数据进行处理,所以是最快的转发模式。
- mac: 在转发报文前修改报文的源MAC地址和目的MAC地址。默认的行为是将源MAC地址设置为转发接口的MAC地址,将目的MAC地址设置为预设的MAC地址,用户可以通过“eth-peer”或“eth-peers-configfile”命令参数,在程序启动时配置预设MAC地址。目前还不支持对源MAC地址进行预设。
- macswap: MAC交换转发模式,在转发报文之前交换报文的源MAC地址和目的MAC地址
- flowgen: 多数据流生成模式,根据不同的目的IP地址生成一组数据流,同时终结接收到的流量
- rxonly: 只接受报文,不会进行转发
- txonly: 只产生并发送报文,不接收任何报文
- csum: 根据报文的offload标记,通过硬件或软件方法修改报文的checksum字段
- icmpecho: 接收一组报文,查找是否有ICMP echo请求,如果有,就回应ICMP echo reply
- ieee1588: 演示对Rx和Tx基于L2 IEEE1588 V2 PTP时间同步特性,需要配置CONFIG_RTE_LIBRTE_IEEE1588=y.
- softnic: 演示软网卡的转发操作,在此模式下,报文转发和I/O模式相似,区别在于实际上报文只在loopback软网卡接口上转发。因此,portmask参数只能设置为软网卡端口。各种基于softnic固件(DPDK packet framework script)指定的自定义NIC软件网卡可以在此模式下进行测试,除此之外,还可以通过CLI使能,生成5级的QoS调度器作为默认的选项。用户可以修改默认的调度器或者通过CLI指定新的QoS调度器,此模式需要配置CONFIG_RTE_LIBRTE_PMD_SOFTNIC=y.
- noisy: 噪音环境模拟,模拟多个真实客户机器的行为,接收和发送VNF(Virtual Network Function)报文