From aef5eb14877c68dda33c95fbc8dc1ed45dee601b Mon Sep 17 00:00:00 2001 From: Christian Manivong Date: Fri, 12 Jun 2026 21:08:26 +0200 Subject: [PATCH] feat: include remote chassis MAC in LLDP neighbor entries Enables MAC-based topology matching against devices that report their own MAC but not a usable system name. --- napalm_netgear/netgear_smart.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/napalm_netgear/netgear_smart.py b/napalm_netgear/netgear_smart.py index 90ea412..634ed0d 100644 --- a/napalm_netgear/netgear_smart.py +++ b/napalm_netgear/netgear_smart.py @@ -1014,9 +1014,11 @@ class NetgearSmartDriver(SwitchDriver): """ neighbors: Dict[str, List[Dict]] = {} for row in self._get_lldp_table(): - neighbors.setdefault(row["local_port"], []).append( - {"hostname": row["system_name"], "port": row["port_id"]} - ) + entry = {"hostname": row["system_name"], "port": row["port_id"]} + chassis_id = row.get("remote_chassis_id", "") + if re.match(r"^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$", chassis_id): + entry["mac"] = chassis_id.lower() + neighbors.setdefault(row["local_port"], []).append(entry) return neighbors def _get_lldp_table(self) -> List[Dict]: