SNMP frontend tests: Added more descriptic types of each get/set value and netsnmp instructions
This commit is contained in:
parent
d838f16e6a
commit
a7df2cd2f2
2 changed files with 40 additions and 36 deletions
|
|
@ -150,6 +150,15 @@ If you do not have them, generate self-signed certs, eg as follows:
|
||||||
|
|
||||||
There are also client-cert tests, eg `test_ssl_certs.sh`
|
There are also client-cert tests, eg `test_ssl_certs.sh`
|
||||||
|
|
||||||
|
## SNMP
|
||||||
|
|
||||||
|
Clixon snmp frontend tests require a running netsnmpd and converted YANG files from MIB.
|
||||||
|
|
||||||
|
Netsnmpd is 5.9 or later and can be started via systemd. For the tests
|
||||||
|
to run, the systems IFMIB should be disabled: `-I -ifTable,ifNumber,ifXTable`
|
||||||
|
|
||||||
|
Converted YANG files are available at `https://github.com/clicon/mib-yangs` or alternatively use `smidump` version 0.5 or later.
|
||||||
|
|
||||||
## Known issues
|
## Known issues
|
||||||
|
|
||||||
[Workaround: Unicode double-quote in iana-if-type@2022-03-07.yang](https://github.com/clicon/clixon/issues/315)
|
[Workaround: Unicode double-quote in iana-if-type@2022-03-07.yang](https://github.com/clicon/clixon/issues/315)
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ OID5="${MIB}.1.5" # ifType
|
||||||
OID6="${MIB}.1.6" # ifSpeed
|
OID6="${MIB}.1.6" # ifSpeed
|
||||||
OID7="${MIB}.1.7" # ifAdminStatus
|
OID7="${MIB}.1.7" # ifAdminStatus
|
||||||
OID8="${MIB}.1.8" # ifInOctets
|
OID8="${MIB}.1.8" # ifInOctets
|
||||||
OID9="${MIB}.1.9" # ifHCInOctets
|
OID9="${MIB}.1.9" # ifHCInOctets NB 64-bit not tested and seems not supported
|
||||||
OID10="${MIB}.1.10" # ifPromiscuousMode
|
OID10="${MIB}.1.10" # ifPromiscuousMode
|
||||||
OID11="${MIB}.1.11" # ifCounterDiscontinuityTime
|
OID11="${MIB}.1.11" # ifCounterDiscontinuityTime
|
||||||
OID12="${MIB}.1.12" # ifStackStatus
|
OID12="${MIB}.1.12" # ifStackStatus
|
||||||
|
|
@ -121,32 +121,42 @@ OID21="${MIB}.2.2.1.3" # netSnmpHostAddress
|
||||||
OID22="${MIB}.2.2.1.4" # netSnmpHostStorage
|
OID22="${MIB}.2.2.1.4" # netSnmpHostStorage
|
||||||
OID23="${MIB}.2.2.1.5" # netSnmpHostRowStatus
|
OID23="${MIB}.2.2.1.5" # netSnmpHostRowStatus
|
||||||
|
|
||||||
new "Test SNMP get for default value"
|
NAME=netSnmpExampleInteger
|
||||||
expectpart "$($snmpget $OID1)" 0 "$OID1 = INTEGER: 42"
|
OID=$OID1
|
||||||
|
VALUE=1234
|
||||||
|
TYPE=INTEGER # Integer32
|
||||||
|
|
||||||
new "Set new value to OID1"
|
new "Get $NAME default"
|
||||||
expectpart "$($snmpset $OID1 i 1234)" 0 "$OID1 = INTEGER: 1234"
|
expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: 42"
|
||||||
|
|
||||||
new "Get new value"
|
new "Set $NAME $VALUE"
|
||||||
expectpart "$($snmpget $OID1)" 0 "$OID1 = INTEGER: 1234"
|
expectpart "$($snmpset $OID i "$VALUE")" 0 "$OID = $TYPE: $VALUE"
|
||||||
|
|
||||||
|
new "Get $NAME $VALUE"
|
||||||
|
expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: $VALUE"
|
||||||
|
|
||||||
new "Set new value via NETCONF"
|
new "Set new value via NETCONF"
|
||||||
expecteof_netconf "$clixon_netconf -qf $cfg" 0 "$DEFAULTHELLO" "<rpc $DEFAULTNS><edit-config><default-operation>none</default-operation><target><candidate/></target><config><CLIXON-TYPES-MIB xmlns=\"urn:ietf:params:xml:ns:yang:smiv2:CLIXON-TYPES-MIB\"><netSnmpExampleScalars><netSnmpExampleInteger>999</netSnmpExampleInteger></netSnmpExampleScalars></CLIXON-TYPES-MIB></config></edit-config></rpc>" "" "<rpc-reply $DEFAULTNS><ok/></rpc-reply>"
|
expecteof_netconf "$clixon_netconf -qf $cfg" 0 "$DEFAULTHELLO" "<rpc $DEFAULTNS><edit-config><default-operation>none</default-operation><target><candidate/></target><config><CLIXON-TYPES-MIB xmlns=\"urn:ietf:params:xml:ns:yang:smiv2:CLIXON-TYPES-MIB\"><netSnmpExampleScalars><$NAME>999</$NAME></netSnmpExampleScalars></CLIXON-TYPES-MIB></config></edit-config></rpc>" "" "<rpc-reply $DEFAULTNS><ok/></rpc-reply>"
|
||||||
|
|
||||||
new "netconf commit"
|
new "netconf commit"
|
||||||
expecteof_netconf "$clixon_netconf -qf $cfg" 0 "$DEFAULTHELLO" "<rpc $DEFAULTNS><commit/></rpc>" "" "<rpc-reply $DEFAULTNS><ok/></rpc-reply>"
|
expecteof_netconf "$clixon_netconf -qf $cfg" 0 "$DEFAULTHELLO" "<rpc $DEFAULTNS><commit/></rpc>" "" "<rpc-reply $DEFAULTNS><ok/></rpc-reply>"
|
||||||
|
|
||||||
new "Get new value"
|
new "Get $NAME again"
|
||||||
expectpart "$($snmpget $OID1)" 0 "$OID1 = INTEGER: 999"
|
expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: 999"
|
||||||
|
|
||||||
new "Test SNMP get string for default value"
|
NAME=netSnmpExampleString
|
||||||
expectpart "$($snmpget $OID3)" 0 "$OID3 = STRING: So long, and thanks for all the fish!."
|
OID=$OID3
|
||||||
|
VALUE="foo bar"
|
||||||
|
TYPE=STRING # SnmpAdminString
|
||||||
|
|
||||||
new "Set new string value to OID3"
|
new "Get $NAME default"
|
||||||
expectpart "$($snmpset $OID3 s foobar)" 0 "$OID3 = STRING: foobar"
|
expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: So long, and thanks for all the fish!."
|
||||||
|
|
||||||
new "Get new value"
|
new "Set $NAME $VALUE"
|
||||||
expectpart "$($snmpget $OID3)" 0 "$OID3 = STRING: foobar"
|
expectpart "$($snmpset $OID s "$VALUE")" 0 "$OID = $TYPE: $VALUE"
|
||||||
|
|
||||||
|
new "Get $NAME $VALUE"
|
||||||
|
expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: $VALUE"
|
||||||
|
|
||||||
NAME=ifTableLastChange
|
NAME=ifTableLastChange
|
||||||
OID=$OID4
|
OID=$OID4
|
||||||
|
|
@ -165,7 +175,7 @@ expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: $VALUE"
|
||||||
NAME=ifType
|
NAME=ifType
|
||||||
OID=$OID5
|
OID=$OID5
|
||||||
VALUE=48 # modem(48)
|
VALUE=48 # modem(48)
|
||||||
TYPE=INTEGER # enum IANAifType modem(48)
|
TYPE=INTEGER # IANAifType /enum
|
||||||
|
|
||||||
new "Set $NAME $VALUE"
|
new "Set $NAME $VALUE"
|
||||||
expectpart "$($snmpset $OID i $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
expectpart "$($snmpset $OID i $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
||||||
|
|
@ -198,7 +208,7 @@ expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: $VALUE"
|
||||||
NAME=ifInOctets
|
NAME=ifInOctets
|
||||||
OID=$OID8
|
OID=$OID8
|
||||||
VALUE=123456
|
VALUE=123456
|
||||||
TYPE=Gauge32
|
TYPE=Gauge32 # Counter32
|
||||||
|
|
||||||
new "Set $NAME $VALUE"
|
new "Set $NAME $VALUE"
|
||||||
expectpart "$($snmpset $OID u $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
expectpart "$($snmpset $OID u $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
||||||
|
|
@ -206,25 +216,10 @@ expectpart "$($snmpset $OID u $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
||||||
new "Get $NAME $VALUE"
|
new "Get $NAME $VALUE"
|
||||||
expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: $VALUE"
|
expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: $VALUE"
|
||||||
|
|
||||||
if false; then # XXX i/u/c doesnt work for counter64?
|
|
||||||
NAME=ifHCInOctets
|
|
||||||
OID=$OID9
|
|
||||||
VALUE=4294967296
|
|
||||||
TYPE=Counter64
|
|
||||||
|
|
||||||
new "Set $NAME $VALUE"
|
|
||||||
echo "$snmpset $OID C $VALUE"
|
|
||||||
expectpart "$($snmpset $OID C $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
|
||||||
exit
|
|
||||||
new "Get $NAME $VALUE"
|
|
||||||
expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: $VALUE"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
NAME=ifPromiscuousMode
|
NAME=ifPromiscuousMode
|
||||||
OID=$OID10
|
OID=$OID10
|
||||||
VALUE=1 # true(1)
|
VALUE=1 # true(1)
|
||||||
TYPE=INTEGER
|
TYPE=INTEGER # TruthValue
|
||||||
|
|
||||||
new "Set $NAME $VALUE"
|
new "Set $NAME $VALUE"
|
||||||
expectpart "$($snmpset $OID i $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
expectpart "$($snmpset $OID i $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
||||||
|
|
@ -235,7 +230,7 @@ expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: $VALUE"
|
||||||
NAME=ifCounterDiscontinuityTime
|
NAME=ifCounterDiscontinuityTime
|
||||||
OID=$OID11
|
OID=$OID11
|
||||||
VALUE=1234567890
|
VALUE=1234567890
|
||||||
TYPE=Gauge32
|
TYPE=Gauge32 # TomeStamp
|
||||||
|
|
||||||
new "Set $NAME $VALUE"
|
new "Set $NAME $VALUE"
|
||||||
expectpart "$($snmpset $OID u $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
expectpart "$($snmpset $OID u $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
||||||
|
|
@ -246,7 +241,7 @@ expectpart "$($snmpget $OID)" 0 "$OID = $TYPE: $VALUE"
|
||||||
NAME=ifStackStatus
|
NAME=ifStackStatus
|
||||||
OID=$OID12
|
OID=$OID12
|
||||||
VALUE=1 # active(1)
|
VALUE=1 # active(1)
|
||||||
TYPE=INTEGER
|
TYPE=INTEGER # RowStatus / enum
|
||||||
|
|
||||||
new "Set $NAME $VALUE"
|
new "Set $NAME $VALUE"
|
||||||
expectpart "$($snmpset $OID i $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
expectpart "$($snmpset $OID i $VALUE)" 0 "$OID = $TYPE: $VALUE"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue