From cadc5bd8542d8691f3ce39f4d2569f786a558ff7 Mon Sep 17 00:00:00 2001 From: Teng Fei Date: Fri, 26 Jul 2019 06:49:19 +0800 Subject: [PATCH] [qosorch]: Add cir and pir parameters for scheduler (#991) Signed-off-by: tengfei --- orchagent/qosorch.cpp | 24 ++++++++++++++++++++++++ orchagent/qosorch.h | 5 +++++ 2 files changed, 29 insertions(+) diff --git a/orchagent/qosorch.cpp b/orchagent/qosorch.cpp index 4add06b87b..0486ad3af6 100644 --- a/orchagent/qosorch.cpp +++ b/orchagent/qosorch.cpp @@ -870,6 +870,30 @@ task_process_status QosOrch::handleSchedulerTable(Consumer& consumer) // TODO: The meaning is to be able to adjus priority of the given scheduler group. // However currently SAI model does not provide such ability. } + else if (fvField(*i) == scheduler_min_bandwidth_rate_field_name) + { + attr.id = SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_RATE; + attr.value.u64 = (uint64_t)stoi(fvValue(*i)); + sai_attr_list.push_back(attr); + } + else if (fvField(*i) == scheduler_min_bandwidth_burst_rate_field_name) + { + attr.id = SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE; + attr.value.u64 = (uint64_t)stoi(fvValue(*i)); + sai_attr_list.push_back(attr); + } + else if (fvField(*i) == scheduler_max_bandwidth_rate_field_name) + { + attr.id = SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_RATE; + attr.value.u64 = (uint64_t)stoi(fvValue(*i)); + sai_attr_list.push_back(attr); + } + else if (fvField(*i) == scheduler_max_bandwidth_burst_rate_field_name) + { + attr.id = SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE; + attr.value.u64 = (uint64_t)stoi(fvValue(*i)); + sai_attr_list.push_back(attr); + } else { SWSS_LOG_ERROR("Unknown field:%s", fvField(*i).c_str()); return task_process_status::task_invalid_entry; diff --git a/orchagent/qosorch.h b/orchagent/qosorch.h index 9d8a81b8f0..079260c5d5 100644 --- a/orchagent/qosorch.h +++ b/orchagent/qosorch.h @@ -36,6 +36,11 @@ const string scheduler_algo_STRICT = "STRICT"; const string scheduler_weight_field_name = "weight"; const string scheduler_priority_field_name = "priority"; +const string scheduler_min_bandwidth_rate_field_name = "cir";//Committed Information Rate +const string scheduler_min_bandwidth_burst_rate_field_name = "cbs";//Committed Burst Size +const string scheduler_max_bandwidth_rate_field_name = "pir";//Peak Information Rate +const string scheduler_max_bandwidth_burst_rate_field_name = "pbs";//Peak Burst Size + const string ecn_field_name = "ecn"; const string ecn_none = "ecn_none"; const string ecn_red = "ecn_red";