net-snmp: add engineID config options
authorStijn Tintel <stijn@linux-ipv6.be>
Tue, 14 Feb 2017 13:46:23 +0000 (14:46 +0100)
committerStijn Tintel <stijn@linux-ipv6.be>
Tue, 14 Feb 2017 14:17:07 +0000 (15:17 +0100)
According to the snmpd.conf man page, the engineID of an snmp agent
should be consistent through time. However, it seems that the engineID
changes every reboot. Add options to configure how the engineID is
generated. The default setting generates it based on the MAC address of
the eth0 interface.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
net/net-snmp/Makefile
net/net-snmp/files/snmpd.conf
net/net-snmp/files/snmpd.init

index 08e36e85b583660e8ee3e76ebf152ad798a78c39..3446d151426291a5c2dc4929a6d15099ace0f072 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=net-snmp
 PKG_VERSION:=5.7.3
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/net-snmp
index e21dc5771dc9bd1bdf6bde450810e392215ee8aa..ac152d83eb91d920e46e90309ae7d72620203343 100644 (file)
@@ -83,3 +83,7 @@ config exec
        option args     /proc/sys/fs/file-nr
 #      option miboid   1.2.3.4
 
+config engineid
+#      option engineid 'LEDE'
+       option engineidtype '3'
+       option engineidnic 'eth0'
index 11dc381b27239af7018ec47074fe3476295d3145..7df67de28ea9c8c89a3323ea74068880d9617e73 100644 (file)
@@ -198,6 +198,18 @@ snmpd_disk_add() {
         echo "$disk $partition $size" >> $CONFIGFILE
 }
 
+snmpd_engineid_add() {
+       local cfg="$1"
+
+       config_get engineid "$cfg" engineid
+       [ -n "$engineid" ] && echo "engineID $engineid" >> $CONFIGFILE
+       config_get engineidtype "$cfg" engineidtype
+       [ "$engineidtype" -ge 1 -a "$engineidtype" -le 3 ] && \
+               echo "engineIDType $engineidtype" >> $CONFIGFILE
+       config_get engineidnic "$cfg" engineidnic
+       [ -n "$engineidnic" ] && echo "engineIDNic $engineidnic" >> $CONFIGFILE
+}
+
 start_service() {
        [ -f "$CONFIGFILE" ] && rm -f "$CONFIGFILE"
 
@@ -221,6 +233,7 @@ start_service() {
        config_foreach snmpd_pass_add pass
        config_foreach snmpd_exec_add exec
        config_foreach snmpd_disk_add disk
+       config_foreach snmpd_engineid_add engineid
        
        procd_set_param command $PROG -Lf /dev/null -f
        procd_set_param file $CONFIGFILE