diff --git a/orchagent/pfc_restore_cisco-8000.lua b/orchagent/pfc_restore_cisco-8000.lua index 686de0464b..172e67b960 100644 --- a/orchagent/pfc_restore_cisco-8000.lua +++ b/orchagent/pfc_restore_cisco-8000.lua @@ -44,7 +44,7 @@ for i = n, 1, -1 do and (debug_storm ~= "enabled") -- DEBUG CODE END. then - if time_left <= 0 then + if time_left <= poll_time then redis.call('PUBLISH', 'PFC_WD_ACTION', '["' .. KEYS[i] .. '","restore"]') time_left = restoration_time else diff --git a/orchagent/pfcactionhandler.cpp b/orchagent/pfcactionhandler.cpp index 6750e2997e..22be5f080b 100644 --- a/orchagent/pfcactionhandler.cpp +++ b/orchagent/pfcactionhandler.cpp @@ -221,7 +221,7 @@ void PfcWdActionHandler::updateWdCounters(const string& queueIdStr, const PfcWdQ PfcWdSaiDlrInitHandler::PfcWdSaiDlrInitHandler(sai_object_id_t port, sai_object_id_t queue, uint8_t queueId, shared_ptr countersTable): - PfcWdActionHandler(port, queue, queueId, countersTable) + PfcWdZeroBufferHandler(port, queue, queueId, countersTable) { SWSS_LOG_ENTER(); @@ -262,39 +262,6 @@ PfcWdSaiDlrInitHandler::~PfcWdSaiDlrInitHandler(void) } } -bool PfcWdSaiDlrInitHandler::getHwCounters(PfcWdHwStats& counters) -{ - SWSS_LOG_ENTER(); - - static const vector queueStatIds = - { - SAI_QUEUE_STAT_PACKETS, - SAI_QUEUE_STAT_DROPPED_PACKETS, - }; - - vector queueStats; - queueStats.resize(queueStatIds.size()); - - sai_status_t status = sai_queue_api->get_queue_stats( - getQueue(), - static_cast(queueStatIds.size()), - queueStatIds.data(), - queueStats.data()); - - if (status != SAI_STATUS_SUCCESS) - { - SWSS_LOG_ERROR("Failed to fetch queue 0x%" PRIx64 " stats: %d", getQueue(), status); - return false; - } - - counters.txPkt = queueStats[0]; - counters.txDropPkt = queueStats[1]; - counters.rxPkt = 0; - counters.rxDropPkt = 0; - - return true; -} - PfcWdAclHandler::PfcWdAclHandler(sai_object_id_t port, sai_object_id_t queue, uint8_t queueId, shared_ptr
countersTable): PfcWdLossyHandler(port, queue, queueId, countersTable) @@ -469,6 +436,14 @@ PfcWdLossyHandler::PfcWdLossyHandler(sai_object_id_t port, sai_object_id_t queue { SWSS_LOG_ENTER(); + string platform = getenv("platform") ? getenv("platform") : ""; + if (platform == CISCO_8000_PLATFORM_SUBSTRING) + { + SWSS_LOG_DEBUG("Skipping in constructor PfcWdLossyHandler for platform %s on port 0x%" PRIx64, + platform.c_str(), port); + return; + } + uint8_t pfcMask = 0; if (!gPortsOrch->getPortPfc(port, &pfcMask)) @@ -488,6 +463,14 @@ PfcWdLossyHandler::~PfcWdLossyHandler(void) { SWSS_LOG_ENTER(); + string platform = getenv("platform") ? getenv("platform") : ""; + if (platform == CISCO_8000_PLATFORM_SUBSTRING) + { + SWSS_LOG_DEBUG("Skipping in destructor PfcWdLossyHandler for platform %s on port 0x%" PRIx64, + platform.c_str(), getPort()); + return; + } + uint8_t pfcMask = 0; if (!gPortsOrch->getPortPfc(getPort(), &pfcMask)) diff --git a/orchagent/pfcactionhandler.h b/orchagent/pfcactionhandler.h index 381f9bdca8..a72225f21a 100644 --- a/orchagent/pfcactionhandler.h +++ b/orchagent/pfcactionhandler.h @@ -165,13 +165,12 @@ class PfcWdZeroBufferHandler: public PfcWdLossyHandler // PFC queue that implements drop action by draining queue via SAI // attribute SAI_QUEUE_ATTR_PFC_DLR_INIT. -class PfcWdSaiDlrInitHandler: public PfcWdActionHandler +class PfcWdSaiDlrInitHandler: public PfcWdZeroBufferHandler { public: PfcWdSaiDlrInitHandler(sai_object_id_t port, sai_object_id_t queue, uint8_t queueId, shared_ptr
countersTable); virtual ~PfcWdSaiDlrInitHandler(void); - virtual bool getHwCounters(PfcWdHwStats& counters); }; #endif