#
#  Module SNMP.tcl     02.12.2004 vfom
#
#  $Log: SNMP.tcl,v $
#  Revision 1.2  2006/10/26 09:39:17  vfom
#  Added code for netstate server query
#
#
package require BLT
#
array set ::MIB {
sysDescr 	1.3.6.1.2.1.1.1.0
sysObjectID 	1.3.6.1.2.1.1.2.0
sysContact 	1.3.6.1.2.1.1.4.0
sysSysname 	1.3.6.1.2.1.1.5.0
sysLocation 	1.3.6.1.2.1.1.6.0
ipForwarding	1.3.6.1.2.1.4.1.0
ipRouteNextHop  1.3.6.1.2.1.4.21.1.7
ipAdEntAddr	1.3.6.1.2.1.4.20.1.1
ipAdEntNetMask  1.3.6.1.2.1.4.20.1.3
ipNetToMediaPhysAddress	1.3.6.1.2.1.4.22.1.2
ipNetToMediaNetAddress	1.3.6.1.2.1.4.22.1.3
}
namespace eval ::SNMP {
variable	exitGet		""	\
		outGet		""	\
		exitWalk	""	\
		outWalk		""	\
		exitNGet	""	\
		outNGet		""	\
		exitNWalk	""	\
		outNWalk	""	
}
#############################################################
# Usage: SnmpGet 1.1.1.1 public OID1 OID2 OID3 ....
# 
proc SnmpGet { host comm args } {
    catch " blt::bgexec ::SNMP::exitGet -output ::SNMP::outGet $::snmpget_command $comm $host [ join $args ] "  rez
    if { $rez!="" || $::SNMP::outGet=="" }  {	return "" }	
#    puts "SNMPGET $host $comm $args\n$::SNMP::outGet"
    return $::SNMP::outGet
}
#############################################################
# Usage: SnmpWalk 1.1.1.1 public OID
#
proc SnmpWalk { host comm oid } {
    catch "blt::bgexec ::SNMP::exitWalk -output ::SNMP::outWalk $::snmpwalk_command $comm $host $oid "  rez
    if { $rez!="" ||  $::SNMP::outWalk==""}  {	return "" }	
#    puts "SNMPWALK $host $comm $oid\n$::SNMP::outWalk"
    return $::SNMP::outWalk
}
#
#############################################################
# Usage: SnmpNGet 1.1.1.1 public OID1 OID2 OID3 .... - return numerical results
# 
proc SnmpNGet { host comm args } {
    catch " blt::bgexec ::SNMP::exitNGet -output ::SNMP::outNGet $::snmpget_n_command $comm $host [ join $args ] "  rez
    if { $rez!="" || $::SNMP::outNGet=="" }  {	return "" }	
#    puts "SNMPnGET $host $comm $args\n$::SNMP::outNGet"
    return $::SNMP::outNGet
}
#############################################################
# Usage: SnmpNWalk 1.1.1.1 public OID - return numerical results
#
proc SnmpNWalk { host comm oid } {
    catch "blt::bgexec ::SNMP::exitNWalk -output ::SNMP::outNWalk $::snmpwalk_n_command $comm $host $oid "  rez
    if { $rez!="" ||  $::SNMP::outNWalk==""}  {	return "" }	
#    puts "SNMPnWALK $host $comm $oid\n$::SNMP::outNWalk"
    return $::SNMP::outNWalk
}
#
