.. index:: pair: group; Update the RSS hash configuration .. _doxid-group__usecases-update__rss__hash__conf: Update the RSS hash configuration ================================= .. toctree:: :hidden: group_usecases-update_rss_hash_conf-run.rst Update the RSS hash configuration Make sure that the RSS configuration updating is successful #. Initialise the Ethernet device to get device information #. Check if required number of Rx queues is supported #. Setup RX configuration to work in RSS mode #. Enable RSS_HASH offload if it is supported #. Commence configuration with generating a random hash key #. Specify all of the advertised flags in the hash proto mask #. Start the Ethernet device #. Try to update hash configuration via the dedicated API #. On error, lead the ethdev to state ``TEST_ETHDEV_INITIALIZED`` #. If needed, fill out ``rx_adv_conf`` and redo steps 7 and 8 #. If needed, apply parameter **rss_hash_protos** and redo step 8 #. Query the RSS hash configuration and check that the new configuration was successfully updated Skip this step, if RSS hash configuration query is not supported #. Prepare a packet by **tmpl** to check the RSS hash coniguration by the packet sending #. Query the RETA. Use default one if query operation is not supported #. Calculate the packet hash, using the Toeplitz function and the new hash key #. Determine the queue index by means of the hash #. Ensure that interface is UP on Tester side #. Transmit the packet from **tst_if** #. Try to receive the packet on **expected_queue** #. If the packet has not hit the target queue, consider symmetric RSS hash. #. Make sure that the packet received matches the packet sent #. Check RSS hash value if it is available #. Check other Rx queues to collect diagnostics .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - tmpl - The template of packet * - nb_rx_queues - The number of RX queues * - rss_hash_protos - Bitmask of RSS hash protocols | :ref:`update_rss_hash_conf`