Ver Fonte

lldpd: add Net-SNMP AgentX support

Enabling this makes it possible to query LLDP neighbors via SNMP.

Signed-off-by: Stijn Tintel <[email protected]>
Acked-by: Jo-Philipp Wich <[email protected]>
Stijn Tintel há 8 anos atrás
pai
commit
046606a05e

+ 4 - 0
package/network/services/lldpd/Config.in

@@ -51,4 +51,8 @@ config LLDPD_WITH_JSON
 	prompt "Enable JSON output for the LLDP Command-Line Interface"
 	default n
 
+config LLDPD_WITH_SNMP
+	bool
+	default n
+	prompt "Enable the use of SNMP"
 endmenu

+ 6 - 2
package/network/services/lldpd/Makefile

@@ -31,7 +31,7 @@ define Package/lldpd
   SUBMENU:=Routing and Redirection
   TITLE:=Link Layer Discovery Protocol daemon
   URL:=https://github.com/vincentbernat/lldpd/wiki
-  DEPENDS:=+libevent2 +USE_GLIBC:libbsd +LLDPD_WITH_JSON:libjson-c
+  DEPENDS:=+libevent2 +USE_GLIBC:libbsd +LLDPD_WITH_JSON:libjson-c +LLDPD_WITH_SNMP:libnetsnmp
   USERID:=lldp=121:lldp=129
   MENU:=1
 endef
@@ -78,6 +78,9 @@ 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_SNMP),y)
+	sed -i -e '/agentxsocket/d' $(1)/etc/init.d/lldpd $(1)/etc/config/lldpd
+endif
 endef
 
 define Package/lldpd/conffiles
@@ -103,7 +106,8 @@ CONFIGURE_ARGS += \
 	$(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),--with-json=json-c,--with-json=no)
+	$(if $(CONFIG_LLDPD_WITH_JSON),--with-json=json-c,--with-json=no) \
+	$(if $(CONFIG_LLDPD_WITH_SNMP),--with-snmp,)
 
 
 $(eval $(call BuildPackage,lldpd))

+ 2 - 0
package/network/services/lldpd/files/lldpd.config

@@ -3,6 +3,8 @@ config lldpd config
 	option enable_fdp 1
 	option enable_sonmp 1
 	option enable_edp 1
+
+	option agentxsocket /var/run/agentx.sock
 	
 	option lldp_class 4
 	option lldp_location "2:FR:6:Commercial Rd:3:Roseville:19:4"

+ 3 - 0
package/network/services/lldpd/files/lldpd.init

@@ -57,6 +57,7 @@ start_service() {
 	local lldp_class
 	local lldp_location
 	local readonly_mode
+	local agentxsocket
 
 	config_load 'lldpd'
 	config_get_bool enable_cdp 'config' 'enable_cdp' 0
@@ -66,6 +67,7 @@ start_service() {
 	config_get lldp_class 'config' 'lldp_class'
 	config_get lldp_location 'config' 'lldp_location'
 	config_get_bool readonly_mode 'config' 'readonly_mode' 0
+	config_get agentxsocket 'config' 'agentxsocket'
 
 	mkdir -p /var/run/lldp
 	chown lldp:lldp /var/run/lldp
@@ -83,6 +85,7 @@ start_service() {
 	[ $enable_edp -gt 0 ] && procd_append_param command '-e'
 	[ $readonly_mode -gt 0 ] && procd_append_param command '-r'
 	[ -n "$lldp_class" ] && procd_append_param command -M "$lldp_class"
+	[ -n "$agentxsocket" ] && procd_append_param command -x -X "$agentxsocket"
 
 	# set auto respawn behavior
 	procd_set_param respawn