mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-01 11:36:49 +00:00
e3bb35811e
Because these capability advertisements default to on in lldpd, they
became absent at reload, and not restart, due to how the reload logic
works ( keep daemon running, send unconfigured and then the new config
via socket ), and it was not evident unless you happened to be looking
for it (e.g. via pcap or tcpdump). It was also not evident from the
manpage ( have now sent patches upstream ).
At reload time, the unconfigure logic disabled them unless they were
explicitly enabled (compare with other settings where 'unconfigure' just
resets them). Now they default to on/enabled at init time, and are
explicitly 'unconfigure'd at startup if the user disables them via:
lldp_mgmt_addr_advertisements=0
lldp_capability_advertisements=0
In other words: explicit is necessary to disable the advertisements.
The same applies to 'configure system capabilities enabled'. Technically
'unconfigure'd is the default but now it is explicit at reload.
Tested on: 23.05.3
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
(cherry picked from commit 708101c141
)
Link: https://github.com/openwrt/openwrt/pull/15299
Signed-off-by: Robert Marko <robimarko@gmail.com>
127 lines
4.1 KiB
Makefile
127 lines
4.1 KiB
Makefile
#
|
|
# Copyright (C) 2008-2015 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=lldpd
|
|
PKG_VERSION:=1.0.17
|
|
PKG_RELEASE:=5
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=https://github.com/lldpd/lldpd/releases/download/$(PKG_VERSION)/
|
|
PKG_HASH:=89ae691a4917ac9e0ec3b8b2c1e634cc402d43b804f98850c73bd1c7df380882
|
|
|
|
PKG_MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
|
|
PKG_LICENSE:=ISC
|
|
PKG_CPE_ID:=cpe:/a:lldpd_project:lldpd
|
|
|
|
PKG_FIXUP:=autoreconf
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_BUILD_FLAGS:=lto
|
|
PKG_INSTALL:=1
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/lldpd
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
SUBMENU:=Routing and Redirection
|
|
TITLE:=Link Layer Discovery Protocol daemon
|
|
URL:=https://lldpd.github.io/
|
|
DEPENDS:=+libcap +libevent2 +USE_GLIBC:libbsd +LLDPD_WITH_JSON:libjson-c +LLDPD_WITH_SNMP:libnetsnmp
|
|
USERID:=lldp=121:lldp=129
|
|
MENU:=1
|
|
endef
|
|
|
|
define Package/lldpd/config
|
|
source "$(SOURCE)/Config.in"
|
|
endef
|
|
|
|
define Package/lldpd/description
|
|
LLDP (Link Layer Discovery Protocol) is an industry standard protocol designed
|
|
to supplant proprietary Link-Layer protocols such as
|
|
Extreme's EDP (Extreme Discovery Protocol) and
|
|
CDP (Cisco Discovery Protocol).
|
|
The goal of LLDP is to provide an inter-vendor compatible mechanism to deliver
|
|
Link-Layer notifications to adjacent network devices.
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/liblldpctl.so* $(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/lldpctl.h $(1)/usr/include/lldpctl.h
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/lldp-const.h $(1)/usr/include/lldp-const.h
|
|
endef
|
|
|
|
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
|
|
$(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_CONF) ./files/lldpd.config $(1)/etc/config/lldpd
|
|
ifneq ($(CONFIG_LLDPD_WITH_CDP),y)
|
|
sed -i -e 's/CONFIG_LLDPD_WITH_CDP=y/CONFIG_LLDPD_WITH_CDP=n/g' $(1)/etc/init.d/lldpd
|
|
sed -i -e '/cdp/d' $(1)/etc/config/lldpd
|
|
endif
|
|
ifneq ($(CONFIG_LLDPD_WITH_FDP),y)
|
|
sed -i -e 's/CONFIG_LLDPD_WITH_FDP=y/CONFIG_LLDPD_WITH_FDP=n/g' $(1)/etc/init.d/lldpd
|
|
sed -i -e '/fdp/d' $(1)/etc/config/lldpd
|
|
endif
|
|
ifneq ($(CONFIG_LLDPD_WITH_EDP),y)
|
|
sed -i -e 's/CONFIG_LLDPD_WITH_EDP=y/CONFIG_LLDPD_WITH_EDP=n/g' $(1)/etc/init.d/lldpd
|
|
sed -i -e '/edp/d' $(1)/etc/config/lldpd
|
|
endif
|
|
ifneq ($(CONFIG_LLDPD_WITH_SONMP),y)
|
|
sed -i -e 's/CONFIG_LLDPD_WITH_SONMP=y/CONFIG_LLDPD_WITH_SONMP=n/g' $(1)/etc/init.d/lldpd
|
|
sed -i -e '/sonmp/d' $(1)/etc/config/lldpd
|
|
endif
|
|
ifneq ($(CONFIG_LLDPD_WITH_SNMP),y)
|
|
sed -i -e 's/CONFIG_LLDPD_WITH_SNMP=y/CONFIG_LLDPD_WITH_SNMP=n/g' $(1)/etc/init.d/lldpd
|
|
sed -i -e '/agentxsocket/d' $(1)/etc/config/lldpd
|
|
endif
|
|
ifneq ($(CONFIG_LLDPD_WITH_LLDPMED),y)
|
|
sed -i -e 's/CONFIG_LLDPD_WITH_LLDPMED=y/CONFIG_LLDPD_WITH_LLDPMED=n/g' $(1)/etc/init.d/lldpd
|
|
sed -i -e '/agentxsocket/d' $(1)/etc/config/lldpd
|
|
endif
|
|
endef
|
|
|
|
define Package/lldpd/conffiles
|
|
/etc/config/lldpd
|
|
endef
|
|
|
|
CONFIGURE_ARGS += \
|
|
$(if $(CONFIG_LLDPD_WITH_PRIVSEP), \
|
|
--with-privsep-user=lldp \
|
|
--with-privsep-group=lldp \
|
|
--with-privsep-chroot=/var/run/lldp \
|
|
,--disable-privsep) \
|
|
--with-readline=no \
|
|
--with-embedded-libevent=no \
|
|
--disable-hardening \
|
|
--without-xml \
|
|
--disable-doxygen-doc \
|
|
--sysconfdir=/tmp \
|
|
$(if $(CONFIG_LLDPD_WITH_CDP),,--disable-cdp) \
|
|
$(if $(CONFIG_LLDPD_WITH_FDP),,--disable-fdp) \
|
|
$(if $(CONFIG_LLDPD_WITH_EDP),,--disable-edp) \
|
|
$(if $(CONFIG_LLDPD_WITH_LLDPMED),,--disable-lldpmed) \
|
|
$(if $(CONFIG_LLDPD_WITH_DOT1),,--disable-dot1) \
|
|
$(if $(CONFIG_LLDPD_WITH_DOT3),,--disable-dot3) \
|
|
$(if $(CONFIG_LLDPD_WITH_CUSTOM),,--disable-custom) \
|
|
$(if $(CONFIG_LLDPD_WITH_SONMP),,--disable-sonmp) \
|
|
$(if $(CONFIG_LLDPD_WITH_JSON),--enable-json0,) \
|
|
$(if $(CONFIG_LLDPD_WITH_SNMP),--with-snmp,) \
|
|
$(if $(CONFIG_USE_GLIBC),,--without-libbsd)
|
|
|
|
TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
|
|
|
|
$(eval $(call BuildPackage,lldpd))
|