Traffic is only received on RX queue 0.  Anyone run into this?  The link 
partner shows traffic received and transmitted on all configured queues (16 in 
this case) so I don't think the link partner is dropping traffic in such a way 
that the remaining traffic flows to a single RX queue on the SUT.

This normally means the RSS is not distributing the RX traffic to the others, 
which means the RX traffic is not varied enough to make RSS distribute the 
traffic. That would be my best guess I have not used the Mellanox cards.

Remember that the traffic is being generated by pktgen. Is there something I can improve with the "range" commands I used to start the test? When I review the extended statistics from testpmd's "show port xstats all" command I see that traffic is being distributed correctly when received by the SUT (i.e. each per RX queue statistic is incrementing and is about the same value). And the SUT uses the same MLX5 adapter that the pktgen host does.

Similarly, the per TX queue statistic is incrementing as well, suggesting that the traffic is being looped back to the pktgen host. If there's a problem with RSS it would appear to be on the pktgen host side. Is that expected?

I haven't looked into how RSS is enabled with DPDK but it looks like pktgen operates differently with respect to RSS on different versions of DPDK. Does the following code snippet mean that RSS isn't enabled by pktgen on my build of DPDK v18.11?

app/pktgen-port-cfg.c:

    41 static struct rte_eth_conf default_port_conf = {$
    42 #if RTE_VERSION <= RTE_VERSION_NUM(18, 5, 0, 0)$
    43 | .rxmode = {$
    44 | | .mq_mode = ETH_MQ_RX_RSS,$
    45 | | .max_rx_pkt_len = ETHER_MAX_LEN,$
    46 | | .split_hdr_size = 0,$
    47 | | .ignore_offload_bitfield = 1,$
    48 | | .offloads = (DEV_RX_OFFLOAD_CRC_STRIP |$
    49 | | |      DEV_RX_OFFLOAD_CHECKSUM),$
    50 | },$
    51 | .rx_adv_conf = {$
    52 | | .rss_conf = {$
    53 | | | .rss_key = NULL,$
    54 | | | .rss_hf = ETH_RSS_IP,$
    55 | | },$
    56 | },$
    57 | .txmode = {$
    58 | | .mq_mode = ETH_MQ_TX_NONE,$
    59 | },$
    60 #else$
    61 | .rxmode = {$
    62 | | .split_hdr_size = 0,$

Dave

Reply via email to