diff options
Diffstat (limited to 'local/mib2c.emulation.conf')
-rw-r--r-- | local/mib2c.emulation.conf | 246 |
1 files changed, 246 insertions, 0 deletions
diff --git a/local/mib2c.emulation.conf b/local/mib2c.emulation.conf new file mode 100644 index 0000000..20d2e7b --- /dev/null +++ b/local/mib2c.emulation.conf @@ -0,0 +1,246 @@ +############################################## -*- Mib2c -*- +## +## File : mib2c.emulation.conf +## Author : Robert Story <rstory@freesnmp.com> +## Purpose: A mib2c conf file to generate snmpd.conf configuration to +## provide basic/simplistic emulation for a particular MIB. +## +## +## $Id$ +###################################################################### +@open ${name}-emulation.conf@ +# +# $name.module MIB emulation +# Base OID: $name.objectID +# +# Requirements: Net-SNMP 5.2 or greater +# +# This file can be used as (part of) a Net-SNMP snmpd.conf +# configuration file to emulate (in a minimal fashion) the objects defined +# in the $name MIB. +# +# It is important to note that this file merely creates dummy values +# and variables and does not implement any of the functionality which +# the mib objects are actually supposed to implement! +# +# Also, it just defaults to 0, '' or 0.0 for initial values, so you'll need +# to tweak all the vaules. For any tables, you'll have set any indexes. +# +# The configuration tokens used in this file are documented in the +# snmpd.conf manual page, with the exception of the first line, which +# is documented in the snmp.conf and snmp_config manual pages. +# +# +# To use this file, you have several options: +# +# 1) add the contents to your existing snmpd.conf file +# 2) copy it to a new snmpd.conf, somewhere in SNMPCONFPATH +# 3) copy it to snmpd.conf.local, somewhere in SNMPCONFPATH +# +# The command 'net-snmp-config --snmpconfpath' will give your the +# SNMPCONFPATH (5.3.x and later). + + +# Here we tell the agent to load the MIB, so we can use names instead +# of OIDs. You may need to add other MIBs that this MIB depends on. +# Also, you might want to consider adding these to the global snmp.conf, +# so all users can reference them. +# +# See the Net-SNMP FAQ for more information on MIB loading. +# +[snmp] mibs +$name.module + +# +# $name Scalar variables +# + +@foreach $node scalar@ +@ print Scalar: $node@ +# $node.module::$node.parent.$node($node.subid) [$node.syntax = $node.type] +@ if "$node.status" eq "Deprecated"@ +# **** WARNING: deprecated object **** +@ end@ +@if $node.enums == 1@ +@ eval $m2c_evals = ""@ +@ eval $m2c_first = 1@ +@ foreach $e $v enum@ +@ if $m2c_first == 1@ +@ eval $m2c_first = 0@ +@ else@ +@ eval $m2c_evals = "$m2c_evals,"@ +@ end@ +@ eval $m2c_evals = "$m2c_evals $e($v)"@ +@ if $node.hasdefval == 1@ +@ if (("$node.defval" eq "$e") || ("$node.defval" eq "$v"))@ +@ eval $m2c_evals = "${m2c_evals}*"@ +@ end@ +@ end@ +@ end@ +# Enum range: $node.enumrange. Values: $m2c_evals +@elsif $node.ranges == 1@ +@ eval $m2c_range_max = 0@ +@ eval $m2c_evals = ""@ +@ eval $m2c_first = 1@ +@ foreach $a $b range $node@ +@ if $m2c_first == 1@ +@ eval $m2c_first = 0@ +@ else@ +@ eval $m2c_evals = "$m2c_evals,"@ +@ end@ +@ if $a == $b@ +@ eval $m2c_evals = "$m2c_evals $a"@ +@ else@ +@ eval $m2c_evals = "$m2c_evals $a - $b"@ +@ end@ +@ eval $m2c_range_max = max($m2c_range_max,$b)@ +@ end@ +# Ranges: $m2c_evals; +@end@ #ranges +@ if $node.hasdefval == 1@ +@ eval $m2c_emu_def = "$node.defval"@ +@ else@ +# (no default value) +@ if "$node.type" eq "ASN_OCTET_STR"@ +@ eval $m2c_emu_def = "''" @ +@ elsif "$node.type" eq "ASN_OBJECT_ID"@ +@ eval $m2c_emu_def = "0.0" @ +@ else@ +@ eval $m2c_emu_def = "0" @ +@ end@ +@ end@ +## uggh.. try to convert type into something 5.3.x override understands +@ eval $m2c_emu_type = lc($node.type)@ +@ perleval $vars{'m2c_emu_type'} =~ s/asn_//; 0;@ +@ if $node.settable@ +#override -rw ${node}.0 $m2c_emu_type $m2c_emu_def +@ else@ +#override ${node}.0 $m2c_emu_type $m2c_emu_def +@ end@ + +@end@ + + +##====================================================================== +# +# Note that in tables, all indices are shown first, then each +# readable column. This results in indices being given twice. +# +@foreach $node table@ +@ print Table: $node@ +# $node.module::$node.parent.$node($node.subid) +table $node +##============================================================ +@ eval $m2c_idx_def = ""@ +@ eval $m2c_add_def = ""@ +@ foreach $col index@ +# [$col] ($node.accessible) $col.syntax / $col.type / $m2c_decl ($col.decl) +@ if $col.enums == 1@ +@ eval $m2c_evals = ""@ +@ eval $m2c_first = 1@ +@ foreach $e $v enum@ +@ if $m2c_first == 1@ +@ eval $m2c_first = 0@ +@ else@ +@ eval $m2c_evals = "$m2c_evals,"@ +@ end@ +@ eval $m2c_evals = "$m2c_evals $e($v)"@ +@ if $col.hasdefval == 1@ +@ if (("$col.defval" eq "$e") || ("$col.defval" eq "$v"))@ +@ eval $m2c_evals = "${m2c_evals}*"@ +@ end@ +@ end@ +@ end@ +# enum range: $col.enumrange. Values: $m2c_evals +@ elsif $col.ranges == 1@ +@ eval $m2c_range_max = 0@ +@ eval $m2c_evals = ""@ +@ eval $m2c_first = 1@ +@ foreach $a $b range $col@ +@ if $m2c_first == 1@ +@ eval $m2c_first = 0@ +@ else@ +@ eval $m2c_evals = "$m2c_evals,"@ +@ end@ +@ if $a == $b@ +@ eval $m2c_evals = "$m2c_evals $a"@ +@ else@ +@ eval $m2c_evals = "$m2c_evals $a - $b"@ +@ end@ +@ eval $m2c_range_max = max($m2c_range_max,$b)@ +@ end@ +# ranges: $m2c_evals; +@ end@ #ranges +@ if $col.hasdefval == 1@ +@ eval $m2c_col_def = '$col.defval'@ +@ else@ +@ if "$col.type" eq "ASN_OCTET_STR"@ +@ eval $m2c_col_def = "''" @ +@ elsif "$col.type" eq "ASN_OBJECT_ID"@ +@ eval $m2c_col_def = "0.0" @ +@ else@ +@ eval $m2c_col_def = "0" @ +@ end@ +@ end@ +@ eval $m2c_add_def = "$m2c_add_def $m2c_col_def"@ +##@ if $node.accessible == 1@ +@ eval $m2c_idx_def = "$m2c_idx_def $m2c_col_def"@ +##@ end@ +@ end@ ## col +##=================================================== +@ foreach $col nonindex@ +# $col [$col.syntax = $col.type] +@ if "$col.status" eq "Deprecated"@ +# **** WARNING: deprecated object **** +@ end@ +@ if $col.enums == 1@ +@ eval $m2c_evals = ""@ +@ eval $m2c_first = 1@ +@ foreach $e $v enum@ +@ if $m2c_first == 1@ +@ eval $m2c_first = 0@ +@ else@ +@ eval $m2c_evals = "$m2c_evals,"@ +@ end@ +@ eval $m2c_evals = "$m2c_evals $e($v)"@ +@ if $col.hasdefval == 1@ +@ if (("$col.defval" eq "$e") || ("$col.defval" eq "$v"))@ +@ eval $m2c_evals = "${m2c_evals}*"@ +@ end@ +@ end@ +@ end@ +# enum range: $col.enumrange. Values: $m2c_evals +@ elsif $col.ranges == 1@ +@ eval $m2c_range_max = 0@ +@ eval $m2c_evals = ""@ +@ eval $m2c_first = 1@ +@ foreach $a $b range $col@ +@ if $m2c_first == 1@ +@ eval $m2c_first = 0@ +@ else@ +@ eval $m2c_evals = "$m2c_evals,"@ +@ end@ +@ if $a == $b@ +@ eval $m2c_evals = "$m2c_evals $a"@ +@ else@ +@ eval $m2c_evals = "$m2c_evals $a - $b"@ +@ end@ +@ eval $m2c_range_max = max($m2c_range_max,$b)@ +@ end@ +# ranges: $m2c_evals; +@ end@ #ranges +@ if $col.hasdefval == 1@ +@ eval $m2c_col_def = '$col.defval'@ +@ else@ +@ if "$col.type" eq "ASN_OCTET_STR"@ +@ eval $m2c_col_def = "''" @ +@ elsif "$col.type" eq "ASN_OBJECT_ID"@ +@ eval $m2c_col_def = "0.0" @ +@ else@ +@ eval $m2c_col_def = "0" @ +@ end@ +@ end@ +@ eval $m2c_add_def = "$m2c_add_def $m2c_col_def"@ +@ end@ ## col +#add_row $node $m2c_idx_def $m2c_add_def + +@end@ ## table |