about summary refs log tree commit
diff options
context:
space:
mode:
authorGraham Barr <gbarr@pobox.com>1998-08-23 17:33:51 +0000
committerGraham Barr <gbarr@pobox.com>1998-08-23 17:33:51 +0000
commit708e6cfb54137ab809b8d7c9f346234040a87558 (patch)
tree31838a8de38de1c6db26bfb7346c80bc3791ba0c
parenta40414515b5c258bc0899a4139c510a9e97ceb26 (diff)
downloadperl-libnet-708e6cfb54137ab809b8d7c9f346234040a87558.tar.gz
Remove mention of Net::SNMP from README
-rw-r--r--Net/SNMP.pm104
-rw-r--r--Net/SNMP/BER.pm41
-rw-r--r--Net/SNMP/MIB.pm164
-rw-r--r--Net/SNMP/mib.pl539
-rw-r--r--README4
5 files changed, 0 insertions, 852 deletions
diff --git a/Net/SNMP.pm b/Net/SNMP.pm
deleted file mode 100644
index 5cb389a..0000000
--- a/Net/SNMP.pm
+++ /dev/null
@@ -1,104 +0,0 @@
-
-package Net::SNMP;
-
-use IO::Socket;
-use strict;
-use Net::SNMP::BER;
-
-sub new {
-    my $class = shift;
-    my %arg = @_;
-
-    my $self = bless {
-        net_snmp_reqid         => 1,
-        net_snmp_port         => exists $arg{-port}
-                                ? delete $arg{-port} : 161,
-        net_snmp_retries => exists $arg{-retries}
-                                ? delete $arg{-retries} : 4,
-        net_snmp_timeout => exists $arg{-timeout}
-                                ? delete $arg{-timeout} : 10,
-    }, $class;
-
-    $self->{net_snmp_host} = delete $arg{-host}
-        if exists $arg{-host};
-
-    $self->{net_snmp_community} = delete $arg{-community}
-        if exists $arg{-community};
-
-    $self->{'net_snmp_sock'} = new IO::Socket::INET(Proto => 'udp');
-
-    $self;
-}
-
-sub get {
-    my $self = shift;
-
-    my $host = "localhost";
-    my $port = 161;
-
-    my $addr = sockaddr_in($port, inet_aton($host));
-
-    my $reqid = $self->{'net_snmp_reqid'}++;
-
-    my $pkt = new Net::SNMP::BER;
-    my $id;
-    my @vars;
-    my $names = [ ".1.3.6.1.2.1.2.2.1.2.1" ];
-
-    @vars = map {
-        Net::SNMP::BER->new->encode(
-            SEQUENCE => [
-                OBJECTID => $_,
-                NULL         => 0
-            ]
-        )
-    } @$names;
-
-    $pkt->encode(
-        SEQUENCE => [
-            INTEGER => 0,
-            STRING => "public",
-            GET_REQ_MSG => [
-                INTEGER => $reqid,
-                INTEGER => 0,
-                INTEGER => 0,
-#                SEQUENCE_OF => [ scalar(@$names),
-#                    SEQUENCE => [
-#                        OBJECTID => $names,
-#                        NULL         => 0
-#                    ]
-#                ]
-                SEQUENCE => [
-                    BER => \@vars
-                ]
-#                SEQUENCE => [
-#                    map {
-#                        (SEQUENCE => [
-#                            OBJECTID => $_,
-#                            NULL         => 0
-#                        ])
-#                    } @$names
-#                ]
-            ]
-        ]
-    );
-
-$pkt->dump;
-$pkt->hexdump;
-    $self->{'net_snmp_sock'}->send($pkt->buffer,0,$addr);
-warn "$!";
-my $buf = "";
-    $self->{'net_snmp_sock'}->recv($buf,4096);
-warn length($buf);
-Net::SNMP::BER->new($buf)->dump;
-}
-
-sub set {
-    my $self = shift;
-}
-
-sub getnext {
-    my $self = shift;
-}
-
-1;
diff --git a/Net/SNMP/BER.pm b/Net/SNMP/BER.pm
deleted file mode 100644
index f31dd57..0000000
--- a/Net/SNMP/BER.pm
+++ /dev/null
@@ -1,41 +0,0 @@
-package Net::SNMP::BER;
-
-use Convert::BER qw(/BER/);
-
-use vars qw($VERSION @ISA);
-
-@ISA = qw(Convert::BER);
-$VERSION = "1.01";
-
-Net::SNMP::BER->define(
-
-    # Name                Type                Tag
-    ########################################
-
-    [ SNMP_IPADDRESS,        STRING,                BER_APPLICATION | 0x00 ],
-    [ SNMP_COUNTER,        INTEGER,        BER_APPLICATION | 0x01 ],
-    [ SNMP_GAUGE,        INTEGER,        BER_APPLICATION | 0x02 ],
-    [ SNMP_TIMETICKS,        INTEGER,        BER_APPLICATION | 0x03 ],
-    [ SNMP_OPAQUE,        STRING,                BER_APPLICATION | 0x04 ],
-    [ SNMP_NSAP,        STRING,                BER_APPLICATION | 0x05 ],
-    [ SNMP_COUNTER64,        INTEGER,                BER_APPLICATION | 0x06 ],
-    [ SNMP_UINTEGER,        INTEGER,        BER_APPLICATION | 0x07 ],
-
-    [ GET_REQ_MSG,        SEQUENCE,        BER_CONTEXT | BER_CONSTRUCTOR | 0x00 ],
-#    [ GETNEXT_REQ_MSG            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1)
-#    [ GET_RSP_MSG            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2)
-#    [ SET_REQ_MSG            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3)
-#    [ TRP_REQ_MSG            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x4)
-
-#    [ GETBULK_REQ_MSG            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5)
-#    [ INFORM_REQ_MSG            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6)
-#    [ TRP2_REQ_MSG            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7)
-#    [ REPORT_MSG            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x8)
-
-#    [ SNMP_NOSUCHOBJECT    (ASN_CONTEXT | ASN_PRIMITIVE | 0x0)
-#    [ SNMP_NOSUCHINSTANCE  (ASN_CONTEXT | ASN_PRIMITIVE | 0x1)
-#    [ SNMP_ENDOFMIBVIEW    (ASN_CONTEXT | ASN_PRIMITIVE | 0x2)
-
-);
-
-1;
diff --git a/Net/SNMP/MIB.pm b/Net/SNMP/MIB.pm
deleted file mode 100644
index d300bdf..0000000
--- a/Net/SNMP/MIB.pm
+++ /dev/null
@@ -1,164 +0,0 @@
-package Net::SNMP::MIB;
-
-{
-    package Net::SNMP::MIB::enum;
-
-    sub new {
-        bless $_[1], $_[0];
-    }
-
-    sub name {
-        my $me = shift;
-        my $value = shift;
-        my($name,$v);
-        while(($name,$v) = each %$me) {
-            return $name if $value == $v;
-        }
-        return undef;
-    }
-
-    sub value {
-        my $me = shift;
-        my $name = shift;
-        exists $me->{$name}
-            ? $me->{$name}
-            : undef;
-    }
-}
-
-use Net::SNMP::BER;
-
-use Symbol;
-
-sub TYPE_OTHER                () {  0 }
-sub TYPE_OBJID                () {  1 }
-sub TYPE_OCTETSTR        () {  2 }
-sub TYPE_INTEGER        () {  3 }
-sub TYPE_NETADDR        () {  4 }
-sub TYPE_IPADDR                () {  5 }
-sub TYPE_COUNTER        () {  6 }
-sub TYPE_GAUGE                  () {  7 }
-sub TYPE_TIMETICKS        () {  8 }
-sub TYPE_OPAQUE                () {  9 }
-sub TYPE_NULL                () { 10 }
-sub TYPE_COUNTER64        () { 11 }
-sub TYPE_BITSTRING        () { 12 }
-sub TYPE_NSAPADDRESS        () { 13 }
-sub TYPE_UINTEGER        () { 14 }
-
-my $root = gensym;
-
-sub root { bless $root };
-
-sub add {
-    my($parent,$name,$id,$type,$desc,$enum) = @_;
-    my $me = gensym;
-    if($parent) {
-        ${*$parent}{$name} = $me;
-        ${*$parent}[$id] = $me;
-    }
-    undef $parent if $parent == $root;
-    my $h = ${*$me} = {
-        parent        => $parent,
-        name        => $name,
-        id        => $id,
-        type        => $type,
-    };
-
-    $h->{'enum'} = new Net::SNMP::MIB::enum($enum)
-        if defined $enum;
-
-    if(defined $desc) {
-        chomp($desc);
-        $h->{'desc'} = $desc . "\n";;
-    }
-    bless $me;
-}
-
-sub parent {
-    my $me = shift;
-    ${*$me}->{'parent'};
-}
-
-sub find {
-    my $me = shift;
-    my $name = shift;
-
-    $me = $root if substr($name,0,1) eq ".";
-    unless(ref($me)) {
-        $me = $root;
-        $name = ".1.3.6.1.2.1." . $name
-            unless substr($name,0,1) eq ".";
-    }
-
-    my @name = split(/\.+/,substr($name,1));
-    while(@name) {
-        my $bit = shift @name;
-        if($bit =~ /\D/) {
-            return undef
-                unless exists ${*$me}{$bit};
-            $me = ${*$me}{$bit};
-        }
-        else {
-            return undef
-                unless defined ${*$me}[$bit];
-            $me = ${*$me}[$bit];
-        }
-    }
-    $me;
-}
-
-sub id {
-    my $me = shift;
-    my @id = (${*$me}->{'id'});
-
-    unshift @id, ${*$me}->{'id'}
-        while($me = $me->parent);
-
-    join(".","",@id);
-}
-
-sub fullname {
-    my $me = shift;
-    my @name = (${*$me}->{'name'});
-
-    unshift @name, ${*$me}->{'name'}
-        while($me = $me->parent);
-
-    join(".","",@name);
-}
-
-sub type {
-    my $me = shift;
-    ${*$me}->{'type'};
-}
-
-sub name {
-    my $me = shift;
-    ${*$me}->{'name'};
-}
-
-sub description {
-    my $me = shift;
-    ${*$me}->{'desc'};
-}
-
-sub children {
-    my $me = shift;
-    grep { defined } @{*$me};
-}
-
-sub import {
-    my $pkg = shift;
-    my $mib;
-    if(@_) {
-        $mib = shift;
-    }
-    else {
-        $mib = $INC{"Net/SNMP/MIB.pm"};
-        substr($mib,-6) = "mib.pl";
-    }
-    require "$mib";
-}
-
-1;
diff --git a/Net/SNMP/mib.pl b/Net/SNMP/mib.pl
deleted file mode 100644
index 528b241..0000000
--- a/Net/SNMP/mib.pl
+++ /dev/null
@@ -1,539 +0,0 @@
-{
- my $curent;
- my $parent = Net::SNMP::MIB->root;
- $current = $parent->add('iso',1,undef,undef,undef);
- $parent = $current;
-  $current = $parent->add('org',3,undef,undef,undef);
-  $parent = $current;
-   $current = $parent->add('dod',6,undef,undef,undef);
-   $parent = $current;
-    $current = $parent->add('internet',1,undef,undef,undef);
-    $parent = $current;
-     $current = $parent->add('snmpV2',6,undef,undef,undef);
-     $parent = $current;
-      $current = $parent->add('snmpModules',3,undef,undef,undef);
-      $parent = $current;
-       $current = $parent->add('usecMIB',6,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('usecMIBObjects',1,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('usecStats',2,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('usecStatsUnknownContextSelectors',5,"COUNTER",undef,undef);
-          $current = $parent->add('usecStatsWrongDigestValues',4,"COUNTER",undef,undef);
-          $current = $parent->add('usecStatsUnknownUserNames',3,"COUNTER",undef,undef);
-          $current = $parent->add('usecStatsNotInWindows',2,"COUNTER",undef,undef);
-          $current = $parent->add('usecStatsUnsupportedQoS',1,"COUNTER",undef,undef);
-         $parent = $parent->parent;
-         $current = $parent->add('usecAgent',1,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('agentSize',4,"INTEGER",undef,undef);
-          $current = $parent->add('agentTime',3,"GAUGE",undef,undef);
-          $current = $parent->add('agentBoots',2,"GAUGE",undef,undef);
-          $current = $parent->add('agentID',1,"STRING",undef,undef);
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-       $parent = $parent->parent;
-      $parent = $parent->parent;
-     $parent = $parent->parent;
-     $current = $parent->add('private',4,undef,undef,undef);
-     $parent = $current;
-      $current = $parent->add('enterprises',1,undef,undef,undef);
-      $parent = $current;
-       $current = $parent->add('tubs',1575,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('ibr',1,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('linuxMIB',5,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('linuxMIBConformance',3,undef,undef,undef);
-          $parent = $current;
-           $current = $parent->add('linuxMIBGroups',2,undef,undef,undef);
-           $current = $parent->add('linuxMIBCompliances',1,undef,undef,undef);
-          $parent = $parent->parent;
-          $current = $parent->add('linuxMIBObjects',2,undef,undef,undef);
-          $parent = $current;
-           $current = $parent->add('linuxBogo',2,undef,"The number of BOGO MIPS of the linux system.",undef);
-           $current = $parent->add('linuxCPU',1,undef,"The identification of the linux CPU.",undef);
-          $parent = $parent->parent;
-          $current = $parent->add('linuxAgents',1,undef,undef,undef);
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-       $parent = $parent->parent;
-       $current = $parent->add('cmu',3,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('mibs',2,undef,undef,undef);
-        $current = $parent->add('systems',1,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('cmuRouter',3,undef,undef,undef);
-         $current = $parent->add('cmuKip',2,undef,undef,undef);
-         $current = $parent->add('cmuSNMP',1,undef,undef,undef);
-        $parent = $parent->parent;
-       $parent = $parent->parent;
-      $parent = $parent->parent;
-     $parent = $parent->parent;
-     $current = $parent->add('experimental',3,undef,undef,undef);
-     $current = $parent->add('directory',1,undef,undef,undef);
-     $current = $parent->add('mgmt',2,undef,undef,undef);
-     $parent = $current;
-      $current = $parent->add('mib-2',1,undef,undef,undef);
-      $parent = $current;
-       $current = $parent->add('ident',24,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('identInfo',1,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('identTable',1,undef,"A table containing user information for TCP\nconnections.\nNote that this table contains entries for all TCP\nconnections on a managed system.  The\ncorresponding instance of tcpConnState (defined in\nMIB-II) indicates the state of a particular\nconnection.",undef);
-         $parent = $current;
-          $current = $parent->add('identEntry',1,undef,"User information about a particular TCP\nconnection.",undef);
-          $parent = $current;
-           $current = $parent->add('identMisc',5,"STRING","Indicates miscellaneous information about the\nuser.  Interpretation of this object requires\nexamination of the corresponding value of the\nidentOpSys and identCharset objects.",undef);
-           $current = $parent->add('identUserid',4,"STRING","Indicates the user's identity.  Interpretation of\nthis object requires examination of the\ncorresponding value of the identOpSys and\nidentCharset objects.",undef);
-           $current = $parent->add('identCharset',3,"STRING","Indicates the repertoire of the corresponding\nidentUserid and identMisc objects.\nThe legal values for the `identCharset' strings\nare those listed in the CHARACTER SET section of\nthe most recent edition of the ASSIGNED NUMBERS\nRFC [8].",undef);
-           $current = $parent->add('identOpSys',2,"STRING","Indicates the type of operating system in use.\nIn addition to identifying an operating system,\neach assignment made for this purpose also\n(implicitly) identifies the textual format and\nmaximum size of the corresponding identUserid and\nidentMisc objects.\nThe legal values for the `indentOpSys' strings\nare those listed in the SYSTEM NAMES section of\nthe most recent edition of the ASSIGNED NUMBERS\nRFC [8].",undef);
-           $current = $parent->add('identStatus',1,"INTEGER","Indicates whether user information for the\nassociated TCP connection can be determined.  A\nvalue of `noError(1)' indicates that user\ninformation is available.  A value of\n`unknownError(2)' indicates that user information\nis not available.",{ 'noError' => 1, 'unknownError' => 2, });
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-       $parent = $parent->parent;
-       $current = $parent->add('host',25,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('hrSWInstalled',6,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('hrSWInstalledTable',3,undef,"The (conceptual) table of software installed on\nthis host.",undef);
-         $parent = $current;
-          $current = $parent->add('hrSWInstalledEntry',1,undef,"A (conceptual) entry for a piece of software\ninstalled on this host.\nAs an example of how objects in this table are\nnamed, an instance of the hrSWInstalledName object\nmight be named hrSWInstalledName.96",undef);
-          $parent = $current;
-           $current = $parent->add('hrSWInstalledDate',5,"STRING","The last-modification date of this application as\nit would appear in a directory listing.",undef);
-           $current = $parent->add('hrSWInstalledType',4,"INTEGER","The type of this software.",{ 'unknown' => 1, 'operatingSystem' => 2, 'deviceDriver' => 3, 'application' => 4, });
-           $current = $parent->add('hrSWInstalledID',3,"OBJECTID","The product ID of this installed piece of\nsoftware.",undef);
-           $current = $parent->add('hrSWInstalledName',2,"STRING","A textual description of this installed piece of\nsoftware, including the manufacturer, revision, the\nname by which it is commonly known, and optionally,\nits serial number.",undef);
-           $current = $parent->add('hrSWInstalledIndex',1,"INTEGER","A unique value for each piece of software\ninstalled on the host.  This value shall be in the\nrange from 1 to the number of pieces of software\ninstalled on the host.",undef);
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-         $current = $parent->add('hrSWInstalledLastUpdateTime',2,"TIMETICKS","The value of sysUpTime when the hrSWInstalledTable\nwas last completely updated.  Because caching of\nthis data will be a popular implementation\nstrategy, retrieval of this object allows a\nmanagement station to obtain a guarantee that no\ndata in this table is older than the indicated\ntime.",undef);
-         $current = $parent->add('hrSWInstalledLastChange',1,"TIMETICKS","The value of sysUpTime when an entry in the\nhrSWInstalledTable was last added, renamed, or\ndeleted.  Because this table is likely to contain\nmany entries, polling of this object allows a\nmanagement station to determine when re-downloading\nof the table might be useful.",undef);
-        $parent = $parent->parent;
-        $current = $parent->add('hrSWRunPerf',5,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('hrSWRunPerfTable',1,undef,"The (conceptual) table of running software\nperformance metrics.",undef);
-         $parent = $current;
-          $current = $parent->add('hrSWRunPerfEntry',1,undef,"A (conceptual) entry containing software\nperformance metrics.  As an example, an instance\nof the hrSWRunPerfCPU object might be named\nhrSWRunPerfCPU.1287",undef);
-          $parent = $current;
-           $current = $parent->add('hrSWRunPerfMem',2,"INTEGER","The total amount of real system memory allocated\nto this process.",undef);
-           $current = $parent->add('hrSWRunPerfCPU',1,"INTEGER","The number of centi-seconds of the total system's\nCPU resources consumed by this process.  Note that\non a multi-processor system, this value may\nincrement by more than one centi-second in one\ncenti-second of real (wall clock) time.",undef);
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-        $current = $parent->add('hrSWRun',4,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('hrSWRunTable',2,undef,"The (conceptual) table of software running on the\nhost.",undef);
-         $parent = $current;
-          $current = $parent->add('hrSWRunEntry',1,undef,"A (conceptual) entry for one piece of software\nrunning on the host Note that because the installed\nsoftware table only contains information for\nsoftware stored locally on this host, not every\npiece of running software will be found in the\ninstalled software table.  This is true of software\nthat was loaded and run from a non-local source,\nsuch as a network-mounted file system.\nAs an example of how objects in this table are\nnamed, an instance of the hrSWRunName object might\nbe named hrSWRunName.1287",undef);
-          $parent = $current;
-           $current = $parent->add('hrSWRunStatus',7,"INTEGER","The status of this running piece of software.\nSetting this value to invalid(4) shall cause this\nsoftware to stop running and to be unloaded.",{ 'running' => 1, 'runnable' => 2, 'notRunnable' => 3, 'invalid' => 4, });
-           $current = $parent->add('hrSWRunType',6,"INTEGER","The type of this software.",{ 'unknown' => 1, 'operatingSystem' => 2, 'deviceDriver' => 3, 'application' => 4, });
-           $current = $parent->add('hrSWRunParameters',5,"STRING","A description of the parameters supplied to this\nsoftware when it was initially loaded.",undef);
-           $current = $parent->add('hrSWRunPath',4,"STRING","A description of the location on long-term storage\n(e.g. a disk drive) from which this software was\nloaded.",undef);
-           $current = $parent->add('hrSWRunID',3,"OBJECTID","The product ID of this running piece of software.",undef);
-           $current = $parent->add('hrSWRunName',2,"STRING","A textual description of this running piece of\nsoftware, including the manufacturer, revision,\nand the name by which it is commonly known.  If\nthis software was installed locally, this should be\nthe same string as used in the corresponding\nhrSWInstalledName.",undef);
-           $current = $parent->add('hrSWRunIndex',1,"INTEGER","A unique value for each piece of software running\non the host.  Wherever possible, this should be the\nsystem's native, unique identification number.",undef);
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-         $current = $parent->add('hrSWOSIndex',1,"INTEGER","The value of the hrSWRunIndex for the\nhrSWRunEntry that represents the primary operating\nsystem running on this host.  This object is\nuseful for quickly and uniquely identifying that\nprimary operating system.",undef);
-        $parent = $parent->parent;
-        $current = $parent->add('hrDevice',3,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('hrFSTypes',9,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('hrFSBFS',21,undef,undef,undef);
-          $current = $parent->add('hrFSDGCFS',20,undef,undef,undef);
-          $current = $parent->add('hrFSRFS',19,undef,undef,undef);
-          $current = $parent->add('hrFSAppleshare',18,undef,undef,undef);
-          $current = $parent->add('hrFSDFS',17,undef,undef,undef);
-          $current = $parent->add('hrFSAFS',16,undef,undef,undef);
-          $current = $parent->add('hrFSNetware',15,undef,undef,undef);
-          $current = $parent->add('hrFSNFS',14,undef,undef,undef);
-          $current = $parent->add('hrFSRockRidge',13,undef,undef,undef);
-          $current = $parent->add('hrFSiso9660',12,undef,undef,undef);
-          $current = $parent->add('hrFSJournaled',11,undef,undef,undef);
-          $current = $parent->add('hrFSVNode',10,undef,undef,undef);
-          $current = $parent->add('hrFSNTFS',9,undef,undef,undef);
-          $current = $parent->add('hrFSMFS',8,undef,undef,undef);
-          $current = $parent->add('hrFSHFS',7,undef,undef,undef);
-          $current = $parent->add('hrFSHPFS',6,undef,undef,undef);
-          $current = $parent->add('hrFSFat',5,undef,undef,undef);
-          $current = $parent->add('hrFSSys5FS',4,undef,undef,undef);
-          $current = $parent->add('hrFSBerkeleyFFS',3,undef,undef,undef);
-          $current = $parent->add('hrFSUnknown',2,undef,undef,undef);
-          $current = $parent->add('hrFSOther',1,undef,undef,undef);
-         $parent = $parent->parent;
-         $current = $parent->add('hrFSTable',8,undef,"The (conceptual) table of file systems local to\nthis host or remotely mounted from a file server.\nFile systems that are in only one user's\nenvironment on a multi-user system will not be\nincluded in this table.",undef);
-         $parent = $current;
-          $current = $parent->add('hrFSEntry',1,undef,"A (conceptual) entry for one file system local to\nthis host or remotely mounted from a file server.\nFile systems that are in only one user's\nenvironment on a multi-user system will not be\nincluded in this table.\nAs an example of how objects in this table are\nnamed, an instance of the hrFSMountPoint object\nmight be named hrFSMountPoint.3",undef);
-          $parent = $current;
-           $current = $parent->add('hrFSLastPartialBackupDate',9,"STRING","The last date at which a portion of this file\nsystem was copied to another storage device for\nbackup.  This information is useful for ensuring\nthat backups are being performed regularly.\nIf this information is not known, then this\nvariable shall have the value corresponding to\nJanuary 1, year 0000, 00:00:00.0, which is encoded\nas (hex)'00 00 01 01 00 00 00 00'.",undef);
-           $current = $parent->add('hrFSLastFullBackupDate',8,"STRING","The last date at which this complete file system\nwas copied to another storage device for backup.\nThis information is useful for ensuring that\nbackups are being performed regularly.\nIf this information is not known, then this\nvariable shall have the value corresponding to\nJanuary 1, year 0000, 00:00:00.0, which is encoded\nas (hex)'00 00 01 01 00 00 00 00'.",undef);
-           $current = $parent->add('hrFSStorageIndex',7,"INTEGER","The index of the hrStorageEntry that represents\ninformation about this file system.  If there is\nno such information available, then this value\nshall be zero.  The relevant storage entry will be\nuseful in tracking the percent usage of this file\nsystem and diagnosing errors that may occur when\nit runs out of space.",undef);
-           $current = $parent->add('hrFSBootable',6,"INTEGER","A flag indicating whether this file system is\nbootable.",{ 'true' => 1, 'false' => 2, });
-           $current = $parent->add('hrFSAccess',5,"INTEGER","An indication if this file system is logically\nconfigured by the operating system to be readable\nand writable or only readable.  This does not\nrepresent any local access-control policy, except\none that is applied to the file system as a whole.",{ 'readWrite' => 1, 'readOnly' => 2, });
-           $current = $parent->add('hrFSType',4,"OBJECTID","The value of this object identifies the type of\nthis file system.",undef);
-           $current = $parent->add('hrFSRemoteMountPoint',3,"STRING","A description of the name and/or address of the\nserver that this file system is mounted from.\nThis may also include parameters such as the mount\npoint on the remote file system.  If this is not a\nremote file system, this string should have a\nlength of zero.",undef);
-           $current = $parent->add('hrFSMountPoint',2,"STRING","The path name of the root of this file system.",undef);
-           $current = $parent->add('hrFSIndex',1,"INTEGER","A unique value for each file system local to this\nhost.  The value for each file system must remain\nconstant at least from one re-initialization of\nthe agent to the next re-initialization.",undef);
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-         $current = $parent->add('hrPartitionTable',7,undef,"The (conceptual) table of partitions for long-term\nstorage devices contained by the host.  In\nparticular, partitions accessed remotely over a\nnetwork are not included here.",undef);
-         $parent = $current;
-          $current = $parent->add('hrPartitionEntry',1,undef,"A (conceptual) entry for one partition.  The\nhrDeviceIndex in the index represents the entry in\nthe hrDeviceTable that corresponds to the\nhrPartitionEntry.\nAs an example of how objects in this table are\nnamed, an instance of the hrPartitionSize object\nmight be named hrPartitionSize.3.1",undef);
-          $parent = $current;
-           $current = $parent->add('hrPartitionFSIndex',5,"INTEGER","The index of the file system mounted on this\npartition.  If no file system is mounted on this\npartition, then this value shall be zero.  Note\nthat multiple partitions may point to one file\nsystem, denoting that that file system resides on\nthose partitions.  Multiple file systems may not\nreside on one partition.",undef);
-           $current = $parent->add('hrPartitionSize',4,"INTEGER","The size of this partition.",undef);
-           $current = $parent->add('hrPartitionID',3,"STRING","A descriptor which uniquely represents this\npartition to the responsible operating system.  On\nsome systems, this might take on a binary\nrepresentation.",undef);
-           $current = $parent->add('hrPartitionLabel',2,"STRING","A textual description of this partition.",undef);
-           $current = $parent->add('hrPartitionIndex',1,"INTEGER","A unique value for each partition on this long-\nterm storage device.  The value for each long-term\nstorage device must remain constant at least from\none re-initialization of the agent to the next re-\ninitialization.",undef);
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-         $current = $parent->add('hrDiskStorageTable',6,undef,"The (conceptual) table of long-term storage\ndevices contained by the host.  In particular, disk\ndevices accessed remotely over a network are not\nincluded here.\nNote that this table is potentially sparse: a\n(conceptual) entry exists only if the correspondent\nvalue of the hrDeviceType object is\n`hrDeviceDiskStorage'.",undef);
-         $parent = $current;
-          $current = $parent->add('hrDiskStorageEntry',1,undef,"A (conceptual) entry for one long-term storage\ndevice contained by the host.  The hrDeviceIndex in\nthe index represents the entry in the hrDeviceTable\nthat corresponds to the hrDiskStorageEntry. As an\nexample, an instance of the hrDiskStorageCapacity\nobject might be named hrDiskStorageCapacity.3",undef);
-          $parent = $current;
-           $current = $parent->add('hrDiskStorageCapacity',4,"INTEGER","The total size for this long-term storage device.",undef);
-           $current = $parent->add('hrDiskStorageRemoveble',3,"INTEGER","Denotes whether or not the disk media may be\nremoved from the drive.",{ 'true' => 1, 'false' => 2, });
-           $current = $parent->add('hrDiskStorageMedia',2,"INTEGER","An indication of the type of media used in this\nlong-term storage device.",{ 'other' => 1, 'unknown' => 2, 'hardDisk' => 3, 'floppyDisk' => 4, 'opticalDiskROM' => 5, 'opticalDiskWORM' => 6, 'opticalDiskRW' => 7, 'ramDisk' => 8, });
-           $current = $parent->add('hrDiskStorageAccess',1,"INTEGER","An indication if this long-term storage device is\nreadable and writable or only readable.  This\nshould reflect the media type, any write-protect\nmechanism, and any device configuration that\naffects the entire device.",{ 'readWrite' => 1, 'readOnly' => 2, });
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-         $current = $parent->add('hrPrinterTable',5,undef,"The (conceptual) table of printers local to the\nhost.\nNote that this table is potentially sparse: a\n(conceptual) entry exists only if the correspondent\nvalue of the hrDeviceType object is\n`hrDevicePrinter'.",undef);
-         $parent = $current;
-          $current = $parent->add('hrPrinterEntry',1,undef,"A (conceptual) entry for one printer local to the\nhost.  The hrDeviceIndex in the index represents\nthe entry in the hrDeviceTable that corresponds to\nthe hrPrinterEntry.\nAs an example of how objects in this table are\nnamed, an instance of the hrPrinterStatus object\nmight be named hrPrinterStatus.3",undef);
-          $parent = $current;
-           $current = $parent->add('hrPrinterDetectedErrorState',2,"STRING","This object represents any error conditions\ndetected by the printer.  The error conditions are\nencoded as bits in an octet string, with the\nfollowing definitions:\nCondition         Bit #    hrDeviceStatus\nlowPaper          0        warning(3)\nnoPaper           1        down(5)\nlowToner          2        warning(3)\nnoToner           3        down(5)\ndoorOpen          4        down(5)\njammed            5        down(5)\noffline           6        down(5)\nserviceRequested  7        warning(3)\nIf multiple conditions are currently detected and\nthe hrDeviceStatus would not otherwise be\nunknown(1) or testing(4), the hrDeviceStatus shall\ncorrespond to the worst state of those indicated,\nwhere down(5) is worse than warning(3) which is\nworse than running(2).\nBits are numbered starting with the most\nsignificant bit of the first byte being bit 0, the\nleast significant bit of the first byte being bit\n7, the most significant bit of the second byte\nbeing bit 8, and so on.  A one bit encodes that\nthe condition was detected, while a zero bit\nencodes that the condition was not detected.\nThis object is useful for alerting an operator to\nspecific warning or error conditions that may\noccur, especially those requiring human\nintervention.",undef);
-           $current = $parent->add('hrPrinterStatus',1,"INTEGER","The current status of this printer device.  When\nin the idle(1), printing(2), or warmup(3) state,\nthe corresponding hrDeviceStatus should be\nrunning(2) or warning(3).  When in the unknown\nstate, the corresponding hrDeviceStatus should be\nunknown(1).",{ 'other' => 1, 'unknown' => 2, 'idle' => 3, 'printing' => 4, 'warmup' => 5, });
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-         $current = $parent->add('hrNetworkTable',4,undef,"The (conceptual) table of network devices\ncontained by the host.\nNote that this table is potentially sparse: a\n(conceptual) entry exists only if the correspondent\nvalue of the hrDeviceType object is\n`hrDeviceNetwork'.",undef);
-         $parent = $current;
-          $current = $parent->add('hrNetworkEntry',1,undef,"A (conceptual) entry for one network device\ncontained by the host.  The hrDeviceIndex in the\nindex represents the entry in the hrDeviceTable\nthat corresponds to the hrNetworkEntry.\nAs an example of how objects in this table are\nnamed, an instance of the hrNetworkIfIndex object\nmight be named hrNetworkIfIndex.3",undef);
-          $parent = $current;
-           $current = $parent->add('hrNetworkIfIndex',1,"INTEGER","The value of ifIndex which corresponds to this\nnetwork device.",undef);
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-         $current = $parent->add('hrProcessorTable',3,undef,"The (conceptual) table of processors contained by\nthe host.\nNote that this table is potentially sparse: a\n(conceptual) entry exists only if the correspondent\nvalue of the hrDeviceType object is\n`hrDeviceProcessor'.",undef);
-         $parent = $current;
-          $current = $parent->add('hrProcessorEntry',1,undef,"A (conceptual) entry for one processor contained\nby the host.  The hrDeviceIndex in the index\nrepresents the entry in the hrDeviceTable that\ncorresponds to the hrProcessorEntry.\nAs an example of how objects in this table are\nnamed, an instance of the hrProcessorFrwID object\nmight be named hrProcessorFrwID.3",undef);
-          $parent = $current;
-           $current = $parent->add('hrProcessorLoad',2,"INTEGER","The average, over the last minute, of the\npercentage of time that this processor was not\nidle.",undef);
-           $current = $parent->add('hrProcessorFrwID',1,"OBJECTID","The product ID of the firmware associated with the\nprocessor.",undef);
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-         $current = $parent->add('hrDeviceTable',2,undef,"The (conceptual) table of devices contained by the\nhost.",undef);
-         $parent = $current;
-          $current = $parent->add('hrDeviceEntry',1,undef,"A (conceptual) entry for one device contained by\nthe host.  As an example, an instance of the\nhrDeviceType object might be named hrDeviceType.3",undef);
-          $parent = $current;
-           $current = $parent->add('hrDeviceErrors',6,"COUNTER","The number of errors detected on this device.  It\nshould be noted that as this object has a SYNTAX\nof Counter, that it does not have a defined\ninitial value.  However, it is recommended that\nthis object be initialized to zero.",undef);
-           $current = $parent->add('hrDeviceStatus',5,"INTEGER","The current operational state of the device\ndescribed by this row of the table.  A value\nunknown(1) indicates that the current state of the\ndevice is unknown.  running(2) indicates that the\ndevice is up and running and that no unusual error\nconditions are known.  The warning(3) state\nindicates that agent has been informed of an\nunusual error condition by the operational software\n(e.g., a disk device driver) but that the device is\nstill 'operational'.  An example would be high\nnumber of soft errors on a disk.  A value of\ntesting(4), indicates that the device is not\navailable for use because it is in the testing\nstate.  The state of down(5) is used only when the\nagent has been informed that the device is not\navailable for any use.",{ 'unknown' => 1, 'running' => 2, 'warning' => 3, 'testing' => 4, 'down' => 5, });
-           $current = $parent->add('hrDeviceID',4,"OBJECTID","The product ID for this device.",undef);
-           $current = $parent->add('hrDeviceDescr',3,undef,"A textual description of this device, including\nthe device's manufacturer and revision, and\noptionally, its serial number.",undef);
-           $current = $parent->add('hrDeviceType',2,"OBJECTID","An indication of the type of device.\nIf this value is `hrDeviceProcessor { hrDeviceTypes\n3 }' then an entry exists in the hrProcessorTable\nwhich corresponds to this device.\nIf this value is `hrDeviceNetwork { hrDeviceTypes 4\n}', then an entry exists in the hrNetworkTable\nwhich corresponds to this device.\nIf this value is `hrDevicePrinter { hrDeviceTypes 5\n}', then an entry exists in the hrPrinterTable\nwhich corresponds to this device.\nIf this value is `hrDeviceDiskStorage {\nhrDeviceTypes 6 }', then an entry exists in the\nhrDiskStorageTable which corresponds to this\ndevice.",undef);
-           $current = $parent->add('hrDeviceIndex',1,"INTEGER","A unique value for each device contained by the\nhost.  The value for each device must remain\nconstant at least from one re-initialization of the\nagent to the next re-initialization.",undef);
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-         $current = $parent->add('hrDeviceTypes',1,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('hrDeviceNonVolatileMemory',21,undef,undef,undef);
-          $current = $parent->add('hrDeviceVolatileMemory',20,undef,undef,undef);
-          $current = $parent->add('hrDeviceClock',19,undef,undef,undef);
-          $current = $parent->add('hrDeviceTape',18,undef,undef,undef);
-          $current = $parent->add('hrDeviceSerialPort',17,undef,undef,undef);
-          $current = $parent->add('hrDevicePointing',16,undef,undef,undef);
-          $current = $parent->add('hrDeviceParallelPort',15,undef,undef,undef);
-          $current = $parent->add('hrDeviceModem',14,undef,undef,undef);
-          $current = $parent->add('hrDeviceKeyboard',13,undef,undef,undef);
-          $current = $parent->add('hrDeviceCoprocessor',12,undef,undef,undef);
-          $current = $parent->add('hrDeviceAudio',11,undef,undef,undef);
-          $current = $parent->add('hrDeviceVideo',10,undef,undef,undef);
-          $current = $parent->add('hrDeviceDiskStorage',6,undef,undef,undef);
-          $current = $parent->add('hrDevicePrinter',5,undef,undef,undef);
-          $current = $parent->add('hrDeviceNetwork',4,undef,undef,undef);
-          $current = $parent->add('hrDeviceProcessor',3,undef,undef,undef);
-          $current = $parent->add('hrDeviceUnknown',2,undef,undef,undef);
-          $current = $parent->add('hrDeviceOther',1,undef,undef,undef);
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-        $current = $parent->add('hrStorage',2,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('hrStorageTable',3,undef,"The (conceptual) table of logical storage areas on\nthe host.\nAn entry shall be placed in the storage table for\neach logical area of storage that is allocated and\nhas fixed resource limits.  The amount of storage\nrepresented in an entity is the amount actually\nusable by the requesting entity, and excludes loss\ndue to formatting or file system reference\ninformation.\nThese entries are associated with logical storage\nareas, as might be seen by an application, rather\nthan physical storage entities which are typically\nseen by an operating system.  Storage such as tapes\nand floppies without file systems on them are\ntypically not allocated in chunks by the operating\nsystem to requesting applications, and therefore\nshouldn't appear in this table.  Examples of valid\nstorage for this table include disk partitions,\nfile systems, ram (for some architectures this is\nfurther segmented into regular memory, extended\nmemory, and so on), backing store for virtual\nmemory (`swap space').\nThis table is intended to be a useful diagnostic\nfor `out of memory' and `out of buffers' types of\nfailures.  In addition, it can be a useful\nperformance monitoring tool for tracking memory,\ndisk, or buffer usage.",undef);
-         $parent = $current;
-          $current = $parent->add('hrStorageEntry',1,undef,"A (conceptual) entry for one logical storage area\non the host.  As an example, an instance of the\nhrStorageType object might be named\nhrStorageType.3",undef);
-          $parent = $current;
-           $current = $parent->add('hrStorageAllocationFailures',7,"COUNTER","The number of requests for storage represented by\nthis entry that could not be honored due to not\nenough storage.  It should be noted that as this\nobject has a SYNTAX of Counter, that it does not\nhave a defined initial value.  However, it is\nrecommended that this object be initialized to\nzero.",undef);
-           $current = $parent->add('hrStorageUsed',6,"INTEGER","The amount of the storage represented by this\nentry that is allocated, in units of\nhrStorageAllocationUnits.",undef);
-           $current = $parent->add('hrStorageSize',5,"INTEGER","The size of the storage represented by this entry,\nin units of hrStorageAllocationUnits.",undef);
-           $current = $parent->add('hrStorageAllocationUnits',4,"INTEGER","The size, in bytes, of the data objects allocated\nfrom this pool.  If this entry is monitoring\nsectors, blocks, buffers, or packets, for example,\nthis number will commonly be greater than one.\nOtherwise this number will typically be one.",undef);
-           $current = $parent->add('hrStorageDescr',3,undef,"A description of the type and instance of the\nstorage described by this entry.",undef);
-           $current = $parent->add('hrStorageType',2,"OBJECTID","The type of storage represented by this entry.",undef);
-           $current = $parent->add('hrStorageIndex',1,"INTEGER","A unique value for each logical storage area\ncontained by the host.",undef);
-          $parent = $parent->parent;
-         $parent = $parent->parent;
-         $current = $parent->add('hrMemorySize',2,"INTEGER","The amount of physical main memory contained by\nthe host.",undef);
-         $current = $parent->add('hrStorageTypes',1,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('hrStorageRamDisk',8,undef,undef,undef);
-          $current = $parent->add('hrStorageCompactDisc',7,undef,undef,undef);
-          $current = $parent->add('hrStorageFloppyDisk',6,undef,undef,undef);
-          $current = $parent->add('hrStorageRemovableDisk',5,undef,undef,undef);
-          $current = $parent->add('hrStorageFixedDisk',4,undef,undef,undef);
-          $current = $parent->add('hrStorageVirtualMemory',3,undef,undef,undef);
-          $current = $parent->add('hrStorageRam',2,undef,undef,undef);
-          $current = $parent->add('hrStorageOther',1,undef,undef,undef);
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-        $current = $parent->add('hrSystem',1,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('hrSystemMaxProcesses',7,"INTEGER","The maximum number of process contexts this system\ncan support.  If there is no fixed maximum, the\nvalue should be zero.  On systems that have a fixed\nmaximum, this object can help diagnose failures\nthat occur when this maximum is reached.",undef);
-         $current = $parent->add('hrSystemProcesses',6,"GAUGE","The number of process contexts currently loaded or\nrunning on this system.",undef);
-         $current = $parent->add('hrSystemNumUsers',5,"GAUGE","The number of user sessions for which this host is\nstoring state information.  A session is a\ncollection of processes requiring a single act of\nuser authentication and possibly subject to\ncollective job control.",undef);
-         $current = $parent->add('hrSystemInitialLoadParameters',4,"STRING","This object contains the parameters (e.g. a\npathname and parameter) supplied to the load device\nwhen requesting the initial operating system\nconfiguration from that device.",undef);
-         $current = $parent->add('hrSystemInitialLoadDevice',3,"INTEGER","The index of the hrDeviceEntry for the device from\nwhich this host is configured to load its initial\noperating system configuration.",undef);
-         $current = $parent->add('hrSystemDate',2,"STRING","The host's notion of the local date and time of\nday.",undef);
-         $current = $parent->add('hrSystemUptime',1,"TIMETICKS","The amount of time since this host was last\ninitialized.  Note that this is different from\nsysUpTime in MIB-II [3] because sysUpTime is the\nuptime of the network management portion of the\nsystem.",undef);
-        $parent = $parent->parent;
-       $parent = $parent->parent;
-       $current = $parent->add('system',1,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('sysORTable',9,undef,"The (conceptual) table listing the capabilities of the\nlocal SNMPv2 entity acting in an agent role with respect to\nvarious MIB modules.  SNMPv2 entities having dynamically-\nconfigurable support of MIB modules will have a\ndynamically-varying number of conceptual rows.",undef);
-        $parent = $current;
-         $current = $parent->add('sysOREntry',1,undef,"An entry (conceptual row) in the sysORTable.",undef);
-         $parent = $current;
-          $current = $parent->add('sysORUpTime',4,undef,"The value of sysUpTime at the time this conceptual row was\nlast instanciated.",undef);
-          $current = $parent->add('sysORDescr',3,undef,"A textual description of the capabilities identified by the\ncorresponding instance of sysORID.",undef);
-          $current = $parent->add('sysORID',2,"OBJECTID","An authoritative identification of a capabilities statement\nwith respect to various MIB modules supported by the local\nSNMPv2 entity acting in an agent role.",undef);
-          $current = $parent->add('sysORIndex',1,"INTEGER","The auxiliary variable used for identifying instances of\nthe columnar objects in the sysORTable.",undef);
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-        $current = $parent->add('sysORLastChange',8,undef,"The value of sysUpTime at the time of the most recent\nchange in state or value of any instance of sysORID.",undef);
-        $current = $parent->add('sysServices',7,"INTEGER","A value which indicates the set of services that this\nentity may potentially offers.  The value is a sum.  This\nsum initially takes the value zero, Then, for each layer, L,\nin the range 1 through 7, that this node performs\ntransactions for, 2 raised to (L - 1) is added to the sum.\nFor example, a node which performs only routing functions\nwould have a value of 4 (2^(3-1)).  In contrast, a node\nwhich is a host offering application services would have a\nvalue of 72 (2^(4-1) + 2^(7-1)).  Note that in the context\nof the Internet suite of protocols, values should be\ncalculated accordingly:\nlayer      functionality\n1        physical (e.g., repeaters)\n2        datalink/subnetwork (e.g., bridges)\n3        internet (e.g., supports the IP)\n4        end-to-end  (e.g., supports the TCP)\n7        applications (e.g., supports the SMTP)\nFor systems including OSI protocols, layers 5 and 6 may also\nbe counted.",undef);
-        $current = $parent->add('sysLocation',6,undef,"The physical location of this node (e.g., `telephone\ncloset, 3rd floor').  If the location is unknown, the value\nis the zero-length string.",undef);
-        $current = $parent->add('sysName',5,undef,"An administratively-assigned name for this managed node.\nBy convention, this is the node's fully-qualified domain\nname.  If the name is unknown, the value is the zero-length\nstring.",undef);
-        $current = $parent->add('sysContact',4,undef,"The textual identification of the contact person for this\nmanaged node, together with information on how to contact\nthis person.  If no contact information is known, the value\nis the zero-length string.",undef);
-        $current = $parent->add('sysUpTime',3,"TIMETICKS","The time (in hundredths of a second) since the network\nmanagement portion of the system was last re-initialized.",undef);
-        $current = $parent->add('sysObjectID',2,"OBJECTID","The vendor's authoritative identification of the network\nmanagement subsystem contained in the entity.  This value is\nallocated within the SMI enterprises subtree (1.3.6.1.4.1)\nand provides an easy and unambiguous means for determining\n`what kind of box' is being managed.  For example, if vendor\n`Flintstones, Inc.' was assigned the subtree\n1.3.6.1.4.1.4242, it could assign the identifier\n1.3.6.1.4.1.4242.1.1 to its `Fred Router'.",undef);
-        $current = $parent->add('sysDescr',1,undef,"A textual description of the entity.  This value should\ninclude the full name and version identification of the\nsystem's hardware type, software operating-system, and\nnetworking software.",undef);
-       $parent = $parent->parent;
-       $current = $parent->add('snmp',11,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('snmpEnableAuthenTraps',30,"INTEGER","Indicates whether the SNMP agent process is\npermitted to generate authentication-failure\ntraps.  The value of this object overrides any\nconfiguration information; as such, it provides a\nmeans whereby all authentication-failure traps may\nbe disabled.\nNote that it is strongly recommended that this\nobject be stored in non-volatile memory so that it\nremains constant between re-initializations of the\nnetwork management system.",{ 'enabled' => 1, 'disabled' => 2, });
-        $current = $parent->add('snmpOutTraps',29,"COUNTER","The total number of SNMP Trap PDUs which have\nbeen generated by the SNMP protocol entity.",undef);
-        $current = $parent->add('snmpOutGetResponses',28,"COUNTER","The total number of SNMP Get-Response PDUs which\nhave been generated by the SNMP protocol entity.",undef);
-        $current = $parent->add('snmpOutSetRequests',27,"COUNTER","The total number of SNMP Set-Request PDUs which\nhave been generated by the SNMP protocol entity.",undef);
-        $current = $parent->add('snmpOutGetNexts',26,"COUNTER","The total number of SNMP Get-Next PDUs which have\nbeen generated by the SNMP protocol entity.",undef);
-        $current = $parent->add('snmpOutGetRequests',25,"COUNTER","The total number of SNMP Get-Request PDUs which\nhave been generated by the SNMP protocol entity.",undef);
-        $current = $parent->add('snmpOutGenErrs',24,"COUNTER","The total number of SNMP PDUs which were\ngenerated by the SNMP protocol entity and for\nwhich the value of the error-status field is\n`genErr'.",undef);
-        $current = $parent->add('snmpOutBadValues',22,"COUNTER","The total number of SNMP PDUs which were\ngenerated by the SNMP protocol entity and for\nwhich the value of the error-status field is\n`badValue'.",undef);
-        $current = $parent->add('snmpOutNoSuchNames',21,"COUNTER","The total number of SNMP PDUs which were\ngenerated by the SNMP protocol entity and for\nwhich the value of the error-status is\n`noSuchName'.",undef);
-        $current = $parent->add('snmpOutTooBigs',20,"COUNTER","The total number of SNMP PDUs which were\ngenerated by the SNMP protocol entity and for\nwhich the value of the error-status field is\n`tooBig.'",undef);
-        $current = $parent->add('snmpInTraps',19,"COUNTER","The total number of SNMP Trap PDUs which have\nbeen accepted and processed by the SNMP protocol\nentity.",undef);
-        $current = $parent->add('snmpInGetResponses',18,"COUNTER","The total number of SNMP Get-Response PDUs which\nhave been accepted and processed by the SNMP\nprotocol entity.",undef);
-        $current = $parent->add('snmpInSetRequests',17,"COUNTER","The total number of SNMP Set-Request PDUs which\nhave been accepted and processed by the SNMP\nprotocol entity.",undef);
-        $current = $parent->add('snmpInGetNexts',16,"COUNTER","The total number of SNMP Get-Next PDUs which have\nbeen accepted and processed by the SNMP protocol\nentity.",undef);
-        $current = $parent->add('snmpInGetRequests',15,"COUNTER","The total number of SNMP Get-Request PDUs which\nhave been accepted and processed by the SNMP\nprotocol entity.",undef);
-        $current = $parent->add('snmpInTotalSetVars',14,"COUNTER","The total number of MIB objects which have been\naltered successfully by the SNMP protocol entity\nas the result of receiving valid SNMP Set-Request\nPDUs.",undef);
-        $current = $parent->add('snmpInTotalReqVars',13,"COUNTER","The total number of MIB objects which have been\nretrieved successfully by the SNMP protocol entity\nas the result of receiving valid SNMP Get-Request\nand Get-Next PDUs.",undef);
-        $current = $parent->add('snmpInGenErrs',12,"COUNTER","The total number of SNMP PDUs which were\ndelivered to the SNMP protocol entity and for\nwhich the value of the error-status field is\n`genErr'.",undef);
-        $current = $parent->add('snmpInReadOnlys',11,"COUNTER","The total number valid SNMP PDUs which were\ndelivered to the SNMP protocol entity and for\nwhich the value of the error-status field is\n`readOnly'.  It should be noted that it is a\nprotocol error to generate an SNMP PDU which\ncontains the value `readOnly' in the error-status\nfield, as such this object is provided as a means\nof detecting incorrect implementations of the\nSNMP.",undef);
-        $current = $parent->add('snmpInBadValues',10,"COUNTER","The total number of SNMP PDUs which were\ndelivered to the SNMP protocol entity and for\nwhich the value of the error-status field is\n`badValue'.",undef);
-        $current = $parent->add('snmpInNoSuchNames',9,"COUNTER","The total number of SNMP PDUs which were\ndelivered to the SNMP protocol entity and for\nwhich the value of the error-status field is\n`noSuchName'.",undef);
-        $current = $parent->add('snmpInTooBigs',8,"COUNTER","The total number of SNMP PDUs which were\ndelivered to the SNMP protocol entity and for\nwhich the value of the error-status field is\n`tooBig'.",undef);
-        $current = $parent->add('snmpInASNParseErrs',6,"COUNTER","The total number of ASN.1 or BER errors\nencountered by the SNMP protocol entity when\ndecoding received SNMP Messages.",undef);
-        $current = $parent->add('snmpInBadCommunityUses',5,"COUNTER","The total number of SNMP Messages delivered to\nthe SNMP protocol entity which represented an SNMP\noperation which was not allowed by the SNMP\ncommunity named in the Message.",undef);
-        $current = $parent->add('snmpInBadCommunityNames',4,"COUNTER","The total number of SNMP Messages delivered to\nthe SNMP protocol entity which used a SNMP\ncommunity name not known to said entity.",undef);
-        $current = $parent->add('snmpInBadVersions',3,"COUNTER","The total number of SNMP Messages which were\ndelivered to the SNMP protocol entity and were for\nan unsupported SNMP version.",undef);
-        $current = $parent->add('snmpOutPkts',2,"COUNTER","The total number of SNMP Messages which were\npassed from the SNMP protocol entity to the\ntransport service.",undef);
-        $current = $parent->add('snmpInPkts',1,"COUNTER","The total number of Messages delivered to the\nSNMP entity from the transport service.",undef);
-       $parent = $parent->parent;
-       $current = $parent->add('egp',8,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('egpNeighTable',5,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('egpNeighEntry',1,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('egpNeighAddr',2,"IPADDR",undef,undef);
-          $current = $parent->add('egpNeighState',1,"INTEGER",undef,{ 'idle' => 1, 'acquisition' => 2, 'down' => 3, 'up' => 4, 'cease' => 5, });
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-        $current = $parent->add('egpOutErrors',4,"COUNTER",undef,undef);
-        $current = $parent->add('egpOutMsgs',3,"COUNTER",undef,undef);
-        $current = $parent->add('egpInErrors',2,"COUNTER",undef,undef);
-        $current = $parent->add('egpInMsgs',1,"COUNTER",undef,undef);
-       $parent = $parent->parent;
-       $current = $parent->add('udp',7,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('udpOutDatagrams',4,"COUNTER",undef,undef);
-        $current = $parent->add('udpInErrors',3,"COUNTER",undef,undef);
-        $current = $parent->add('udpNoPorts',2,"COUNTER",undef,undef);
-        $current = $parent->add('udpInDatagrams',1,"COUNTER",undef,undef);
-       $parent = $parent->parent;
-       $current = $parent->add('tcp',6,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('tcpConnTable',13,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('tcpConnEntry',1,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('tcpConnRemPort',5,"INTEGER",undef,undef);
-          $current = $parent->add('tcpConnRemAddress',4,"IPADDR",undef,undef);
-          $current = $parent->add('tcpConnLocalPort',3,"INTEGER",undef,undef);
-          $current = $parent->add('tcpConnLocalAddress',2,"IPADDR",undef,undef);
-          $current = $parent->add('tcpConnState',1,"INTEGER",undef,{ 'closed' => 1, 'listen' => 2, 'synSent' => 3, 'synReceived' => 4, 'established' => 5, 'finWait1' => 6, 'finWait2' => 7, 'closeWait' => 8, 'lastAck' => 9, 'closing' => 10, 'timeWait' => 11, });
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-        $current = $parent->add('tcpRetransSegs',12,"COUNTER",undef,undef);
-        $current = $parent->add('tcpOutSegs',11,"COUNTER",undef,undef);
-        $current = $parent->add('tcpInSegs',10,"COUNTER",undef,undef);
-        $current = $parent->add('tcpCurrEstab',9,"GAUGE",undef,undef);
-        $current = $parent->add('tcpEstabResets',8,"COUNTER",undef,undef);
-        $current = $parent->add('tcpAttemptFails',7,"COUNTER",undef,undef);
-        $current = $parent->add('tcpPassiveOpens',6,"COUNTER",undef,undef);
-        $current = $parent->add('tcpActiveOpens',5,"COUNTER",undef,undef);
-        $current = $parent->add('tcpMaxConn',4,"INTEGER",undef,undef);
-        $current = $parent->add('tcpRtoMax',3,"INTEGER",undef,undef);
-        $current = $parent->add('tcpRtoMin',2,"INTEGER",undef,undef);
-        $current = $parent->add('tcpRtoAlgorithm',1,"INTEGER",undef,{ 'other' => 1, 'constant' => 2, 'rsre' => 3, 'vanj' => 4, });
-       $parent = $parent->parent;
-       $current = $parent->add('icmp',5,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('icmpOutAddrMaskReps',26,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutAddrMasks',25,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutTimestampReps',24,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutTimestamps',23,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutEchoReps',22,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutEchos',21,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutRedirects',20,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutSrcQuenchs',19,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutParmProbs',18,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutTimeExcds',17,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutDestUnreachs',16,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutErrors',15,"COUNTER",undef,undef);
-        $current = $parent->add('icmpOutMsgs',14,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInAddrMaskReps',13,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInAddrMasks',12,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInTimestampReps',11,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInTimestamps',10,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInEchoReps',9,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInEchos',8,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInRedirects',7,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInSrcQuenchs',6,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInParmProbs',5,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInTimeExcds',4,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInDestUnreachs',3,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInErrors',2,"COUNTER",undef,undef);
-        $current = $parent->add('icmpInMsgs',1,"COUNTER",undef,undef);
-       $parent = $parent->parent;
-       $current = $parent->add('ip',4,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('ipNetToMediaTable',22,undef,"The IP Address Translation table used for mapping\nfrom IP addresses to physical addresses.",undef);
-        $parent = $current;
-         $current = $parent->add('ipNetToMediaEntry',1,undef,"Each entry contains one IpAddress to `physical'\naddress equivalence.",undef);
-         $parent = $current;
-          $current = $parent->add('ipNetToMediaType',4,"INTEGER","The type of mapping.\nSetting this object to the value invalid(2) has\nthe effect of invalidating the corresponding entry\nin the ipNetToMediaTable.  That is, it effectively\ndissasociates the interface identified with said\nentry from the mapping identified with said entry.\nIt is an implementation-specific matter as to\nwhether the agent removes an invalidated entry\nfrom the table.  Accordingly, management stations\nmust be prepared to receive tabular information\nfrom agents that corresponds to entries not\ncurrently in use.  Proper interpretation of such\nentries requires examination of the relevant\nipNetToMediaType object.",{ 'other' => 1, 'invalid' => 2, 'dynamic' => 3, 'static' => 4, });
-          $current = $parent->add('ipNetToMediaNetAddress',3,"IPADDR","The IpAddress corresponding to the media-\ndependent `physical' address.",undef);
-          $current = $parent->add('ipNetToMediaPhysAddress',2,undef,"The media-dependent `physical' address.",undef);
-          $current = $parent->add('ipNetToMediaIfIndex',1,"INTEGER","The interface on which this entry's equivalence\nis effective.  The interface identified by a\nparticular value of this index is the same\ninterface as identified by the same value of\nifIndex.",undef);
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-        $current = $parent->add('ipRoutingTable',21,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('ipRouteEntry',1,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('ipRouteAge',10,"INTEGER",undef,undef);
-          $current = $parent->add('ipRouteProto',9,"INTEGER",undef,{ 'other' => 1, 'local' => 2, 'netmgmt' => 3, 'icmp' => 4, 'egp' => 5, 'ggp' => 6, 'hello' => 7, 'rip' => 8, 'is-is' => 9, 'es-is' => 10, 'ciscoIgrp' => 11, 'bbnSpfIgp' => 12, 'oigp' => 13, });
-          $current = $parent->add('ipRouteType',8,"INTEGER",undef,{ 'other' => 1, 'invalid' => 2, 'direct' => 3, 'remote' => 4, });
-          $current = $parent->add('ipRouteNextHop',7,"IPADDR",undef,undef);
-          $current = $parent->add('ipRouteMetric4',6,"INTEGER",undef,undef);
-          $current = $parent->add('ipRouteMetric3',5,"INTEGER",undef,undef);
-          $current = $parent->add('ipRouteMetric2',4,"INTEGER",undef,undef);
-          $current = $parent->add('ipRouteMetric1',3,"INTEGER",undef,undef);
-          $current = $parent->add('ipRouteIfIndex',2,"INTEGER",undef,undef);
-          $current = $parent->add('ipRouteDest',1,"IPADDR",undef,undef);
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-        $current = $parent->add('ipAddrTable',20,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('ipAddrEntry',1,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('ipAdEntBcastAddr',4,"INTEGER",undef,undef);
-          $current = $parent->add('ipAdEntNetMask',3,"IPADDR",undef,undef);
-          $current = $parent->add('ipAdEntIfIndex',2,"INTEGER",undef,undef);
-          $current = $parent->add('ipAdEntAddr',1,"IPADDR",undef,undef);
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-        $current = $parent->add('ipFragCreates',19,"COUNTER",undef,undef);
-        $current = $parent->add('ipFragFails',18,"COUNTER",undef,undef);
-        $current = $parent->add('ipFragOKs',17,"COUNTER",undef,undef);
-        $current = $parent->add('ipReasmFails',16,"COUNTER",undef,undef);
-        $current = $parent->add('ipReasmOKs',15,"COUNTER",undef,undef);
-        $current = $parent->add('ipReasmReqds',14,"COUNTER",undef,undef);
-        $current = $parent->add('ipReasmTimeout',13,"INTEGER",undef,undef);
-        $current = $parent->add('ipOutNoRoutes',12,"COUNTER",undef,undef);
-        $current = $parent->add('ipOutDiscards',11,"COUNTER",undef,undef);
-        $current = $parent->add('ipOutRequests',10,"COUNTER",undef,undef);
-        $current = $parent->add('ipInDelivers',9,"COUNTER",undef,undef);
-        $current = $parent->add('ipInDiscards',8,"COUNTER",undef,undef);
-        $current = $parent->add('ipInUnknownProtos',7,"COUNTER",undef,undef);
-        $current = $parent->add('ipForwDatagrams',6,"COUNTER",undef,undef);
-        $current = $parent->add('ipInAddrErrors',5,"COUNTER",undef,undef);
-        $current = $parent->add('ipInHdrErrors',4,"COUNTER",undef,undef);
-        $current = $parent->add('ipInReceives',3,"COUNTER",undef,undef);
-        $current = $parent->add('ipDefaultTTL',2,"INTEGER",undef,undef);
-        $current = $parent->add('ipForwarding',1,"INTEGER",undef,{ 'gateway' => 1, 'host' => 2, });
-       $parent = $parent->parent;
-       $current = $parent->add('at',3,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('atTable',1,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('atEntry',1,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('atNetAddress',3,"IPADDR",undef,undef);
-          $current = $parent->add('atPhysAddress',2,"STRING",undef,undef);
-          $current = $parent->add('atIfIndex',1,"INTEGER",undef,undef);
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-       $parent = $parent->parent;
-       $current = $parent->add('interfaces',2,undef,undef,undef);
-       $parent = $current;
-        $current = $parent->add('ifTable',2,undef,undef,undef);
-        $parent = $current;
-         $current = $parent->add('ifEntry',1,undef,undef,undef);
-         $parent = $current;
-          $current = $parent->add('ifOutQLen',21,"GAUGE",undef,undef);
-          $current = $parent->add('ifOutErrors',20,"COUNTER",undef,undef);
-          $current = $parent->add('ifOutDiscards',19,"COUNTER",undef,undef);
-          $current = $parent->add('ifOutNUcastPkts',18,"COUNTER",undef,undef);
-          $current = $parent->add('ifOutUcastPkts',17,"COUNTER",undef,undef);
-          $current = $parent->add('ifOutOctets',16,"COUNTER",undef,undef);
-          $current = $parent->add('ifInUnknownProtos',15,"COUNTER",undef,undef);
-          $current = $parent->add('ifInErrors',14,"COUNTER",undef,undef);
-          $current = $parent->add('ifInDiscards',13,"COUNTER",undef,undef);
-          $current = $parent->add('ifInNUcastPkts',12,"COUNTER",undef,undef);
-          $current = $parent->add('ifInUcastPkts',11,"COUNTER",undef,undef);
-          $current = $parent->add('ifInOctets',10,"COUNTER",undef,undef);
-          $current = $parent->add('ifLastChange',9,"TIMETICKS",undef,undef);
-          $current = $parent->add('ifOperStatus',8,"INTEGER",undef,{ 'up' => 1, 'down' => 2, 'testing' => 3, });
-          $current = $parent->add('ifAdminStatus',7,"INTEGER",undef,{ 'up' => 1, 'down' => 2, 'testing' => 3, });
-          $current = $parent->add('ifPhysAddress',6,"STRING",undef,undef);
-          $current = $parent->add('ifSpeed',5,"GAUGE",undef,undef);
-          $current = $parent->add('ifMtu',4,"INTEGER",undef,undef);
-          $current = $parent->add('ifType',3,"INTEGER",undef,{ 'other' => 1, 'regular1822' => 2, 'hdh1822' => 3, 'ddn-x25' => 4, 'rfc877-x25' => 5, 'ethernet-csmacd' => 6, 'iso88023-csmacd' => 7, 'iso88024-tokenBus' => 8, 'iso88025-tokenRing' => 9, 'iso88026-man' => 10, 'starLan' => 11, 'proteon-10MBit' => 12, 'proteon-80MBit' => 13, 'hyperchannel' => 14, 'fddi' => 15, 'lapb' => 16, 'sdlc' => 17, 't1-carrier' => 18, 'cept' => 19, 'basicIsdn' => 20, 'primaryIsdn' => 21, 'propPointToPointSerial' => 22, });
-          $current = $parent->add('ifDescr',2,"STRING",undef,undef);
-          $current = $parent->add('ifIndex',1,"INTEGER",undef,undef);
-         $parent = $parent->parent;
-        $parent = $parent->parent;
-        $current = $parent->add('ifNumber',1,"INTEGER",undef,undef);
-       $parent = $parent->parent;
-      $parent = $parent->parent;
-     $parent = $parent->parent;
-    $parent = $parent->parent;
-   $parent = $parent->parent;
-  $parent = $parent->parent;
- $parent = $parent->parent;
-}
-1;
diff --git a/README b/README
index 9bb5c43..0b6b0cd 100644
--- a/README
+++ b/README
@@ -24,10 +24,6 @@ Protocol
 
 FUTURE WORK
 
-Work in progress includes
-
- Net::SNMP        RFC 1157        Simple Network Management Protocol
-
 AVAILABILITY
 
 The latest version of libnet is available from the Comprehensive Perl