SNMP: ifStackStatus test
This commit is contained in:
parent
f6fe9f6a64
commit
4dd633ba31
1 changed files with 44 additions and 13 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# snmpset. This requires deviation of MIB-YANG to make write operations
|
# snmpset. This requires deviation of MIB-YANG to make write operations
|
||||||
# Get default value, set new value via SNMP and check it, set new value via NETCONF and check
|
# Get default value, set new value via SNMP and check it, set new value via NETCONF and check
|
||||||
|
# Selected types from CLIXON/IF-MIB/ENTITY mib
|
||||||
|
|
||||||
# Magic line must be first in script (see README.md)
|
# Magic line must be first in script (see README.md)
|
||||||
s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi
|
s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi
|
||||||
|
|
@ -36,6 +37,7 @@ cat <<EOF > $cfg
|
||||||
<CLICON_SNMP_AGENT_SOCK>unix:$SOCK</CLICON_SNMP_AGENT_SOCK>
|
<CLICON_SNMP_AGENT_SOCK>unix:$SOCK</CLICON_SNMP_AGENT_SOCK>
|
||||||
<CLICON_SNMP_MIB>CLIXON-TYPES-MIB</CLICON_SNMP_MIB>
|
<CLICON_SNMP_MIB>CLIXON-TYPES-MIB</CLICON_SNMP_MIB>
|
||||||
<CLICON_SNMP_MIB>IF-MIB</CLICON_SNMP_MIB>
|
<CLICON_SNMP_MIB>IF-MIB</CLICON_SNMP_MIB>
|
||||||
|
<CLICON_SNMP_MIB>ENTITY-MIB</CLICON_SNMP_MIB>
|
||||||
<CLICON_VALIDATE_STATE_XML>true</CLICON_VALIDATE_STATE_XML>
|
<CLICON_VALIDATE_STATE_XML>true</CLICON_VALIDATE_STATE_XML>
|
||||||
<CLICON_FEATURE>ietf-netconf:startup</CLICON_FEATURE>
|
<CLICON_FEATURE>ietf-netconf:startup</CLICON_FEATURE>
|
||||||
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE>
|
||||||
|
|
@ -55,6 +57,10 @@ module clixon-example{
|
||||||
import IF-MIB {
|
import IF-MIB {
|
||||||
prefix "if-mib";
|
prefix "if-mib";
|
||||||
}
|
}
|
||||||
|
import ENTITY-MIB {
|
||||||
|
prefix "entity-mib";
|
||||||
|
}
|
||||||
|
|
||||||
deviation "/clixon-types:CLIXON-TYPES-MIB" {
|
deviation "/clixon-types:CLIXON-TYPES-MIB" {
|
||||||
deviate replace {
|
deviate replace {
|
||||||
config true;
|
config true;
|
||||||
|
|
@ -65,11 +71,18 @@ module clixon-example{
|
||||||
config true;
|
config true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
deviation "/entity-mib:ENTITY-MIB" {
|
||||||
|
deviate replace {
|
||||||
|
config true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if true; then # Dont start with a state (default)
|
if true; then # Dont start with a state (default)
|
||||||
cat <<EOF > $dir/startup_db
|
cat <<EOF > $dir/startup_db
|
||||||
|
<${DATASTORE_TOP}>
|
||||||
|
</${DATASTORE_TOP}>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
else # Start with a state (debug)
|
else # Start with a state (debug)
|
||||||
|
|
@ -83,6 +96,12 @@ cat <<EOF > $dir/startup_db
|
||||||
</clixonExampleScalars>
|
</clixonExampleScalars>
|
||||||
</CLIXON-TYPES-MIB>
|
</CLIXON-TYPES-MIB>
|
||||||
<IF-MIB xmlns="urn:ietf:params:xml:ns:yang:smiv2:IF-MIB">
|
<IF-MIB xmlns="urn:ietf:params:xml:ns:yang:smiv2:IF-MIB">
|
||||||
|
<ifStackTable>
|
||||||
|
<ifStackEntry>
|
||||||
|
<ifStackHigherLayer>9</ifStackHigherLayer>
|
||||||
|
<ifStackLowerLayer>9</ifStackLowerLayer>
|
||||||
|
</ifStackEntry>
|
||||||
|
</ifStackTable>
|
||||||
<ifTable>
|
<ifTable>
|
||||||
<ifEntry>
|
<ifEntry>
|
||||||
<ifIndex>1</ifIndex>
|
<ifIndex>1</ifIndex>
|
||||||
|
|
@ -132,15 +151,17 @@ function testinit(){
|
||||||
# 1: name
|
# 1: name
|
||||||
# 2: type
|
# 2: type
|
||||||
# 3: value SNMP value
|
# 3: value SNMP value
|
||||||
# 4: xvalue XML/Clixon value
|
# 4: value2 SNMP value2 (as shown "after" snmpset)
|
||||||
# 5: OID
|
# 5: xvalue XML/Clixon value
|
||||||
|
# 6: OID
|
||||||
function testrun()
|
function testrun()
|
||||||
{
|
{
|
||||||
name=$1
|
name=$1
|
||||||
type=$2
|
type=$2
|
||||||
value=$3
|
value=$3
|
||||||
xvalue=$4
|
value2=$4
|
||||||
oid=$5
|
xvalue=$5
|
||||||
|
oid=$6
|
||||||
|
|
||||||
# Type from man snmpset
|
# Type from man snmpset
|
||||||
case $type in
|
case $type in
|
||||||
|
|
@ -150,12 +171,21 @@ function testrun()
|
||||||
"STRING")
|
"STRING")
|
||||||
set_type="s"
|
set_type="s"
|
||||||
;;
|
;;
|
||||||
|
"HEX STRING")
|
||||||
|
set_type="x"
|
||||||
|
;;
|
||||||
"TIMETICKS")
|
"TIMETICKS")
|
||||||
set_type="t"
|
set_type="t"
|
||||||
;;
|
;;
|
||||||
"IPADDRESS")
|
"IPADDRESS")
|
||||||
set_type="a"
|
set_type="a"
|
||||||
;;
|
;;
|
||||||
|
"OBJID")
|
||||||
|
set_type="o"
|
||||||
|
;;
|
||||||
|
"BITS")
|
||||||
|
set_type="b"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
set_type="s"
|
set_type="s"
|
||||||
;;
|
;;
|
||||||
|
|
@ -167,13 +197,13 @@ function testrun()
|
||||||
expectpart "$($snmpset $oid $set_type $value)" 0 "$type:" "$value"
|
expectpart "$($snmpset $oid $set_type $value)" 0 "$type:" "$value"
|
||||||
else
|
else
|
||||||
echo "$snmpset $oid $set_type $value"
|
echo "$snmpset $oid $set_type $value"
|
||||||
expectpart "$($snmpset $oid $set_type $value)" 0 "$type: $value"
|
expectpart "$($snmpset $oid $set_type $value)" 0 "$type: $value2"
|
||||||
fi
|
fi
|
||||||
new "Check $name via SNMP"
|
new "Check $name via SNMP"
|
||||||
if [ $type == "STRING" ]; then
|
if [ $type == "STRING" ]; then
|
||||||
expectpart "$($snmpget $oid)" 0 "$type:" "$value"
|
expectpart "$($snmpget $oid)" 0 "$type:" "$value"
|
||||||
else
|
else
|
||||||
expectpart "$($snmpget $oid)" 0 "$type: $value"
|
expectpart "$($snmpget $oid)" 0 "$type: $value2"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
new "Check $name via CLI"
|
new "Check $name via CLI"
|
||||||
|
|
@ -189,14 +219,15 @@ testinit
|
||||||
|
|
||||||
MIB=".1.3.6.1.4.1.8072.200"
|
MIB=".1.3.6.1.4.1.8072.200"
|
||||||
IFMIB=".1.3.6.1.2.1"
|
IFMIB=".1.3.6.1.2.1"
|
||||||
|
ENTMIB=".1.3.6.1.2.1.47.1.1.1"
|
||||||
|
|
||||||
testrun clixonExampleInteger INTEGER 1234 1234 ${MIB}.1.1
|
testrun clixonExampleInteger INTEGER 1234 1234 1234 ${MIB}.1.1
|
||||||
testrun clixonExampleSleeper INTEGER -1 -1 ${MIB}.1.2
|
testrun clixonExampleSleeper INTEGER -1 -1 -1 ${MIB}.1.2
|
||||||
testrun clixonExampleString STRING foobar foobar ${MIB}.1.3
|
testrun clixonExampleString STRING foobar foobar foobar ${MIB}.1.3
|
||||||
testrun ifPromiscuousMode INTEGER 1 true ${MIB}.1.10 # boolean
|
testrun ifPromiscuousMode INTEGER 1 1 true ${MIB}.1.10 # boolean
|
||||||
testrun ifIpAddr IPADDRESS 1.2.3.4 1.2.3.4 ${MIB}.1.13 # InetAddress
|
testrun ifIpAddr IPADDRESS 1.2.3.4 1.2.3.4 1.2.3.4 ${MIB}.1.13 # InetAddress
|
||||||
|
testrun ifPhysAddress STRING ff:ee:dd:cc:bb:aa ff:ee:dd:cc:bb:aa ff:ee:dd:cc:bb:aa ${IFMIB}.2.2.1.6.1
|
||||||
testrun ifPhysAddress STRING ff:ee:dd:cc:bb:aa ff:ee:dd:cc:bb:aa ${IFMIB}.2.2.1.6.1 # active
|
testrun ifStackStatus INTEGER 4 "createAndGo(4)" createAndGo ${IFMIB}.31.1.2.1.3.5.9
|
||||||
|
|
||||||
new "Cleaning up"
|
new "Cleaning up"
|
||||||
testexit
|
testexit
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue