Setup Rx queue at runtime

Setup Rx queue when device is started, perform the check using RSS

Make sure that it is possible to setup a Rx queue when the Ethernet device is started. Perform the check using RSS RETA.

  1. Configure the Ethernet device

  2. Prepare desired RSS hash configuration

  3. Check for Rx queue runtime setup capability

  4. Setup the queues that were not marked for runtime setup

  5. Start the device

  6. Stop and start the device again to make sure that the device can be stopped while some of its queues are not set up

  7. Prepare tmpl for test

  8. Get default RETA configuration which implies that all queues are setup

  9. Prepare template for packets which would have been received on rxq_runtime_setup_idx queue if RETA had been configured by default

  10. Establish effective RSS hash configuration

  11. Configure RETA to redirect all packets to only setup queues

  12. Ensure that interface is UP on Tester side

  13. Check that a packet with the prepared template is received on one of the setup queues

  14. Setup the rxq_runtime_setup_idx queue

  15. Restart the device to start all Rx queues except rxq_runtime_setup_idx queue if deferred_start is TRUE. Also make sure that the current state of the queues does not cause device start and stop failures

  16. Start the rxq_runtime_setup_idx queue if deferred_start is TRUE

  17. Reset RETA to default state

  18. Check that a packet with the prepared template is received on the rxq_runtime_setup_idx queue

Parameters:

tmpl

Traffic template

nb_rxq

Rx queue count

rxq_runtime_setup_idx

Index of the queue that will be setup and started at run time

deferred_start

Does the runtime setup queue need to be marked as deferred