@@ -107,41 +107,50 @@ void WatermarkOrch::doTask(NotificationConsumer &consumer)
107107
108108 consumer.pop (op, data, values);
109109
110- if (&consumer == m_clearNotificationConsumer){
111- string wm_name = " " ;
112- vector<sai_object_id_t > &obj_ids = m_pg_ids;
113- if (data == CLEAR_PG_HEADROOM_REQUEST)
114- {
115- wm_name = " SAI_INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_WATERMARK_BYTES" ;
116- obj_ids = m_pg_ids;
117- }
118- else if (data == CLEAR_PG_SHARED_REQUEST)
119- {
120- wm_name = " SAI_INGRESS_PRIORITY_GROUP_STAT_SHARED_WATERMARK_BYTES" ;
121- obj_ids = m_pg_ids;
122- }
123- else if (data == CLEAR_QUEUE_SHARED_UNI_REQUEST)
124- {
125- wm_name = " SAI_QUEUE_STAT_SHARED_WATERMARK_BYTES" ;
126- obj_ids = m_unicast_queue_ids;
127- }
128- else if (data == CLEAR_QUEUE_SHARED_MULTI_REQUEST)
129- {
130- wm_name = " SAI_QUEUE_STAT_SHARED_WATERMARK_BYTES" ;
131- obj_ids = m_multicast_queue_ids;
132- }
133- if (op == " USER" )
134- {
135- clearSingleWm (m_userWatermarkTable.get (), wm_name, obj_ids);
136- }
137- else if (op == " PERSISTENT" )
138- {
139- clearSingleWm (m_persistentWatermarkTable.get (), wm_name, obj_ids);
140- }
141- else
142- {
143- SWSS_LOG_WARN (" Unknown watermark clear request op: %s" , op.c_str ());
144- }
110+ Table * table = NULL ;
111+
112+ if (op == " PERSISTENT" )
113+ {
114+ table = m_persistentWatermarkTable.get ();
115+ }
116+ else if (op == " USER" )
117+ {
118+ table = m_userWatermarkTable.get ();
119+ }
120+ else
121+ {
122+ SWSS_LOG_WARN (" Unknown watermark clear request op: %s" , op.c_str ());
123+ return ;
124+ }
125+
126+ if (data == CLEAR_PG_HEADROOM_REQUEST)
127+ {
128+ clearSingleWm (table,
129+ " SAI_INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_WATERMARK_BYTES" ,
130+ m_pg_ids);
131+ }
132+ else if (data == CLEAR_PG_SHARED_REQUEST)
133+ {
134+ clearSingleWm (table,
135+ " SAI_INGRESS_PRIORITY_GROUP_STAT_SHARED_WATERMARK_BYTES" ,
136+ m_pg_ids);
137+ }
138+ else if (data == CLEAR_QUEUE_SHARED_UNI_REQUEST)
139+ {
140+ clearSingleWm (table,
141+ " SAI_QUEUE_STAT_SHARED_WATERMARK_BYTES" ,
142+ m_unicast_queue_ids);
143+ }
144+ else if (data == CLEAR_QUEUE_SHARED_MULTI_REQUEST)
145+ {
146+ clearSingleWm (table,
147+ " SAI_QUEUE_STAT_SHARED_WATERMARK_BYTES" ,
148+ m_multicast_queue_ids);
149+ }
150+ else
151+ {
152+ SWSS_LOG_WARN (" Unknown watermark clear request data: %s" , data.c_str ());
153+ return ;
145154 }
146155}
147156
@@ -162,14 +171,12 @@ void WatermarkOrch::doTask(SelectableTimer &timer)
162171 m_telemetryTimer->setInterval (intervT);
163172 m_telemetryTimer->reset ();
164173
165- /* TODO: replace with removing all PG and queue entries? */
166174 clearSingleWm (m_periodicWatermarkTable.get (), " SAI_INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_WATERMARK_BYTES" , m_pg_ids);
167175 clearSingleWm (m_periodicWatermarkTable.get (), " SAI_INGRESS_PRIORITY_GROUP_STAT_SHARED_WATERMARK_BYTES" , m_pg_ids);
168176 clearSingleWm (m_periodicWatermarkTable.get (), " SAI_QUEUE_STAT_SHARED_WATERMARK_BYTES" , m_unicast_queue_ids);
169177 clearSingleWm (m_periodicWatermarkTable.get (), " SAI_QUEUE_STAT_SHARED_WATERMARK_BYTES" , m_multicast_queue_ids);
170178 SWSS_LOG_INFO (" Periodic watermark cleared by timer!" );
171179 }
172-
173180}
174181
175182void WatermarkOrch::init_pg_ids ()
@@ -220,5 +227,3 @@ void WatermarkOrch::clearSingleWm(Table *table, string wm_name, vector<sai_objec
220227 table->set (sai_serialize_object_id (id), vfvt);
221228 }
222229}
223-
224-
0 commit comments