OVERVIEW -------- 1) Setting .rxmode.mq_mode for bonding device to ETH_MQ_RX_RSS makes bonding device fully RSS-capable, so all slaves are synchronized with its configuration. This mode is intended to provide RSS configuration as known from "dynamic RSS configuration for one port" and made slaves transparent for client application implementation.
2) If .rxmode.mq_mode for bonding device isn't ETH_MQ_RX_RSS, slaves are not synchronized. That provides an ability to configure them manually. This mode may be useful when application wants to manage RSS in an unusual way and the consistency of RSS configuration for slaves isn't required. Turning on/off RSS mode for slaves when bonding is started is not possible. Other RSS configuration is propagated over slaves, when bonding device API is used to do it. v3 changes: - checkpatch cleanups v2 changes: - added support for keys other than 40 bytes long, - now, if RSS key is not set for bonding, it is not set also for slaves, - fix - full initial RSS configuration before any slave is added was not possible due to the initially zeroed flow_type_rss_offloads for bonding, - fix - changed error to warning when slave is synchronizing due to the bonding's initial configuration (to allow use slaves' drivers not supporting dynamic RSS configuration in bonding), - some code cleanups, - updated documentation, Tomasz Kulasek (8): bonding: rss dynamic configuration ring: dynamic rss configuration test: dynamic rss configuration bonding: queue stats mapping ring: queue stats mapping set dummy implementation examples: dynamic rss configuration for bonding doc: fixed spellings and typos doc: dynamic rss configuration for bonding app/test/Makefile | 1 + app/test/test_link_bonding_rssconf.c | 674 ++++++++++++++ .../prog_guide/link_bonding_poll_mode_drv_lib.rst | 42 +- drivers/net/bonding/rte_eth_bond_api.c | 28 + drivers/net/bonding/rte_eth_bond_pmd.c | 235 ++++- drivers/net/bonding/rte_eth_bond_private.h | 12 + drivers/net/ring/rte_eth_ring.c | 130 ++- examples/bond_rss/Makefile | 59 ++ examples/bond_rss/bondrss.c | 293 ++++++ examples/bond_rss/bondrss.h | 163 ++++ examples/bond_rss/config.c | 251 ++++++ examples/bond_rss/ui.c | 945 ++++++++++++++++++++ 12 files changed, 2808 insertions(+), 25 deletions(-) create mode 100644 app/test/test_link_bonding_rssconf.c create mode 100644 examples/bond_rss/Makefile create mode 100644 examples/bond_rss/bondrss.c create mode 100644 examples/bond_rss/bondrss.h create mode 100644 examples/bond_rss/config.c create mode 100644 examples/bond_rss/ui.c -- 1.7.9.5