@@ -284,9 +284,9 @@ static char* hostif_vlan_tag[] = {
284284PortsOrch::PortsOrch (DBConnector *db, DBConnector *stateDb, vector<table_name_with_pri_t > &tableNames, DBConnector *chassisAppDb) :
285285 Orch(db, tableNames),
286286 m_portStateTable(stateDb, STATE_PORT_TABLE_NAME),
287- port_stat_manager(PORT_STAT_COUNTER_FLEX_COUNTER_GROUP, StatsMode::READ, PORT_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS, false ),
288- port_buffer_drop_stat_manager(PORT_BUFFER_DROP_STAT_FLEX_COUNTER_GROUP, StatsMode::READ, PORT_BUFFER_DROP_STAT_POLLING_INTERVAL_MS, false ),
289- queue_stat_manager(QUEUE_STAT_COUNTER_FLEX_COUNTER_GROUP, StatsMode::READ, QUEUE_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS, false )
287+ port_stat_manager(PORT_STAT_COUNTER_FLEX_COUNTER_GROUP, StatsMode::READ, PORT_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS, true ),
288+ port_buffer_drop_stat_manager(PORT_BUFFER_DROP_STAT_FLEX_COUNTER_GROUP, StatsMode::READ, PORT_BUFFER_DROP_STAT_POLLING_INTERVAL_MS, true ),
289+ queue_stat_manager(QUEUE_STAT_COUNTER_FLEX_COUNTER_GROUP, StatsMode::READ, QUEUE_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS, true )
290290{
291291 SWSS_LOG_ENTER ();
292292
@@ -2273,21 +2273,19 @@ bool PortsOrch::initPort(const string &alias, const string &role, const int inde
22732273 vector<FieldValueTuple> fields;
22742274 fields.push_back (tuple);
22752275 m_counterTable->set (" " , fields);
2276-
22772276 // Install a flex counter for this port to track stats
2278- auto flex_counters_orch = gDirectory .get <FlexCounterOrch*>();
2279- /* Delay installing the counters if they are yet enabled
2280- If they are enabled, install the counters immediately */
2281- if (flex_counters_orch->getPortCountersState ())
2277+ std::unordered_set<std::string> counter_stats;
2278+ for (const auto & it: port_stat_ids)
22822279 {
2283- auto port_counter_stats = generateCounterStats (PORT_STAT_COUNTER_FLEX_COUNTER_GROUP);
2284- port_stat_manager.setCounterIdList (p.m_port_id , CounterType::PORT, port_counter_stats);
2280+ counter_stats.emplace (sai_serialize_port_stat (it));
22852281 }
2286- if (flex_counters_orch->getPortBufferDropCountersState ())
2282+ port_stat_manager.setCounterIdList (p.m_port_id , CounterType::PORT, counter_stats);
2283+ std::unordered_set<std::string> port_buffer_drop_stats;
2284+ for (const auto & it: port_buffer_drop_stat_ids)
22872285 {
2288- auto port_buffer_drop_stats = generateCounterStats (PORT_BUFFER_DROP_STAT_FLEX_COUNTER_GROUP);
2289- port_buffer_drop_stat_manager.setCounterIdList (p.m_port_id , CounterType::PORT, port_buffer_drop_stats);
2286+ port_buffer_drop_stats.emplace (sai_serialize_port_stat (it));
22902287 }
2288+ port_buffer_drop_stat_manager.setCounterIdList (p.m_port_id , CounterType::PORT, port_buffer_drop_stats);
22912289
22922290 PortUpdate update = { p, true };
22932291 notify (SUBJECT_TYPE_PORT_CHANGE, static_cast <void *>(&update));
@@ -2320,11 +2318,8 @@ void PortsOrch::deInitPort(string alias, sai_object_id_t port_id)
23202318 p.m_port_id = port_id;
23212319
23222320 /* remove port from flex_counter_table for updating counters */
2323- auto flex_counters_orch = gDirectory .get <FlexCounterOrch*>();
2324- if ((flex_counters_orch->getPortCountersState ()))
2325- {
2326- port_stat_manager.clearCounterIdList (p.m_port_id );
2327- }
2321+ port_stat_manager.clearCounterIdList (p.m_port_id );
2322+
23282323 /* remove port name map from counter table */
23292324 m_counter_db->hdel (COUNTERS_PORT_NAME_MAP, alias);
23302325
@@ -5084,42 +5079,6 @@ void PortsOrch::generatePriorityGroupMapPerPort(const Port& port)
50845079 CounterCheckOrch::getInstance ().addPort (port);
50855080}
50865081
5087- void PortsOrch::generatePortCounterMap ()
5088- {
5089- if (m_isPortCounterMapGenerated)
5090- {
5091- return ;
5092- }
5093-
5094- auto port_counter_stats = generateCounterStats (PORT_STAT_COUNTER_FLEX_COUNTER_GROUP);
5095- for (const auto & it: m_portList)
5096- {
5097- if (it.first == " CPU" )
5098- {
5099- continue ;
5100- }
5101- port_stat_manager.setCounterIdList (it.second .m_port_id , CounterType::PORT, port_counter_stats);
5102- }
5103-
5104- m_isPortCounterMapGenerated = true ;
5105- }
5106-
5107- void PortsOrch::generatePortBufferDropCounterMap ()
5108- {
5109- if (m_isPortBufferDropCounterMapGenerated)
5110- {
5111- return ;
5112- }
5113-
5114- auto port_buffer_drop_stats = generateCounterStats (PORT_BUFFER_DROP_STAT_FLEX_COUNTER_GROUP);
5115- for (const auto & it: m_portList)
5116- {
5117- port_buffer_drop_stat_manager.setCounterIdList (it.second .m_port_id , CounterType::PORT, port_buffer_drop_stats);
5118- }
5119-
5120- m_isPortBufferDropCounterMapGenerated = true ;
5121- }
5122-
51235082void PortsOrch::doTask (NotificationConsumer &consumer)
51245083{
51255084 SWSS_LOG_ENTER ();
@@ -5698,6 +5657,9 @@ bool PortsOrch::initGearboxPort(Port &port)
56985657
56995658 sai_deserialize_object_id (phyOidStr, phyOid);
57005659
5660+ SWSS_LOG_NOTICE (" BOX: Gearbox port %s assigned phyOid 0x%" PRIx64, port.m_alias .c_str (), phyOid);
5661+ port.m_switch_id = phyOid;
5662+
57015663 /* Create SYSTEM-SIDE port */
57025664 attrs.clear ();
57035665
@@ -5863,6 +5825,7 @@ bool PortsOrch::initGearboxPort(Port &port)
58635825
58645826 SWSS_LOG_NOTICE (" BOX: Connected Gearbox ports; system-side:0x%" PRIx64 " to line-side:0x%" PRIx64, systemPort, linePort);
58655827 m_gearboxPortListLaneMap[port.m_port_id ] = make_tuple (systemPort, linePort);
5828+ port.m_line_side_id = linePort;
58665829 }
58675830 }
58685831
@@ -6276,23 +6239,3 @@ void PortsOrch::voqSyncDelLagMember(Port &lag, Port &port)
62766239 string key = lag.m_system_lag_info .alias + " :" + port.m_system_port_info .alias ;
62776240 m_tableVoqSystemLagMemberTable->del (key);
62786241}
6279-
6280- std::unordered_set<std::string> PortsOrch::generateCounterStats (const string& type)
6281- {
6282- std::unordered_set<std::string> counter_stats;
6283- if (type == PORT_STAT_COUNTER_FLEX_COUNTER_GROUP)
6284- {
6285- for (const auto & it: port_stat_ids)
6286- {
6287- counter_stats.emplace (sai_serialize_port_stat (it));
6288- }
6289- }
6290- else if (type == PORT_BUFFER_DROP_STAT_FLEX_COUNTER_GROUP)
6291- {
6292- for (const auto & it: port_buffer_drop_stat_ids)
6293- {
6294- counter_stats.emplace (sai_serialize_port_stat (it));
6295- }
6296- }
6297- return counter_stats;
6298- }
0 commit comments