This patchset refactors the dpdk qos sched library to allow subport level configuration flexibility of the pipe nodes.
Currently, all parameters for the pipe nodes (subscribers) configuration are part of the port level structure which forces all groups of subscribers (pipes) in different subports to have similar configurations in terms of their number, queue sizes, traffic-classes, etc. The new implementation moves pipe nodes configuration parameters from port level to subport level structure. This allows different subports of the same port to have different configuration for the pipe nodes, for examples- number of pipes, queue sizes, pipe profiles, etc. In order to keep the implementation complexity under control, all pipes within the same subport share the same configuration for queue sizes. v5: - remove patches on 64-bit values support, sent separately v4: - remove deprecation note - rebase on current dpdk head - add 64-bit values support v3: - improve doxygen comments v2: - fix qsize parsing in sample application - fix checkpatch warnings Jasvinder Singh (15): sched: add pipe config params to subport struct sched: modify internal structs for config flexibility sched: remove pipe params config from port level sched: add pipe config to subport level sched: modify pipe functions for config flexibility sched: modify pkt enqueue for config flexibility sched: update memory compute to support flexiblity sched: update grinder functions for config flexibility sched: update pkt dequeue for flexible config sched: update queue stats read for config flexibility test/sched: modify tests for subport config flexibility net/softnic: add subport config flexibility to TM ip_pipeline: add subport config flexibility to TM examples/qos_sched: add subport configuration flexibility sched: remove redundant code app/test/test_sched.c | 35 +- doc/guides/rel_notes/release_19_11.rst | 7 +- drivers/net/softnic/rte_eth_softnic_tm.c | 54 +- examples/ip_pipeline/cli.c | 71 +- examples/ip_pipeline/tmgr.c | 25 +- examples/ip_pipeline/tmgr.h | 7 +- examples/qos_sched/app_thread.c | 20 +- examples/qos_sched/cfg_file.c | 229 ++-- examples/qos_sched/init.c | 54 +- examples/qos_sched/main.h | 1 + examples/qos_sched/profile.cfg | 5 +- examples/qos_sched/profile_ov.cfg | 5 +- examples/qos_sched/stats.c | 44 +- lib/librte_sched/Makefile | 2 +- lib/librte_sched/meson.build | 2 +- lib/librte_sched/rte_sched.c | 1394 +++++++++++++--------- lib/librte_sched/rte_sched.h | 129 +- lib/librte_sched/rte_sched_version.map | 2 +- 18 files changed, 1213 insertions(+), 873 deletions(-) -- 2.21.0