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