From 78ba433da0708479b571d122f9f040c48bd348bb Mon Sep 17 00:00:00 2001 From: "Marty Y. Lok" <76118573+mlok-nokia@users.noreply.github.com> Date: Fri, 23 Jun 2023 03:56:38 -0400 Subject: [PATCH] [chassis][lldp] Fix the lldp error log in host instance which doesn't contain front panel ports (#14814) * [chassis][lldp] Fix the lldp error log in host instance which doesn't contain front pannel ports --------- Signed-off-by: mlok --- dockers/docker-lldp/lldpmgrd | 5 ++++- src/sonic-py-common/sonic_py_common/device_info.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dockers/docker-lldp/lldpmgrd b/dockers/docker-lldp/lldpmgrd index 6d8540bf2613..2dad02f8794c 100755 --- a/dockers/docker-lldp/lldpmgrd +++ b/dockers/docker-lldp/lldpmgrd @@ -23,6 +23,8 @@ try: from sonic_py_common import daemon_base from swsscommon import swsscommon from sonic_py_common.interface import inband_prefix, recirc_prefix + from sonic_py_common import device_info + except ImportError as err: raise ImportError("%s - required module not found" % str(err)) @@ -357,7 +359,8 @@ def run_cmd(self, cmd): def check_timeout(self, start_time): if time.time() - start_time > PORT_INIT_TIMEOUT: - self.log_error("Port init timeout reached ({} seconds), resuming lldpd...".format(PORT_INIT_TIMEOUT)) + if device_info.is_frontend_port_present_in_host(): + self.log_error("Port init timeout reached ({} seconds), resuming lldpd...".format(PORT_INIT_TIMEOUT)) return True return False diff --git a/src/sonic-py-common/sonic_py_common/device_info.py b/src/sonic-py-common/sonic_py_common/device_info.py index f7b1beb75de1..f844c55e84e3 100644 --- a/src/sonic-py-common/sonic_py_common/device_info.py +++ b/src/sonic-py-common/sonic_py_common/device_info.py @@ -713,3 +713,13 @@ def is_fast_reboot_enabled(): state_db.close(state_db.STATE_DB) return fb_enable_state + + +def is_frontend_port_present_in_host(): + if is_supervisor(): + return False + if is_multi_npu(): + namespace_id = os.getenv("NAMESPACE_ID") + if not namespace_id: + return False + return True