Deferred start RX queue test
Deferred start of random RX queue and checking that it works properly
Make sure that if we use deferred start on randomly chosen queue, then this queue actually will not receive packets until we do it manually
Prepare n_rxq RX queues and set deffered flag randomly
Initialise the port in order to obtain RSS capabilities
Check maximum number of Rx queues
Prepare desired RSS hash configuration
Lead the ethdev to state
TEST_ETHDEV_CONFIGURED
Start the Ethernet device
Retrieve information about chosen RX queue and make sure that the rx_deferred_start flag is set Ignore this check if rx_queue_info_get function is not supported
Prepare tmpl for test
Establish effective RSS hash configuration
Get RSS Redirection Table. If the corresponding RPC is not supported, use default Redirection Table
Change tmpl to be sure that packet will be received on the deferred_queue queue using Redirection Table and RSS hash configuration
Ensure that interface is UP on Tester side
Transmit and sniff packet from tst_if
Try to receive packets on deferred_queue queue Check that iut_port hasn't received any packets on deferred_queue queue
Start deferred_queue RX queue
Check that the deferred_queue RX queue have no packets received
Transmit and sniff packet from tst_if
Receive packet on deferred_queue queue
If the packet has not hit the target queue, consider symmetric RSS hash. Change the template so that it will produce a packet hitting the target queue in terms of symmetric hash. Then try to send and capture it again.
Check that the received packet matches the sent one from tst_if
Stop deferred_queue RX queue
Retrieve information about RX queue and make sure that the rx_deferred_start flag is set after stopping deferred_queue RX queue Ignore this check if rx_queue_info_get function is not supported
Parameters:
tmpl |
Traffic template |
n_rxq |
The number of RX queues |