meta-starlingx/meta-stx-integ/recipes-daemons/lldpd/files/lldpd-clear-station.patch

40 lines
1.6 KiB
Diff

From b2ed14edc66c7876cd9239a346b92630403e996c Mon Sep 17 00:00:00 2001
From: Steven Webster <steven.webster@windriver.com>
Date: Sun, 18 Jun 2017 22:23:49 -0400
Subject: [PATCH 1/1] Clear station bit if any other capability is enabled
---
src/daemon/interfaces.c | 2 ++
src/daemon/lldpd.c | 2 ++
2 files changed, 4 insertions(+)
diff --git a/src/daemon/interfaces.c b/src/daemon/interfaces.c
index ec81721..4923049 100644
--- a/src/daemon/interfaces.c
+++ b/src/daemon/interfaces.c
@@ -309,6 +309,8 @@ interfaces_helper_chassis(struct lldpd *cfg,
if ((LOCAL_CHASSIS(cfg)->c_cap_available & LLDP_CAP_STATION) &&
(LOCAL_CHASSIS(cfg)->c_cap_enabled == 0))
LOCAL_CHASSIS(cfg)->c_cap_enabled = LLDP_CAP_STATION;
+ else if (LOCAL_CHASSIS(cfg)->c_cap_enabled != LLDP_CAP_STATION)
+ LOCAL_CHASSIS(cfg)->c_cap_enabled &= ~LLDP_CAP_STATION;
if (LOCAL_CHASSIS(cfg)->c_id != NULL &&
LOCAL_CHASSIS(cfg)->c_id_subtype == LLDP_CHASSISID_SUBTYPE_LLADDR)
diff --git a/src/daemon/lldpd.c b/src/daemon/lldpd.c
index c815705..dac633f 100644
--- a/src/daemon/lldpd.c
+++ b/src/daemon/lldpd.c
@@ -1152,6 +1152,8 @@ lldpd_update_localchassis(struct lldpd *cfg)
if ((LOCAL_CHASSIS(cfg)->c_cap_available & LLDP_CAP_STATION) &&
(LOCAL_CHASSIS(cfg)->c_cap_enabled == 0))
LOCAL_CHASSIS(cfg)->c_cap_enabled = LLDP_CAP_STATION;
+ else if (LOCAL_CHASSIS(cfg)->c_cap_enabled != LLDP_CAP_STATION)
+ LOCAL_CHASSIS(cfg)->c_cap_enabled &= ~LLDP_CAP_STATION;
/* Set chassis ID if needed. This is only done if chassis ID
has not been set previously (with the MAC address of an
--
1.8.3.1