配置DPDK

使用本特性前请确保已经按照独立部件场景下安装的方式获取并安装DPDK特性包。

DPDK是一个用于快速数据包处理的函数库与驱动集合,它允许开发者绕过操作系统的内核,直接在用户态进行数据包处理。通过将网络设备纳管到DPDK,可以提升数据包处理速度,减少处理器负载,优化数据平面应用程序的性能。

  1. 执行如下命令查询当前网络设备基本信息。

    hinicadm3 info

  2. 执行如下命令绑定网络设备到DPDK用户态驱动,此处以绑定eth19为例。

    dpdk-devbind.py -b igb_uio 0000:86:00.0

  3. 执行如下命令查看DPDK绑定结果。

    dpdk-devbind.py -s

  4. 执行如下命令再次查看当前网络设备信息。

    hinicadm3 info

    从回显信息可以查到,由于eth19已被DPDK用户态纳管,因此系统已看不到该网络设备。

  5. 如果需要取消DPDK纳管,可以执行以下命令。

    dpdk-devbind.py -b hisdk3 0000:86:00.0

  6. 执行如下命令启动testpmd。

    dpdk-testpmd -- --rxq=32 --txq=32 --rxd=1024 --txd=1024 -i

  7. 执行如下命令关闭混杂、停止网口设备。

    set promisc all off

    port stop all

    set fwd rxonly

    set verbose 1

    port start all

    start

  8. 执行如下命令下发流表规则。

    flow create port_index ingress pattern eth / ipv6 / udp / vxlan / tcp dst is 990 / end actions queue index 3 / end

  9. 执行如下命令查询当前port规则。

    flow list port_index

  10. 执行如下命令删除规则。

    flow flush port_index