Setup Tx queue when device is started

Setup Tx queue when device is started

Make sure that it is possible to setup a Tx queue when the Ethernet device is started

  1. Check runtime Tx queue setup capability

  2. Check maximum number of Tx queues

  3. Configure Ethernet device

  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 mbufs to send and pattern to match from tmpl_pri

  8. Create Ethernet-based CSAP

  9. TST: start listening to network

  10. Ensure that interface is UP on Tester side

  11. Validate and transmit one packet from already started Tx queues on iut_port

  12. Receive packets on iut_port Check that the port has received packets from every started Tx queue, and these packets match the packets sent from iut_port

  13. Setup the queues marked for runtime setup

    • Restart the device after setup of every queue to start all Tx queues that were setup previously except for deferred start queues. Also make sure that the current state of the queues does not cause device start and stop failures

  14. Prepare mbufs to send and pattern to match from tmpl_sec

  15. TST: start listening to network

  16. Validate and try to transmit the packet from iut_port from txq_deferred_start_ids Tx queues

  17. Check that iut_port port hasn't transmitted any packets

    • TST: check that no packets arrived

  18. Start deferred queues

  19. TST: continue listening to network

  20. Validate and transmit one packet from every Tx queue on iut_port

  21. Receive packets on iut_port Check that the port has received packets from every Tx queue, and these packets match the packets sent from iut_port

  22. Check that no extra packets are received on Tester

Parameters:

nb_txq

Tx queue count

tmpl

Traffic template

txq_runtime_setup_ids

Indices of queues that will be setup and started at run time

txq_deferred_start_ids

Indices of queues that will be started at run time