From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 20F16A04B5; Wed, 16 Sep 2020 18:45:55 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 40BF31D16F; Wed, 16 Sep 2020 18:45:00 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id AAB5B1D15F for ; Wed, 16 Sep 2020 18:44:52 +0200 (CEST) IronPort-SDR: o1zZFXlmqn3Yjfh7psADChq0HscOfH1X2kmJb34f9K32BD/6lOyPLoeh6njNb59PVy6ZdlGgLn EXw4Aep593Iw== X-IronPort-AV: E=McAfee;i="6000,8403,9746"; a="221069929" X-IronPort-AV: E=Sophos;i="5.76,433,1592895600"; d="scan'208";a="221069929" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Sep 2020 09:44:39 -0700 IronPort-SDR: I1gg3nT0EA4jvOXWwQSr8x+1r+uiXfF3WULsDn5YzM8iEMGKMZaFvSraB7Y13m1TITCHNvRGJA iVJkhSnVOI9Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,433,1592895600"; d="scan'208";a="451925107" Received: from silpixa00400629.ir.intel.com ([10.237.214.135]) by orsmga004.jf.intel.com with ESMTP; 16 Sep 2020 09:44:37 -0700 From: Savinay Dharmappa To: jasvinder.singh@intel.com, cristian.dumitrescu@intel.com, dev@dpdk.org Cc: savinay.dharmappa@intel.com Date: Wed, 16 Sep 2020 17:43:44 +0100 Message-Id: <1600274633-371993-1-git-send-email-savinay.dharmappa@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1599763717-135002-1-git-send-email-savinay.dharmappa@intel.com> References: <1599763717-135002-1-git-send-email-savinay.dharmappa@intel.com> Subject: [dpdk-dev] [PATCH v3 0/9] Enable dynamic config of subport bandwidth X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 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 data structure sched: add subport profile table sched: add subport profile add and config api 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 the redundant code app/test/test_sched.c | 18 +- doc/guides/rel_notes/deprecation.rst | 6 - doc/guides/rel_notes/release_20_11.rst | 4 + drivers/net/softnic/rte_eth_softnic_internals.h | 9 + drivers/net/softnic/rte_eth_softnic_tm.c | 223 ++++++++--- examples/ip_pipeline/cli.c | 14 +- examples/ip_pipeline/tmgr.c | 26 +- examples/ip_pipeline/tmgr.h | 3 +- examples/qos_sched/cfg_file.c | 151 ++++---- examples/qos_sched/cfg_file.h | 4 + examples/qos_sched/init.c | 24 +- examples/qos_sched/main.h | 1 + examples/qos_sched/profile.cfg | 3 + lib/librte_sched/rte_sched.c | 479 +++++++++++++++++------- lib/librte_sched/rte_sched.h | 82 +++- lib/librte_sched/rte_sched_version.map | 2 + 16 files changed, 771 insertions(+), 278 deletions(-) -- 2.7.4