背景
最近在做将基于dpdk-16.11.1开发的程序,转移到基于dpdk-18.11版本下开发。遇到了网卡RSS配置的问题,在这里纪录一下。
问题
dpdk-16.11.1
在dpdk-16.11.1上的程序如下:
static uint8_t rss_intel_key[40] = { 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A};static const struct rte_eth_conf port_conf ={
.rxmode={
.mq_mode=ETH_MQ_RX_RSS,
.split_hdr_size= 0,
.header_split= 0, /**< Header Split disabled*/.hw_ip_checksum= 0, /**< IP checksum offload disabled*/.hw_vlan_filter= 0, /**< VLAN filtering disabled*/.jumbo_frame= 0, /**< Jumbo Frame Support disabled*/.hw_strip_crc= 0, /**< CRC stripped by hardware*/},
.rx_adv_conf={
.rss_conf={
.rss_key=rss_intel_key,
.rss_hf=ETH_RSS_PROTO_MASK,
},
},
.txmode={
.mq_mode=ETH_MQ_TX_NONE,
},
};
rte_eth_dev_configure函数声明
intrte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_queue,
uint16_t nb_tx