From cb43a66c32c3b326e217a9304368e82619ad559a Mon Sep 17 00:00:00 2001 From: noaOrMlnx Date: Thu, 18 Apr 2024 13:04:19 +0000 Subject: [PATCH] Update setHostTxReady() to receive Port instead of portId --- orchagent/portsorch.cpp | 34 ++++++++++++++++------------------ orchagent/portsorch.h | 2 +- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/orchagent/portsorch.cpp b/orchagent/portsorch.cpp index fb37a0978c..1bdaaf9dfa 100755 --- a/orchagent/portsorch.cpp +++ b/orchagent/portsorch.cpp @@ -1469,7 +1469,7 @@ void PortsOrch::initHostTxReadyState(Port &port) if (hostTxReady.empty()) { - setHostTxReady(port.m_port_id, "false"); + setHostTxReady(port, "false"); SWSS_LOG_NOTICE("initialize host_tx_ready as false for port %s", port.m_alias.c_str()); } @@ -1489,7 +1489,7 @@ bool PortsOrch::setPortAdminStatus(Port &port, bool state) /* Update the host_tx_ready to false before setting admin_state, when admin state is false */ if (!state && !m_cmisModuleAsicSyncSupported) { - setHostTxReady(port.m_port_id, "false"); + setHostTxReady(port, "false"); SWSS_LOG_NOTICE("Set admin status DOWN host_tx_ready to false for port %s", port.m_alias.c_str()); } @@ -1503,7 +1503,7 @@ bool PortsOrch::setPortAdminStatus(Port &port, bool state) if (!m_cmisModuleAsicSyncSupported) { - setHostTxReady(port.m_port_id, "false"); + setHostTxReady(port, "false"); } task_process_status handle_status = handleSaiSetStatus(SAI_API_PORT, status); if (handle_status != task_success) @@ -1515,7 +1515,7 @@ bool PortsOrch::setPortAdminStatus(Port &port, bool state) bool gbstatus = setGearboxPortsAttr(port, SAI_PORT_ATTR_ADMIN_STATE, &state); if (gbstatus != true && !m_cmisModuleAsicSyncSupported) { - setHostTxReady(port.m_port_id, "false"); + setHostTxReady(port, "false"); SWSS_LOG_NOTICE("Set host_tx_ready to false as gbstatus is false " "for port %s", port.m_alias.c_str()); } @@ -1523,7 +1523,7 @@ bool PortsOrch::setPortAdminStatus(Port &port, bool state) /* Update the state table for host_tx_ready*/ if (state && (gbstatus == true) && (status == SAI_STATUS_SUCCESS) && !m_cmisModuleAsicSyncSupported) { - setHostTxReady(port.m_port_id, "true"); + setHostTxReady(port, "true"); SWSS_LOG_NOTICE("Set admin status UP host_tx_ready to true for port %s", port.m_alias.c_str()); } @@ -1531,18 +1531,10 @@ bool PortsOrch::setPortAdminStatus(Port &port, bool state) return true; } -void PortsOrch::setHostTxReady(sai_object_id_t portId, const std::string &status) +void PortsOrch::setHostTxReady(Port port, const std::string &status) { - Port p; - - if (!getPort(portId, p)) - { - SWSS_LOG_ERROR("Failed to get port object for port id 0x%" PRIx64, portId); - return; - } - - SWSS_LOG_NOTICE("Setting host_tx_ready status = %s, alias = %s, port_id = 0x%" PRIx64, status.c_str(), p.m_alias.c_str(), portId); - m_portStateTable.hset(p.m_alias, "host_tx_ready", status); + SWSS_LOG_NOTICE("Setting host_tx_ready status = %s, alias = %s, port_id = 0x%" PRIx64, status.c_str(), port.m_alias.c_str(), port.m_port_id); + m_portStateTable.hset(port.m_alias, "host_tx_ready", status); } bool PortsOrch::getPortAdminStatus(sai_object_id_t id, bool &up) @@ -5380,7 +5372,7 @@ bool PortsOrch::initializePort(Port &port) string hostTxReadyStr = hostTxReadyVal ? "true" : "false"; SWSS_LOG_DEBUG("Received host_tx_ready current status: port_id: 0x%" PRIx64 " status: %s", port.m_port_id, hostTxReadyStr.c_str()); - setHostTxReady(port.m_port_id, hostTxReadyStr); + setHostTxReady(port, hostTxReadyStr); } /* @@ -7562,7 +7554,13 @@ void PortsOrch::doTask(NotificationConsumer &consumer) sai_deserialize_port_host_tx_ready_ntf(data, switch_id, port_id, host_tx_ready_status); SWSS_LOG_DEBUG("Recieved host_tx_ready notification for port 0x%" PRIx64, port_id); - setHostTxReady(port_id, host_tx_ready_status == SAI_PORT_HOST_TX_READY_STATUS_READY ? "true" : "false"); + Port p; + if (!getPort(port_id, p)) + { + SWSS_LOG_ERROR("Failed to get port object for port id 0x%" PRIx64, port_id); + return; + } + setHostTxReady(p, host_tx_ready_status == SAI_PORT_HOST_TX_READY_STATUS_READY ? "true" : "false"); } } diff --git a/orchagent/portsorch.h b/orchagent/portsorch.h index 1a37ceebdd..c00ef56d09 100755 --- a/orchagent/portsorch.h +++ b/orchagent/portsorch.h @@ -406,7 +406,7 @@ class PortsOrch : public Orch, public Subject bool setSaiHostTxSignal(const Port &port, bool enable); - void setHostTxReady(sai_object_id_t portId, const std::string &status); + void setHostTxReady(Port port, const std::string &status); // Get supported speeds on system side bool isSpeedSupported(const std::string& alias, sai_object_id_t port_id, sai_uint32_t speed); void getPortSupportedSpeeds(const std::string& alias, sai_object_id_t port_id, PortSupportedSpeeds &supported_speeds);