|
10 | 10 | #include "debugcounterorch.h" |
11 | 11 | #include "directory.h" |
12 | 12 | #include "copporch.h" |
13 | | -#include <swss/tokenize.h> |
14 | 13 | #include "routeorch.h" |
15 | 14 | #include "flowcounterrouteorch.h" |
16 | 15 |
|
@@ -59,8 +58,6 @@ unordered_map<string, string> flexCounterGroupMap = |
59 | 58 | FlexCounterOrch::FlexCounterOrch(DBConnector *db, vector<string> &tableNames): |
60 | 59 | Orch(db, tableNames), |
61 | 60 | m_flexCounterConfigTable(db, CFG_FLEX_COUNTER_TABLE_NAME), |
62 | | - m_bufferQueueConfigTable(db, CFG_BUFFER_QUEUE_TABLE_NAME), |
63 | | - m_bufferPgConfigTable(db, CFG_BUFFER_PG_TABLE_NAME), |
64 | 61 | m_flexCounterDb(new DBConnector("FLEX_COUNTER_DB", 0)), |
65 | 62 | m_flexCounterGroupTable(new ProducerTable(m_flexCounterDb.get(), FLEX_COUNTER_GROUP_TABLE)) |
66 | 63 | { |
@@ -147,13 +144,11 @@ void FlexCounterOrch::doTask(Consumer &consumer) |
147 | 144 | } |
148 | 145 | else if(key == QUEUE_KEY) |
149 | 146 | { |
150 | | - gPortsOrch->generateQueueMap(getQueueConfigurations()); |
151 | | - m_queue_enabled = true; |
| 147 | + gPortsOrch->generateQueueMap(); |
152 | 148 | } |
153 | 149 | else if(key == PG_WATERMARK_KEY) |
154 | 150 | { |
155 | | - gPortsOrch->generatePriorityGroupMap(getPgConfigurations()); |
156 | | - m_pg_watermark_enabled = true; |
| 151 | + gPortsOrch->generatePriorityGroupMap(); |
157 | 152 | } |
158 | 153 | } |
159 | 154 | if(gIntfsOrch && (key == RIF_KEY) && (value == "enable")) |
@@ -235,16 +230,6 @@ bool FlexCounterOrch::getPortBufferDropCountersState() const |
235 | 230 | return m_port_buffer_drop_counter_enabled; |
236 | 231 | } |
237 | 232 |
|
238 | | -bool FlexCounterOrch::getPgWatermarkCountersState() const |
239 | | -{ |
240 | | - return m_pg_watermark_enabled; |
241 | | -} |
242 | | - |
243 | | -bool FlexCounterOrch::getQueueCountersState() const |
244 | | -{ |
245 | | - return m_queue_enabled; |
246 | | -} |
247 | | - |
248 | 233 | bool FlexCounterOrch::bake() |
249 | 234 | { |
250 | 235 | /* |
@@ -286,165 +271,3 @@ bool FlexCounterOrch::bake() |
286 | 271 | Consumer* consumer = dynamic_cast<Consumer *>(getExecutor(CFG_FLEX_COUNTER_TABLE_NAME)); |
287 | 272 | return consumer->addToSync(entries); |
288 | 273 | } |
289 | | - |
290 | | -map<string, FlexCounterQueueStates> FlexCounterOrch::getQueueConfigurations() |
291 | | -{ |
292 | | - SWSS_LOG_ENTER(); |
293 | | - |
294 | | - map<string, FlexCounterQueueStates> queuesStateVector; |
295 | | - std::vector<std::string> portQueueKeys; |
296 | | - m_bufferQueueConfigTable.getKeys(portQueueKeys); |
297 | | - |
298 | | - for (const auto& portQueueKey : portQueueKeys) |
299 | | - { |
300 | | - auto toks = tokenize(portQueueKey, '|'); |
301 | | - if (toks.size() != 2) |
302 | | - { |
303 | | - SWSS_LOG_ERROR("Invalid BUFFER_QUEUE key: [%s]", portQueueKey.c_str()); |
304 | | - continue; |
305 | | - } |
306 | | - |
307 | | - auto configPortNames = tokenize(toks[0], ','); |
308 | | - auto configPortQueues = toks[1]; |
309 | | - toks = tokenize(configPortQueues, '-'); |
310 | | - |
311 | | - for (const auto& configPortName : configPortNames) |
312 | | - { |
313 | | - uint32_t maxQueueNumber = gPortsOrch->getNumberOfPortSupportedQueueCounters(configPortName); |
314 | | - uint32_t maxQueueIndex = maxQueueNumber - 1; |
315 | | - uint32_t minQueueIndex = 0; |
316 | | - |
317 | | - if (!queuesStateVector.count(configPortName)) |
318 | | - { |
319 | | - FlexCounterQueueStates flexCounterQueueState(maxQueueNumber); |
320 | | - queuesStateVector.insert(make_pair(configPortName, flexCounterQueueState)); |
321 | | - } |
322 | | - |
323 | | - try { |
324 | | - auto startIndex = to_uint<uint32_t>(toks[0], minQueueIndex, maxQueueIndex); |
325 | | - if (toks.size() > 1) |
326 | | - { |
327 | | - auto endIndex = to_uint<uint32_t>(toks[1], minQueueIndex, maxQueueIndex); |
328 | | - queuesStateVector.at(configPortName).enableQueueCounters(startIndex, endIndex); |
329 | | - } |
330 | | - else |
331 | | - { |
332 | | - queuesStateVector.at(configPortName).enableQueueCounter(startIndex); |
333 | | - } |
334 | | - } catch (std::invalid_argument const& e) { |
335 | | - SWSS_LOG_ERROR("Invalid queue index [%s] for port [%s]", configPortQueues.c_str(), configPortName.c_str()); |
336 | | - continue; |
337 | | - } |
338 | | - } |
339 | | - } |
340 | | - |
341 | | - return queuesStateVector; |
342 | | -} |
343 | | - |
344 | | -map<string, FlexCounterPgStates> FlexCounterOrch::getPgConfigurations() |
345 | | -{ |
346 | | - SWSS_LOG_ENTER(); |
347 | | - |
348 | | - map<string, FlexCounterPgStates> pgsStateVector; |
349 | | - std::vector<std::string> portPgKeys; |
350 | | - m_bufferPgConfigTable.getKeys(portPgKeys); |
351 | | - |
352 | | - for (const auto& portPgKey : portPgKeys) |
353 | | - { |
354 | | - auto toks = tokenize(portPgKey, '|'); |
355 | | - if (toks.size() != 2) |
356 | | - { |
357 | | - SWSS_LOG_ERROR("Invalid BUFFER_PG key: [%s]", portPgKey.c_str()); |
358 | | - continue; |
359 | | - } |
360 | | - |
361 | | - auto configPortNames = tokenize(toks[0], ','); |
362 | | - auto configPortPgs = toks[1]; |
363 | | - toks = tokenize(configPortPgs, '-'); |
364 | | - |
365 | | - for (const auto& configPortName : configPortNames) |
366 | | - { |
367 | | - uint32_t maxPgNumber = gPortsOrch->getNumberOfPortSupportedPgCounters(configPortName); |
368 | | - uint32_t maxPgIndex = maxPgNumber - 1; |
369 | | - uint32_t minPgIndex = 0; |
370 | | - |
371 | | - if (!pgsStateVector.count(configPortName)) |
372 | | - { |
373 | | - FlexCounterPgStates flexCounterPgState(maxPgNumber); |
374 | | - pgsStateVector.insert(make_pair(configPortName, flexCounterPgState)); |
375 | | - } |
376 | | - |
377 | | - try { |
378 | | - auto startIndex = to_uint<uint32_t>(toks[0], minPgIndex, maxPgIndex); |
379 | | - if (toks.size() > 1) |
380 | | - { |
381 | | - auto endIndex = to_uint<uint32_t>(toks[1], minPgIndex, maxPgIndex); |
382 | | - pgsStateVector.at(configPortName).enablePgCounters(startIndex, endIndex); |
383 | | - } |
384 | | - else |
385 | | - { |
386 | | - pgsStateVector.at(configPortName).enablePgCounter(startIndex); |
387 | | - } |
388 | | - } catch (std::invalid_argument const& e) { |
389 | | - SWSS_LOG_ERROR("Invalid pg index [%s] for port [%s]", configPortPgs.c_str(), configPortName.c_str()); |
390 | | - continue; |
391 | | - } |
392 | | - } |
393 | | - } |
394 | | - |
395 | | - return pgsStateVector; |
396 | | -} |
397 | | - |
398 | | -FlexCounterQueueStates::FlexCounterQueueStates(uint32_t maxQueueNumber) |
399 | | -{ |
400 | | - SWSS_LOG_ENTER(); |
401 | | - m_queueStates.resize(maxQueueNumber, false); |
402 | | -} |
403 | | - |
404 | | -bool FlexCounterQueueStates::isQueueCounterEnabled(uint32_t index) const |
405 | | -{ |
406 | | - SWSS_LOG_ENTER(); |
407 | | - return m_queueStates[index]; |
408 | | -} |
409 | | - |
410 | | -void FlexCounterQueueStates::enableQueueCounters(uint32_t startIndex, uint32_t endIndex) |
411 | | -{ |
412 | | - SWSS_LOG_ENTER(); |
413 | | - for (uint32_t queueIndex = startIndex; queueIndex <= endIndex; queueIndex++) |
414 | | - { |
415 | | - enableQueueCounter(queueIndex); |
416 | | - } |
417 | | -} |
418 | | - |
419 | | -void FlexCounterQueueStates::enableQueueCounter(uint32_t queueIndex) |
420 | | -{ |
421 | | - SWSS_LOG_ENTER(); |
422 | | - m_queueStates[queueIndex] = true; |
423 | | -} |
424 | | - |
425 | | -FlexCounterPgStates::FlexCounterPgStates(uint32_t maxPgNumber) |
426 | | -{ |
427 | | - SWSS_LOG_ENTER(); |
428 | | - m_pgStates.resize(maxPgNumber, false); |
429 | | -} |
430 | | - |
431 | | -bool FlexCounterPgStates::isPgCounterEnabled(uint32_t index) const |
432 | | -{ |
433 | | - SWSS_LOG_ENTER(); |
434 | | - return m_pgStates[index]; |
435 | | -} |
436 | | - |
437 | | -void FlexCounterPgStates::enablePgCounters(uint32_t startIndex, uint32_t endIndex) |
438 | | -{ |
439 | | - SWSS_LOG_ENTER(); |
440 | | - for (uint32_t pgIndex = startIndex; pgIndex <= endIndex; pgIndex++) |
441 | | - { |
442 | | - enablePgCounter(pgIndex); |
443 | | - } |
444 | | -} |
445 | | - |
446 | | -void FlexCounterPgStates::enablePgCounter(uint32_t pgIndex) |
447 | | -{ |
448 | | - SWSS_LOG_ENTER(); |
449 | | - m_pgStates[pgIndex] = true; |
450 | | -} |
0 commit comments