@@ -107,41 +107,50 @@ void WatermarkOrch::doTask(NotificationConsumer &consumer)
107
107
108
108
consumer.pop (op, data, values);
109
109
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 ;
145
154
}
146
155
}
147
156
@@ -162,14 +171,12 @@ void WatermarkOrch::doTask(SelectableTimer &timer)
162
171
m_telemetryTimer->setInterval (intervT);
163
172
m_telemetryTimer->reset ();
164
173
165
- /* TODO: replace with removing all PG and queue entries? */
166
174
clearSingleWm (m_periodicWatermarkTable.get (), " SAI_INGRESS_PRIORITY_GROUP_STAT_XOFF_ROOM_WATERMARK_BYTES" , m_pg_ids);
167
175
clearSingleWm (m_periodicWatermarkTable.get (), " SAI_INGRESS_PRIORITY_GROUP_STAT_SHARED_WATERMARK_BYTES" , m_pg_ids);
168
176
clearSingleWm (m_periodicWatermarkTable.get (), " SAI_QUEUE_STAT_SHARED_WATERMARK_BYTES" , m_unicast_queue_ids);
169
177
clearSingleWm (m_periodicWatermarkTable.get (), " SAI_QUEUE_STAT_SHARED_WATERMARK_BYTES" , m_multicast_queue_ids);
170
178
SWSS_LOG_INFO (" Periodic watermark cleared by timer!" );
171
179
}
172
-
173
180
}
174
181
175
182
void WatermarkOrch::init_pg_ids ()
@@ -220,5 +227,3 @@ void WatermarkOrch::clearSingleWm(Table *table, string wm_name, vector<sai_objec
220
227
table->set (sai_serialize_object_id (id), vfvt);
221
228
}
222
229
}
223
-
224
-
0 commit comments