lldpd: add Net-SNMP AgentX support
authorStijn Tintel <stijn@linux-ipv6.be>
Thu, 5 Jan 2017 12:05:57 +0000 (13:05 +0100)
committerStijn Tintel <stijn@linux-ipv6.be>
Tue, 10 Jan 2017 12:02:00 +0000 (13:02 +0100)
Enabling this makes it possible to query LLDP neighbors via SNMP.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Jo-Philipp Wich <jo@mein.io>
package/network/services/lldpd/Config.in
package/network/services/lldpd/Makefile
package/network/services/lldpd/files/lldpd.config
package/network/services/lldpd/files/lldpd.init

index 93d84e29ea1af42de1e61174591361081643f07e..ec6990a76c42ccd1ddf713d8fa62322f9a00b054 100644 (file)
@@ -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
index 3579e53e029583f07e3201faabff27339884bf3d..74169a1c4c8a529c5bafaceffc9350611aef98ae 100644 (file)
@@ -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))
index 92ab42116b530b76436c82dfcf61c3e7a1fe22ae..d2b3d15450dc9d4dd07243f05c5cf45cc6250ff5 100644 (file)
@@ -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"
index 4e9efcae0de0e445baf6f43966f90675484d3ea7..4495551567effca142a6d05648187b298e29a50d 100644 (file)
@@ -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