the original number of rx queue is 16,increase to 22,the increase queue can't receive packets.eth config as follows,I have print the reta table and queue seems setting are right.
static struct rte_eth_conf port_conf_def = {
.rxmode = {
.mq_mode = ETH_MQ_RX_RSS,
.max_rx_pkt_len = RTE_ETHER_MAX_LEN,
.split_hdr_size = 0, /**< hdr buf size */
.offloads = DEV_RX_OFFLOAD_IPV4_CKSUM,
},
.rx_adv_conf = {
.rss_conf = {
.rss_key = rss_intel_key,
.rss_key_len = 40,
.rss_hf = ETH_RSS_PROTO_MASK,
},
},
.txmode = {
.mq_mode = ETH_MQ_TX_NONE,
},
.fdir_conf = {
.mode = RTE_FDIR_MODE_PERFECT,
.pballoc = RTE_FDIR_PBALLOC_64K,
.status = RTE_FDIR_REPORT_STATUS/*_ALWAYS*/,
.mask = {
.vlan_tci_mask = 0x0,
.ipv4_mask = {
.src_ip = 0x00000000,
.dst_ip = 0x0,
},
.ipv6_mask = {
.src_ip = { 0, 0, 0, 0 },
.dst_ip = { 0, 0, 0, 0 },
},
.src_port_mask = 0x0000,
/* to be changed according to slave lcore number in use */
.dst_port_mask = RTE_BE16(0x00FF),
.mac_addr_byte_mask = 0x00,
.tunnel_type_mask = 0,
.tunnel_id_mask = 0,
},
.drop_queue = 127,
.flex_conf = {
.nb_payloads = 0,
.nb_flexmasks = 0,
},
},
};
Using DPDK sample programs like testpmd, skeleton, l2fwd we can increase the RX queue for Phsycial Function (PF) from 1 to 32 without any issues. NIC used for testing are Physical Intel Fortville and Columbiaville.
But for virtual NIC like PCAP, TAP and TUN this is not possible as max queue are intizliaed by OS and driver.
Note: requested multiple times to @IdeaWi for details on NIC, OS, and firmware. There are no updates .
User contributions licensed under CC BY-SA 3.0