Blame local/mib2c.genhtml.conf

Packit fcad23
##
Packit fcad23
## USAGE:
Packit fcad23
## mib2c -c mib2c.genhtml.conf STARTINGNODE
Packit fcad23
##
Packit fcad23
## Optional extra arguments:
Packit fcad23
##
Packit fcad23
##    -S cssfile=file.css         (specifies an alternate CSS style
Packit fcad23
##                                 file to include in the output)
Packit fcad23
##
Packit fcad23
##
Packit fcad23
## try to strip leading white space from text
Packit fcad23
##
Packit fcad23
@define DO_FORMATED_TEXT@
Packit fcad23
@startperl@
Packit fcad23
  my ($s) = ($vars{'x'} =~ /\n(\s+)/);
Packit fcad23
  $vars{'x'} =~ s/^$s//gm;
Packit fcad23
  0;
Packit fcad23
@endperl@
Packit fcad23
Packit fcad23
$x
Packit fcad23
Packit fcad23
@enddefine@
Packit fcad23
##
Packit fcad23
## print a description clause (include TC info and references 
Packit fcad23
##
Packit fcad23
@define DO_DESCR@
Packit fcad23
Packit fcad23
@if "$i.perltype" ne "$i.syntax"@
Packit fcad23

Packit fcad23
@eval $tmpsyn = "$i.syntax"@
Packit fcad23
@perleval if (!defined($TCS{$vars{'tmpsyn'}})) { $TCS{$vars{'tmpsyn'}} = $vars{'i'}; }; 0;@
Packit fcad23
Note: this object is based on the  $i.syntax TEXTUAL-CONVENTION.
Packit fcad23

Packit fcad23
@end@
Packit fcad23
@eval $x = "$i.description"@
Packit fcad23
@calldefine DO_FORMATED_TEXT@
Packit fcad23
##@startperl@
Packit fcad23
##  my ($s) = ($vars{'x'} =~ /\n(\s+)/);
Packit fcad23
##  $vars{'x'} =~ s/^$s//gm;
Packit fcad23
##  0;
Packit fcad23
##@endperl@
Packit fcad23
##
Packit fcad23
##$x
Packit fcad23
##
Packit fcad23
@if "$i.reference" ne ""@
Packit fcad23
@eval $x = "$i.reference"@
Packit fcad23

Also see Reference:

Packit fcad23
@calldefine DO_FORMATED_TEXT@
Packit fcad23

Packit fcad23
@end@
Packit fcad23
Packit fcad23
@enddefine@
Packit fcad23
##
Packit fcad23
## print information (a row) about a given node
Packit fcad23
##
Packit fcad23
@define NODE_INFO@
Packit fcad23
@if ("$i.status" eq "Current")@
Packit fcad23
  
Packit fcad23
@else@
Packit fcad23
  
Packit fcad23
@end@
Packit fcad23
Packit fcad23
@eval $tmpi = "$i.parent"@
Packit fcad23
@if "$doindexstuff" ne "" && "$tmpi.parent" ne "$t"@
Packit fcad23
(external from $tmpi.parent)
Packit fcad23
@else@
Packit fcad23
$i.subid
Packit fcad23
@end@
Packit fcad23

$i
Packit fcad23
Packit fcad23
Packit fcad23
##
Packit fcad23
## print the data type
Packit fcad23
##
Packit fcad23
@if ("$i.status" ne "Current")@
Packit fcad23
<font color="red">DEPRECATED</font>
Packit fcad23
@end@
Packit fcad23
  $i.perltype
Packit fcad23
##
Packit fcad23
## print range information
Packit fcad23
##
Packit fcad23
  @if "$i.ranges"@
Packit fcad23
    @if "$i.perltype" eq 'OCTETSTR' || "$i.perltype" eq 'OBJECTID'@
Packit fcad23
      
Legal Lengths:
Packit fcad23
    @else@
Packit fcad23
      
Legal values:
Packit fcad23
    @end@
Packit fcad23
    @eval $tmpdidit = 0@
Packit fcad23
    @foreach $st $end range $i@
Packit fcad23
      @if "$tmpdidit" == "1"@
Packit fcad23
        ,
Packit fcad23
      @end@
Packit fcad23
      @if "$st" eq "$end"@
