From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 205B7A04B5;
	Thu, 10 Sep 2020 20:48:51 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 9EEFA1B9B7;
	Thu, 10 Sep 2020 20:48:49 +0200 (CEST)
Received: from mga12.intel.com (mga12.intel.com [192.55.52.136])
 by dpdk.org (Postfix) with ESMTP id 9D41C160
 for <dev@dpdk.org>; Thu, 10 Sep 2020 20:48:48 +0200 (CEST)
IronPort-SDR: 6jYoExlfXQ/SmYODTY8Zq2qY+dEYWfzqn9qLbmar5zOLoMye1f3l6itbAWVwsNEB8RqdWzHo7O
 eSkJWaZRfM4A==
X-IronPort-AV: E=McAfee;i="6000,8403,9740"; a="138130643"
X-IronPort-AV: E=Sophos;i="5.76,413,1592895600"; d="scan'208";a="138130643"
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga007.jf.intel.com ([10.7.209.58])
 by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 10 Sep 2020 11:48:45 -0700
IronPort-SDR: QvbiIjn3w5Y+hv15Eoq58IiqDXh2JyUKv3c7C52cZuHTiwRUCqavBL+BpTFnCFoUeSB43M3a/g
 VqqLk8vdxf5w==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.76,413,1592895600"; d="scan'208";a="344371063"
Received: from silpixa00400629.ir.intel.com ([10.237.214.135])
 by orsmga007.jf.intel.com with ESMTP; 10 Sep 2020 11:48:43 -0700
From: Savinay Dharmappa <savinay.dharmappa@intel.com>
To: jasvinder.singh@intel.com,
	cristian.dumitrescu@intel.com,
	dev@dpdk.org
Cc: savinay.dharmappa@intel.com
Date: Thu, 10 Sep 2020 19:48:27 +0100
Message-Id: <1599763717-135002-1-git-send-email-savinay.dharmappa@intel.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1599037006-3931-1-git-send-email-savinay.dharmappa@intel.com>
References: <1599037006-3931-1-git-send-email-savinay.dharmappa@intel.com>
Subject: [dpdk-dev] [PATCH v2 00/10] 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 <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

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 (10):
  sched: add data structure to support dynamic conf of subport bandwidth
  sched: create subport profile table
  sched: Add public APIs to support dynamic conf of subport profile
  sched: modify the way credits are updated
  sched: Modify subport best effort tc oversubscription
  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                      |  10 +-
 examples/ip_pipeline/tmgr.c                     |  28 +-
 examples/ip_pipeline/tmgr.h                     |   3 +-
 examples/qos_sched/cfg_file.c                   | 158 ++++----
 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                    | 484 +++++++++++++++++-------
 lib/librte_sched/rte_sched.h                    |  82 +++-
 lib/librte_sched/rte_sched_version.map          |   2 +
 16 files changed, 780 insertions(+), 279 deletions(-)

-- 
2.7.4