Blame local/mib2c.emulation.conf

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