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. Acked-by: Cristian Dumitrescu <cristian.dumitre...@intel.com> v3: - improve doxygen comments - remove n_max_pipe_profiles parameter from struct rte_sched_port_params - rename n_max_pipes_per_subport in struct rte_sched_port_params to n_pipes_per_subport - rename n_pipes_per_subport in struct rte_sched_subport_params to n_pipes_per_subport_enabled - rename rte_sched_port_pipe_profile_add() to rte_sched_subport_pipe_profile_add() 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 shced: 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 | 6 +- 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, 1212 insertions(+), 873 deletions(-) -- 2.21.0