@@ -61,11 +61,12 @@ define Package/lldpd/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/lldpd.d
$(INSTALL_DIR) $(1)/etc/config
- $(INSTALL_DIR) $(1)/usr/lib $(1)/usr/sbin
+ $(INSTALL_DIR) $(1)/lib $(1)/usr/lib $(1)/usr/sbin
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/lldp{cli,ctl,d} $(1)/usr/sbin/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/liblldpctl.so* $(1)/usr/lib/
$(INSTALL_BIN) ./files/lldpd.init $(1)/etc/init.d/lldpd
$(INSTALL_DATA) ./files/lldpd.config $(1)/etc/config/lldpd
+ $(INSTALL_CONF) ./files/lldpd.unconf $(1)/lib
ifneq ($(CONFIG_LLDPD_WITH_CDP),y)
sed -i -e '/cdp/d' $(1)/etc/init.d/lldpd $(1)/etc/config/lldpd
endif
@@ -78,6 +79,12 @@ endif
ifneq ($(CONFIG_LLDPD_WITH_SONMP),y)
sed -i -e '/sonmp/d' $(1)/etc/init.d/lldpd $(1)/etc/config/lldpd
endif
+ifneq ($(CONFIG_LLDPD_WITH_LLDPMED),y)
+ sed -i -e '/med/d' $(1)/lib/lldpd.unconf
+endif
+ifneq ($(CONFIG_LLDPD_WITH_CUSTOM),y)
+ sed -i -e '/custom-tlv/d' $(1)/lib/lldpd.unconf
+endif
endef
define Package/lldpd/conffiles
@@ -98,13 +98,15 @@ service_running() {
reload_service() {
running || return 1
- # Custom TLVs are special and should be
- # reloaded from config during lldpd reload
- $LLDPCLI -u $LLDPSOCKET unconfigure lldp custom-tlv &> /dev/null
+ # Pause lldpd execution so that it won't send out info during reconfig
+ $LLDPCLI -u $LLDPSOCKET pause &> /dev/null
+ $LLDPCLI -u $LLDPSOCKET -c /lib/lldpd.unconf &> /dev/null
write_lldpd_conf
$LLDPCLI -u $LLDPSOCKET -c $LLDPD_CONF -c $LLDPD_CONFS_DIR &> /dev/null
- # Broadcast update over the wire
- $LLDPCLI -u $LLDPSOCKET update &> /dev/null
+ $LLDPCLI -u $LLDPSOCKET &> /dev/null << EOF
+ resume
+ update
+EOF
return 0
}
new file mode 100644
@@ -0,0 +1,9 @@
+unconfigure system hostname
+unconfigure system description
+unconfigure system platform
+unconfigure system interface pattern
+unconfigure system interface description
+unconfigure system interface promiscuous
+unconfigure system ip management pattern
+unconfigure lldp custom-tlv
+unconfigure med fast-start
Looks like we need to call 'unconfigure' options lldpd has to offer to do a proper (more complete) reload. And while we're doing reload, we need to pause lldpd's execution to prevent it sending unconfigured data/TLVs to the other side ( which could confuse the other side ). Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com> --- package/network/services/lldpd/Makefile | 9 ++++++++- package/network/services/lldpd/files/lldpd.init | 12 +++++++----- package/network/services/lldpd/files/lldpd.unconf | 9 +++++++++ 3 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 package/network/services/lldpd/files/lldpd.unconf