这个错误信息提示在 DPDK(Data Plane Development Kit)中,使用了一个不合法的 RSS_HF(Hash Function)配置值。
RSS 是 DPDK 中常用的数据包负载均衡技术。它可以根据数据包头部的一定字段(如源 IP 地址、目的 IP 地址、协议号等),计算出一个哈希值,并将数据包发送到对应的接收队列上。因此,为了正确使用 RSS 技术,需要先进行 RSS 配置。
在 DPDK 中,通过 rte_eth_dev_configure() 函数来配置以太网设备。其中有一个参数 rss_hf 用于指定哈希函数计算时所考虑的字段。该参数是一个位掩码,不同位表示不同字段是否参与哈希计算。具体来说:
- 第 0 位表示是否启用 IPv4 源地址。
- 第 1 位表示是否启用 IPv4 目的地址。
- 第 2 位表示是否启用 IPv4 协议号。
- 第 3~6 位保留。
- 第 7~15 位依次表示是否启用 TCP/UDP 源端口和目的端口。
因此,当 rss_hf
的值为 0x7ef8
(二进制为 0111 1110 11111000
)时,表示开启了所有可支持的 RSS 字段。而当该值为 0x1
(二进制为 0000 0000 ...0001
)时,则只启用了 IPv4 源地址,这显然是不合法的。
因此,当 DPDK 程序运行时出现 “Ethdev port_id=0 invalid rss_hf: 0x1, valid value: 0x7ef8” 这样的错误提示时,说明在对端口进行 RSS 配置时,使用了一个不合法的 rss_hf 参数值。需要将该参数设置为正确的值才能正常使用 RSS 技术。