[dpdk-dev] [PATCH v5 0/9] Enable dynamic config of subport bandwidth

Savinay Dharmappa savinay.dharmappa at intel.com
Wed Sep 30 21:24:25 CEST 2020


DPDK sched library allows runtime configuration of the pipe profiles to the
pipes of the subport once scheduler hierarchy is constructed. However, to
change the subport level bandwidth, existing hierarchy needs to be
dismantled and whole process of building hierarchy under subport nodes
needs to be repeated which might result in router downtime. Furthermore,
due to lack of dynamic configuration of the subport bandwidth profile
configuration (shaper and Traffic class rates), the user application
is unable to dynamically re-distribute the excess-bandwidth of one subport
among other subports in the scheduler hierarchy. Therefore, it is also not
possible to adjust the subport bandwidth profile in sync with dynamic
changes in pipe profiles of subscribers who want to consume higher
bandwidth opportunistically.

This patch series implements dynamic configuration of the subport bandwidth
profile to overcome the runtime situation when group of subscribers are not
using the allotted bandwidth and dynamic bandwidth re-distribution is
needed the without making any structural changes in the hierarchy.

The implementation work includes refactoring the existing api and
data structures defined for port and subport level, new APIs for
adding subport level bandwidth profiles that can be used in runtime

Savinay Dharmappa (9):
  sched: add support profile table
  sched: add subport profile add api
  sched : add dynamic config of subport bandwidth
  sched: update grinder credit and pipe config function
  example/qos_sched: add dynamic config of subport
  example/ip_pipeline: add dynamic config of subport
  drivers/softnic: add dynamic config of subport
  app/test_sched: add dynamic config of subport
  sched : remove redundant code

 app/test/test_sched.c                         |  17 +-
 doc/guides/rel_notes/deprecation.rst          |   6 -
 doc/guides/rel_notes/release_20_11.rst        |   4 +
 .../net/softnic/rte_eth_softnic_internals.h   |  18 +-
 drivers/net/softnic/rte_eth_softnic_tm.c      | 224 ++++--
 examples/ip_pipeline/cli.c                    |  17 +-
 examples/ip_pipeline/tmgr.c                   |  53 +-
 examples/ip_pipeline/tmgr.h                   |   7 +-
 examples/qos_sched/cfg_file.c                 | 151 ++--
 examples/qos_sched/cfg_file.h                 |   4 +
 examples/qos_sched/init.c                     |  21 +-
 examples/qos_sched/main.h                     |   1 +
 examples/qos_sched/profile.cfg                |   3 +
 lib/librte_sched/rte_sched.c                  | 701 ++++++++++++------
 lib/librte_sched/rte_sched.h                  |  74 +-
 lib/librte_sched/rte_sched_version.map        |   2 +
 16 files changed, 891 insertions(+), 412 deletions(-)

-- 
2.17.1



More information about the dev mailing list