diff --git a/orchagent/pfc_restore_cisco-8000.lua b/orchagent/pfc_restore_cisco-8000.lua
index 686de0464be6..172e67b96094 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 e44521f849f9..05f2d6ef5600 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)
@@ -472,6 +439,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))
@@ -491,6 +466,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 23cabaee1010..a55ac3b4a435 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