Packit fcad23
        $st
Packit fcad23
      @else@
Packit fcad23
        $st .. $end
Packit fcad23
      @end@
Packit fcad23
      @eval $tmpdidit = 1@
Packit fcad23
    @end@
Packit fcad23
  @end@
Packit fcad23
##
Packit fcad23
## check for TC vs non-TC cases
Packit fcad23
##
Packit fcad23
  @if "$i.perltype" ne "$i.syntax"@
Packit fcad23
 
Packit fcad23
 @eval $tmpsyn = "$i.syntax"@
Packit fcad23
 @perleval if (!defined($TCS{$vars{'tmpsyn'}})) { $TCS{$vars{'tmpsyn'}} = $vars{'i'}; }; 0;@
Packit fcad23
 $i.syntax
Packit fcad23
    @if $i.enums@
Packit fcad23
     
(ENUM list below)
Packit fcad23
    @end@
Packit fcad23
  @else@
Packit fcad23
    @if $i.enums@
Packit fcad23
      
Packit fcad23
      ValueLabel/Meaning
Packit fcad23
      @foreach $e $v enum@
Packit fcad23
        $v$e
Packit fcad23
      @end@
Packit fcad23
      
Packit fcad23
    @end@
Packit fcad23
  @end@
Packit fcad23
Packit fcad23
  $i.access
Packit fcad23
  @if !"$dont_do_oids"@
Packit fcad23
    $i.objectID
Packit fcad23
  @end@
Packit fcad23
  @calldefine DO_DESCR@
Packit fcad23
@enddefine@
Packit fcad23
@open ${name}.html@
Packit fcad23
<head>
Packit fcad23
  <title>MIB information for $name</title>
