From d0f90cfa724ca0566effb735c4afa589a830f63a Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sat, 10 Sep 2022 01:04:22 +0000 Subject: [PATCH 01/15] Add events publish --- orchagent/crmorch.cpp | 12 +++++++++- orchagent/crmorch.h | 1 + orchagent/orchdaemon.cpp | 27 ++++++++++++++------- orchagent/orchdaemon.h | 1 + orchagent/pfcwdorch.cpp | 51 +++++++++++++++++++++++----------------- orchagent/pfcwdorch.h | 9 ++++--- orchagent/portsorch.cpp | 8 ++++++- orchagent/portsorch.h | 1 + 8 files changed, 76 insertions(+), 34 deletions(-) diff --git a/orchagent/crmorch.cpp b/orchagent/crmorch.cpp index f5e864a357..3c5b51caf2 100644 --- a/orchagent/crmorch.cpp +++ b/orchagent/crmorch.cpp @@ -241,8 +241,9 @@ const map crmUsedCntsTableMap = { "crm_stats_nexthop_group_map_used", CrmResourceType::CRM_NEXTHOP_GROUP_MAP }, }; -CrmOrch::CrmOrch(DBConnector *db, string tableName): +CrmOrch::CrmOrch(DBConnector *db, string tableName, event_handle_t handle): Orch(db, tableName), + m_events_handle(handle), m_countersDb(new DBConnector("COUNTERS_DB", 0)), m_countersCrmTable(new Table(m_countersDb.get(), COUNTERS_CRM_TABLE)), m_timer(new SelectableTimer(timespec { .tv_sec = CRM_POLLING_INTERVAL_DEFAULT, .tv_nsec = 0 })) @@ -763,9 +764,18 @@ void CrmOrch::checkCrmThresholds() if ((utilization >= res.highThreshold) && (res.exceededLogCounter < CRM_EXCEEDED_MSG_MAX)) { + event_params_t params = { + { "percent", percentageUtil }, + { "used_cnt", cnt.usedCounter }, + { "free_cnt", cnt.availableCounter }}; + SWSS_LOG_WARN("%s THRESHOLD_EXCEEDED for %s %u%% Used count %u free count %u", res.name.c_str(), threshType.c_str(), percentageUtil, cnt.usedCounter, cnt.availableCounter); + if (0 != event_publish(m_events_handle, "chk_crm_threshold", ¶ms)) { + SWSS_LOG_WARN("Failed to publish event for if-state"); + } + res.exceededLogCounter++; } else if ((utilization <= res.lowThreshold) && (res.exceededLogCounter > 0) && (res.highThreshold != res.lowThreshold)) diff --git a/orchagent/crmorch.h b/orchagent/crmorch.h index f63e2a31c2..0f1e2f78af 100644 --- a/orchagent/crmorch.h +++ b/orchagent/crmorch.h @@ -64,6 +64,7 @@ class CrmOrch : public Orch void decCrmAclTableUsedCounter(CrmResourceType resource, sai_object_id_t tableId); private: + event_handle_t m_events_handle; std::shared_ptr m_countersDb = nullptr; std::shared_ptr m_countersCrmTable = nullptr; swss::SelectableTimer *m_timer = nullptr; diff --git a/orchagent/orchdaemon.cpp b/orchagent/orchdaemon.cpp index 1cc3127c31..104e8c2ab9 100644 --- a/orchagent/orchdaemon.cpp +++ b/orchagent/orchdaemon.cpp @@ -62,6 +62,7 @@ bool gIsNatSupported = false; size_t gMaxBulkSize = DEFAULT_MAX_BULK_SIZE; OrchDaemon::OrchDaemon(DBConnector *applDb, DBConnector *configDb, DBConnector *stateDb, DBConnector *chassisAppDb) : + m_events_handle(NULL), m_applDb(applDb), m_configDb(configDb), m_stateDb(stateDb), @@ -89,6 +90,8 @@ OrchDaemon::~OrchDaemon() delete(*it); } delete m_select; + + events_deinit_publisher(m_events_handle); } bool OrchDaemon::init() @@ -97,7 +100,9 @@ bool OrchDaemon::init() string platform = getenv("platform") ? getenv("platform") : ""; - gCrmOrch = new CrmOrch(m_configDb, CFG_CRM_TABLE_NAME); + m_events_handle = events_init_publisher("sonic-events-swss"); + + gCrmOrch = new CrmOrch(m_configDb, CFG_CRM_TABLE_NAME, m_events_handle); TableConnector stateDbSwitchTable(m_stateDb, "SWITCH_CAPABILITY"); TableConnector app_switch_table(m_applDb, APP_SWITCH_TABLE_NAME); @@ -126,7 +131,7 @@ bool OrchDaemon::init() { APP_MCLAG_FDB_TABLE_NAME, FdbOrch::fdborch_pri} }; - gPortsOrch = new PortsOrch(m_applDb, m_stateDb, ports_tables, m_chassisAppDb); + gPortsOrch = new PortsOrch(m_applDb, m_stateDb, ports_tables, m_chassisAppDb, m_events_handle); TableConnector stateDbFdb(m_stateDb, STATE_FDB_TABLE_NAME); TableConnector stateMclagDbFdb(m_stateDb, STATE_MCLAG_REMOTE_FDB_TABLE_NAME); gFdbOrch = new FdbOrch(m_applDb, app_fdb_tables, stateDbFdb, stateMclagDbFdb, gPortsOrch); @@ -508,7 +513,8 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS)); + PFC_WD_POLL_MSECS, + m_events_handle)); } else if ((platform == INVM_PLATFORM_SUBSTRING) || (platform == BFN_PLATFORM_SUBSTRING) @@ -551,7 +557,8 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS)); + PFC_WD_POLL_MSECS, + m_events_handle)); } else if (platform == BFN_PLATFORM_SUBSTRING) { @@ -561,7 +568,8 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS)); + PFC_WD_POLL_MSECS, + m_events_handle)); } } else if (platform == BRCM_PLATFORM_SUBSTRING) @@ -605,7 +613,8 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS)); + PFC_WD_POLL_MSECS, + m_events_handle)); } else { @@ -615,7 +624,8 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS)); + PFC_WD_POLL_MSECS, + m_events_handle)); } } else if (platform == CISCO_8000_PLATFORM_SUBSTRING) { @@ -637,7 +647,8 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS)); + PFC_WD_POLL_MSECS, + m_events_handle)); } m_orchList.push_back(&CounterCheckOrch::getInstance(m_configDb)); diff --git a/orchagent/orchdaemon.h b/orchagent/orchdaemon.h index def4b78629..8cc6a0cfc6 100644 --- a/orchagent/orchdaemon.h +++ b/orchagent/orchdaemon.h @@ -68,6 +68,7 @@ class OrchDaemon m_fabricEnabled = enabled; } private: + event_handle_t m_events_handle; DBConnector *m_applDb; DBConnector *m_configDb; DBConnector *m_stateDb; diff --git a/orchagent/pfcwdorch.cpp b/orchagent/pfcwdorch.cpp index da092387af..469b78e141 100644 --- a/orchagent/pfcwdorch.cpp +++ b/orchagent/pfcwdorch.cpp @@ -36,8 +36,10 @@ extern SwitchOrch *gSwitchOrch; extern PortsOrch *gPortsOrch; template -PfcWdOrch::PfcWdOrch(DBConnector *db, vector &tableNames): +PfcWdOrch::PfcWdOrch(DBConnector *db, vector &tableNames, + event_handle_t handle): Orch(db, tableNames), + m_events_handle(handle), m_countersDb(new DBConnector("COUNTERS_DB", 0)), m_countersTable(new Table(m_countersDb.get(), COUNTERS_TABLE)), m_platform(getenv("platform") ? getenv("platform") : "") @@ -686,8 +688,9 @@ PfcWdSwOrch::PfcWdSwOrch( const vector &portStatIds, const vector &queueStatIds, const vector &queueAttrIds, - int pollInterval): - PfcWdOrch(db, tableNames), + int pollInterval, + event_handle_t handle): + PfcWdOrch(db, tableNames, handle), m_flexCounterDb(new DBConnector("FLEX_COUNTER_DB", 0)), m_flexCounterTable(new ProducerTable(m_flexCounterDb.get(), FLEX_COUNTER_TABLE)), m_flexCounterGroupTable(new ProducerTable(m_flexCounterDb.get(), FLEX_COUNTER_GROUP_TABLE)), @@ -933,6 +936,27 @@ void PfcWdSwOrch::doTask(SelectableTimer &timer) } +template +void PfcWdSwOrch::report_pfc_storm(const PfcWdQueueEntry *entry +{ + event_params_t params = { + { "ifname", entry->second.portAlias }, + { "queue_index", entry->second.index }, + { "queue_id", entry->first }, + { "port_id", entry->second.portId }}; + + SWSS_LOG_NOTICE( + "PFC Watchdog detected PFC storm on port %s, queue index %d, queue id 0x%" PRIx64 " and port id 0x%" PRIx64 ".", + entry->second.portAlias.c_str(), + entry->second.index, + entry->first, + entry->second.portId); + + if (0 != event_publish(m_events_handle, "pfc-storm", ¶ms)) { + SWSS_LOG_WARN("Failed to publish event for pfc-storm"); + } +} + template bool PfcWdSwOrch::startWdActionOnQueue(const string &event, sai_object_id_t queueId) { @@ -955,12 +979,7 @@ bool PfcWdSwOrch::startWdActionOnQueue(const string { if (entry->second.handler == nullptr) { - SWSS_LOG_NOTICE( - "PFC Watchdog detected PFC storm on port %s, queue index %d, queue id 0x%" PRIx64 " and port id 0x%" PRIx64 ".", - entry->second.portAlias.c_str(), - entry->second.index, - entry->first, - entry->second.portId); + report_pfc_storm(entry); entry->second.handler = make_shared( entry->second.portId, @@ -977,12 +996,7 @@ bool PfcWdSwOrch::startWdActionOnQueue(const string { if (entry->second.handler == nullptr) { - SWSS_LOG_NOTICE( - "PFC Watchdog detected PFC storm on port %s, queue index %d, queue id 0x%" PRIx64 " and port id 0x%" PRIx64 ".", - entry->second.portAlias.c_str(), - entry->second.index, - entry->first, - entry->second.portId); + report_pfc_storm(entry); entry->second.handler = make_shared( entry->second.portId, @@ -999,12 +1013,7 @@ bool PfcWdSwOrch::startWdActionOnQueue(const string { if (entry->second.handler == nullptr) { - SWSS_LOG_NOTICE( - "PFC Watchdog detected PFC storm on port %s, queue index %d, queue id 0x%" PRIx64 " and port id 0x%" PRIx64 ".", - entry->second.portAlias.c_str(), - entry->second.index, - entry->first, - entry->second.portId); + report_pfc_storm(entry); entry->second.handler = make_shared( entry->second.portId, diff --git a/orchagent/pfcwdorch.h b/orchagent/pfcwdorch.h index 63be1be036..c8345861f8 100644 --- a/orchagent/pfcwdorch.h +++ b/orchagent/pfcwdorch.h @@ -26,7 +26,7 @@ template class PfcWdOrch: public Orch { public: - PfcWdOrch(DBConnector *db, vector &tableNames); + PfcWdOrch(DBConnector *db, vector &tableNames, event_handle_t handle); virtual ~PfcWdOrch(void); virtual void doTask(Consumer& consumer); @@ -55,7 +55,7 @@ class PfcWdOrch: public Orch protected: virtual bool startWdActionOnQueue(const string &event, sai_object_id_t queueId) = 0; string m_platform = ""; - + event_handle_t m_events_handle; private: shared_ptr m_countersDb = nullptr; @@ -73,7 +73,8 @@ class PfcWdSwOrch: public PfcWdOrch const vector &portStatIds, const vector &queueStatIds, const vector &queueAttrIds, - int pollInterval); + int pollInterval, + event_handle_t handle); virtual ~PfcWdSwOrch(void); void doTask(Consumer& consumer) override; @@ -121,6 +122,8 @@ class PfcWdSwOrch: public PfcWdOrch void enableBigRedSwitchMode(); void setBigRedSwitchMode(string value); + void report_pfc_storm(const PfcWdQueueEntry *); + map m_entryMap; map m_brsEntryMap; diff --git a/orchagent/portsorch.cpp b/orchagent/portsorch.cpp index 14e5108660..6a7f1e8af9 100755 --- a/orchagent/portsorch.cpp +++ b/orchagent/portsorch.cpp @@ -352,8 +352,10 @@ static bool isValidPortTypeForLagMember(const Port& port) * bridge. By design, SONiC switch starts with all bridge ports removed from * default VLAN and all ports removed from .1Q bridge. */ -PortsOrch::PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, DBConnector *chassisAppDb) : +PortsOrch::PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, + DBConnector *chassisAppDb, event_handle_t events_handle) : Orch(db, tableNames), + m_events_handle(events_handle), m_portStateTable(stateDb, STATE_PORT_TABLE_NAME), port_stat_manager(PORT_STAT_COUNTER_FLEX_COUNTER_GROUP, StatsMode::READ, PORT_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS, false), gb_port_stat_manager("GB_FLEX_COUNTER_DB", @@ -2537,6 +2539,10 @@ bool PortsOrch::setHostIntfsOperStatus(const Port& port, bool isUp) const SWSS_LOG_NOTICE("Set operation status %s to host interface %s", isUp ? "UP" : "DOWN", port.m_alias.c_str()); + event_params_t params = {{"ifname",port.m_alias},{"status",isUp ? "up" : "down"}}; + if (0 != event_publish(m_events_handle, "if-state", ¶ms)) { + SWSS_LOG_WARN("Failed to publish event for if-state"); + } return true; } diff --git a/orchagent/portsorch.h b/orchagent/portsorch.h index f481c95d43..c8becb0caf 100755 --- a/orchagent/portsorch.h +++ b/orchagent/portsorch.h @@ -188,6 +188,7 @@ class PortsOrch : public Orch, public Subject bool isMACsecPort(sai_object_id_t port_id) const; private: + event_handle_t m_events_handle; unique_ptr m_counterTable; unique_ptr
m_counterLagTable; unique_ptr
m_portTable; From d2a770aa7f8110a1dd3357773bf4d6e47dc5a334 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sun, 11 Sep 2022 03:25:21 +0000 Subject: [PATCH 02/15] Added header file --- orchagent/crmorch.h | 1 + orchagent/pfcwdorch.h | 1 + orchagent/portsorch.h | 1 + 3 files changed, 3 insertions(+) diff --git a/orchagent/crmorch.h b/orchagent/crmorch.h index 0f1e2f78af..a933033f05 100644 --- a/orchagent/crmorch.h +++ b/orchagent/crmorch.h @@ -5,6 +5,7 @@ #include #include "orch.h" #include "port.h" +#include "events.h" extern "C" { #include "sai.h" diff --git a/orchagent/pfcwdorch.h b/orchagent/pfcwdorch.h index c8345861f8..f8aa7a43a9 100644 --- a/orchagent/pfcwdorch.h +++ b/orchagent/pfcwdorch.h @@ -7,6 +7,7 @@ #include "producertable.h" #include "notificationconsumer.h" #include "timer.h" +#include "events.h" extern "C" { #include "sai.h" diff --git a/orchagent/portsorch.h b/orchagent/portsorch.h index c8becb0caf..b8b151ac94 100755 --- a/orchagent/portsorch.h +++ b/orchagent/portsorch.h @@ -14,6 +14,7 @@ #include "saihelper.h" #include "lagid.h" #include "flexcounterorch.h" +#include "events.h" #define FCS_LEN 4 From d06d4a3ce46cd10108efde4261ac935ecf4c9346 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sun, 11 Sep 2022 03:37:08 +0000 Subject: [PATCH 03/15] signature fix --- orchagent/crmorch.h | 2 +- orchagent/portsorch.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/orchagent/crmorch.h b/orchagent/crmorch.h index a933033f05..73703bb6de 100644 --- a/orchagent/crmorch.h +++ b/orchagent/crmorch.h @@ -52,7 +52,7 @@ enum class CrmResourceStatus class CrmOrch : public Orch { public: - CrmOrch(swss::DBConnector *db, std::string tableName); + CrmOrch(swss::DBConnector *db, std::string tableName, event_handle_t handle); void incCrmResUsedCounter(CrmResourceType resource); void decCrmResUsedCounter(CrmResourceType resource); // Increment "used" counter for the ACL table/group CRM resources diff --git a/orchagent/portsorch.h b/orchagent/portsorch.h index b8b151ac94..dcfbb79399 100755 --- a/orchagent/portsorch.h +++ b/orchagent/portsorch.h @@ -78,7 +78,7 @@ struct VlanMemberUpdate class PortsOrch : public Orch, public Subject { public: - PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, DBConnector *chassisAppDb); + PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, DBConnector *chassisAppDb, event_handle_t handle); bool allPortsReady(); bool isInitDone(); From 9cc12ed34342733a276ae031caae227c9712b6a6 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sun, 11 Sep 2022 03:49:55 +0000 Subject: [PATCH 04/15] syntax --- orchagent/crmorch.cpp | 6 +++--- orchagent/pfcwdorch.cpp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/orchagent/crmorch.cpp b/orchagent/crmorch.cpp index 3c5b51caf2..3f5835f963 100644 --- a/orchagent/crmorch.cpp +++ b/orchagent/crmorch.cpp @@ -765,9 +765,9 @@ void CrmOrch::checkCrmThresholds() if ((utilization >= res.highThreshold) && (res.exceededLogCounter < CRM_EXCEEDED_MSG_MAX)) { event_params_t params = { - { "percent", percentageUtil }, - { "used_cnt", cnt.usedCounter }, - { "free_cnt", cnt.availableCounter }}; + { "percent", to_string(percentageUtil) }, + { "used_cnt", to_string(cnt.usedCounter) }, + { "free_cnt", to_string(cnt.availableCounter) }}; SWSS_LOG_WARN("%s THRESHOLD_EXCEEDED for %s %u%% Used count %u free count %u", res.name.c_str(), threshType.c_str(), percentageUtil, cnt.usedCounter, cnt.availableCounter); diff --git a/orchagent/pfcwdorch.cpp b/orchagent/pfcwdorch.cpp index 469b78e141..695856bbee 100644 --- a/orchagent/pfcwdorch.cpp +++ b/orchagent/pfcwdorch.cpp @@ -941,9 +941,9 @@ void PfcWdSwOrch::report_pfc_storm(const PfcWdQueue { event_params_t params = { { "ifname", entry->second.portAlias }, - { "queue_index", entry->second.index }, + { "queue_index", to_string(entry->second.index }, { "queue_id", entry->first }, - { "port_id", entry->second.portId }}; + { "port_id", to_string(entry->second.portId) }}; SWSS_LOG_NOTICE( "PFC Watchdog detected PFC storm on port %s, queue index %d, queue id 0x%" PRIx64 " and port id 0x%" PRIx64 ".", From bc7762404f19721fb3d5359cea81dd9bbf6ddeb6 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sun, 11 Sep 2022 04:02:10 +0000 Subject: [PATCH 05/15] syntax --- orchagent/pfcwdorch.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/orchagent/pfcwdorch.cpp b/orchagent/pfcwdorch.cpp index 695856bbee..d199969ee0 100644 --- a/orchagent/pfcwdorch.cpp +++ b/orchagent/pfcwdorch.cpp @@ -937,11 +937,11 @@ void PfcWdSwOrch::doTask(SelectableTimer &timer) } template -void PfcWdSwOrch::report_pfc_storm(const PfcWdQueueEntry *entry +void PfcWdSwOrch::report_pfc_storm(const PfcWdQueueEntry *entry) { event_params_t params = { { "ifname", entry->second.portAlias }, - { "queue_index", to_string(entry->second.index }, + { "queue_index", to_string(entry->second.index) }, { "queue_id", entry->first }, { "port_id", to_string(entry->second.portId) }}; From 50f125ce956f68baa3c065cf8f6e77de4228d0db Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sun, 11 Sep 2022 04:11:05 +0000 Subject: [PATCH 06/15] syntax --- orchagent/pfcwdorch.cpp | 5 ++--- orchagent/pfcwdorch.h | 5 +++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/orchagent/pfcwdorch.cpp b/orchagent/pfcwdorch.cpp index d199969ee0..9fd64f5f87 100644 --- a/orchagent/pfcwdorch.cpp +++ b/orchagent/pfcwdorch.cpp @@ -36,10 +36,8 @@ extern SwitchOrch *gSwitchOrch; extern PortsOrch *gPortsOrch; template -PfcWdOrch::PfcWdOrch(DBConnector *db, vector &tableNames, - event_handle_t handle): +PfcWdOrch::PfcWdOrch(DBConnector *db, vector &tableNames): Orch(db, tableNames), - m_events_handle(handle), m_countersDb(new DBConnector("COUNTERS_DB", 0)), m_countersTable(new Table(m_countersDb.get(), COUNTERS_TABLE)), m_platform(getenv("platform") ? getenv("platform") : "") @@ -691,6 +689,7 @@ PfcWdSwOrch::PfcWdSwOrch( int pollInterval, event_handle_t handle): PfcWdOrch(db, tableNames, handle), + m_events_handle(handle), m_flexCounterDb(new DBConnector("FLEX_COUNTER_DB", 0)), m_flexCounterTable(new ProducerTable(m_flexCounterDb.get(), FLEX_COUNTER_TABLE)), m_flexCounterGroupTable(new ProducerTable(m_flexCounterDb.get(), FLEX_COUNTER_GROUP_TABLE)), diff --git a/orchagent/pfcwdorch.h b/orchagent/pfcwdorch.h index f8aa7a43a9..5f3133814d 100644 --- a/orchagent/pfcwdorch.h +++ b/orchagent/pfcwdorch.h @@ -27,7 +27,7 @@ template class PfcWdOrch: public Orch { public: - PfcWdOrch(DBConnector *db, vector &tableNames, event_handle_t handle); + PfcWdOrch(DBConnector *db, vector &tableNames); virtual ~PfcWdOrch(void); virtual void doTask(Consumer& consumer); @@ -56,7 +56,6 @@ class PfcWdOrch: public Orch protected: virtual bool startWdActionOnQueue(const string &event, sai_object_id_t queueId) = 0; string m_platform = ""; - event_handle_t m_events_handle; private: shared_ptr m_countersDb = nullptr; @@ -94,6 +93,8 @@ class PfcWdSwOrch: public PfcWdOrch bool startWdActionOnQueue(const string &event, sai_object_id_t queueId) override; private: + event_handle_t m_events_handle; + struct PfcWdQueueEntry { PfcWdQueueEntry( From d159800bde65e243e4824df22e0dc43c5951d4d4 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sun, 11 Sep 2022 04:17:04 +0000 Subject: [PATCH 07/15] syntax --- orchagent/pfcwdorch.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orchagent/pfcwdorch.cpp b/orchagent/pfcwdorch.cpp index 9fd64f5f87..618f4ad725 100644 --- a/orchagent/pfcwdorch.cpp +++ b/orchagent/pfcwdorch.cpp @@ -688,7 +688,7 @@ PfcWdSwOrch::PfcWdSwOrch( const vector &queueAttrIds, int pollInterval, event_handle_t handle): - PfcWdOrch(db, tableNames, handle), + PfcWdOrch(db, tableNames), m_events_handle(handle), m_flexCounterDb(new DBConnector("FLEX_COUNTER_DB", 0)), m_flexCounterTable(new ProducerTable(m_flexCounterDb.get(), FLEX_COUNTER_TABLE)), From 8a66584f83e153454d22c3b2df1538fffa11320f Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sun, 11 Sep 2022 04:26:43 +0000 Subject: [PATCH 08/15] syntax --- orchagent/pfcwdorch.cpp | 25 +++++++++++++------------ orchagent/pfcwdorch.h | 2 +- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/orchagent/pfcwdorch.cpp b/orchagent/pfcwdorch.cpp index 618f4ad725..ca40010558 100644 --- a/orchagent/pfcwdorch.cpp +++ b/orchagent/pfcwdorch.cpp @@ -936,20 +936,21 @@ void PfcWdSwOrch::doTask(SelectableTimer &timer) } template -void PfcWdSwOrch::report_pfc_storm(const PfcWdQueueEntry *entry) +void PfcWdSwOrch::report_pfc_storm( + sai_object_id_t id, const PfcWdQueueEntry *entry) { event_params_t params = { - { "ifname", entry->second.portAlias }, - { "queue_index", to_string(entry->second.index) }, - { "queue_id", entry->first }, - { "port_id", to_string(entry->second.portId) }}; + { "ifname", entry->portAlias }, + { "queue_index", to_string(entry->index) }, + { "queue_id", to_string(id) }, + { "port_id", to_string(entry->portId) }}; SWSS_LOG_NOTICE( "PFC Watchdog detected PFC storm on port %s, queue index %d, queue id 0x%" PRIx64 " and port id 0x%" PRIx64 ".", - entry->second.portAlias.c_str(), - entry->second.index, - entry->first, - entry->second.portId); + entry->portAlias.c_str(), + entry->index, + id, + entry->portId); if (0 != event_publish(m_events_handle, "pfc-storm", ¶ms)) { SWSS_LOG_WARN("Failed to publish event for pfc-storm"); @@ -978,7 +979,7 @@ bool PfcWdSwOrch::startWdActionOnQueue(const string { if (entry->second.handler == nullptr) { - report_pfc_storm(entry); + report_pfc_storm(entry->first, &entry->second); entry->second.handler = make_shared( entry->second.portId, @@ -995,7 +996,7 @@ bool PfcWdSwOrch::startWdActionOnQueue(const string { if (entry->second.handler == nullptr) { - report_pfc_storm(entry); + report_pfc_storm(entry->first, &entry->second); entry->second.handler = make_shared( entry->second.portId, @@ -1012,7 +1013,7 @@ bool PfcWdSwOrch::startWdActionOnQueue(const string { if (entry->second.handler == nullptr) { - report_pfc_storm(entry); + report_pfc_storm(entry->first, &entry->second); entry->second.handler = make_shared( entry->second.portId, diff --git a/orchagent/pfcwdorch.h b/orchagent/pfcwdorch.h index 5f3133814d..56531c74f9 100644 --- a/orchagent/pfcwdorch.h +++ b/orchagent/pfcwdorch.h @@ -124,7 +124,7 @@ class PfcWdSwOrch: public PfcWdOrch void enableBigRedSwitchMode(); void setBigRedSwitchMode(string value); - void report_pfc_storm(const PfcWdQueueEntry *); + void report_pfc_storm(sai_object_id_t id, const PfcWdQueueEntry *); map m_entryMap; map m_brsEntryMap; From d8f6fa1847cde7f3e1616ca2b777bd834420e399 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Sun, 11 Sep 2022 04:39:35 +0000 Subject: [PATCH 09/15] syntax --- orchagent/crmorch.h | 2 +- orchagent/pfcwdorch.h | 2 +- orchagent/portsorch.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/orchagent/crmorch.h b/orchagent/crmorch.h index 73703bb6de..9b671b8703 100644 --- a/orchagent/crmorch.h +++ b/orchagent/crmorch.h @@ -52,7 +52,7 @@ enum class CrmResourceStatus class CrmOrch : public Orch { public: - CrmOrch(swss::DBConnector *db, std::string tableName, event_handle_t handle); + CrmOrch(swss::DBConnector *db, std::string tableName, event_handle_t handle = NULL); void incCrmResUsedCounter(CrmResourceType resource); void decCrmResUsedCounter(CrmResourceType resource); // Increment "used" counter for the ACL table/group CRM resources diff --git a/orchagent/pfcwdorch.h b/orchagent/pfcwdorch.h index 56531c74f9..f1930c1227 100644 --- a/orchagent/pfcwdorch.h +++ b/orchagent/pfcwdorch.h @@ -74,7 +74,7 @@ class PfcWdSwOrch: public PfcWdOrch const vector &queueStatIds, const vector &queueAttrIds, int pollInterval, - event_handle_t handle); + event_handle_t handle = NULL); virtual ~PfcWdSwOrch(void); void doTask(Consumer& consumer) override; diff --git a/orchagent/portsorch.h b/orchagent/portsorch.h index dcfbb79399..227bf514bf 100755 --- a/orchagent/portsorch.h +++ b/orchagent/portsorch.h @@ -78,7 +78,7 @@ struct VlanMemberUpdate class PortsOrch : public Orch, public Subject { public: - PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, DBConnector *chassisAppDb, event_handle_t handle); + PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, DBConnector *chassisAppDb, event_handle_t handle = NULL); bool allPortsReady(); bool isInitDone(); From 74ff2dc58f9c52fa23a55dcb72dd79626443e7d5 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Mon, 12 Sep 2022 03:35:36 +0000 Subject: [PATCH 10/15] Updated fake code --- orchagent/p4orch/tests/fake_crmorch.cpp | 2 +- orchagent/p4orch/tests/fake_portorch.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/orchagent/p4orch/tests/fake_crmorch.cpp b/orchagent/p4orch/tests/fake_crmorch.cpp index 03f15c28ac..116bb8e1de 100644 --- a/orchagent/p4orch/tests/fake_crmorch.cpp +++ b/orchagent/p4orch/tests/fake_crmorch.cpp @@ -3,7 +3,7 @@ #include "crmorch.h" -CrmOrch::CrmOrch(swss::DBConnector *db, std::string tableName) : Orch(db, std::vector{}) +CrmOrch::CrmOrch(swss::DBConnector *db, std::string tableName, event_handle_t) : Orch(db, std::vector{}) { } diff --git a/orchagent/p4orch/tests/fake_portorch.cpp b/orchagent/p4orch/tests/fake_portorch.cpp index 5224ec55af..5bb50f78e8 100644 --- a/orchagent/p4orch/tests/fake_portorch.cpp +++ b/orchagent/p4orch/tests/fake_portorch.cpp @@ -13,7 +13,7 @@ extern "C" #define QUEUE_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS 10000 PortsOrch::PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, - DBConnector *chassisAppDb) + DBConnector *chassisAppDb, event_handle_t) : Orch(db, tableNames), m_portStateTable(stateDb, STATE_PORT_TABLE_NAME), port_stat_manager(PORT_STAT_COUNTER_FLEX_COUNTER_GROUP, StatsMode::READ, PORT_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS, true), From 69a9662f84bf5abe27b1f844776a2632aaeeb8d5 Mon Sep 17 00:00:00 2001 From: zbud-msft Date: Wed, 14 Sep 2022 00:08:49 +0000 Subject: [PATCH 11/15] Remove if and log messages for event_publish --- orchagent/crmorch.cpp | 4 +--- orchagent/pfcwdorch.cpp | 4 +--- orchagent/portsorch.cpp | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/orchagent/crmorch.cpp b/orchagent/crmorch.cpp index 3f5835f963..0bd2c3e0fb 100644 --- a/orchagent/crmorch.cpp +++ b/orchagent/crmorch.cpp @@ -772,9 +772,7 @@ void CrmOrch::checkCrmThresholds() SWSS_LOG_WARN("%s THRESHOLD_EXCEEDED for %s %u%% Used count %u free count %u", res.name.c_str(), threshType.c_str(), percentageUtil, cnt.usedCounter, cnt.availableCounter); - if (0 != event_publish(m_events_handle, "chk_crm_threshold", ¶ms)) { - SWSS_LOG_WARN("Failed to publish event for if-state"); - } + event_publish(m_events_handle, "chk_crm_threshold", ¶ms); res.exceededLogCounter++; } diff --git a/orchagent/pfcwdorch.cpp b/orchagent/pfcwdorch.cpp index ca40010558..b5977f0775 100644 --- a/orchagent/pfcwdorch.cpp +++ b/orchagent/pfcwdorch.cpp @@ -952,9 +952,7 @@ void PfcWdSwOrch::report_pfc_storm( id, entry->portId); - if (0 != event_publish(m_events_handle, "pfc-storm", ¶ms)) { - SWSS_LOG_WARN("Failed to publish event for pfc-storm"); - } + event_publish(m_events_handle, "pfc-storm", ¶ms); } template diff --git a/orchagent/portsorch.cpp b/orchagent/portsorch.cpp index 6a7f1e8af9..6fed8ec5d5 100755 --- a/orchagent/portsorch.cpp +++ b/orchagent/portsorch.cpp @@ -2540,9 +2540,7 @@ bool PortsOrch::setHostIntfsOperStatus(const Port& port, bool isUp) const isUp ? "UP" : "DOWN", port.m_alias.c_str()); event_params_t params = {{"ifname",port.m_alias},{"status",isUp ? "up" : "down"}}; - if (0 != event_publish(m_events_handle, "if-state", ¶ms)) { - SWSS_LOG_WARN("Failed to publish event for if-state"); - } + event_publish(m_events_handle, "if-state", ¶ms); return true; } From 460a7ec4a01cc7678f19f514d54419144a7d7fc6 Mon Sep 17 00:00:00 2001 From: Zain Budhwani <99770260+zbud-msft@users.noreply.github.com> Date: Tue, 13 Sep 2022 17:27:09 -0700 Subject: [PATCH 12/15] Remove if and log messages for event_publish (#1) --- orchagent/crmorch.cpp | 4 +--- orchagent/pfcwdorch.cpp | 4 +--- orchagent/portsorch.cpp | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/orchagent/crmorch.cpp b/orchagent/crmorch.cpp index 3f5835f963..0bd2c3e0fb 100644 --- a/orchagent/crmorch.cpp +++ b/orchagent/crmorch.cpp @@ -772,9 +772,7 @@ void CrmOrch::checkCrmThresholds() SWSS_LOG_WARN("%s THRESHOLD_EXCEEDED for %s %u%% Used count %u free count %u", res.name.c_str(), threshType.c_str(), percentageUtil, cnt.usedCounter, cnt.availableCounter); - if (0 != event_publish(m_events_handle, "chk_crm_threshold", ¶ms)) { - SWSS_LOG_WARN("Failed to publish event for if-state"); - } + event_publish(m_events_handle, "chk_crm_threshold", ¶ms); res.exceededLogCounter++; } diff --git a/orchagent/pfcwdorch.cpp b/orchagent/pfcwdorch.cpp index ca40010558..b5977f0775 100644 --- a/orchagent/pfcwdorch.cpp +++ b/orchagent/pfcwdorch.cpp @@ -952,9 +952,7 @@ void PfcWdSwOrch::report_pfc_storm( id, entry->portId); - if (0 != event_publish(m_events_handle, "pfc-storm", ¶ms)) { - SWSS_LOG_WARN("Failed to publish event for pfc-storm"); - } + event_publish(m_events_handle, "pfc-storm", ¶ms); } template diff --git a/orchagent/portsorch.cpp b/orchagent/portsorch.cpp index 6a7f1e8af9..6fed8ec5d5 100755 --- a/orchagent/portsorch.cpp +++ b/orchagent/portsorch.cpp @@ -2540,9 +2540,7 @@ bool PortsOrch::setHostIntfsOperStatus(const Port& port, bool isUp) const isUp ? "UP" : "DOWN", port.m_alias.c_str()); event_params_t params = {{"ifname",port.m_alias},{"status",isUp ? "up" : "down"}}; - if (0 != event_publish(m_events_handle, "if-state", ¶ms)) { - SWSS_LOG_WARN("Failed to publish event for if-state"); - } + event_publish(m_events_handle, "if-state", ¶ms); return true; } From a248ba520563d2cf24158c0da3452d42fa736175 Mon Sep 17 00:00:00 2001 From: zbud-msft Date: Wed, 14 Sep 2022 21:39:44 +0000 Subject: [PATCH 13/15] Remove event_handle_t from signature and add globally --- orchagent/crmorch.cpp | 6 ++--- orchagent/crmorch.h | 3 +-- orchagent/orchdaemon.cpp | 29 ++++++++++-------------- orchagent/orchdaemon.h | 1 - orchagent/p4orch/tests/fake_portorch.cpp | 2 +- orchagent/pfcwdorch.cpp | 8 +++---- orchagent/pfcwdorch.h | 5 +--- orchagent/portsorch.cpp | 6 ++--- orchagent/portsorch.h | 3 +-- 9 files changed, 26 insertions(+), 37 deletions(-) diff --git a/orchagent/crmorch.cpp b/orchagent/crmorch.cpp index 0bd2c3e0fb..f954bd1637 100644 --- a/orchagent/crmorch.cpp +++ b/orchagent/crmorch.cpp @@ -18,6 +18,7 @@ extern sai_object_id_t gSwitchId; extern sai_switch_api_t *sai_switch_api; extern sai_acl_api_t *sai_acl_api; +extern event_handle_t g_events_handle; using namespace std; using namespace swss; @@ -241,9 +242,8 @@ const map crmUsedCntsTableMap = { "crm_stats_nexthop_group_map_used", CrmResourceType::CRM_NEXTHOP_GROUP_MAP }, }; -CrmOrch::CrmOrch(DBConnector *db, string tableName, event_handle_t handle): +CrmOrch::CrmOrch(DBConnector *db, string tableName): Orch(db, tableName), - m_events_handle(handle), m_countersDb(new DBConnector("COUNTERS_DB", 0)), m_countersCrmTable(new Table(m_countersDb.get(), COUNTERS_CRM_TABLE)), m_timer(new SelectableTimer(timespec { .tv_sec = CRM_POLLING_INTERVAL_DEFAULT, .tv_nsec = 0 })) @@ -772,7 +772,7 @@ void CrmOrch::checkCrmThresholds() SWSS_LOG_WARN("%s THRESHOLD_EXCEEDED for %s %u%% Used count %u free count %u", res.name.c_str(), threshType.c_str(), percentageUtil, cnt.usedCounter, cnt.availableCounter); - event_publish(m_events_handle, "chk_crm_threshold", ¶ms); + event_publish(g_events_handle, "chk_crm_threshold", ¶ms); res.exceededLogCounter++; } diff --git a/orchagent/crmorch.h b/orchagent/crmorch.h index 9b671b8703..a9c32a83bd 100644 --- a/orchagent/crmorch.h +++ b/orchagent/crmorch.h @@ -52,7 +52,7 @@ enum class CrmResourceStatus class CrmOrch : public Orch { public: - CrmOrch(swss::DBConnector *db, std::string tableName, event_handle_t handle = NULL); + CrmOrch(swss::DBConnector *db, std::string tableName); void incCrmResUsedCounter(CrmResourceType resource); void decCrmResUsedCounter(CrmResourceType resource); // Increment "used" counter for the ACL table/group CRM resources @@ -65,7 +65,6 @@ class CrmOrch : public Orch void decCrmAclTableUsedCounter(CrmResourceType resource, sai_object_id_t tableId); private: - event_handle_t m_events_handle; std::shared_ptr m_countersDb = nullptr; std::shared_ptr m_countersCrmTable = nullptr; swss::SelectableTimer *m_timer = nullptr; diff --git a/orchagent/orchdaemon.cpp b/orchagent/orchdaemon.cpp index 104e8c2ab9..0d5a5a8f73 100644 --- a/orchagent/orchdaemon.cpp +++ b/orchagent/orchdaemon.cpp @@ -22,6 +22,8 @@ extern sai_switch_api_t* sai_switch_api; extern sai_object_id_t gSwitchId; extern bool gSaiRedisLogRotate; +extern event_handle_t g_events_handle; + extern void syncd_apply_view(); /* * Global orch daemon variables @@ -62,7 +64,6 @@ bool gIsNatSupported = false; size_t gMaxBulkSize = DEFAULT_MAX_BULK_SIZE; OrchDaemon::OrchDaemon(DBConnector *applDb, DBConnector *configDb, DBConnector *stateDb, DBConnector *chassisAppDb) : - m_events_handle(NULL), m_applDb(applDb), m_configDb(configDb), m_stateDb(stateDb), @@ -91,7 +92,7 @@ OrchDaemon::~OrchDaemon() } delete m_select; - events_deinit_publisher(m_events_handle); + events_deinit_publisher(g_events_handle); } bool OrchDaemon::init() @@ -100,9 +101,9 @@ bool OrchDaemon::init() string platform = getenv("platform") ? getenv("platform") : ""; - m_events_handle = events_init_publisher("sonic-events-swss"); + g_events_handle = events_init_publisher("sonic-events-swss"); - gCrmOrch = new CrmOrch(m_configDb, CFG_CRM_TABLE_NAME, m_events_handle); + gCrmOrch = new CrmOrch(m_configDb, CFG_CRM_TABLE_NAME); TableConnector stateDbSwitchTable(m_stateDb, "SWITCH_CAPABILITY"); TableConnector app_switch_table(m_applDb, APP_SWITCH_TABLE_NAME); @@ -131,7 +132,7 @@ bool OrchDaemon::init() { APP_MCLAG_FDB_TABLE_NAME, FdbOrch::fdborch_pri} }; - gPortsOrch = new PortsOrch(m_applDb, m_stateDb, ports_tables, m_chassisAppDb, m_events_handle); + gPortsOrch = new PortsOrch(m_applDb, m_stateDb, ports_tables, m_chassisAppDb); TableConnector stateDbFdb(m_stateDb, STATE_FDB_TABLE_NAME); TableConnector stateMclagDbFdb(m_stateDb, STATE_MCLAG_REMOTE_FDB_TABLE_NAME); gFdbOrch = new FdbOrch(m_applDb, app_fdb_tables, stateDbFdb, stateMclagDbFdb, gPortsOrch); @@ -513,8 +514,7 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS, - m_events_handle)); + PFC_WD_POLL_MSECS)); } else if ((platform == INVM_PLATFORM_SUBSTRING) || (platform == BFN_PLATFORM_SUBSTRING) @@ -557,8 +557,7 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS, - m_events_handle)); + PFC_WD_POLL_MSECS)); } else if (platform == BFN_PLATFORM_SUBSTRING) { @@ -568,8 +567,7 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS, - m_events_handle)); + PFC_WD_POLL_MSECS)); } } else if (platform == BRCM_PLATFORM_SUBSTRING) @@ -613,8 +611,7 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS, - m_events_handle)); + PFC_WD_POLL_MSECS)); } else { @@ -624,8 +621,7 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS, - m_events_handle)); + PFC_WD_POLL_MSECS)); } } else if (platform == CISCO_8000_PLATFORM_SUBSTRING) { @@ -647,8 +643,7 @@ bool OrchDaemon::init() portStatIds, queueStatIds, queueAttrIds, - PFC_WD_POLL_MSECS, - m_events_handle)); + PFC_WD_POLL_MSECS)); } m_orchList.push_back(&CounterCheckOrch::getInstance(m_configDb)); diff --git a/orchagent/orchdaemon.h b/orchagent/orchdaemon.h index 8cc6a0cfc6..def4b78629 100644 --- a/orchagent/orchdaemon.h +++ b/orchagent/orchdaemon.h @@ -68,7 +68,6 @@ class OrchDaemon m_fabricEnabled = enabled; } private: - event_handle_t m_events_handle; DBConnector *m_applDb; DBConnector *m_configDb; DBConnector *m_stateDb; diff --git a/orchagent/p4orch/tests/fake_portorch.cpp b/orchagent/p4orch/tests/fake_portorch.cpp index 5bb50f78e8..5224ec55af 100644 --- a/orchagent/p4orch/tests/fake_portorch.cpp +++ b/orchagent/p4orch/tests/fake_portorch.cpp @@ -13,7 +13,7 @@ extern "C" #define QUEUE_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS 10000 PortsOrch::PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, - DBConnector *chassisAppDb, event_handle_t) + DBConnector *chassisAppDb) : Orch(db, tableNames), m_portStateTable(stateDb, STATE_PORT_TABLE_NAME), port_stat_manager(PORT_STAT_COUNTER_FLEX_COUNTER_GROUP, StatsMode::READ, PORT_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS, true), diff --git a/orchagent/pfcwdorch.cpp b/orchagent/pfcwdorch.cpp index b5977f0775..9242558028 100644 --- a/orchagent/pfcwdorch.cpp +++ b/orchagent/pfcwdorch.cpp @@ -32,6 +32,8 @@ extern sai_switch_api_t* sai_switch_api; extern sai_port_api_t *sai_port_api; extern sai_queue_api_t *sai_queue_api; +extern event_handle_t g_events_handle; + extern SwitchOrch *gSwitchOrch; extern PortsOrch *gPortsOrch; @@ -686,10 +688,8 @@ PfcWdSwOrch::PfcWdSwOrch( const vector &portStatIds, const vector &queueStatIds, const vector &queueAttrIds, - int pollInterval, - event_handle_t handle): + int pollInterval): PfcWdOrch(db, tableNames), - m_events_handle(handle), m_flexCounterDb(new DBConnector("FLEX_COUNTER_DB", 0)), m_flexCounterTable(new ProducerTable(m_flexCounterDb.get(), FLEX_COUNTER_TABLE)), m_flexCounterGroupTable(new ProducerTable(m_flexCounterDb.get(), FLEX_COUNTER_GROUP_TABLE)), @@ -952,7 +952,7 @@ void PfcWdSwOrch::report_pfc_storm( id, entry->portId); - event_publish(m_events_handle, "pfc-storm", ¶ms); + event_publish(g_events_handle, "pfc-storm", ¶ms); } template diff --git a/orchagent/pfcwdorch.h b/orchagent/pfcwdorch.h index f1930c1227..ff493405b9 100644 --- a/orchagent/pfcwdorch.h +++ b/orchagent/pfcwdorch.h @@ -73,8 +73,7 @@ class PfcWdSwOrch: public PfcWdOrch const vector &portStatIds, const vector &queueStatIds, const vector &queueAttrIds, - int pollInterval, - event_handle_t handle = NULL); + int pollInterval); virtual ~PfcWdSwOrch(void); void doTask(Consumer& consumer) override; @@ -93,8 +92,6 @@ class PfcWdSwOrch: public PfcWdOrch bool startWdActionOnQueue(const string &event, sai_object_id_t queueId) override; private: - event_handle_t m_events_handle; - struct PfcWdQueueEntry { PfcWdQueueEntry( diff --git a/orchagent/portsorch.cpp b/orchagent/portsorch.cpp index 6fed8ec5d5..0f19f6b1e3 100755 --- a/orchagent/portsorch.cpp +++ b/orchagent/portsorch.cpp @@ -55,6 +55,7 @@ extern string gMySwitchType; extern int32_t gVoqMySwitchId; extern string gMyHostName; extern string gMyAsicName; +extern event_handle_t g_events_handle; #define DEFAULT_SYSTEM_PORT_MTU 9100 #define VLAN_PREFIX "Vlan" @@ -353,9 +354,8 @@ static bool isValidPortTypeForLagMember(const Port& port) * default VLAN and all ports removed from .1Q bridge. */ PortsOrch::PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, - DBConnector *chassisAppDb, event_handle_t events_handle) : + DBConnector *chassisAppDb) : Orch(db, tableNames), - m_events_handle(events_handle), m_portStateTable(stateDb, STATE_PORT_TABLE_NAME), port_stat_manager(PORT_STAT_COUNTER_FLEX_COUNTER_GROUP, StatsMode::READ, PORT_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS, false), gb_port_stat_manager("GB_FLEX_COUNTER_DB", @@ -2540,7 +2540,7 @@ bool PortsOrch::setHostIntfsOperStatus(const Port& port, bool isUp) const isUp ? "UP" : "DOWN", port.m_alias.c_str()); event_params_t params = {{"ifname",port.m_alias},{"status",isUp ? "up" : "down"}}; - event_publish(m_events_handle, "if-state", ¶ms); + event_publish(g_events_handle, "if-state", ¶ms); return true; } diff --git a/orchagent/portsorch.h b/orchagent/portsorch.h index 227bf514bf..d28a347e08 100755 --- a/orchagent/portsorch.h +++ b/orchagent/portsorch.h @@ -78,7 +78,7 @@ struct VlanMemberUpdate class PortsOrch : public Orch, public Subject { public: - PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, DBConnector *chassisAppDb, event_handle_t handle = NULL); + PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, DBConnector *chassisAppDb); bool allPortsReady(); bool isInitDone(); @@ -189,7 +189,6 @@ class PortsOrch : public Orch, public Subject bool isMACsecPort(sai_object_id_t port_id) const; private: - event_handle_t m_events_handle; unique_ptr
m_counterTable; unique_ptr
m_counterLagTable; unique_ptr
m_portTable; From 082a260c9703534c83e30e133e16306976d54d97 Mon Sep 17 00:00:00 2001 From: zbud-msft Date: Wed, 14 Sep 2022 21:51:11 +0000 Subject: [PATCH 14/15] Remove extern orchdaemon.cpp --- orchagent/orchdaemon.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/orchagent/orchdaemon.cpp b/orchagent/orchdaemon.cpp index 0d5a5a8f73..68032d1689 100644 --- a/orchagent/orchdaemon.cpp +++ b/orchagent/orchdaemon.cpp @@ -22,8 +22,6 @@ extern sai_switch_api_t* sai_switch_api; extern sai_object_id_t gSwitchId; extern bool gSaiRedisLogRotate; -extern event_handle_t g_events_handle; - extern void syncd_apply_view(); /* * Global orch daemon variables @@ -59,6 +57,7 @@ FlowCounterRouteOrch *gFlowCounterRouteOrch; DebugCounterOrch *gDebugCounterOrch; bool gIsNatSupported = false; +event_handle_t g_events_handle; #define DEFAULT_MAX_BULK_SIZE 1000 size_t gMaxBulkSize = DEFAULT_MAX_BULK_SIZE; From 46f535f261aa138a012b5ec680efb7073889cc2e Mon Sep 17 00:00:00 2001 From: zbud-msft Date: Wed, 14 Sep 2022 22:40:31 +0000 Subject: [PATCH 15/15] Revert unneeded changes --- orchagent/p4orch/tests/fake_crmorch.cpp | 2 +- orchagent/portsorch.cpp | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/orchagent/p4orch/tests/fake_crmorch.cpp b/orchagent/p4orch/tests/fake_crmorch.cpp index 116bb8e1de..03f15c28ac 100644 --- a/orchagent/p4orch/tests/fake_crmorch.cpp +++ b/orchagent/p4orch/tests/fake_crmorch.cpp @@ -3,7 +3,7 @@ #include "crmorch.h" -CrmOrch::CrmOrch(swss::DBConnector *db, std::string tableName, event_handle_t) : Orch(db, std::vector{}) +CrmOrch::CrmOrch(swss::DBConnector *db, std::string tableName) : Orch(db, std::vector{}) { } diff --git a/orchagent/portsorch.cpp b/orchagent/portsorch.cpp index 0f19f6b1e3..8119b35d63 100755 --- a/orchagent/portsorch.cpp +++ b/orchagent/portsorch.cpp @@ -353,8 +353,7 @@ static bool isValidPortTypeForLagMember(const Port& port) * bridge. By design, SONiC switch starts with all bridge ports removed from * default VLAN and all ports removed from .1Q bridge. */ -PortsOrch::PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, - DBConnector *chassisAppDb) : +PortsOrch::PortsOrch(DBConnector *db, DBConnector *stateDb, vector &tableNames, DBConnector *chassisAppDb) : Orch(db, tableNames), m_portStateTable(stateDb, STATE_PORT_TABLE_NAME), port_stat_manager(PORT_STAT_COUNTER_FLEX_COUNTER_GROUP, StatsMode::READ, PORT_STAT_FLEX_COUNTER_POLLING_INTERVAL_MS, false),