@@ -1510,6 +1510,29 @@ sai_status_t l_get_switch_attribute(sai_object_id_t switch_id,
15101510 resp.attr ().selective_counter_list (),
15111511 &attr_list[i].value .objlist .count );
15121512 break ;
1513+ case SAI_SWITCH_ATTR_SUPPORTED_DEBUG_COUNTER_TYPE_LIST :
1514+ if (attr_list[i].value .s32list .list == nullptr || attr_list[i].value .s32list .count < 1 ) {
1515+ attr_list[i].value .s32list .count = 1 ;
1516+ } else {
1517+ attr_list[i].value .s32list .list [0 ] = SAI_DEBUG_COUNTER_TYPE_SWITCH_IN_DROP_REASONS ;
1518+ attr_list[i].value .s32list .count = 1 ;
1519+ }
1520+ break ;
1521+ case SAI_SWITCH_ATTR_SUPPORTED_INGRESS_DROP_REASON_LIST :
1522+ if (attr_list[i].value .s32list .list == nullptr || attr_list[i].value .s32list .count < 2 ) {
1523+ attr_list[i].value .s32list .count = 2 ;
1524+ } else {
1525+ attr_list[i].value .s32list .list [0 ] = SAI_IN_DROP_REASON_LPM4_MISS ;
1526+ attr_list[i].value .s32list .list [1 ] = SAI_IN_DROP_REASON_LPM6_MISS ;
1527+ attr_list[i].value .s32list .count = 2 ;
1528+ }
1529+ break ;
1530+ case SAI_SWITCH_ATTR_AVAILABLE_SWITCH_INGRESS_DROP_COUNTERS :
1531+ attr_list[i].value .u32 = 1000 ;
1532+ break ;
1533+ default :
1534+ LOG (ERROR ) << " Unhandled Switch attribute ID during get: " << attr_list[i].id ;
1535+ break ;
15131536 }
15141537 }
15151538
@@ -1528,7 +1551,11 @@ sai_status_t l_get_switch_stats(sai_object_id_t switch_id,
15281551 req.set_oid (switch_id);
15291552
15301553 for (uint32_t i = 0 ; i < number_of_counters; i++) {
1531- req.add_counter_ids (convert_sai_switch_stat_t_to_proto (counter_ids[i]));
1554+ auto proto_id = convert_sai_switch_stat_t_to_proto (counter_ids[i]);
1555+ if (proto_id == lemming::dataplane::sai::SWITCH_STAT_UNSPECIFIED ) {
1556+ LOG (ERROR ) << " Lucius: Unhandled counter_id: " << counter_ids[i];
1557+ }
1558+ req.add_counter_ids (proto_id);
15321559 }
15331560 grpc::Status status = switch_->GetSwitchStats (&context, req, &resp);
15341561 if (!status.ok ()) {
@@ -1555,7 +1582,7 @@ sai_status_t l_get_switch_stats_ext(sai_object_id_t switch_id,
15551582 sai_stats_mode_t mode, uint64_t * counters) {
15561583 LOG (INFO ) << " Func: " << __PRETTY_FUNCTION__;
15571584
1558- return SAI_STATUS_SUCCESS ;
1585+ return l_get_switch_stats (switch_id, number_of_counters, counter_ids, counters) ;
15591586}
15601587
15611588sai_status_t l_clear_switch_stats (sai_object_id_t switch_id,
0 commit comments