Packit fcad23
<style type="text/css">
Packit fcad23
@if "$cssfile" ne ""@
Packit fcad23
@startperl@
Packit fcad23
open(CSS,$vars{'cssfile'});
Packit fcad23
while(<CSS>) {
Packit fcad23
  mib2c_output($_);
Packit fcad23
}
Packit fcad23
close(CSS);
Packit fcad23
0;
Packit fcad23
@endperl@
Packit fcad23
@else@
Packit fcad23
Packit fcad23
h2{background:#bbeebb}
Packit fcad23
h3{background:#ccccee}
Packit fcad23
table {
Packit fcad23
 border: 1px;
Packit fcad23
 background: #dddddd;
Packit fcad23
 style: outset;
Packit fcad23
}
Packit fcad23
th {
Packit fcad23
 border: 1px;
Packit fcad23
 border: solid;
Packit fcad23
 border-style: outset;
Packit fcad23
 background: #bbbbbb;
Packit fcad23
}
Packit fcad23
td {
Packit fcad23
 border: 1px;
Packit fcad23
 border: solid;
Packit fcad23
 border-style: inset;
Packit fcad23
}
Packit fcad23
table.enums {
Packit fcad23
 background: #cccccc;
Packit fcad23
}
Packit fcad23
table.deprecated {
Packit fcad23
 background: #ffdddd;
Packit fcad23
}
Packit fcad23
td.deprecated {
Packit fcad23
 background: #ffdddd;
Packit fcad23
}
Packit fcad23
.label {
Packit fcad23
 border-style: outset;
Packit fcad23
 background: #bbbbbb;
Packit fcad23
}
Packit fcad23
-->
Packit fcad23
@end@
Packit fcad23
</style>
Packit fcad23
</head>
Packit fcad23
<body bgcolor="#ffffff">
Packit fcad23

INTRODUCTION

Packit fcad23
    Packit fcad23

    Packit fcad23
    This is a summary of information regarding objects below the $name
    Packit fcad23
    MIB object, which is defined within the $name.module MIB
    Packit fcad23
    document as $name.objectID.
    Packit fcad23

    Packit fcad23
    Packit fcad23
    ##
    Packit fcad23
    ## Table of contents
    Packit fcad23
    ##
    Packit fcad23

    TABLE OF CONTENTS

    Packit fcad23
      Packit fcad23
      @foreach $Current stuff Current Deprecated@
      Packit fcad23

      $Current Objects

      Packit fcad23
        Packit fcad23
        @if "$Current" eq "Current"@
        Packit fcad23
      • Scalars
      • Packit fcad23
        @else@
        Packit fcad23
      • Deprecated Scalars
      • Packit fcad23
        @end@
        Packit fcad23
        @foreach $t table@
        Packit fcad23
        @if ("$Current" eq "Current" && "$t.status" eq "Current") || ("$Current" ne "Current" && "$t.status" ne "Current")@
        Packit fcad23
          
      • $t
      • Packit fcad23
        @end@
        Packit fcad23
        @end@
        Packit fcad23
        Packit fcad23
        @end@
        Packit fcad23

        Notifications

        Packit fcad23

        Textual Conventions

        Packit fcad23

        Tree-based view

        Packit fcad23
        Packit fcad23
        ##
        Packit fcad23
        ## Start of definitions
        Packit fcad23
        ##
        Packit fcad23
        @foreach $Current stuff Current Deprecated@
        Packit fcad23
        Packit fcad23
        @if "$Current" ne "Current"@
        Packit fcad23
          @eval $namestring = "notcurrent"@
        Packit fcad23
          
        Packit fcad23
          

        <font color="red">DEPRECATED OR OBSOLETE OR HISTORIC OBJECTS</font>

        Packit fcad23
          
        Packit fcad23
          
        Packit fcad23
        @else@
        Packit fcad23
          @eval $namestring = "current"@
        Packit fcad23
        @end@
        Packit fcad23
        Packit fcad23

        SCALAR OBJECTS

        Packit fcad23
          Packit fcad23
          Packit fcad23
          NameTypeAccessOIDDescription
          Packit fcad23
          @foreach $i scalar@
          Packit fcad23
            @if ("$Current" eq "Current" && "$i.status" eq "Current") || ("$Current" ne "Current" && "$i.status" ne "Current")@
          Packit fcad23
            
          Packit fcad23
            @calldefine NODE_INFO@
          Packit fcad23
            
          Packit fcad23
            @end@
          Packit fcad23
          @end@
          Packit fcad23
          Packit fcad23
          Packit fcad23
          Packit fcad23

          TABLE OBJECTS

          Packit fcad23
          @eval $dont_do_oids = 1@
          Packit fcad23
          @foreach $t table@
          Packit fcad23
          @if ("$Current" eq "Current" && "$t.status" eq "Current") || ("$Current" ne "Current" && "$t.status" ne "Current")@
          Packit fcad23

          Table $t

          Packit fcad23
            Packit fcad23
              
            Packit fcad23
              Table Name$t
            Packit fcad23
              In MIB$t.module
            Packit fcad23
              Registered at OID$t.objectID
            Packit fcad23
              Table Description
            Packit fcad23
            @eval $i ="$t"@
            Packit fcad23
            @calldefine DO_DESCR@
            Packit fcad23
            Packit fcad23
                @eval $tmpx = $t@
            Packit fcad23
                @perleval $vars{'tmpx'} =~ s/Table/Entry/; 0;@
            Packit fcad23
            @eval $i = "$tmpx"@
            Packit fcad23
            Row Description
            Packit fcad23
            @calldefine DO_DESCR@
            Packit fcad23
            Packit fcad23
              
            Packit fcad23
            Packit fcad23
              

            $t Indexes:

            Packit fcad23
            Packit fcad23
            Packit fcad23
            NameTypeAccessDescription
            Packit fcad23
            @foreach $i index@
            Packit fcad23
              
            Packit fcad23
              @calldefine NODE_INFO@
            Packit fcad23
              
            Packit fcad23
            @end@
            Packit fcad23
            Packit fcad23
            Packit fcad23
              

            Other $t Columns:

            Packit fcad23
            Packit fcad23
            NameTypeAccessDescription
            Packit fcad23
            @foreach $i nonindex@
            Packit fcad23
              
            Packit fcad23
              @calldefine NODE_INFO@
            Packit fcad23
              
            Packit fcad23
            @end@
            Packit fcad23
            Packit fcad23
            Packit fcad23
            @end@
            Packit fcad23
            @end@
            Packit fcad23
            @end@
            Packit fcad23
            Packit fcad23

            Packit fcad23
              
            Packit fcad23

            Packit fcad23
            Packit fcad23

            NOTIFICATIONS

            Packit fcad23
              Packit fcad23

              Packit fcad23
              @foreach $i notifications@
              Packit fcad23

              Notification: $i

              Packit fcad23
              Packit fcad23
                
              Packit fcad23
                Notification Name$i
              Packit fcad23
                In MIB$i.module
              Packit fcad23
                Registered at OID$i.objectID
              Packit fcad23
                Notification Description
              Packit fcad23
              @calldefine DO_DESCR@
              Packit fcad23
                
              Packit fcad23
                 Mandatory
              Objects
              Packit fcad23
                
              Packit fcad23
                  @foreach $v varbinds@
              Packit fcad23
                    $v
              Packit fcad23
                  @end@
              Packit fcad23
                
              Packit fcad23
                
              Packit fcad23
              @end@
              Packit fcad23
              Packit fcad23
              Packit fcad23
              Packit fcad23

              Packit fcad23

              Packit fcad23
              Packit fcad23

              TEXTUAL CONVENTIONS

              Packit fcad23
                Packit fcad23

                Packit fcad23
                These TEXTUAL-CONVENTIONS are used in other parts of the document
                Packit fcad23
                above.  They are SNMP's way of defining a datatype that is used
                Packit fcad23
                repeatedly by other MIB objects.  Any implementation implementing
                Packit fcad23
                objects that use one of these definitions must follow its DESCRIPTION
                Packit fcad23
                clause as well as the DESCRIPTION clause of the object itself.
                Packit fcad23

                Packit fcad23
                @startperl@
                Packit fcad23
                mib2c_output("");
                Packit fcad23
                mib2c_output("NameTypeDescription\n");
                Packit fcad23
                map {
                Packit fcad23
                    my $desc = $SNMP::MIB{$TCS{$_}}{'TCDescription'};
                Packit fcad23
                      my ($s) = ($desc =~ /\n(\s+)/);
                Packit fcad23
                      $desc =~ s/^$s//gm;
                Packit fcad23
                    mib2c_output("$_");
                Packit fcad23
                    mib2c_output($SNMP::MIB{$TCS{$_}}{'type'});
                Packit fcad23
                    my @enumkeys = keys(%{$SNMP::MIB{$TCS{$_}}{'enums'}});
                Packit fcad23
                    if ($#enumkeys > -1) {
                Packit fcad23
                       mib2c_output("");
                Packit fcad23
                       mib2c_output("ValueLabel/Meaning");
                Packit fcad23
                       foreach $k (sort { $SNMP::MIB{$TCS{$_}}{'enums'}{$a} <=>
                Packit fcad23
                			  $SNMP::MIB{$TCS{$_}}{'enums'}{$b} } @enumkeys) {
                Packit fcad23
                            mib2c_output("$SNMP::MIB{$TCS{$_}}{'enums'}{$k}$k");
                Packit fcad23
                       }
                Packit fcad23
                       mib2c_output("");
                Packit fcad23
                    }
                Packit fcad23
                    mib2c_output("
                $desc
                \n");
                Packit fcad23
                } keys(%TCS); 
                Packit fcad23
                mib2c_output("");
                Packit fcad23
                0;
                Packit fcad23
                @endperl@
                Packit fcad23
                Packit fcad23
                Packit fcad23
                Packit fcad23

                TREE VIEW

                Packit fcad23
                @eval $mod = "$name.module"@
                Packit fcad23

                Tree view generated by running: snmptranslate -Tp $mod::$name

                Packit fcad23
                Packit fcad23
                @startperl@
                Packit fcad23
                open(TREE,"snmptranslate -Tp $vars{mod}::$vars{name}|");
                Packit fcad23
                while(<TREE>) {
                Packit fcad23
                  s/(\+-- .*\s)(\w+)(\(\d+\))$/$1$2<\/a>$3/;
                Packit fcad23
                  s/\+--(\w+)/+--$1<\/a>/;
                Packit fcad23
                  s/Textual Convention: (\w+)/Textual Convention: $1<\/a>/;
                Packit fcad23
                  mib2c_output($_);
                Packit fcad23
                }
                Packit fcad23
                close(TREE);
                Packit fcad23
                return 0;
                Packit fcad23
                @endperl@
                Packit fcad23