@@ -49,7 +49,13 @@ map<string, sai_port_attr_t> qos_to_attr_map = {
49
49
{tc_to_queue_field_name, SAI_PORT_ATTR_QOS_TC_TO_QUEUE_MAP},
50
50
{tc_to_pg_map_field_name, SAI_PORT_ATTR_QOS_TC_TO_PRIORITY_GROUP_MAP},
51
51
{pfc_to_pg_map_name, SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_PRIORITY_GROUP_MAP},
52
- {pfc_to_queue_map_name, SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_QUEUE_MAP}
52
+ {pfc_to_queue_map_name, SAI_PORT_ATTR_QOS_PFC_PRIORITY_TO_QUEUE_MAP},
53
+ {scheduler_field_name, SAI_PORT_ATTR_QOS_SCHEDULER_PROFILE_ID}
54
+ };
55
+
56
+ map<string, sai_meter_type_t > scheduler_meter_map = {
57
+ {" packets" , SAI_METER_TYPE_PACKETS},
58
+ {" bytes" , SAI_METER_TYPE_BYTES}
53
59
};
54
60
55
61
type_map QosOrch::m_qos_maps = {
@@ -813,28 +819,35 @@ task_process_status QosOrch::handleSchedulerTable(Consumer& consumer)
813
819
// TODO: The meaning is to be able to adjus priority of the given scheduler group.
814
820
// However currently SAI model does not provide such ability.
815
821
}
822
+ else if (fvField (*i) == scheduler_meter_type_field_name)
823
+ {
824
+ sai_meter_type_t meter_value = scheduler_meter_map.at (fvValue (*i));
825
+ attr.id = SAI_SCHEDULER_ATTR_METER_TYPE;
826
+ attr.value .s32 = meter_value;
827
+ sai_attr_list.push_back (attr);
828
+ }
816
829
else if (fvField (*i) == scheduler_min_bandwidth_rate_field_name)
817
830
{
818
831
attr.id = SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_RATE;
819
- attr.value .u64 = stoul (fvValue (*i));
832
+ attr.value .u64 = stoull (fvValue (*i));
820
833
sai_attr_list.push_back (attr);
821
834
}
822
835
else if (fvField (*i) == scheduler_min_bandwidth_burst_rate_field_name)
823
836
{
824
837
attr.id = SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_BURST_RATE;
825
- attr.value .u64 = stoul (fvValue (*i));
838
+ attr.value .u64 = stoull (fvValue (*i));
826
839
sai_attr_list.push_back (attr);
827
840
}
828
841
else if (fvField (*i) == scheduler_max_bandwidth_rate_field_name)
829
842
{
830
843
attr.id = SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_RATE;
831
- attr.value .u64 = stoul (fvValue (*i));
844
+ attr.value .u64 = stoull (fvValue (*i));
832
845
sai_attr_list.push_back (attr);
833
846
}
834
847
else if (fvField (*i) == scheduler_max_bandwidth_burst_rate_field_name)
835
848
{
836
849
attr.id = SAI_SCHEDULER_ATTR_MAX_BANDWIDTH_BURST_RATE;
837
- attr.value .u64 = stoul (fvValue (*i));
850
+ attr.value .u64 = stoull (fvValue (*i));
838
851
sai_attr_list.push_back (attr);
839
852
}
840
853
else {
0 commit comments