[cl-net-snmp-cvs] r54 - in trunk: asn.1 mibs

ctian at common-lisp.net ctian at common-lisp.net
Tue Sep 25 09:08:26 UTC 2007


Author: ctian
Date: Tue Sep 25 05:08:03 2007
New Revision: 54

Added:
   trunk/mibs/IPV6-ICMP-MIB.txt
   trunk/mibs/IPV6-MIB.txt
   trunk/mibs/IPV6-TCP-MIB.txt
   trunk/mibs/IPV6-UDP-MIB.txt
   trunk/mibs/LINUX-HA-MIB.txt
   trunk/mibs/LM-SENSORS-MIB.txt
   trunk/mibs/NET-SNMP-AGENT-MIB.txt
   trunk/mibs/NET-SNMP-EXAMPLES-MIB.txt
   trunk/mibs/NET-SNMP-EXTEND-MIB.txt
   trunk/mibs/NET-SNMP-MIB.txt
   trunk/mibs/NET-SNMP-TC.txt
   trunk/mibs/NOTIFICATION-LOG-MIB.txt
   trunk/mibs/RMON-MIB.txt
   trunk/mibs/SMUX-MIB.txt
   trunk/mibs/SNMP-COMMUNITY-MIB.txt
   trunk/mibs/SNMP-MPD-MIB.txt
   trunk/mibs/SNMP-NOTIFICATION-MIB.txt
   trunk/mibs/SNMP-PROXY-MIB.txt
   trunk/mibs/SNMP-USER-BASED-SM-MIB.txt
   trunk/mibs/SNMP-USM-AES-MIB.txt
   trunk/mibs/SNMP-USM-DH-OBJECTS-MIB.txt
   trunk/mibs/SNMP-VIEW-BASED-ACM-MIB.txt
   trunk/mibs/SNMPv2-TM.txt
   trunk/mibs/TCP-MIB.txt
   trunk/mibs/TRANSPORT-ADDRESS-MIB.txt
   trunk/mibs/UCD-DEMO-MIB.txt
   trunk/mibs/UCD-DISKIO-MIB.txt
   trunk/mibs/UCD-DLMOD-MIB.txt
   trunk/mibs/UCD-IPFWACC-MIB.txt
   trunk/mibs/UCD-SNMP-MIB.txt
   trunk/mibs/UDP-MIB.txt
Modified:
   trunk/asn.1/asn.1-domain.lisp
   trunk/asn.1/asn.1.tab
   trunk/asn.1/asn.1.zb
   trunk/asn.1/package.lisp
   trunk/asn.1/parse.lisp
Log:
Finish MIB Build

Modified: trunk/asn.1/asn.1-domain.lisp
==============================================================================
--- trunk/asn.1/asn.1-domain.lisp	(original)
+++ trunk/asn.1/asn.1-domain.lisp	Tue Sep 25 05:08:03 2007
@@ -138,55 +138,58 @@
   IDENTIFIER
   BODY)
 
-(DEFUN ASSIGNMENT*1166 (ASSIGNMENT ASSIGNMENT*)
+(DEFUN ASSIGNMENT*172 (ASSIGNMENT ASSIGNMENT*)
   (MAKE-KB-SEQUENCE :FIRST ASSIGNMENT :REST ASSIGNMENT*))
 
-(DEFUN SYMBOL*\,1$1167 (SYMBOL |Rest-SYMBOL*,1$|)
+(DEFUN SYMBOL*\,1$173 (SYMBOL |Rest-SYMBOL*,1$|)
   (MAKE-KB-SEQUENCE :FIRST SYMBOL :REST |Rest-SYMBOL*,1$|))
 
-(DEFUN |Rest-SYMBOL*,1$1168| (DUMMY SYMBOL |Rest-SYMBOL*,1$|)
+(DEFUN |Rest-SYMBOL*,1$174| (DUMMY SYMBOL |Rest-SYMBOL*,1$|)
   (DECLARE (IGNORE DUMMY))
   (MAKE-KB-SEQUENCE :FIRST SYMBOL :REST |Rest-SYMBOL*,1$|))
 
-(DEFUN SYMBOLS-FROM-MODULE*1169
+(DEFUN SYMBOLS-FROM-MODULE*175
        (SYMBOLS-FROM-MODULE SYMBOLS-FROM-MODULE*)
   (MAKE-KB-SEQUENCE :FIRST
                     SYMBOLS-FROM-MODULE
                     :REST
                     SYMBOLS-FROM-MODULE*))
 
-(DEFUN SYMBOL+\,1$1170 (SYMBOL) (MAKE-KB-SEQUENCE :FIRST SYMBOL))
+(DEFUN SYMBOL+\,1$176 (SYMBOL) (MAKE-KB-SEQUENCE :FIRST SYMBOL))
 
-(DEFUN SYMBOL+\,1$1171 (SYMBOL DUMMY SYMBOL+\,1$)
+(DEFUN SYMBOL+\,1$177 (SYMBOL DUMMY SYMBOL+\,1$)
   (DECLARE (IGNORE DUMMY))
   (MAKE-KB-SEQUENCE :FIRST SYMBOL :REST SYMBOL+\,1$))
 
-(DEFUN GARBAGE+1172 (GARBAGE) (MAKE-KB-SEQUENCE :FIRST GARBAGE))
+(DEFUN GARBAGE+178 (GARBAGE) (MAKE-KB-SEQUENCE :FIRST GARBAGE))
 
-(DEFUN GARBAGE+1173 (GARBAGE GARBAGE+)
+(DEFUN GARBAGE+179 (GARBAGE GARBAGE+)
   (MAKE-KB-SEQUENCE :FIRST GARBAGE :REST GARBAGE+))
 
-(DEFUN MODULE-REVISION*1174 (MODULE-REVISION MODULE-REVISION*)
+(DEFUN MODULE-REVISION*180 (MODULE-REVISION MODULE-REVISION*)
   (MAKE-KB-SEQUENCE :FIRST MODULE-REVISION :REST MODULE-REVISION*))
 
-(DEFUN IDENTIFIER+\,1$1175 (IDENTIFIER)
+(DEFUN IDENTIFIER+\,1$181 (IDENTIFIER)
   (MAKE-KB-SEQUENCE :FIRST IDENTIFIER))
 
-(DEFUN IDENTIFIER+\,1$1176 (IDENTIFIER DUMMY IDENTIFIER+\,1$)
+(DEFUN IDENTIFIER+\,1$182 (IDENTIFIER DUMMY IDENTIFIER+\,1$)
   (DECLARE (IGNORE DUMMY))
   (MAKE-KB-SEQUENCE :FIRST IDENTIFIER :REST IDENTIFIER+\,1$))
 
-(DEFUN MODULE-COMPLIANCE-BODY*1177
-       (MODULE-COMPLIANCE-BODY MODULE-COMPLIANCE-BODY*)
+(DEFUN MODULE-COMPLIANCE-BODY+183 (MODULE-COMPLIANCE-BODY)
+  (MAKE-KB-SEQUENCE :FIRST MODULE-COMPLIANCE-BODY))
+
+(DEFUN MODULE-COMPLIANCE-BODY+184
+       (MODULE-COMPLIANCE-BODY MODULE-COMPLIANCE-BODY+)
   (MAKE-KB-SEQUENCE :FIRST
                     MODULE-COMPLIANCE-BODY
                     :REST
-                    MODULE-COMPLIANCE-BODY*))
+                    MODULE-COMPLIANCE-BODY+))
 
-(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$1178 (OBJECT-TYPE-INDEX-VALUE)
+(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$185 (OBJECT-TYPE-INDEX-VALUE)
   (MAKE-KB-SEQUENCE :FIRST OBJECT-TYPE-INDEX-VALUE))
 
-(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$1179
+(DEFUN OBJECT-TYPE-INDEX-VALUE+\,1$186
        (OBJECT-TYPE-INDEX-VALUE DUMMY OBJECT-TYPE-INDEX-VALUE+\,1$)
   (DECLARE (IGNORE DUMMY))
   (MAKE-KB-SEQUENCE :FIRST
@@ -194,51 +197,64 @@
                     :REST
                     OBJECT-TYPE-INDEX-VALUE+\,1$))
 
-(DEFUN IDENTIFIER*\,1$1180 (IDENTIFIER |Rest-IDENTIFIER*,1$|)
+(DEFUN IDENTIFIER*\,1$187 (IDENTIFIER |Rest-IDENTIFIER*,1$|)
   (MAKE-KB-SEQUENCE :FIRST IDENTIFIER :REST |Rest-IDENTIFIER*,1$|))
 
-(DEFUN |Rest-IDENTIFIER*,1$1181|
+(DEFUN |Rest-IDENTIFIER*,1$188|
        (DUMMY IDENTIFIER |Rest-IDENTIFIER*,1$|)
   (DECLARE (IGNORE DUMMY))
   (MAKE-KB-SEQUENCE :FIRST IDENTIFIER :REST |Rest-IDENTIFIER*,1$|))
 
-(DEFUN OBJ-ID-COMPONENT+1182 (OBJ-ID-COMPONENT)
+(DEFUN MODULE-COMPLIANCE-ITEM*189
+       (MODULE-COMPLIANCE-ITEM MODULE-COMPLIANCE-ITEM*)
+  (MAKE-KB-SEQUENCE :FIRST
+                    MODULE-COMPLIANCE-ITEM
+                    :REST
+                    MODULE-COMPLIANCE-ITEM*))
+
+(DEFUN OBJ-ID-COMPONENT+190 (OBJ-ID-COMPONENT)
   (MAKE-KB-SEQUENCE :FIRST OBJ-ID-COMPONENT))
 
-(DEFUN OBJ-ID-COMPONENT+1183 (OBJ-ID-COMPONENT OBJ-ID-COMPONENT+)
+(DEFUN OBJ-ID-COMPONENT+191 (OBJ-ID-COMPONENT OBJ-ID-COMPONENT+)
   (MAKE-KB-SEQUENCE :FIRST OBJ-ID-COMPONENT :REST OBJ-ID-COMPONENT+))
 
-(DEFUN SPLITED-NUMBERS+\|1$1184 (SPLITED-NUMBERS)
+(DEFUN NUMBERS+\|1$192 (NUMBERS) (MAKE-KB-SEQUENCE :FIRST NUMBERS))
+
+(DEFUN NUMBERS+\|1$193 (NUMBERS DUMMY NUMBERS+\|1$)
+  (DECLARE (IGNORE DUMMY))
+  (MAKE-KB-SEQUENCE :FIRST NUMBERS :REST NUMBERS+\|1$))
+
+(DEFUN SPLITED-NUMBERS+\|1$194 (SPLITED-NUMBERS)
   (MAKE-KB-SEQUENCE :FIRST SPLITED-NUMBERS))
 
-(DEFUN SPLITED-NUMBERS+\|1$1185
+(DEFUN SPLITED-NUMBERS+\|1$195
        (SPLITED-NUMBERS DUMMY SPLITED-NUMBERS+\|1$)
   (DECLARE (IGNORE DUMMY))
   (MAKE-KB-SEQUENCE :FIRST SPLITED-NUMBERS :REST SPLITED-NUMBERS+\|1$))
 
-(DEFUN NAMED-NUMBER+\,1$1186 (NAMED-NUMBER)
+(DEFUN NAMED-NUMBER+\,1$196 (NAMED-NUMBER)
   (MAKE-KB-SEQUENCE :FIRST NAMED-NUMBER))
 
-(DEFUN NAMED-NUMBER+\,1$1187 (NAMED-NUMBER DUMMY NAMED-NUMBER+\,1$)
+(DEFUN NAMED-NUMBER+\,1$197 (NAMED-NUMBER DUMMY NAMED-NUMBER+\,1$)
   (DECLARE (IGNORE DUMMY))
   (MAKE-KB-SEQUENCE :FIRST NAMED-NUMBER :REST NAMED-NUMBER+\,1$))
 
-(DEFUN GARBAGE*1188 (GARBAGE GARBAGE*)
+(DEFUN GARBAGE*198 (GARBAGE GARBAGE*)
   (MAKE-KB-SEQUENCE :FIRST GARBAGE :REST GARBAGE*))
 
-(DEFUN NAME-AND-NUMBER-FORM1189 (IDENTIFIER DUMMY NUMBER-FORM DUMMY1)
+(DEFUN NAME-AND-NUMBER-FORM199 (IDENTIFIER DUMMY NUMBER-FORM DUMMY1)
   (DECLARE (IGNORE DUMMY1 DUMMY))
   (MAKE-OBJ-ID-COMPONENT :NAME IDENTIFIER :VALUE NUMBER-FORM))
 
-(DEFUN OBJECT-IDENTIFIER-VALUE1190 (DUMMY OBJ-ID-COMPONENT+ DUMMY1)
+(DEFUN OBJECT-IDENTIFIER-VALUE200 (DUMMY OBJ-ID-COMPONENT+ DUMMY1)
   (DECLARE (IGNORE DUMMY1 DUMMY))
   (MAKE-OBJECT-IDENTIFIER-VALUE :VALUE OBJ-ID-COMPONENT+))
 
-(DEFUN VALUE-ASSIGNMENT1191 (IDENTIFIER TYPE DUMMY VALUE)
+(DEFUN VALUE-ASSIGNMENT201 (IDENTIFIER TYPE DUMMY VALUE)
   (DECLARE (IGNORE DUMMY))
   (MAKE-VALUE-ASSIGNMENT :NAME IDENTIFIER :TYPE TYPE :VALUE VALUE))
 
-(DEFUN VALUE-ASSIGNMENT1192
+(DEFUN VALUE-ASSIGNMENT202
        (IDENTIFIER DUMMY DUMMY1 STATUS DUMMY2 DESCRIPTION
         OBJECT-IDENTITY-REFERENCE DUMMY3 OBJECT-IDENTIFIER-VALUE)
   (DECLARE (IGNORE DUMMY3 DUMMY2 DUMMY1 DUMMY))
@@ -249,7 +265,7 @@
                          :VALUE
                          OBJECT-IDENTIFIER-VALUE))
 
-(DEFUN VALUE-ASSIGNMENT1193
+(DEFUN VALUE-ASSIGNMENT203
        (IDENTIFIER DUMMY DUMMY1 LAST-UPDATED DUMMY2 ORGANIZATION DUMMY3
         CONTACT-INFO DUMMY4 DESCRIPTION MODULE-REVISION* DUMMY5
         OBJECT-IDENTIFIER-VALUE)
@@ -261,12 +277,12 @@
                          :VALUE
                          OBJECT-IDENTIFIER-VALUE))
 
-(DEFUN VALUE-ASSIGNMENT1194
-       (IDENTIFIER DUMMY DUMMY1 TYPE OBJECT-TYPE-UNITS DUMMY2
-        MAX-ACCESS DUMMY3 STATUS DUMMY4 DESCRIPTION OBJECT-TYPE-INDEX
-        OBJECT-TYPE-AUGMENTS OBJECT-TYPE-REFERENCE OBJECT-TYPE-DEFVAL
-        DUMMY5 OBJECT-IDENTIFIER-VALUE)
-  (DECLARE (IGNORE DUMMY5 DUMMY4 DUMMY3 DUMMY2 DUMMY1 DUMMY))
+(DEFUN VALUE-ASSIGNMENT204
+       (IDENTIFIER DUMMY DUMMY1 TYPE OBJECT-TYPE-UNITS
+        OBJECT-TYPE-ACCESS DUMMY2 STATUS DUMMY3 DESCRIPTION
+        OBJECT-TYPE-INDEX OBJECT-TYPE-AUGMENTS OBJECT-TYPE-REFERENCE
+        OBJECT-TYPE-DEFVAL DUMMY4 OBJECT-IDENTIFIER-VALUE)
+  (DECLARE (IGNORE DUMMY4 DUMMY3 DUMMY2 DUMMY1 DUMMY))
   (MAKE-VALUE-ASSIGNMENT :NAME
                          IDENTIFIER
                          :TYPE
@@ -274,7 +290,7 @@
                          :VALUE
                          OBJECT-IDENTIFIER-VALUE))
 
-(DEFUN VALUE-ASSIGNMENT1195
+(DEFUN VALUE-ASSIGNMENT205
        (IDENTIFIER DUMMY NOTIFICATION-TYPE-OBJECTS DUMMY1 STATUS DUMMY2
         DESCRIPTION DUMMY3 OBJECT-IDENTIFIER-VALUE)
   (DECLARE (IGNORE DUMMY3 DUMMY2 DUMMY1 DUMMY))
@@ -285,7 +301,7 @@
                          :VALUE
                          OBJECT-IDENTIFIER-VALUE))
 
-(DEFUN VALUE-ASSIGNMENT1196
+(DEFUN VALUE-ASSIGNMENT206
        (IDENTIFIER DUMMY DUMMY1 DUMMY2 IDENTIFIER+\,1$ DUMMY3 DUMMY4
         STATUS DUMMY5 DESCRIPTION DUMMY6 OBJECT-IDENTIFIER-VALUE)
   (DECLARE (IGNORE DUMMY6 DUMMY5 DUMMY4 DUMMY3 DUMMY2 DUMMY1 DUMMY))
@@ -296,19 +312,10 @@
                          :VALUE
                          OBJECT-IDENTIFIER-VALUE))
 
-(DEFUN VALUE-ASSIGNMENT1197
-       (IDENTIFIER DUMMY DUMMY1 STATUS DUMMY2 DESCRIPTION DUMMY3 DUMMY4
-        DUMMY5 IDENTIFIER+\,1$ DUMMY6 MODULE-COMPLIANCE-BODY*
-        MODULE-COMPLIANCE-OTHER DUMMY7 OBJECT-IDENTIFIER-VALUE)
-  (DECLARE (IGNORE
-            DUMMY7
-            DUMMY6
-            DUMMY5
-            DUMMY4
-            DUMMY3
-            DUMMY2
-            DUMMY1
-            DUMMY))
+(DEFUN VALUE-ASSIGNMENT207
+       (IDENTIFIER DUMMY DUMMY1 STATUS DUMMY2 DESCRIPTION
+        MODULE-COMPLIANCE-BODY+ DUMMY3 OBJECT-IDENTIFIER-VALUE)
+  (DECLARE (IGNORE DUMMY3 DUMMY2 DUMMY1 DUMMY))
   (MAKE-VALUE-ASSIGNMENT :NAME
                          IDENTIFIER
                          :TYPE
@@ -316,7 +323,7 @@
                          :VALUE
                          OBJECT-IDENTIFIER-VALUE))
 
-(DEFUN VALUE-ASSIGNMENT1198
+(DEFUN VALUE-ASSIGNMENT208
        (IDENTIFIER DUMMY DUMMY1 DUMMY2 IDENTIFIER+\,1$ DUMMY3 DUMMY4
         STATUS DUMMY5 DESCRIPTION DUMMY6 OBJECT-IDENTIFIER-VALUE)
   (DECLARE (IGNORE DUMMY6 DUMMY5 DUMMY4 DUMMY3 DUMMY2 DUMMY1 DUMMY))
@@ -327,13 +334,13 @@
                          :VALUE
                          OBJECT-IDENTIFIER-VALUE))
 
-(DEFUN ASSIGNMENT1199 (TYPE-ASSIGNMENT)
+(DEFUN ASSIGNMENT209 (TYPE-ASSIGNMENT)
   (MAKE-ASSIGNMENT :TYPE :TYPE :VALUE TYPE-ASSIGNMENT))
 
-(DEFUN ASSIGNMENT1200 (VALUE-ASSIGNMENT)
+(DEFUN ASSIGNMENT210 (VALUE-ASSIGNMENT)
   (MAKE-ASSIGNMENT :TYPE :VALUE :VALUE VALUE-ASSIGNMENT))
 
-(DEFUN SYMBOLS-FROM-MODULE1201
+(DEFUN SYMBOLS-FROM-MODULE211
        (SYMBOL+\,1$ DUMMY GLOBAL-MODULE-REFERENCE)
   (DECLARE (IGNORE DUMMY))
   (MAKE-SYMBOLS-FROM-MODULE :SYMBOLS
@@ -341,19 +348,19 @@
                             :GLOBAL-MODULE-REFERENCE
                             GLOBAL-MODULE-REFERENCE))
 
-(DEFUN IMPORTS1202 (DUMMY SYMBOLS-FROM-MODULE* DUMMY1)
+(DEFUN IMPORTS212 (DUMMY SYMBOLS-FROM-MODULE* DUMMY1)
   (DECLARE (IGNORE DUMMY1 DUMMY))
   (MAKE-IMPORTS :VALID T :LIST SYMBOLS-FROM-MODULE*))
 
-(DEFUN EXPORTS1203 (DUMMY SYMBOL*\,1$ DUMMY1)
+(DEFUN EXPORTS213 (DUMMY SYMBOL*\,1$ DUMMY1)
   (DECLARE (IGNORE DUMMY1 DUMMY))
   (MAKE-EXPORTS :LIST SYMBOL*\,1$))
 
-(DEFUN EXPORTS1204 (DUMMY DUMMY1 DUMMY2)
+(DEFUN EXPORTS214 (DUMMY DUMMY1 DUMMY2)
   (DECLARE (IGNORE DUMMY2 DUMMY1 DUMMY))
   (MAKE-EXPORTS :ALL-EXPORTS T))
 
-(DEFUN MODULE-BODY1205 (EXPORTS IMPORTS ASSIGNMENT*)
+(DEFUN MODULE-BODY215 (EXPORTS IMPORTS ASSIGNMENT*)
   (MAKE-MODULE-BODY :ASSIGNMENT-LIST
                     ASSIGNMENT*
                     :EXPORTS
@@ -361,7 +368,7 @@
                     :IMPORTS
                     IMPORTS))
 
-(DEFUN MODULE-DEFINITION1206
+(DEFUN MODULE-DEFINITION216
        (MODULE-IDENTIFIER DUMMY DUMMY1 DUMMY2 MODULE-BODY DUMMY3)
   (DECLARE (IGNORE DUMMY3 DUMMY2 DUMMY1 DUMMY))
   (MAKE-MODULE-DEFINITION :IDENTIFIER
@@ -526,7 +533,7 @@
                     (DO ()
                         (NIL)
                       (LET ((ZEBU::RANGE
-                             #*0000000000000000000000000000000000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000))
+                             #*0000000000000000000000000000000000000000000000001111111111000000011111100000000000000000000000000111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000))
                         (IF (>= ZEBU::INDEX LENGTH)
                             (RETURN-FROM ZEBU::COMPARE NIL))
                         (IF (= 1
@@ -539,16 +546,20 @@
                       ((< ZEBU::START ZEBU::OINDEX) NIL)
                     (LET ((ZEBU::INDEX ZEBU::START))
                       (BLOCK ZEBU::COMPARE
-                        (LET ((ZEBU::NEW-INDEX (+ ZEBU::INDEX 2)))
-                          (IF (< LENGTH ZEBU::NEW-INDEX)
+                        (IF (AND (< ZEBU::INDEX LENGTH)
+                                 (EQL (CHAR STRING ZEBU::INDEX) #\'))
+                            (INCF ZEBU::INDEX)
+                          (RETURN-FROM ZEBU::COMPARE NIL))
+                        (LET ((ZEBU::RANGE
+                               #*0000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000))
+                          (IF (>= ZEBU::INDEX LENGTH)
                               (RETURN-FROM ZEBU::COMPARE NIL))
-                          (IF (STRING= STRING
-                                       "'H"
-                                       :START1
-                                       ZEBU::INDEX
-                                       :END1
-                                       ZEBU::NEW-INDEX)
-                              (INCF ZEBU::INDEX 2)
+                          (IF (= 1
+                                 (SBIT
+                                  ZEBU::RANGE
+                                  (CHAR-CODE
+                                   (CHAR STRING ZEBU::INDEX))))
+                              (INCF ZEBU::INDEX)
                             (RETURN-FROM ZEBU::COMPARE NIL)))
                         (SETF (CADR (SVREF ZEBU::*REGEX-GROUPS* 0))
                               ZEBU::INDEX)

Modified: trunk/asn.1/asn.1.tab
==============================================================================
--- trunk/asn.1/asn.1.tab	(original)
+++ trunk/asn.1/asn.1.tab	Tue Sep 25 05:08:03 2007
@@ -1,347 +1,357 @@
 
-(:FILE "/home/binghe/cl-net-snmp/asn.1/asn.1.zb" :NAME "ASN.1" :DOMAIN-FILE "asn.1-domain.lisp" :PACKAGE "ASN.1" :GRAMMAR "zebu-mg" :IDENTIFIER-START-CHARS "abcdefghijklmnopqrstuvwxyz" :IDENTIFIER-CONTINUE-CHARS "-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" :CASE-SENSITIVE T :LEX-CATS ((TYPE-REFERENCE "[A-Z][a-zA-Z0-9-]*") (SIGNED-NUMBER "-?[0-9]+") (ANYTHING "[^ ]+") (HSTRING "'[0-9]*'H")) :DOMAIN (KB-DOMAIN :SUBTYPE (OBJ-ID-COMPONENT :SLOTS (NAME VALUE)) :SUBTYPE (OBJECT-IDENTIFIER-VALUE :SLOTS (VALUE)) :SUBTYPE (VALUE-ASSIGNMENT :SLOTS (NAME TYPE VALUE)) :SUBTYPE (ASSIGNMENT :SLOTS (TYPE VALUE)) :SUBTYPE (SYMBOLS-FROM-MODULE :SLOTS (SYMBOLS GLOBAL-MODULE-REFERENCE)) :SUBTYPE (IMPORTS :SLOTS ((LIST KB-SEQUENCE) VALID)) :SUBTYPE (EXPORTS :SLOTS ((LIST KB-SEQUENCE) ALL-EXPORTS)) :SUBTYPE (MODULE-BODY :SLOTS (EXPORTS IMPORTS (ASSIGNMENT-LIST KB-SEQUENCE))) :SUBTYPE (MODULE-DEFINITION :SLOTS (IDENTIFIER BODY))) :DOMAIN-FILE "/home/binghe/cl-net-snmp/asn.1/asn.1-domain.lisp")
-#166(ZEBU::THE-EMPTY-STRING ZEBU::AUGMENTED-START ZEBU::THE-END-G-SYMBOL MODULE-DEFINITION MODULE-IDENTIFIER "DEFINITIONS" "::=" "BEGIN" MODULE-BODY "END" MODULE-REFERENCE TYPE-REFERENCE EXPORTS IMPORTS ASSIGNMENT* "EXPORTS" SYMBOL*\,1$ ";" "ALL" SYMBOL REFERENCE "IMPORTS" SYMBOLS-FROM-MODULE* SYMBOLS-FROM-MODULE SYMBOL+\,1$ "FROM" GLOBAL-MODULE-REFERENCE IDENTIFIER ASSIGNMENT TYPE-ASSIGNMENT VALUE-ASSIGNMENT TYPE "MACRO" GARBAGE+ GARBAGE ANYTHING VALUE "OBJECT-IDENTITY" "STATUS" STATUS "DESCRIPTION" DESCRIPTION OBJECT-IDENTITY-REFERENCE OBJECT-IDENTIFIER-VALUE "MODULE-IDENTITY" "LAST-UPDATED" LAST-UPDATED "ORGANIZATION" ORGANIZATION "CONTACT-INFO" CONTACT-INFO MODULE-REVISION* "OBJECT-TYPE" "SYNTAX" OBJECT-TYPE-UNITS "MAX-ACCESS" MAX-ACCESS OBJECT-TYPE-INDEX OBJECT-TYPE-AUGMENTS OBJECT-TYPE-REFERENCE OBJECT-TYPE-DEFVAL "NOTIFICATION-TYPE" NOTIFICATION-TYPE-OBJECTS "NOTIFICATION-GROUP" "NOTIFICATIONS" "{" IDENTIFIER+\,1$ "}" "MODULE-COMPLIANCE" "MODULE" "MANDATORY-GROUPS" MODULE-COMPLIANCE-BODY* MODULE-COMPLIANCE-OTHER "OBJECT-GROUP" "OBJECTS" MIN-ACCESS STRING MODULE-REVISION "REVISION" "REFERENCE" "INDEX" OBJECT-TYPE-INDEX-VALUE+\,1$ OBJECT-TYPE-INDEX-VALUE "IMPLIED" "AUGMENTS" "DEFVAL" OBJECT-TYPE-DEFVAL-VALUE HSTRING OBJ-ID-COMPONENT IDENTIFIER*\,1$ "UNITS" MODULE-COMPLIANCE-BODY MODULE-COMPLIANCE-GROUP MODULE-COMPLIANCE-OBJECT "GROUP" "OBJECT" MODULE-COMPLIANCE-OBJECT-SYNTAX MODULE-COMPLIANCE-OBJECT-WRITE-SYNTAX MODULE-COMPLIANCE-OBJECT-ACCESS "WRITE-SYNTAX" "MIN-ACCESS" BUILTIN-TYPE NAMED-TYPE OBJECT-IDENTIFIER-TYPE CHOICE-TYPE STRING-TYPE INTEGER-TYPE SEQUENCE-OF-TYPE SEQUENCE-TYPE TEXTUAL-CONVENTION-TYPE TAGGED-TYPE "TEXTUAL-CONVENTION" TEXTUAL-CONVENTION-DISPLAY-HINT TEXTUAL-CONVENTION-REFERENCE "DISPLAY-HINT" "IDENTIFIER" BUILTIN-VALUE OBJ-ID-COMPONENT+ NAME-AND-NUMBER-FORM NAME-FORM NUMBER-FORM "(" ")" NUMBER "CHOICE" STRING-TYPE-NAME STRING-OPTIONS "OCTET" "STRING" "DisplayString" "PhysAddress" "SnmpAdminString" "DateAndTime" "InternationalDisplayString" "SIZE" NUMBERS SIGNED-NUMBER "|" ".." INTEGER-TYPE-NAME SPLITED-NUMBERS+\|1$ NAMED-NUMBER+\,1$ "INTEGER" "Integer32" "Unsigned32" "RowStatus" "SnmpSecurityModel" "BITS" SPLITED-NUMBERS NAMED-NUMBER "SEQUENCE" GARBAGE* "OF" TAG "IMPLICIT" "EXPLICIT" "[" CLASS CLASS-NUMBER "]" "UNIVERSAL" "APPLICATION" "PRIVATE" "," |Rest-IDENTIFIER*,1$| |Rest-SYMBOL*,1$| )
+(:FILE "/home/binghe/cl-net-snmp/asn.1/asn.1.zb" :NAME "ASN.1" :DOMAIN-FILE "asn.1-domain.lisp" :PACKAGE "ASN.1" :GRAMMAR "zebu-mg" :IDENTIFIER-START-CHARS "abcdefghijklmnopqrstuvwxyz" :IDENTIFIER-CONTINUE-CHARS "-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" :CASE-SENSITIVE T :LEX-CATS ((TYPE-REFERENCE "[A-Z][a-zA-Z0-9-]*") (SIGNED-NUMBER "-?[0-9]+") (ANYTHING "[^ ]+") (HSTRING "'[0-9a-fA-F]*'[hH]")) :DOMAIN (KB-DOMAIN :SUBTYPE (OBJ-ID-COMPONENT :SLOTS (NAME VALUE)) :SUBTYPE (OBJECT-IDENTIFIER-VALUE :SLOTS (VALUE)) :SUBTYPE (VALUE-ASSIGNMENT :SLOTS (NAME TYPE VALUE)) :SUBTYPE (ASSIGNMENT :SLOTS (TYPE VALUE)) :SUBTYPE (SYMBOLS-FROM-MODULE :SLOTS (SYMBOLS GLOBAL-MODULE-REFERENCE)) :SUBTYPE (IMPORTS :SLOTS ((LIST KB-SEQUENCE) VALID)) :SUBTYPE (EXPORTS :SLOTS ((LIST KB-SEQUENCE) ALL-EXPORTS)) :SUBTYPE (MODULE-BODY :SLOTS (EXPORTS IMPORTS (ASSIGNMENT-LIST KB-SEQUENCE))) :SUBTYPE (MODULE-DEFINITION :SLOTS (IDENTIFIER BODY))) :DOMAIN-FILE "/home/binghe/cl-net-snmp/asn.1/asn.1-domain.lisp")
+#173(ZEBU::THE-EMPTY-STRING ZEBU::AUGMENTED-START ZEBU::THE-END-G-SYMBOL MODULE-DEFINITION MODULE-IDENTIFIER "DEFINITIONS" "::=" "BEGIN" MODULE-BODY "END" MODULE-REFERENCE TYPE-REFERENCE EXPORTS IMPORTS ASSIGNMENT* "EXPORTS" SYMBOL*\,1$ ";" "ALL" SYMBOL REFERENCE "IMPORTS" SYMBOLS-FROM-MODULE* SYMBOLS-FROM-MODULE SYMBOL+\,1$ "FROM" GLOBAL-MODULE-REFERENCE IDENTIFIER ASSIGNMENT TYPE-ASSIGNMENT VALUE-ASSIGNMENT TYPE "MACRO" GARBAGE+ GARBAGE ANYTHING VALUE "OBJECT-IDENTITY" "STATUS" STATUS "DESCRIPTION" DESCRIPTION OBJECT-IDENTITY-REFERENCE OBJECT-IDENTIFIER-VALUE "MODULE-IDENTITY" "LAST-UPDATED" LAST-UPDATED "ORGANIZATION" ORGANIZATION "CONTACT-INFO" CONTACT-INFO MODULE-REVISION* "OBJECT-TYPE" "SYNTAX" OBJECT-TYPE-UNITS OBJECT-TYPE-ACCESS OBJECT-TYPE-INDEX OBJECT-TYPE-AUGMENTS OBJECT-TYPE-REFERENCE OBJECT-TYPE-DEFVAL "NOTIFICATION-TYPE" NOTIFICATION-TYPE-OBJECTS "NOTIFICATION-GROUP" "NOTIFICATIONS" "{" IDENTIFIER+\,1$ "}" "MODULE-COMPLIANCE" MODULE-COMPLIANCE-BODY+ "OBJECT-GROUP" "OBJECTS" STRING MODULE-REVISION "REVISION" "REFERENCE" "INDEX" OBJECT-TYPE-INDEX-VALUE+\,1$ OBJECT-TYPE-INDEX-VALUE "IMPLIED" "AUGMENTS" "DEFVAL" OBJECT-TYPE-DEFVAL-VALUE HSTRING OBJ-ID-COMPONENT IDENTIFIER*\,1$ "UNITS" "MAX-ACCESS" "ACCESS" MODULE-COMPLIANCE-BODY MODULE-COMPLIANCE-LOCAL MODULE-COMPLIANCE-OTHER "MODULE" MODULE-COMPLIANCE-MANDATORY MODULE-COMPLIANCE-ITEM* "MANDATORY-GROUPS" MODULE-COMPLIANCE-ITEM MODULE-COMPLIANCE-GROUP MODULE-COMPLIANCE-OBJECT "GROUP" "OBJECT" MODULE-COMPLIANCE-OBJECT-SYNTAX MODULE-COMPLIANCE-OBJECT-WRITE-SYNTAX MODULE-COMPLIANCE-OBJECT-ACCESS "WRITE-SYNTAX" "MIN-ACCESS" BUILTIN-TYPE NAMED-TYPE OBJECT-IDENTIFIER-TYPE CHOICE-TYPE STRING-TYPE INTEGER-TYPE SEQUENCE-OF-TYPE SEQUENCE-TYPE TEXTUAL-CONVENTION-TYPE TAGGED-TYPE "TEXTUAL-CONVENTION" TEXTUAL-CONVENTION-DISPLAY-HINT TEXTUAL-CONVENTION-REFERENCE "DISPLAY-HINT" "IDENTIFIER" BUILTIN-VALUE OBJ-ID-COMPONENT+ NAME-AND-NUMBER-FORM NAME-FORM NUMBER-FORM "(" ")" NUMBER "CHOICE" STRING-TYPE-NAME STRING-OPTIONS "OCTET" "STRING" "DisplayString" "PhysAddress" "SnmpAdminString" "DateAndTime" "InternationalDisplayString" "Opaque" "SIZE" NUMBERS+\|1$ NUMBERS COMMON-NUMBER ".." INTEGER-TYPE-NAME SPLITED-NUMBERS+\|1$ NAMED-NUMBER+\,1$ "INTEGER" "Integer32" "Unsigned32" "RowStatus" "SnmpSecurityModel" "BITS" SPLITED-NUMBERS NAMED-NUMBER SIGNED-NUMBER "SEQUENCE" GARBAGE* "OF" TAG "IMPLICIT" "EXPLICIT" "[" CLASS CLASS-NUMBER "]" "UNIVERSAL" "APPLICATION" "PRIVATE" "," "|" |Rest-IDENTIFIER*,1$| |Rest-SYMBOL*,1$| )
 
 
-#80(5 6 7 9 11 15 17 18 21 25 27 32 35 37 38 40 44 45 47 49 52 53 55 61 63 64 65 67 68 69 70 73 74 76 78 79 80 83 84 85 87 90 94 95 99 100 111 114 115 121 122 123 124 127 128 129 130 131 132 133 134 136 137 138 142 143 144 145 146 147 150 152 154 155 156 159 160 161 162 163 )
+#82(5 6 7 9 11 15 17 18 21 25 27 32 35 37 38 40 44 45 47 49 52 53 60 62 63 64 66 67 69 70 71 73 74 75 78 79 80 82 85 86 87 91 94 98 99 103 104 115 118 119 125 126 127 128 131 132 133 134 135 136 137 138 139 143 147 148 149 150 151 152 155 156 158 160 161 162 165 166 167 168 169 170 )
 
-#163((1 . 1)(3 . 6)(4 . 1)(10 . 1)(8 . 3)(8 . 0)(12 . 3)(12 . 3)(12 . 0)(19 . 1)(13 . 3)(13 . 0)(23 . 3)(26 . 1)(20 . 1)(20 . 1)(28 . 1)(28 . 1)(29 . 3)(29 . 6)(34 . 1)(30 . 4)(30 . 9)(30 . 13)(30 . 17)(30 . 9)(30 . 12)(30 . 15)(30 . 12)(39 . 1)(56 . 1)(75 . 1)(41 . 1)(46 . 1)(48 . 1)(50 . 1)(77 . 4)(42 . 2)(42 . 0)(57 . 4)(57 . 0)(82 . 2)(82 . 1)(58 . 4)(58 . 0)(60 . 4)(60 . 0)(86 . 1)(86 . 1)(86 . 1)(86 . 3)(54 . 2)(54 . 0)(59 . 2)(59 . 0)(91 . 1)(91 . 1)(72 . 6)(72 . 0)(92 . 4)(93 . 7)(96 . 2)(96 . 0)(97 . 2)(97 . 0)(98 . 2)(98 . 0)(62 . 4)(62 . 0)(31 . 1)(31 . 1)(101 . 1)(101 . 1)(101 . 1)(101 . 1)(101 . 1)(101 . 1)(101 . 1)(101 . 1)(102 . 1)(109 . 9)(112 . 2)(112 . 0)(113 . 2)(113 . 0)(103 . 2)(36 . 1)(116 . 1)(43 . 3)(88 . 1)(88 . 1)(88 . 1)(118 . 4)(119 . 1)(120 . 1)(104 . 4)(105 . 2)(125 . 2)(125 . 1)(125 . 1)(125 . 1)(125 . 1)(125 . 1)(126 . 6)(126 . 0)(135 . 3)(135 . 3)(135 . 1)(106 . 4)(106 . 4)(106 . 1)(139 . 1)(139 . 1)(139 . 1)(139 . 1)(139 . 1)(139 . 1)(148 . 1)(148 . 3)(149 . 4)(108 . 4)(107 . 3)(110 . 2)(110 . 3)(110 . 3)(153 . 4)(158 . 1)(157 . 1)(157 . 1)(157 . 1)(157 . 0)(151 . 0)(151 . 2)(141 . 1)(141 . 3)(140 . 1)(140 . 3)(117 . 1)(117 . 2)(164 . 0)(164 . 3)(89 . 0)(89 . 2)(81 . 1)(81 . 3)(71 . 0)(71 . 2)(66 . 1)(66 . 3)(51 . 0)(51 . 2)(33 . 1)(33 . 2)(24 . 1)(24 . 3)(22 . 0)(22 . 2)(165 . 0)(165 . 3)(16 . 0)(16 . 2)(14 . 0)(14 . 2))
+#173((1 . 1)(3 . 6)(4 . 1)(10 . 1)(8 . 3)(8 . 0)(12 . 3)(12 . 3)(12 . 0)(19 . 1)(13 . 3)(13 . 0)(23 . 3)(26 . 1)(20 . 1)(20 . 1)(28 . 1)(28 . 1)(29 . 3)(29 . 6)(34 . 1)(30 . 4)(30 . 9)(30 . 13)(30 . 16)(30 . 9)(30 . 12)(30 . 9)(30 . 12)(39 . 1)(41 . 1)(46 . 1)(48 . 1)(50 . 1)(72 . 4)(42 . 2)(42 . 0)(56 . 4)(56 . 0)(77 . 2)(77 . 1)(57 . 4)(57 . 0)(59 . 4)(59 . 0)(81 . 1)(81 . 1)(81 . 1)(81 . 3)(54 . 2)(54 . 0)(58 . 2)(58 . 0)(55 . 2)(55 . 2)(88 . 1)(88 . 1)(89 . 3)(92 . 4)(92 . 0)(95 . 1)(95 . 1)(90 . 7)(96 . 4)(97 . 7)(100 . 2)(100 . 0)(101 . 2)(101 . 0)(102 . 2)(102 . 0)(61 . 4)(61 . 0)(31 . 1)(31 . 1)(105 . 1)(105 . 1)(105 . 1)(105 . 1)(105 . 1)(105 . 1)(105 . 1)(105 . 1)(106 . 1)(113 . 9)(116 . 2)(116 . 0)(117 . 2)(117 . 0)(107 . 2)(36 . 1)(120 . 1)(43 . 3)(83 . 1)(83 . 1)(83 . 1)(122 . 4)(123 . 1)(124 . 1)(108 . 4)(109 . 2)(129 . 2)(129 . 1)(129 . 1)(129 . 1)(129 . 1)(129 . 1)(129 . 1)(130 . 6)(130 . 0)(141 . 3)(141 . 1)(110 . 4)(110 . 4)(110 . 1)(144 . 1)(144 . 1)(144 . 1)(144 . 1)(144 . 1)(144 . 1)(153 . 1)(153 . 3)(154 . 4)(142 . 1)(142 . 1)(112 . 4)(111 . 3)(114 . 2)(114 . 3)(114 . 3)(159 . 4)(164 . 1)(163 . 1)(163 . 1)(163 . 1)(163 . 0)(157 . 0)(157 . 2)(146 . 1)(146 . 3)(145 . 1)(145 . 3)(140 . 1)(140 . 3)(121 . 1)(121 . 2)(93 . 0)(93 . 2)(171 . 0)(171 . 3)(84 . 0)(84 . 2)(76 . 1)(76 . 3)(68 . 1)(68 . 2)(65 . 1)(65 . 3)(51 . 0)(51 . 2)(33 . 1)(33 . 2)(24 . 1)(24 . 3)(22 . 0)(22 . 2)(172 . 0)(172 . 3)(16 . 0)(16 . 2)(14 . 0)(14 . 2))
 
-#332(
+#342(
 ((11 :S 9))
 ((2 :A 0))
 ((5 :S 3))
 ((6 :S 4))
 ((7 :S 5))
-((9 :R 5) (11 :R 8) (15 :S 316) (21 :R 8) (27 :R 8))
+((9 :R 5) (11 :R 8) (15 :S 323) (21 :R 8) (27 :R 8))
 ((9 :S 7))
 ((2 :R 1))
 ((5 :R 2))
 ((5 :R 3) (11 :R 3) (17 :R 3) (27 :R 3))
 ((9 :R 11) (11 :R 11) (21 :S 18) (27 :R 11))
-((9 :R 161) (11 :S 317) (27 :S 331))
+((9 :R 171) (11 :S 324) (27 :S 341))
 ((9 :R 4))
 ((17 :S 14))
 ((9 :R 6) (11 :R 6) (21 :R 6) (27 :R 6))
 ((17 :S 16))
 ((9 :R 7) (11 :R 7) (21 :R 7) (27 :R 7))
-((17 :R 9) (25 :R 9) (163 :R 9))
-((11 :S 25) (17 :R 155) (27 :S 26))
+((17 :R 9) (25 :R 9) (169 :R 9))
+((11 :S 25) (17 :R 165) (27 :S 26))
 ((17 :S 20))
 ((9 :R 10) (11 :R 10) (27 :R 10))
 ((25 :S 22))
 ((11 :S 9))
 ((11 :R 12) (17 :R 12) (27 :R 12))
 ((11 :R 13) (17 :R 13) (27 :R 13))
-((17 :R 14) (25 :R 14) (163 :R 14))
-((17 :R 15) (25 :R 15) (163 :R 15))
+((17 :R 14) (25 :R 14) (169 :R 14))
+((17 :R 15) (25 :R 15) (169 :R 15))
 ((9 :R 16) (11 :R 16) (27 :R 16))
 ((9 :R 17) (11 :R 17) (27 :R 17))
-((11 :S 197) (95 :S 211) (111 :S 198) (124 :S 225) (127 :S 231) (129 :S 233) (130 :S 234) (131 :S 235) (132 :S 236) (133 :S 237) (142 :S 254) (143 :S 255) (144 :S 256) (145 :S 257) (146 :S 258) (147 :S 259) (150 :S 320) (156 :S 276))
+((11 :S 200) (99 :S 214) (115 :S 201) (128 :S 228) (131 :S 234) (133 :S 236) (134 :S 237) (135 :S 238) (136 :S 239) (137 :S 240) (138 :S 241) (147 :S 256) (148 :S 257) (149 :S 258) (150 :S 259) (151 :S 260) (152 :S 261) (156 :S 329) (162 :S 280))
 ((9 :R 18) (11 :R 18) (27 :R 18))
 ((6 :S 32))
 ((7 :S 33))
 ((35 :S 36))
 ((9 :S 35))
 ((9 :R 19) (11 :R 19) (27 :R 19))
-((9 :R 20) (35 :R 20) (67 :R 20))
+((9 :R 20) (35 :R 20) (66 :R 20))
 ((6 :S 38))
-((65 :S 215))
+((64 :S 218))
 ((9 :R 21) (11 :R 21) (27 :R 21))
 ((38 :S 41))
-((27 :S 120))
+((27 :S 113))
 ((40 :S 43))
-((76 :S 123))
-((6 :R 38) (79 :S 131))
+((71 :S 114))
+((6 :R 36) (74 :S 122))
 ((6 :S 46))
-((65 :S 215))
+((64 :S 218))
 ((9 :R 22) (11 :R 22) (27 :R 22))
 ((45 :S 49))
-((76 :S 124))
+((71 :S 115))
 ((47 :S 51))
-((76 :S 125))
+((71 :S 116))
 ((49 :S 53))
-((76 :S 126))
+((71 :S 117))
 ((40 :S 55))
-((76 :S 123))
-((6 :R 149) (78 :S 127))
+((71 :S 114))
+((6 :R 159) (73 :S 118))
 ((6 :S 58))
-((65 :S 215))
+((64 :S 218))
 ((9 :R 23) (11 :R 23) (27 :R 23))
 ((53 :S 61))
-((11 :S 197) (95 :S 211) (111 :S 198) (124 :S 225) (127 :S 231) (129 :S 233) (130 :S 234) (131 :S 235) (132 :S 236) (133 :S 237) (142 :S 254) (143 :S 255) (144 :S 256) (145 :S 257) (146 :S 258) (147 :S 259) (150 :S 320) (156 :S 276))
-((55 :R 52) (90 :S 154))
-((55 :S 64))
-((27 :S 121))
-((38 :S 66))
-((27 :S 120))
-((40 :S 68))
-((76 :S 123))
-((6 :R 40) (79 :R 40) (80 :S 133) (84 :R 40) (85 :R 40))
-((6 :R 44) (79 :R 44) (84 :S 140) (85 :R 44))
-((6 :R 54) (79 :S 156) (85 :R 54))
-((6 :R 46) (85 :S 144))
-((6 :S 74))
-((65 :S 215))
+((11 :S 200) (99 :S 214) (115 :S 201) (128 :S 228) (131 :S 234) (133 :S 236) (134 :S 237) (135 :S 238) (136 :S 239) (137 :S 240) (138 :S 241) (147 :S 256) (148 :S 257) (149 :S 258) (150 :S 259) (151 :S 260) (152 :S 261) (156 :S 329) (162 :S 280))
+((85 :S 145) (86 :R 50) (87 :R 50))
+((86 :S 149) (87 :S 151))
+((38 :S 65))
+((27 :S 113))
+((40 :S 67))
+((71 :S 114))
+((6 :R 38) (74 :R 38) (75 :S 124) (79 :R 38) (80 :R 38))
+((6 :R 42) (74 :R 42) (79 :S 131) (80 :R 42))
+((6 :R 52) (74 :S 147) (80 :R 52))
+((6 :R 44) (80 :S 135))
+((6 :S 73))
+((64 :S 218))
 ((9 :R 24) (11 :R 24) (27 :R 24))
-((38 :R 68) (74 :S 183))
-((38 :S 78))
-((27 :S 120))
-((40 :S 80))
-((76 :S 123))
-((6 :S 82))
-((65 :S 215))
+((38 :R 72) (70 :S 186))
+((38 :S 77))
+((27 :S 113))
+((40 :S 79))
+((71 :S 114))
+((6 :S 81))
+((64 :S 218))
 ((9 :R 25) (11 :R 25) (27 :R 25))
+((63 :S 84))
 ((64 :S 85))
-((65 :S 86))
-((27 :S 325))
-((67 :S 88))
-((38 :S 89))
-((27 :S 120))
-((40 :S 91))
-((76 :S 123))
-((6 :S 93))
-((65 :S 215))
+((27 :S 336))
+((66 :S 87))
+((38 :S 88))
+((27 :S 113))
+((40 :S 90))
+((71 :S 114))
+((6 :S 92))
+((64 :S 218))
 ((9 :R 26) (11 :R 26) (27 :R 26))
-((38 :S 96))
-((27 :S 120))
-((40 :S 98))
-((76 :S 123))
-((69 :S 100))
-((70 :S 101))
-((65 :S 102))
-((27 :S 325))
-((67 :S 104))
-((6 :R 145) (69 :R 145) (94 :S 166) (95 :S 170))
-((6 :R 58) (69 :S 160))
-((6 :S 107))
-((65 :S 215))
+((38 :S 95))
+((27 :S 113))
+((40 :S 97))
+((71 :S 114))
+((91 :S 325))
+((6 :S 100))
+((64 :S 218))
 ((9 :R 27) (11 :R 27) (27 :R 27))
-((74 :S 110))
-((65 :S 111))
-((27 :S 325))
-((67 :S 113))
-((38 :S 114))
-((27 :S 120))
-((40 :S 116))
-((76 :S 123))
-((6 :S 118))
-((65 :S 215))
+((70 :S 103))
+((64 :S 104))
+((27 :S 336))
+((66 :S 106))
+((38 :S 107))
+((27 :S 113))
+((40 :S 109))
+((71 :S 114))
+((6 :S 111))
+((64 :S 218))
 ((9 :R 28) (11 :R 28) (27 :R 28))
 ((40 :R 29))
-((38 :R 30))
-((40 :R 31))
-((6 :R 32) (69 :R 32) (78 :R 32) (79 :R 32) (80 :R 32) (84 :R 32) (85 :R 32) (94 :R 32) (95 :R 32))
-((47 :R 33))
-((49 :R 34))
-((40 :R 35))
-((76 :S 128))
-((40 :S 129))
-((76 :S 130))
-((6 :R 36) (78 :R 36))
-((76 :S 132))
-((6 :R 37))
-((65 :S 134))
-((27 :S 139) (83 :S 137))
-((67 :S 136))
-((6 :R 39) (79 :R 39) (84 :R 39) (85 :R 39))
-((27 :S 138))
-((67 :R 41) (163 :R 41))
-((67 :R 42) (163 :R 42))
-((65 :S 141))
-((27 :S 142))
-((67 :S 143))
-((6 :R 43) (79 :R 43) (85 :R 43))
-((65 :S 145))
-((27 :S 318) (65 :S 151) (76 :S 148) (87 :S 149) (123 :S 224))
-((67 :S 147))
-((6 :R 45))
-((67 :R 47))
-((67 :R 48))
-((67 :R 49))
-((27 :S 294) (67 :R 141))
-((67 :S 153))
-((67 :R 50))
-((76 :S 155))
-((55 :R 51))
-((76 :S 157))
-((6 :R 53) (85 :R 53))
-((6 :R 55) (69 :R 55) (94 :R 55) (95 :R 55))
-((6 :R 56) (69 :R 56) (94 :R 56) (95 :R 56))
-((11 :S 161))
-((70 :S 162))
-((65 :S 163))
-((27 :S 325))
-((67 :S 165))
-((6 :R 57))
-((27 :S 167))
-((40 :S 168))
-((76 :S 123))
-((6 :R 59) (69 :R 59) (94 :R 59) (95 :R 59))
-((27 :S 171))
-((40 :R 62) (53 :S 177) (99 :R 62) (100 :R 62))
-((40 :R 64) (99 :S 179) (100 :R 64))
-((40 :R 66) (100 :S 181))
-((40 :S 175))
-((76 :S 123))
-((6 :R 60) (69 :R 60) (94 :R 60) (95 :R 60))
-((11 :S 197) (95 :S 211) (111 :S 198) (124 :S 225) (127 :S 231) (129 :S 233) (130 :S 234) (131 :S 235) (132 :S 236) (133 :S 237) (142 :S 254) (143 :S 255) (144 :S 256) (145 :S 257) (146 :S 258) (147 :S 259) (150 :S 320) (156 :S 276))
-((40 :R 61) (99 :R 61) (100 :R 61))
-((11 :S 197) (95 :S 211) (111 :S 198) (124 :S 225) (127 :S 231) (129 :S 233) (130 :S 234) (131 :S 235) (132 :S 236) (133 :S 237) (142 :S 254) (143 :S 255) (144 :S 256) (145 :S 257) (146 :S 258) (147 :S 259) (150 :S 320) (156 :S 276))
-((40 :R 63) (100 :R 63))
-((27 :S 122))
-((40 :R 65))
-((65 :S 184))
-((27 :S 325))
-((67 :S 186))
-((38 :R 67))
-((6 :R 69) (9 :R 69) (11 :R 69) (27 :R 69) (40 :R 69) (55 :R 69) (90 :R 69) (99 :R 69) (100 :R 69))
-((6 :R 70) (9 :R 70) (11 :R 70) (27 :R 70) (40 :R 70) (55 :R 70) (90 :R 70) (99 :R 70) (100 :R 70))
-((6 :R 71) (9 :R 71) (11 :R 71) (27 :R 71) (40 :R 71) (55 :R 71) (90 :R 71) (99 :R 71) (100 :R 71))
-((6 :R 72) (9 :R 72) (11 :R 72) (27 :R 72) (40 :R 72) (55 :R 72) (90 :R 72) (99 :R 72) (100 :R 72))
-((6 :R 73) (9 :R 73) (11 :R 73) (27 :R 73) (40 :R 73) (55 :R 73) (90 :R 73) (99 :R 73) (100 :R 73))
-((6 :R 74) (9 :R 74) (11 :R 74) (27 :R 74) (40 :R 74) (55 :R 74) (90 :R 74) (99 :R 74) (100 :R 74))
-((6 :R 75) (9 :R 75) (11 :R 75) (27 :R 75) (40 :R 75) (55 :R 75) (90 :R 75) (99 :R 75) (100 :R 75))
-((6 :R 76) (9 :R 76) (11 :R 76) (27 :R 76) (40 :R 76) (55 :R 76) (90 :R 76) (99 :R 76) (100 :R 76))
-((6 :R 77) (9 :R 77) (11 :R 77) (27 :R 77) (40 :R 77) (55 :R 77) (90 :R 77) (99 :R 77) (100 :R 77))
-((6 :R 78) (9 :R 78) (11 :R 78) (27 :R 78) (40 :R 78) (55 :R 78) (90 :R 78) (99 :R 78) (100 :R 78))
-((6 :R 79) (9 :R 79) (11 :R 79) (27 :R 79) (40 :R 79) (55 :R 79) (90 :R 79) (99 :R 79) (100 :R 79))
-((38 :R 82) (114 :S 207))
-((38 :S 200))
-((27 :S 201))
-((40 :S 202))
-((76 :S 203))
-((53 :R 84) (79 :S 209))
-((53 :S 205))
-((11 :S 197) (95 :S 211) (111 :S 198) (124 :S 225) (127 :S 231) (129 :S 233) (130 :S 234) (131 :S 235) (132 :S 236) (133 :S 237) (142 :S 254) (143 :S 255) (144 :S 256) (145 :S 257) (146 :S 258) (147 :S 259) (150 :S 320) (156 :S 276))
-((6 :R 80) (9 :R 80) (11 :R 80) (27 :R 80) (40 :R 80) (55 :R 80) (90 :R 80) (99 :R 80) (100 :R 80))
-((76 :S 208))
-((38 :R 81))
-((76 :S 210))
-((53 :R 83))
-((115 :S 212))
-((6 :R 85) (9 :R 85) (11 :R 85) (27 :R 85) (40 :R 85) (55 :R 85) (90 :R 85) (99 :R 85) (100 :R 85))
-((9 :R 86) (11 :R 86) (27 :R 86))
-((9 :R 87) (11 :R 87) (27 :R 87))
-((27 :S 318) (123 :S 224))
-((67 :S 217))
-((9 :R 88) (11 :R 88) (27 :R 88))
-((27 :R 89) (67 :R 89) (123 :R 89))
-((27 :R 90) (67 :R 90) (123 :R 90))
-((27 :R 91) (67 :R 91) (123 :R 91))
-((123 :S 224))
-((122 :S 223))
-((27 :R 92) (67 :R 92) (123 :R 92))
-((27 :R 94) (67 :R 94) (122 :R 94) (123 :R 94))
-((65 :S 226))
+((6 :R 30) (73 :R 30) (74 :R 30) (75 :R 30) (79 :R 30) (80 :R 30) (91 :R 30) (98 :R 30) (99 :R 30))
+((47 :R 31))
+((49 :R 32))
+((40 :R 33))
+((71 :S 119))
+((40 :S 120))
+((71 :S 121))
+((6 :R 34) (73 :R 34))
+((71 :S 123))
+((6 :R 35))
+((64 :S 125))
+((27 :S 130) (78 :S 128))
+((66 :S 127))
+((6 :R 37) (74 :R 37) (79 :R 37) (80 :R 37))
+((27 :S 129))
+((66 :R 39) (169 :R 39))
+((66 :R 40) (169 :R 40))
+((64 :S 132))
+((27 :S 133))
+((66 :S 134))
+((6 :R 41) (74 :R 41) (80 :R 41))
+((64 :S 136))
+((27 :S 326) (64 :S 142) (71 :S 139) (82 :S 140) (127 :S 227))
+((66 :S 138))
+((6 :R 43))
+((66 :R 45))
+((66 :R 46))
+((66 :R 47))
+((27 :S 302) (66 :R 151))
+((66 :S 144))
+((66 :R 48))
+((71 :S 146))
+((86 :R 49) (87 :R 49))
+((71 :S 148))
+((6 :R 51) (80 :R 51))
+((27 :S 150))
+((38 :R 53))
+((27 :S 152))
+((38 :R 54))
+((6 :R 55) (91 :R 55))
+((6 :R 56) (91 :R 56))
+((6 :R 147) (91 :R 147) (98 :S 169) (99 :S 173))
+((6 :R 57) (91 :R 57))
+((64 :S 158))
+((27 :S 336))
+((66 :S 160))
+((6 :R 58) (91 :R 58) (98 :R 58) (99 :R 58))
+((6 :R 60) (91 :R 60) (98 :R 60) (99 :R 60))
+((6 :R 61) (91 :R 61) (98 :R 61) (99 :R 61))
+((94 :S 164))
+((64 :S 165))
+((27 :S 336))
+((66 :S 167))
+((6 :R 147) (91 :R 147) (98 :S 169) (99 :S 173))
+((6 :R 62) (91 :R 62))
+((27 :S 170))
+((40 :S 171))
+((71 :S 114))
+((6 :R 63) (91 :R 63) (98 :R 63) (99 :R 63))
+((27 :S 174))
+((40 :R 66) (53 :S 180) (103 :R 66) (104 :R 66))
+((40 :R 68) (103 :S 182) (104 :R 68))
+((40 :R 70) (104 :S 184))
+((40 :S 178))
+((71 :S 114))
+((6 :R 64) (91 :R 64) (98 :R 64) (99 :R 64))
+((11 :S 200) (99 :S 214) (115 :S 201) (128 :S 228) (131 :S 234) (133 :S 236) (134 :S 237) (135 :S 238) (136 :S 239) (137 :S 240) (138 :S 241) (147 :S 256) (148 :S 257) (149 :S 258) (150 :S 259) (151 :S 260) (152 :S 261) (156 :S 329) (162 :S 280))
+((40 :R 65) (103 :R 65) (104 :R 65))
+((11 :S 200) (99 :S 214) (115 :S 201) (128 :S 228) (131 :S 234) (133 :S 236) (134 :S 237) (135 :S 238) (136 :S 239) (137 :S 240) (138 :S 241) (147 :S 256) (148 :S 257) (149 :S 258) (150 :S 259) (151 :S 260) (152 :S 261) (156 :S 329) (162 :S 280))
+((40 :R 67) (104 :R 67))
+((27 :S 185))
+((40 :R 69))
+((64 :S 187))
+((27 :S 336))
+((66 :S 189))
+((38 :R 71))
+((6 :R 73) (9 :R 73) (11 :R 73) (27 :R 73) (40 :R 73) (85 :R 73) (86 :R 73) (87 :R 73) (103 :R 73) (104 :R 73))
+((6 :R 74) (9 :R 74) (11 :R 74) (27 :R 74) (40 :R 74) (85 :R 74) (86 :R 74) (87 :R 74) (103 :R 74) (104 :R 74))
+((6 :R 75) (9 :R 75) (11 :R 75) (27 :R 75) (40 :R 75) (85 :R 75) (86 :R 75) (87 :R 75) (103 :R 75) (104 :R 75))
+((6 :R 76) (9 :R 76) (11 :R 76) (27 :R 76) (40 :R 76) (85 :R 76) (86 :R 76) (87 :R 76) (103 :R 76) (104 :R 76))
+((6 :R 77) (9 :R 77) (11 :R 77) (27 :R 77) (40 :R 77) (85 :R 77) (86 :R 77) (87 :R 77) (103 :R 77) (104 :R 77))
+((6 :R 78) (9 :R 78) (11 :R 78) (27 :R 78) (40 :R 78) (85 :R 78) (86 :R 78) (87 :R 78) (103 :R 78) (104 :R 78))
+((6 :R 79) (9 :R 79) (11 :R 79) (27 :R 79) (40 :R 79) (85 :R 79) (86 :R 79) (87 :R 79) (103 :R 79) (104 :R 79))
+((6 :R 80) (9 :R 80) (11 :R 80) (27 :R 80) (40 :R 80) (85 :R 80) (86 :R 80) (87 :R 80) (103 :R 80) (104 :R 80))
+((6 :R 81) (9 :R 81) (11 :R 81) (27 :R 81) (40 :R 81) (85 :R 81) (86 :R 81) (87 :R 81) (103 :R 81) (104 :R 81))
+((6 :R 82) (9 :R 82) (11 :R 82) (27 :R 82) (40 :R 82) (85 :R 82) (86 :R 82) (87 :R 82) (103 :R 82) (104 :R 82))
+((6 :R 83) (9 :R 83) (11 :R 83) (27 :R 83) (40 :R 83) (85 :R 83) (86 :R 83) (87 :R 83) (103 :R 83) (104 :R 83))
+((38 :R 86) (118 :S 210))
+((38 :S 203))
+((27 :S 204))
+((40 :S 205))
+((71 :S 206))
+((53 :R 88) (74 :S 212))
+((53 :S 208))
+((11 :S 200) (99 :S 214) (115 :S 201) (128 :S 228) (131 :S 234) (133 :S 236) (134 :S 237) (135 :S 238) (136 :S 239) (137 :S 240) (138 :S 241) (147 :S 256) (148 :S 257) (149 :S 258) (150 :S 259) (151 :S 260) (152 :S 261) (156 :S 329) (162 :S 280))
+((6 :R 84) (9 :R 84) (11 :R 84) (27 :R 84) (40 :R 84) (85 :R 84) (86 :R 84) (87 :R 84) (103 :R 84) (104 :R 84))
+((71 :S 211))
+((38 :R 85))
+((71 :S 213))
+((53 :R 87))
+((119 :S 215))
+((6 :R 89) (9 :R 89) (11 :R 89) (27 :R 89) (40 :R 89) (85 :R 89) (86 :R 89) (87 :R 89) (103 :R 89) (104 :R 89))
+((9 :R 90) (11 :R 90) (27 :R 90))
+((9 :R 91) (11 :R 91) (27 :R 91))
+((27 :S 326) (127 :S 227))
+((66 :S 220))
+((9 :R 92) (11 :R 92) (27 :R 92))
+((27 :R 93) (66 :R 93) (127 :R 93))
+((27 :R 94) (66 :R 94) (127 :R 94))
+((27 :R 95) (66 :R 95) (127 :R 95))
+((127 :S 227))
+((126 :S 226))
+((27 :R 96) (66 :R 96) (127 :R 96))
+((27 :R 98) (66 :R 98) (126 :R 98) (127 :R 98))
+((64 :S 229))
 ((35 :S 36))
-((67 :S 228))
-((6 :R 95) (9 :R 95) (11 :R 95) (27 :R 95) (40 :R 95) (55 :R 95) (90 :R 95) (99 :R 95) (100 :R 95))
-((6 :R 104) (9 :R 104) (11 :R 104) (27 :R 104) (40 :R 104) (55 :R 104) (90 :R 104) (99 :R 104) (100 :R 104) (121 :S 238))
-((6 :R 96) (9 :R 96) (11 :R 96) (27 :R 96) (40 :R 96) (55 :R 96) (90 :R 96) (99 :R 96) (100 :R 96))
-((128 :S 232))
-((6 :R 97) (9 :R 97) (11 :R 97) (27 :R 97) (40 :R 97) (55 :R 97) (90 :R 97) (99 :R 97) (100 :R 97) (121 :R 97))
-((6 :R 98) (9 :R 98) (11 :R 98) (27 :R 98) (40 :R 98) (55 :R 98) (90 :R 98) (99 :R 98) (100 :R 98) (121 :R 98))
-((6 :R 99) (9 :R 99) (11 :R 99) (27 :R 99) (40 :R 99) (55 :R 99) (90 :R 99) (99 :R 99) (100 :R 99) (121 :R 99))
-((6 :R 100) (9 :R 100) (11 :R 100) (27 :R 100) (40 :R 100) (55 :R 100) (90 :R 100) (99 :R 100) (100 :R 100) (121 :R 100))
-((6 :R 101) (9 :R 101) (11 :R 101) (27 :R 101) (40 :R 101) (55 :R 101) (90 :R 101) (99 :R 101) (100 :R 101) (121 :R 101))
-((6 :R 102) (9 :R 102) (11 :R 102) (27 :R 102) (40 :R 102) (55 :R 102) (90 :R 102) (99 :R 102) (100 :R 102) (121 :R 102))
-((134 :S 239))
-((121 :S 240))
-((136 :S 328))
-((122 :S 242))
-((122 :S 243))
-((6 :R 103) (9 :R 103) (11 :R 103) (27 :R 103) (40 :R 103) (55 :R 103) (90 :R 103) (99 :R 103) (100 :R 103))
-((136 :S 245))
-((122 :R 105))
-((136 :S 247))
-((122 :R 106))
-((136 :S 319))
-((122 :S 250))
-((6 :R 108) (9 :R 108) (11 :R 108) (27 :R 108) (40 :R 108) (55 :R 108) (90 :R 108) (99 :R 108) (100 :R 108))
-((27 :S 262))
-((67 :S 253))
-((6 :R 109) (9 :R 109) (11 :R 109) (27 :R 109) (40 :R 109) (55 :R 109) (90 :R 109) (99 :R 109) (100 :R 109))
-((6 :R 111) (9 :R 111) (11 :R 111) (27 :R 111) (40 :R 111) (55 :R 111) (65 :R 111) (90 :R 111) (99 :R 111) (100 :R 111) (121 :R 111))
-((6 :R 112) (9 :R 112) (11 :R 112) (27 :R 112) (40 :R 112) (55 :R 112) (65 :R 112) (90 :R 112) (99 :R 112) (100 :R 112) (121 :R 112))
-((6 :R 113) (9 :R 113) (11 :R 113) (27 :R 113) (40 :R 113) (55 :R 113) (65 :R 113) (90 :R 113) (99 :R 113) (100 :R 113) (121 :R 113))
-((6 :R 114) (9 :R 114) (11 :R 114) (27 :R 114) (40 :R 114) (55 :R 114) (65 :R 114) (90 :R 114) (99 :R 114) (100 :R 114) (121 :R 114))
-((6 :R 115) (9 :R 115) (11 :R 115) (27 :R 115) (40 :R 115) (55 :R 115) (65 :R 115) (90 :R 115) (99 :R 115) (100 :R 115) (121 :R 115))
-((6 :R 116) (9 :R 116) (11 :R 116) (27 :R 116) (40 :R 116) (55 :R 116) (65 :R 116) (90 :R 116) (99 :R 116) (100 :R 116) (121 :R 116))
-((136 :S 261))
-((122 :R 118) (137 :R 118))
-((121 :S 263))
-((136 :S 264))
-((122 :S 265))
-((67 :R 119) (163 :R 119))
-((35 :S 36) (67 :R 131))
-((67 :S 268))
-((6 :R 120) (9 :R 120) (11 :R 120) (27 :R 120) (40 :R 120) (55 :R 120) (90 :R 120) (99 :R 120) (100 :R 120))
-((11 :S 197) (95 :S 211) (111 :S 198) (124 :S 225) (127 :S 231) (129 :S 233) (130 :S 234) (131 :S 235) (132 :S 236) (133 :S 237) (142 :S 254) (143 :S 255) (144 :S 256) (145 :S 257) (146 :S 258) (147 :S 259) (150 :S 320) (156 :S 276))
-((6 :R 121) (9 :R 121) (11 :R 121) (27 :R 121) (40 :R 121) (55 :R 121) (90 :R 121) (99 :R 121) (100 :R 121))
-((6 :R 122) (9 :R 122) (11 :R 122) (27 :R 122) (40 :R 122) (55 :R 122) (90 :R 122) (99 :R 122) (100 :R 122))
-((11 :S 197) (95 :S 211) (111 :S 198) (124 :S 225) (127 :S 231) (129 :S 233) (130 :S 234) (131 :S 235) (132 :S 236) (133 :S 237) (142 :S 254) (143 :S 255) (144 :S 256) (145 :S 257) (146 :S 258) (147 :S 259) (150 :S 320) (156 :S 276))
-((6 :R 123) (9 :R 123) (11 :R 123) (27 :R 123) (40 :R 123) (55 :R 123) (90 :R 123) (99 :R 123) (100 :R 123))
-((11 :S 197) (95 :S 211) (111 :S 198) (124 :S 225) (127 :S 231) (129 :S 233) (130 :S 234) (131 :S 235) (132 :S 236) (133 :S 237) (142 :S 254) (143 :S 255) (144 :S 256) (145 :S 257) (146 :S 258) (147 :S 259) (150 :S 320) (156 :S 276))
-((6 :R 124) (9 :R 124) (11 :R 124) (27 :R 124) (40 :R 124) (55 :R 124) (90 :R 124) (99 :R 124) (100 :R 124))
-((136 :R 130) (160 :S 281) (161 :S 282) (162 :S 283))
-((136 :S 280))
-((159 :S 279))
-((11 :R 125) (95 :R 125) (111 :R 125) (124 :R 125) (127 :R 125) (129 :R 125) (130 :R 125) (131 :R 125) (132 :R 125) (133 :R 125) (142 :R 125) (143 :R 125) (144 :R 125) (145 :R 125) (146 :R 125) (147 :R 125) (150 :R 125) (154 :R 125) (155 :R 125) (156 :R 125))
-((159 :R 126))
-((136 :R 127))
-((136 :R 128))
-((136 :R 129))
-((35 :S 36) (67 :R 131))
-((67 :R 132))
-((27 :S 262))
-((67 :R 134))
-((136 :S 319))
-((122 :R 136))
-((67 :R 138))
-((27 :S 292))
-((67 :R 139) (163 :S 291))
-((67 :R 140))
-((67 :R 139) (163 :S 291))
-((67 :R 142))
-((27 :S 139) (83 :S 137))
-((67 :R 144))
-((6 :R 145) (69 :R 145) (94 :S 166) (95 :S 170))
-((6 :R 146) (69 :R 146))
-((27 :S 325))
-((67 :R 148))
-((6 :R 149) (78 :S 127))
-((6 :R 150))
-((9 :R 152) (67 :R 152))
+((66 :S 231))
+((6 :R 99) (9 :R 99) (11 :R 99) (27 :R 99) (40 :R 99) (85 :R 99) (86 :R 99) (87 :R 99) (103 :R 99) (104 :R 99))
+((6 :R 109) (9 :R 109) (11 :R 109) (27 :R 109) (40 :R 109) (85 :R 109) (86 :R 109) (87 :R 109) (103 :R 109) (104 :R 109) (125 :S 242))
+((6 :R 100) (9 :R 100) (11 :R 100) (27 :R 100) (40 :R 100) (85 :R 100) (86 :R 100) (87 :R 100) (103 :R 100) (104 :R 100))
+((132 :S 235))
+((6 :R 101) (9 :R 101) (11 :R 101) (27 :R 101) (40 :R 101) (85 :R 101) (86 :R 101) (87 :R 101) (103 :R 101) (104 :R 101) (125 :R 101))
+((6 :R 102) (9 :R 102) (11 :R 102) (27 :R 102) (40 :R 102) (85 :R 102) (86 :R 102) (87 :R 102) (103 :R 102) (104 :R 102) (125 :R 102))
+((6 :R 103) (9 :R 103) (11 :R 103) (27 :R 103) (40 :R 103) (85 :R 103) (86 :R 103) (87 :R 103) (103 :R 103) (104 :R 103) (125 :R 103))
+((6 :R 104) (9 :R 104) (11 :R 104) (27 :R 104) (40 :R 104) (85 :R 104) (86 :R 104) (87 :R 104) (103 :R 104) (104 :R 104) (125 :R 104))
+((6 :R 105) (9 :R 105) (11 :R 105) (27 :R 105) (40 :R 105) (85 :R 105) (86 :R 105) (87 :R 105) (103 :R 105) (104 :R 105) (125 :R 105))
+((6 :R 106) (9 :R 106) (11 :R 106) (27 :R 106) (40 :R 106) (85 :R 106) (86 :R 106) (87 :R 106) (103 :R 106) (104 :R 106) (125 :R 106))
+((6 :R 107) (9 :R 107) (11 :R 107) (27 :R 107) (40 :R 107) (85 :R 107) (86 :R 107) (87 :R 107) (103 :R 107) (104 :R 107) (125 :R 107))
+((139 :S 243))
+((125 :S 244))
+((82 :S 269) (155 :S 268))
+((126 :S 246))
+((126 :S 247))
+((6 :R 108) (9 :R 108) (11 :R 108) (27 :R 108) (40 :R 108) (85 :R 108) (86 :R 108) (87 :R 108) (103 :R 108) (104 :R 108))
+((82 :S 269) (155 :S 268))
+((126 :R 110) (170 :R 110))
+((82 :S 269) (155 :S 268))
+((126 :S 252))
+((6 :R 112) (9 :R 112) (11 :R 112) (27 :R 112) (40 :R 112) (85 :R 112) (86 :R 112) (87 :R 112) (103 :R 112) (104 :R 112))
+((27 :S 264))
+((66 :S 255))
+((6 :R 113) (9 :R 113) (11 :R 113) (27 :R 113) (40 :R 113) (85 :R 113) (86 :R 113) (87 :R 113) (103 :R 113) (104 :R 113))
+((6 :R 115) (9 :R 115) (11 :R 115) (27 :R 115) (40 :R 115) (64 :R 115) (85 :R 115) (86 :R 115) (87 :R 115) (103 :R 115) (104 :R 115) (125 :R 115))
+((6 :R 116) (9 :R 116) (11 :R 116) (27 :R 116) (40 :R 116) (64 :R 116) (85 :R 116) (86 :R 116) (87 :R 116) (103 :R 116) (104 :R 116) (125 :R 116))
+((6 :R 117) (9 :R 117) (11 :R 117) (27 :R 117) (40 :R 117) (64 :R 117) (85 :R 117) (86 :R 117) (87 :R 117) (103 :R 117) (104 :R 117) (125 :R 117))
+((6 :R 118) (9 :R 118) (11 :R 118) (27 :R 118) (40 :R 118) (64 :R 118) (85 :R 118) (86 :R 118) (87 :R 118) (103 :R 118) (104 :R 118) (125 :R 118))
+((6 :R 119) (9 :R 119) (11 :R 119) (27 :R 119) (40 :R 119) (64 :R 119) (85 :R 119) (86 :R 119) (87 :R 119) (103 :R 119) (104 :R 119) (125 :R 119))
+((6 :R 120) (9 :R 120) (11 :R 120) (27 :R 120) (40 :R 120) (64 :R 120) (85 :R 120) (86 :R 120) (87 :R 120) (103 :R 120) (104 :R 120) (125 :R 120))
+((82 :S 269) (155 :S 268))
+((126 :R 122) (170 :R 122))
+((125 :S 265))
+((82 :S 269) (155 :S 268))
+((126 :S 267))
+((66 :R 123) (169 :R 123))
+((126 :R 124) (143 :R 124) (170 :R 124))
+((126 :R 125) (143 :R 125) (170 :R 125))
+((35 :S 36) (66 :R 137))
+((66 :S 272))
+((6 :R 126) (9 :R 126) (11 :R 126) (27 :R 126) (40 :R 126) (85 :R 126) (86 :R 126) (87 :R 126) (103 :R 126) (104 :R 126))
+((11 :S 200) (99 :S 214) (115 :S 201) (128 :S 228) (131 :S 234) (133 :S 236) (134 :S 237) (135 :S 238) (136 :S 239) (137 :S 240) (138 :S 241) (147 :S 256) (148 :S 257) (149 :S 258) (150 :S 259) (151 :S 260) (152 :S 261) (156 :S 329) (162 :S 280))
+((6 :R 127) (9 :R 127) (11 :R 127) (27 :R 127) (40 :R 127) (85 :R 127) (86 :R 127) (87 :R 127) (103 :R 127) (104 :R 127))
+((6 :R 128) (9 :R 128) (11 :R 128) (27 :R 128) (40 :R 128) (85 :R 128) (86 :R 128) (87 :R 128) (103 :R 128) (104 :R 128))
+((11 :S 200) (99 :S 214) (115 :S 201) (128 :S 228) (131 :S 234) (133 :S 236) (134 :S 237) (135 :S 238) (136 :S 239) (137 :S 240) (138 :S 241) (147 :S 256) (148 :S 257) (149 :S 258) (150 :S 259) (151 :S 260) (152 :S 261) (156 :S 329) (162 :S 280))
+((6 :R 129) (9 :R 129) (11 :R 129) (27 :R 129) (40 :R 129) (85 :R 129) (86 :R 129) (87 :R 129) (103 :R 129) (104 :R 129))
+((11 :S 200) (99 :S 214) (115 :S 201) (128 :S 228) (131 :S 234) (133 :S 236) (134 :S 237) (135 :S 238) (136 :S 239) (137 :S 240) (138 :S 241) (147 :S 256) (148 :S 257) (149 :S 258) (150 :S 259) (151 :S 260) (152 :S 261) (156 :S 329) (162 :S 280))
+((6 :R 130) (9 :R 130) (11 :R 130) (27 :R 130) (40 :R 130) (85 :R 130) (86 :R 130) (87 :R 130) (103 :R 130) (104 :R 130))
+((155 :R 136) (166 :S 285) (167 :S 286) (168 :S 287))
+((155 :S 284))
+((165 :S 283))
+((11 :R 131) (99 :R 131) (115 :R 131) (128 :R 131) (131 :R 131) (133 :R 131) (134 :R 131) (135 :R 131) (136 :R 131) (137 :R 131) (138 :R 131) (147 :R 131) (148 :R 131) (149 :R 131) (150 :R 131) (151 :R 131) (152 :R 131) (156 :R 131) (160 :R 131) (161 :R 131) (162 :R 131))
+((165 :R 132))
+((155 :R 133))
+((155 :R 134))
+((155 :R 135))
+((35 :S 36) (66 :R 137))
+((66 :R 138))
+((27 :S 264))
+((66 :R 140))
+((82 :S 269) (155 :S 268))
+((126 :R 142))
+((82 :S 269) (155 :S 268))
+((126 :R 144))
+((66 :R 146))
+((6 :R 147) (91 :R 147) (98 :S 169) (99 :S 173))
+((6 :R 148) (91 :R 148))
+((27 :S 300))
+((66 :R 149) (169 :S 299))
+((66 :R 150))
+((66 :R 149) (169 :S 299))
+((66 :R 152))
+((27 :S 130) (78 :S 128))
+((66 :R 154))
+((6 :R 156))
+((27 :S 336))
+((66 :R 158))
+((6 :R 159) (73 :S 118))
+((6 :R 160))
+((9 :R 162) (66 :R 162))
 ((11 :S 25) (27 :S 26))
-((25 :R 154))
-((11 :S 25) (17 :R 155) (27 :S 26))
-((17 :R 156))
+((25 :R 164))
+((11 :S 25) (17 :R 165) (27 :S 26))
+((17 :R 166))
 ((11 :S 25) (27 :S 26))
-((17 :R 157) (163 :S 309))
-((17 :R 158))
-((17 :R 157) (163 :S 309))
-((17 :R 160))
-((9 :R 161) (11 :S 317) (27 :S 331))
-((9 :R 162))
-((11 :S 25) (17 :R 159) (18 :S 15) (27 :S 26))
+((17 :R 167) (169 :S 316))
+((17 :R 168))
+((17 :R 167) (169 :S 316))
+((17 :R 170))
+((9 :R 171) (11 :S 324) (27 :S 341))
+((9 :R 172))
+((11 :S 25) (17 :R 169) (18 :S 15) (27 :S 26))
 ((6 :S 29) (32 :S 31))
-((27 :R 93) (67 :R 93) (121 :S 221) (123 :R 93))
-((122 :R 117) (137 :R 117) (138 :S 260))
-((65 :S 266) (152 :S 269))
-((67 :R 133) (163 :S 286))
-((122 :R 135) (137 :S 288))
-((27 :S 318) (67 :R 137) (123 :S 224))
-((67 :R 143) (163 :S 296))
-((67 :R 147) (163 :S 300))
-((9 :R 151) (35 :S 36) (67 :R 151))
-((25 :R 153) (163 :S 305))
-((122 :R 107) (137 :S 244) (138 :S 246))
-((6 :R 110) (9 :R 110) (11 :R 110) (27 :R 110) (40 :R 110) (55 :R 110) (65 :S 251) (90 :R 110) (99 :R 110) (100 :R 110) (121 :S 248))
-((11 :S 197) (95 :S 211) (111 :S 198) (124 :S 225) (127 :S 231) (129 :S 233) (130 :S 234) (131 :S 235) (132 :S 236) (133 :S 237) (142 :S 254) (143 :S 255) (144 :S 256) (145 :S 257) (146 :S 258) (147 :S 259) (150 :S 320) (154 :S 272) (155 :S 274) (156 :S 276))
-((11 :S 197) (37 :S 40) (44 :S 48) (52 :S 60) (61 :S 76) (63 :S 84) (68 :S 95) (73 :S 109) (95 :S 211) (111 :S 198) (124 :S 225) (127 :S 231) (129 :S 233) (130 :S 234) (131 :S 235) (132 :S 236) (133 :S 237) (142 :S 254) (143 :S 255) (144 :S 256) (145 :S 257) (146 :S 258) (147 :S 259) (150 :S 320) (156 :S 276)))
+((6 :R 59) (11 :S 163) (91 :R 59) (94 :S 157) (98 :R 59) (99 :R 59))
+((27 :R 97) (66 :R 97) (125 :S 224) (127 :R 97))
+((126 :R 111) (143 :S 248) (170 :R 111))
+((126 :R 121) (143 :S 262) (170 :R 121))
+((64 :S 270) (158 :S 273))
+((66 :R 139) (169 :S 290))
+((126 :R 141) (170 :S 292))
+((126 :R 143) (170 :S 294))
+((27 :S 326) (66 :R 145) (127 :S 227))
+((66 :R 153) (169 :S 304))
+((6 :R 155) (91 :S 325))
+((66 :R 157) (169 :S 307))
+((9 :R 161) (35 :S 36) (66 :R 161))
+((25 :R 163) (169 :S 312))
+((6 :R 114) (9 :R 114) (11 :R 114) (27 :R 114) (40 :R 114) (64 :S 253) (85 :R 114) (86 :R 114) (87 :R 114) (103 :R 114) (104 :R 114) (125 :S 250))
+((11 :S 200) (99 :S 214) (115 :S 201) (128 :S 228) (131 :S 234) (133 :S 236) (134 :S 237) (135 :S 238) (136 :S 239) (137 :S 240) (138 :S 241) (147 :S 256) (148 :S 257) (149 :S 258) (150 :S 259) (151 :S 260) (152 :S 261) (156 :S 329) (160 :S 276) (161 :S 278) (162 :S 280))
+((11 :S 200) (37 :S 40) (44 :S 48) (52 :S 60) (60 :S 75) (62 :S 83) (67 :S 94) (69 :S 102) (99 :S 214) (115 :S 201) (128 :S 228) (131 :S 234) (133 :S 236) (134 :S 237) (135 :S 238) (136 :S 239) (137 :S 240) (138 :S 241) (147 :S 256) (148 :S 257) (149 :S 258) (150 :S 259) (151 :S 260) (152 :S 261) (156 :S 329) (162 :S 280)))
 
-#332(
+#342(
 ((3 . 1)(4 . 2)(10 . 8))
 ()
 ()
@@ -353,14 +363,14 @@
 ()
 ()
 ((13 . 11))
-((14 . 12)(28 . 314)(29 . 27)(30 . 28))
+((14 . 12)(28 . 321)(29 . 27)(30 . 28))
 ()
 ()
 ()
 ()
 ()
 ()
-((19 . 327)(20 . 17)(22 . 19)(23 . 307)(24 . 21))
+((19 . 338)(20 . 17)(22 . 19)(23 . 314)(24 . 21))
 ()
 ()
 ()
@@ -371,16 +381,16 @@
 ()
 ()
 ()
-((31 . 30)(101 . 187)(102 . 188)(103 . 189)(104 . 190)(105 . 191)(106 . 192)(107 . 193)(108 . 194)(109 . 195)(110 . 196)(125 . 229)(139 . 329)(153 . 330))
+((31 . 30)(105 . 190)(106 . 191)(107 . 192)(108 . 193)(109 . 194)(110 . 195)(111 . 196)(112 . 197)(113 . 198)(114 . 199)(129 . 232)(144 . 339)(159 . 340))
 ()
 ()
 ()
-((33 . 34)(34 . 326))
+((33 . 34)(34 . 337))
 ()
 ()
 ()
 ()
-((36 . 39)(43 . 214)(116 . 213))
+((36 . 39)(43 . 217)(120 . 216))
 ()
 ()
 ((39 . 42))
@@ -398,73 +408,76 @@
 ((50 . 54))
 ()
 ((41 . 56))
-((51 . 57)(77 . 302))
+((51 . 57)(72 . 309))
 ()
 ((43 . 59))
 ()
 ()
-((31 . 62)(101 . 187)(102 . 188)(103 . 189)(104 . 190)(105 . 191)(106 . 192)(107 . 193)(108 . 194)(109 . 195)(110 . 196)(125 . 229)(139 . 329)(153 . 330))
+((31 . 62)(105 . 190)(106 . 191)(107 . 192)(108 . 193)(109 . 194)(110 . 195)(111 . 196)(112 . 197)(113 . 198)(114 . 199)(129 . 232)(144 . 339)(159 . 340))
 ((54 . 63))
+((55 . 64))
 ()
-((56 . 65))
+((39 . 66))
 ()
-((39 . 67))
-()
-((41 . 69))
+((41 . 68))
+((56 . 69))
 ((57 . 70))
 ((58 . 71))
 ((59 . 72))
-((60 . 73))
 ()
-((43 . 75))
+((43 . 74))
+()
+((61 . 76))
+()
+((39 . 78))
+()
+((41 . 80))
+()
+((43 . 82))
+()
 ()
-((62 . 77))
 ()
-((39 . 79))
+((65 . 86))
 ()
-((41 . 81))
 ()
-((43 . 83))
+((39 . 89))
 ()
+((41 . 91))
 ()
+((43 . 93))
 ()
-((66 . 87))
 ()
+((39 . 96))
 ()
-((39 . 90))
+((41 . 98))
+((68 . 99)(88 . 335)(89 . 153)(90 . 154))
 ()
-((41 . 92))
+((43 . 101))
 ()
-((43 . 94))
 ()
 ()
-((39 . 97))
+((65 . 105))
 ()
-((41 . 99))
 ()
+((39 . 108))
 ()
+((41 . 110))
 ()
-((66 . 103))
+((43 . 112))
 ()
-((71 . 105)(91 . 298)(92 . 158)(93 . 159))
-((72 . 106))
 ()
-((43 . 108))
 ()
 ()
 ()
-((66 . 112))
 ()
 ()
-((39 . 115))
 ()
-((41 . 117))
 ()
-((43 . 119))
 ()
 ()
 ()
 ()
+((76 . 126)(77 . 334))
 ()
 ()
 ()
@@ -475,58 +488,59 @@
 ()
 ()
 ()
+((81 . 137)(83 . 141)(122 . 221)(123 . 222)(124 . 223))
 ()
-((81 . 135)(82 . 324))
 ()
 ()
 ()
 ()
+((84 . 143))
 ()
 ()
 ()
 ()
 ()
 ()
-((86 . 146)(88 . 150)(118 . 218)(119 . 219)(120 . 220))
 ()
 ()
 ()
 ()
 ()
-((89 . 152))
 ()
+((93 . 156)(95 . 297)(96 . 161)(97 . 162))
 ()
 ()
+((65 . 159))
 ()
 ()
 ()
 ()
 ()
 ()
+((65 . 166))
 ()
+((93 . 168)(95 . 297)(96 . 161)(97 . 162))
 ()
-((66 . 164))
 ()
 ()
+((41 . 172))
 ()
 ()
-((41 . 169))
+((100 . 175))
+((101 . 176))
+((102 . 177))
 ()
+((41 . 179))
 ()
-((96 . 172))
-((97 . 173))
-((98 . 174))
+((31 . 181)(105 . 190)(106 . 191)(107 . 192)(108 . 193)(109 . 194)(110 . 195)(111 . 196)(112 . 197)(113 . 198)(114 . 199)(129 . 232)(144 . 339)(159 . 340))
 ()
-((41 . 176))
+((31 . 183)(105 . 190)(106 . 191)(107 . 192)(108 . 193)(109 . 194)(110 . 195)(111 . 196)(112 . 197)(113 . 198)(114 . 199)(129 . 232)(144 . 339)(159 . 340))
 ()
-((31 . 178)(101 . 187)(102 . 188)(103 . 189)(104 . 190)(105 . 191)(106 . 192)(107 . 193)(108 . 194)(109 . 195)(110 . 196)(125 . 229)(139 . 329)(153 . 330))
 ()
-((31 . 180)(101 . 187)(102 . 188)(103 . 189)(104 . 190)(105 . 191)(106 . 192)(107 . 193)(108 . 194)(109 . 195)(110 . 196)(125 . 229)(139 . 329)(153 . 330))
 ()
-((75 . 182))
 ()
+((65 . 188))
 ()
-((66 . 185))
 ()
 ()
 ()
@@ -539,15 +553,15 @@
 ()
 ()
 ()
+((116 . 202))
 ()
-((112 . 199))
 ()
 ()
 ()
+((117 . 207))
 ()
-((113 . 204))
+((31 . 209)(105 . 190)(106 . 191)(107 . 192)(108 . 193)(109 . 194)(110 . 195)(111 . 196)(112 . 197)(113 . 198)(114 . 199)(129 . 232)(144 . 339)(159 . 340))
 ()
-((31 . 206)(101 . 187)(102 . 188)(103 . 189)(104 . 190)(105 . 191)(106 . 192)(107 . 193)(108 . 194)(109 . 195)(110 . 196)(125 . 229)(139 . 329)(153 . 330))
 ()
 ()
 ()
@@ -556,22 +570,22 @@
 ()
 ()
 ()
+((83 . 333)(121 . 219)(122 . 221)(123 . 222)(124 . 223))
 ()
-((88 . 323)(117 . 216)(118 . 218)(119 . 219)(120 . 220))
 ()
 ()
 ()
 ()
+((124 . 225))
 ()
-((120 . 222))
 ()
 ()
 ()
+((33 . 230)(34 . 337))
 ()
-((33 . 227)(34 . 326))
 ()
+((130 . 233))
 ()
-((126 . 230))
 ()
 ()
 ()
@@ -582,119 +596,123 @@
 ()
 ()
 ()
-((135 . 241))
+((140 . 245)(141 . 332)(142 . 327))
 ()
 ()
 ()
+((142 . 249))
 ()
+((142 . 328)(145 . 251)(153 . 331))
 ()
 ()
+((146 . 254)(154 . 330))
 ()
-((140 . 249)(148 . 322))
 ()
 ()
-((141 . 252)(149 . 321))
 ()
 ()
 ()
 ()
 ()
+((142 . 263))
 ()
 ()
+((142 . 266))
 ()
 ()
 ()
 ()
+((34 . 288)(157 . 271))
 ()
 ()
+((31 . 274)(105 . 190)(106 . 191)(107 . 192)(108 . 193)(109 . 194)(110 . 195)(111 . 196)(112 . 197)(113 . 198)(114 . 199)(129 . 232)(144 . 339)(159 . 340))
 ()
-((34 . 284)(151 . 267))
 ()
+((31 . 277)(105 . 190)(106 . 191)(107 . 192)(108 . 193)(109 . 194)(110 . 195)(111 . 196)(112 . 197)(113 . 198)(114 . 199)(129 . 232)(144 . 339)(159 . 340))
 ()
-((31 . 270)(101 . 187)(102 . 188)(103 . 189)(104 . 190)(105 . 191)(106 . 192)(107 . 193)(108 . 194)(109 . 195)(110 . 196)(125 . 229)(139 . 329)(153 . 330))
+((31 . 279)(105 . 190)(106 . 191)(107 . 192)(108 . 193)(109 . 194)(110 . 195)(111 . 196)(112 . 197)(113 . 198)(114 . 199)(129 . 232)(144 . 339)(159 . 340))
 ()
+((163 . 281))
+((164 . 282))
 ()
-((31 . 273)(101 . 187)(102 . 188)(103 . 189)(104 . 190)(105 . 191)(106 . 192)(107 . 193)(108 . 194)(109 . 195)(110 . 196)(125 . 229)(139 . 329)(153 . 330))
 ()
-((31 . 275)(101 . 187)(102 . 188)(103 . 189)(104 . 190)(105 . 191)(106 . 192)(107 . 193)(108 . 194)(109 . 195)(110 . 196)(125 . 229)(139 . 329)(153 . 330))
 ()
-((157 . 277))
-((158 . 278))
 ()
 ()
 ()
+((34 . 288)(157 . 289))
 ()
+((146 . 291)(154 . 330))
 ()
+((142 . 328)(145 . 293)(153 . 331))
 ()
-((34 . 284)(151 . 285))
+((140 . 295)(141 . 332)(142 . 327))
 ()
-((141 . 287)(149 . 321))
 ()
-((140 . 289)(148 . 322))
+((93 . 298)(95 . 297)(96 . 161)(97 . 162))
 ()
 ()
+((171 . 301))
 ()
-((164 . 293))
+((171 . 303))
 ()
-((164 . 295))
+((76 . 305)(77 . 334))
 ()
-((81 . 297)(82 . 324))
 ()
-((71 . 299)(91 . 298)(92 . 158)(93 . 159))
+((65 . 308))
 ()
-((66 . 301))
+((51 . 310)(72 . 309))
 ()
-((51 . 303)(77 . 302))
 ()
+((19 . 338)(20 . 17)(24 . 313))
 ()
-((19 . 327)(20 . 17)(24 . 306))
+((19 . 338)(20 . 17)(22 . 315)(23 . 314)(24 . 21))
 ()
-((19 . 327)(20 . 17)(22 . 308)(23 . 307)(24 . 21))
+((19 . 317)(20 . 17))
+((172 . 318))
 ()
-((19 . 310)(20 . 17))
-((165 . 311))
+((172 . 320))
 ()
-((165 . 313))
+((14 . 322)(28 . 321)(29 . 27)(30 . 28))
 ()
-((14 . 315)(28 . 314)(29 . 27)(30 . 28))
+((16 . 13)(19 . 319)(20 . 17))
 ()
-((16 . 13)(19 . 312)(20 . 17))
+((92 . 155))
 ()
 ()
 ()
 ()
 ()
 ()
-((88 . 323)(117 . 290)(118 . 218)(119 . 219)(120 . 220))
 ()
+((83 . 333)(121 . 296)(122 . 221)(123 . 222)(124 . 223))
 ()
-((33 . 304)(34 . 326))
+((68 . 306)(88 . 335)(89 . 153)(90 . 154))
 ()
+((33 . 311)(34 . 337))
 ()
 ()
-((31 . 271)(101 . 187)(102 . 188)(103 . 189)(104 . 190)(105 . 191)(106 . 192)(107 . 193)(108 . 194)(109 . 195)(110 . 196)(125 . 229)(139 . 329)(153 . 330))
-((31 . 37)(101 . 187)(102 . 188)(103 . 189)(104 . 190)(105 . 191)(106 . 192)(107 . 193)(108 . 194)(109 . 195)(110 . 196)(125 . 229)(139 . 329)(153 . 330)))
+((31 . 275)(105 . 190)(106 . 191)(107 . 192)(108 . 193)(109 . 194)(110 . 195)(111 . 196)(112 . 197)(113 . 198)(114 . 199)(129 . 232)(144 . 339)(159 . 340))
+((31 . 37)(105 . 190)(106 . 191)(107 . 192)(108 . 193)(109 . 194)(110 . 195)(111 . 196)(112 . 197)(113 . 198)(114 . 199)(129 . 232)(144 . 339)(159 . 340)))
 0 
 
 2 
 
-#83((MODULE-DEFINITION . #S(ZEBU::ZB-RULE :-NAME MODULE-DEFINITION :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-IDENTIFIER "DEFINITIONS" "::=" "BEGIN" MODULE-BODY "END") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE MODULE-DEFINITION :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL IDENTIFIER :-VALUE MODULE-IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL BODY :-VALUE MODULE-BODY))) :-BUILD-FN MODULE-DEFINITION1206))))
+#88((MODULE-DEFINITION . #S(ZEBU::ZB-RULE :-NAME MODULE-DEFINITION :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-IDENTIFIER "DEFINITIONS" "::=" "BEGIN" MODULE-BODY "END") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE MODULE-DEFINITION :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL IDENTIFIER :-VALUE MODULE-IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL BODY :-VALUE MODULE-BODY))) :-BUILD-FN MODULE-DEFINITION216))))
 (MODULE-IDENTIFIER . #S(ZEBU::ZB-RULE :-NAME MODULE-IDENTIFIER :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (MODULE-REFERENCE . #S(ZEBU::ZB-RULE :-NAME MODULE-REFERENCE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(MODULE-BODY . #S(ZEBU::ZB-RULE :-NAME MODULE-BODY :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (EXPORTS IMPORTS ASSIGNMENT*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE MODULE-BODY :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL ASSIGNMENT-LIST :-VALUE ASSIGNMENT*) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL EXPORTS :-VALUE EXPORTS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL IMPORTS :-VALUE IMPORTS))) :-BUILD-FN MODULE-BODY1205) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(EXPORTS . #S(ZEBU::ZB-RULE :-NAME EXPORTS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("EXPORTS" SYMBOL*\,1$ ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE EXPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL LIST :-VALUE SYMBOL*\,1$))) :-BUILD-FN EXPORTS1203) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("EXPORTS" "ALL" ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE EXPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL ALL-EXPORTS :-VALUE T))) :-BUILD-FN EXPORTS1204) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(MODULE-BODY . #S(ZEBU::ZB-RULE :-NAME MODULE-BODY :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (EXPORTS IMPORTS ASSIGNMENT*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE MODULE-BODY :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL ASSIGNMENT-LIST :-VALUE ASSIGNMENT*) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL EXPORTS :-VALUE EXPORTS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL IMPORTS :-VALUE IMPORTS))) :-BUILD-FN MODULE-BODY215) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(EXPORTS . #S(ZEBU::ZB-RULE :-NAME EXPORTS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("EXPORTS" SYMBOL*\,1$ ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE EXPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL LIST :-VALUE SYMBOL*\,1$))) :-BUILD-FN EXPORTS213) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("EXPORTS" "ALL" ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE EXPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL ALL-EXPORTS :-VALUE T))) :-BUILD-FN EXPORTS214) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (SYMBOL . #S(ZEBU::ZB-RULE :-NAME SYMBOL :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(IMPORTS . #S(ZEBU::ZB-RULE :-NAME IMPORTS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("IMPORTS" SYMBOLS-FROM-MODULE* ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE IMPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALID :-VALUE T) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL LIST :-VALUE SYMBOLS-FROM-MODULE*))) :-BUILD-FN IMPORTS1202) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(SYMBOLS-FROM-MODULE . #S(ZEBU::ZB-RULE :-NAME SYMBOLS-FROM-MODULE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL+\,1$ "FROM" GLOBAL-MODULE-REFERENCE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE SYMBOLS-FROM-MODULE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL SYMBOLS :-VALUE SYMBOL+\,1$) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL GLOBAL-MODULE-REFERENCE :-VALUE GLOBAL-MODULE-REFERENCE))) :-BUILD-FN SYMBOLS-FROM-MODULE1201))))
+(IMPORTS . #S(ZEBU::ZB-RULE :-NAME IMPORTS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("IMPORTS" SYMBOLS-FROM-MODULE* ";") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE IMPORTS :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALID :-VALUE T) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL LIST :-VALUE SYMBOLS-FROM-MODULE*))) :-BUILD-FN IMPORTS212) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(SYMBOLS-FROM-MODULE . #S(ZEBU::ZB-RULE :-NAME SYMBOLS-FROM-MODULE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL+\,1$ "FROM" GLOBAL-MODULE-REFERENCE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE SYMBOLS-FROM-MODULE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL SYMBOLS :-VALUE SYMBOL+\,1$) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL GLOBAL-MODULE-REFERENCE :-VALUE GLOBAL-MODULE-REFERENCE))) :-BUILD-FN SYMBOLS-FROM-MODULE211))))
 (GLOBAL-MODULE-REFERENCE . #S(ZEBU::ZB-RULE :-NAME GLOBAL-MODULE-REFERENCE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (REFERENCE . #S(ZEBU::ZB-RULE :-NAME REFERENCE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-REFERENCE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(ASSIGNMENT . #S(ZEBU::ZB-RULE :-NAME ASSIGNMENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-ASSIGNMENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE TYPE-ASSIGNMENT))) :-BUILD-FN ASSIGNMENT1199) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-ASSIGNMENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :VALUE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE VALUE-ASSIGNMENT))) :-BUILD-FN ASSIGNMENT1200))))
+(ASSIGNMENT . #S(ZEBU::ZB-RULE :-NAME ASSIGNMENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-ASSIGNMENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE TYPE-ASSIGNMENT))) :-BUILD-FN ASSIGNMENT209) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (VALUE-ASSIGNMENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :VALUE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE VALUE-ASSIGNMENT))) :-BUILD-FN ASSIGNMENT210))))
 (TYPE-ASSIGNMENT . #S(ZEBU::ZB-RULE :-NAME TYPE-ASSIGNMENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-REFERENCE "::=" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (TYPE-REFERENCE "MACRO" "::=" "BEGIN" GARBAGE+ "END") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (GARBAGE . #S(ZEBU::ZB-RULE :-NAME GARBAGE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (ANYTHING) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(VALUE-ASSIGNMENT . #S(ZEBU::ZB-RULE :-NAME VALUE-ASSIGNMENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER TYPE "::=" VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE VALUE))) :-BUILD-FN VALUE-ASSIGNMENT1191) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-IDENTITY" "STATUS" STATUS "DESCRIPTION" DESCRIPTION OBJECT-IDENTITY-REFERENCE "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-IDENTITY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT1192) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "MODULE-IDENTITY" "LAST-UPDATED" LAST-UPDATED "ORGANIZATION" ORGANIZATION "CONTACT-INFO" CONTACT-INFO "DESCRIPTION" DESCRIPTION MODULE-REVISION* "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :MODULE-IDENTITY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT1193) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-TYPE" "SYNTAX" TYPE OBJECT-TYPE-UNITS "MAX-ACCESS" MAX-ACCESS "STATUS" STATUS "DESCRIPTION" DESCRIPTION OBJECT-TYPE-INDEX OBJECT-TYPE-AUGMENTS OBJECT-TYPE-REFERENCE OBJECT-TYPE-DEFVAL "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT1194) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "NOTIFICATION-TYPE" NOTIFICATION-TYPE-OBJECTS "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :NOTIFICATION-TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT1195) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "NOTIFICATION-GROUP" "NOTIFICATIONS" "{" IDENTIFIER+\,1$ "}" "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :NOTIFICATION-GROUP) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT1196) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "MODULE-COMPLIANCE" "STATUS" STATUS "DESCRIPTION" DESCRIPTION "MODULE" "MANDATORY-GROUPS" "{" IDENTIFIER+\,1$ "}" MODULE-COMPLIANCE-BODY* MODULE-COMPLIANCE-OTHER "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :MODULE-COMPLIANCE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT1197) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-GROUP" "OBJECTS" "{" IDENTIFIER+\,1$ "}" "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-GROUP) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT1198))))
+(VALUE-ASSIGNMENT . #S(ZEBU::ZB-RULE :-NAME VALUE-ASSIGNMENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER TYPE "::=" VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE VALUE))) :-BUILD-FN VALUE-ASSIGNMENT201) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-IDENTITY" "STATUS" STATUS "DESCRIPTION" DESCRIPTION OBJECT-IDENTITY-REFERENCE "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-IDENTITY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT202) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "MODULE-IDENTITY" "LAST-UPDATED" LAST-UPDATED "ORGANIZATION" ORGANIZATION "CONTACT-INFO" CONTACT-INFO "DESCRIPTION" DESCRIPTION MODULE-REVISION* "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :MODULE-IDENTITY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT203) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-TYPE" "SYNTAX" TYPE OBJECT-TYPE-UNITS OBJECT-TYPE-ACCESS "STATUS" STATUS "DESCRIPTION" DESCRIPTION OBJECT-TYPE-INDEX OBJECT-TYPE-AUGMENTS OBJECT-TYPE-REFERENCE OBJECT-TYPE-DEFVAL "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT204) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "NOTIFICATION-TYPE" NOTIFICATION-TYPE-OBJECTS "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :NOTIFICATION-TYPE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT205) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "NOTIFICATION-GROUP" "NOTIFICATIONS" "{" IDENTIFIER+\,1$ "}" "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :NOTIFICATION-GROUP) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT206) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "MODULE-COMPLIANCE" "STATUS" STATUS "DESCRIPTION" DESCRIPTION MODULE-COMPLIANCE-BODY+ "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :MODULE-COMPLIANCE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT207) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "OBJECT-GROUP" "OBJECTS" "{" IDENTIFIER+\,1$ "}" "STATUS" STATUS "DESCRIPTION" DESCRIPTION "::=" OBJECT-IDENTIFIER-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE VALUE-ASSIGNMENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL TYPE :-VALUE :OBJECT-GROUP) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJECT-IDENTIFIER-VALUE))) :-BUILD-FN VALUE-ASSIGNMENT208))))
 (STATUS . #S(ZEBU::ZB-RULE :-NAME STATUS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(MAX-ACCESS . #S(ZEBU::ZB-RULE :-NAME MAX-ACCESS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(MIN-ACCESS . #S(ZEBU::ZB-RULE :-NAME MIN-ACCESS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (DESCRIPTION . #S(ZEBU::ZB-RULE :-NAME DESCRIPTION :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (LAST-UPDATED . #S(ZEBU::ZB-RULE :-NAME LAST-UPDATED :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (ORGANIZATION . #S(ZEBU::ZB-RULE :-NAME ORGANIZATION :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
@@ -708,13 +726,17 @@
 (OBJECT-TYPE-DEFVAL-VALUE . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-DEFVAL-VALUE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (HSTRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENT) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("{" IDENTIFIER*\,1$ "}") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (OBJECT-TYPE-UNITS . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-UNITS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("UNITS" STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (OBJECT-TYPE-REFERENCE . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-REFERENCE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("REFERENCE" STRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(MODULE-COMPLIANCE-BODY . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-BODY :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-GROUP) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-OBJECT) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(MODULE-COMPLIANCE-OTHER . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-OTHER :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("MODULE" TYPE-REFERENCE "MANDATORY-GROUPS" "{" IDENTIFIER+\,1$ "}") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(OBJECT-TYPE-ACCESS . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-ACCESS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("MAX-ACCESS" IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("ACCESS" IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(MODULE-COMPLIANCE-BODY . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-BODY :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-LOCAL) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-OTHER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
+(MODULE-COMPLIANCE-LOCAL . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-LOCAL :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("MODULE" MODULE-COMPLIANCE-MANDATORY MODULE-COMPLIANCE-ITEM*) :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(MODULE-COMPLIANCE-MANDATORY . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-MANDATORY :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("MANDATORY-GROUPS" "{" IDENTIFIER+\,1$ "}") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(MODULE-COMPLIANCE-ITEM . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-ITEM :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-GROUP) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-OBJECT) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
+(MODULE-COMPLIANCE-OTHER . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-OTHER :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("MODULE" TYPE-REFERENCE "MANDATORY-GROUPS" "{" IDENTIFIER+\,1$ "}" MODULE-COMPLIANCE-ITEM*) :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (MODULE-COMPLIANCE-GROUP . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-GROUP :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("GROUP" IDENTIFIER "DESCRIPTION" DESCRIPTION) :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (MODULE-COMPLIANCE-OBJECT . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-OBJECT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("OBJECT" IDENTIFIER MODULE-COMPLIANCE-OBJECT-SYNTAX MODULE-COMPLIANCE-OBJECT-WRITE-SYNTAX MODULE-COMPLIANCE-OBJECT-ACCESS "DESCRIPTION" DESCRIPTION) :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (MODULE-COMPLIANCE-OBJECT-SYNTAX . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-OBJECT-SYNTAX :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("SYNTAX" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (MODULE-COMPLIANCE-OBJECT-WRITE-SYNTAX . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-OBJECT-WRITE-SYNTAX :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("WRITE-SYNTAX" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(MODULE-COMPLIANCE-OBJECT-ACCESS . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-OBJECT-ACCESS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("MIN-ACCESS" MIN-ACCESS) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(MODULE-COMPLIANCE-OBJECT-ACCESS . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-OBJECT-ACCESS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("MIN-ACCESS" IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (NOTIFICATION-TYPE-OBJECTS . #S(ZEBU::ZB-RULE :-NAME NOTIFICATION-TYPE-OBJECTS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("OBJECTS" "{" IDENTIFIER+\,1$ "}") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (TYPE . #S(ZEBU::ZB-RULE :-NAME TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (BUILTIN-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAMED-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (BUILTIN-TYPE . #S(ZEBU::ZB-RULE :-NAME BUILTIN-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-IDENTIFIER-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (CHOICE-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (STRING-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (INTEGER-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SEQUENCE-OF-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SEQUENCE-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (TEXTUAL-CONVENTION-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (TAGGED-TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
@@ -725,40 +747,43 @@
 (OBJECT-IDENTIFIER-TYPE . #S(ZEBU::ZB-RULE :-NAME OBJECT-IDENTIFIER-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("OBJECT" "IDENTIFIER") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (VALUE . #S(ZEBU::ZB-RULE :-NAME VALUE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (BUILTIN-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (BUILTIN-VALUE . #S(ZEBU::ZB-RULE :-NAME BUILTIN-VALUE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-IDENTIFIER-VALUE) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(OBJECT-IDENTIFIER-VALUE . #S(ZEBU::ZB-RULE :-NAME OBJECT-IDENTIFIER-VALUE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("{" OBJ-ID-COMPONENT+ "}") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE OBJECT-IDENTIFIER-VALUE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJ-ID-COMPONENT+))) :-BUILD-FN OBJECT-IDENTIFIER-VALUE1190))))
+(OBJECT-IDENTIFIER-VALUE . #S(ZEBU::ZB-RULE :-NAME OBJECT-IDENTIFIER-VALUE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("{" OBJ-ID-COMPONENT+ "}") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE OBJECT-IDENTIFIER-VALUE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE OBJ-ID-COMPONENT+))) :-BUILD-FN OBJECT-IDENTIFIER-VALUE200))))
 (OBJ-ID-COMPONENT . #S(ZEBU::ZB-RULE :-NAME OBJ-ID-COMPONENT :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAME-AND-NUMBER-FORM) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAME-FORM) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NUMBER-FORM) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(NAME-AND-NUMBER-FORM . #S(ZEBU::ZB-RULE :-NAME NAME-AND-NUMBER-FORM :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "(" NUMBER-FORM ")") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE OBJ-ID-COMPONENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE NUMBER-FORM))) :-BUILD-FN NAME-AND-NUMBER-FORM1189))))
+(NAME-AND-NUMBER-FORM . #S(ZEBU::ZB-RULE :-NAME NAME-AND-NUMBER-FORM :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "(" NUMBER-FORM ")") :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE OBJ-ID-COMPONENT :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL NAME :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL VALUE :-VALUE NUMBER-FORM))) :-BUILD-FN NAME-AND-NUMBER-FORM199))))
 (NAME-FORM . #S(ZEBU::ZB-RULE :-NAME NAME-FORM :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (NUMBER-FORM . #S(ZEBU::ZB-RULE :-NAME NUMBER-FORM :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (CHOICE-TYPE . #S(ZEBU::ZB-RULE :-NAME CHOICE-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("CHOICE" "{" GARBAGE+ "}") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (STRING-TYPE . #S(ZEBU::ZB-RULE :-NAME STRING-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (STRING-TYPE-NAME STRING-OPTIONS) :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(STRING-TYPE-NAME . #S(ZEBU::ZB-RULE :-NAME STRING-TYPE-NAME :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("OCTET" "STRING") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("DisplayString") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("PhysAddress") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("SnmpAdminString") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("DateAndTime") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("InternationalDisplayString") :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(STRING-OPTIONS . #S(ZEBU::ZB-RULE :-NAME STRING-OPTIONS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("(" "SIZE" "(" NUMBERS ")" ")") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(NUMBERS . #S(ZEBU::ZB-RULE :-NAME NUMBERS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER "|" SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER ".." SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
+(STRING-TYPE-NAME . #S(ZEBU::ZB-RULE :-NAME STRING-TYPE-NAME :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("OCTET" "STRING") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("DisplayString") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("PhysAddress") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("SnmpAdminString") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("DateAndTime") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("InternationalDisplayString") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("Opaque") :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
+(STRING-OPTIONS . #S(ZEBU::ZB-RULE :-NAME STRING-OPTIONS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("(" "SIZE" "(" NUMBERS+\|1$ ")" ")") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(NUMBERS . #S(ZEBU::ZB-RULE :-NAME NUMBERS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (COMMON-NUMBER ".." COMMON-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (COMMON-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (INTEGER-TYPE . #S(ZEBU::ZB-RULE :-NAME INTEGER-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (INTEGER-TYPE-NAME "(" SPLITED-NUMBERS+\|1$ ")") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (INTEGER-TYPE-NAME "{" NAMED-NUMBER+\,1$ "}") :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (INTEGER-TYPE-NAME) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (INTEGER-TYPE-NAME . #S(ZEBU::ZB-RULE :-NAME INTEGER-TYPE-NAME :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("INTEGER") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("Integer32") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("Unsigned32") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("RowStatus") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("SnmpSecurityModel") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("BITS") :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
-(SPLITED-NUMBERS . #S(ZEBU::ZB-RULE :-NAME SPLITED-NUMBERS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER ".." SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(NAMED-NUMBER . #S(ZEBU::ZB-RULE :-NAME NAMED-NUMBER :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "(" SIGNED-NUMBER ")") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(SPLITED-NUMBERS . #S(ZEBU::ZB-RULE :-NAME SPLITED-NUMBERS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (COMMON-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (COMMON-NUMBER ".." COMMON-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(NAMED-NUMBER . #S(ZEBU::ZB-RULE :-NAME NAMED-NUMBER :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "(" COMMON-NUMBER ")") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
+(COMMON-NUMBER . #S(ZEBU::ZB-RULE :-NAME COMMON-NUMBER :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (HSTRING) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (SEQUENCE-TYPE . #S(ZEBU::ZB-RULE :-NAME SEQUENCE-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("SEQUENCE" "{" GARBAGE* "}") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (SEQUENCE-OF-TYPE . #S(ZEBU::ZB-RULE :-NAME SEQUENCE-OF-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("SEQUENCE" "OF" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (TAGGED-TYPE . #S(ZEBU::ZB-RULE :-NAME TAGGED-TYPE :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (TAG TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (TAG "IMPLICIT" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (TAG "EXPLICIT" TYPE) :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (TAG . #S(ZEBU::ZB-RULE :-NAME TAG :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("[" CLASS CLASS-NUMBER "]") :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
 (CLASS-NUMBER . #S(ZEBU::ZB-RULE :-NAME CLASS-NUMBER :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SIGNED-NUMBER) :-SEMANTICS NIL :-BUILD-FN IDENTITY))))
 (CLASS . #S(ZEBU::ZB-RULE :-NAME CLASS :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX ("UNIVERSAL") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("APPLICATION") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("PRIVATE") :-SEMANTICS NIL :-BUILD-FN IDENTITY) #S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*))))
-(GARBAGE* . #S(ZEBU::ZB-RULE :-NAME GARBAGE* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE GARBAGE*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE GARBAGE*))) :-BUILD-FN GARBAGE*1188))))
-(NAMED-NUMBER+\,1$ . #S(ZEBU::ZB-RULE :-NAME NAMED-NUMBER+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAMED-NUMBER) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NAMED-NUMBER))) :-BUILD-FN NAMED-NUMBER+\,1$1186) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAMED-NUMBER "," NAMED-NUMBER+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NAMED-NUMBER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE NAMED-NUMBER+\,1$))) :-BUILD-FN NAMED-NUMBER+\,1$1187))))
-(SPLITED-NUMBERS+\|1$ . #S(ZEBU::ZB-RULE :-NAME SPLITED-NUMBERS+\|1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SPLITED-NUMBERS) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SPLITED-NUMBERS))) :-BUILD-FN SPLITED-NUMBERS+\|1$1184) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SPLITED-NUMBERS "|" SPLITED-NUMBERS+\|1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SPLITED-NUMBERS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SPLITED-NUMBERS+\|1$))) :-BUILD-FN SPLITED-NUMBERS+\|1$1185))))
-(OBJ-ID-COMPONENT+ . #S(ZEBU::ZB-RULE :-NAME OBJ-ID-COMPONENT+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJ-ID-COMPONENT))) :-BUILD-FN OBJ-ID-COMPONENT+1182) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENT OBJ-ID-COMPONENT+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJ-ID-COMPONENT) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE OBJ-ID-COMPONENT+))) :-BUILD-FN OBJ-ID-COMPONENT+1183))))
-(|Rest-IDENTIFIER*,1$| . #S(ZEBU::ZB-RULE :-NAME |Rest-IDENTIFIER*,1$| :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("," IDENTIFIER |Rest-IDENTIFIER*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-IDENTIFIER*,1$|))) :-BUILD-FN |Rest-IDENTIFIER*,1$1181|))))
-(IDENTIFIER*\,1$ . #S(ZEBU::ZB-RULE :-NAME IDENTIFIER*\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER |Rest-IDENTIFIER*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-IDENTIFIER*,1$|))) :-BUILD-FN IDENTIFIER*\,1$1180))))
-(OBJECT-TYPE-INDEX-VALUE+\,1$ . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-INDEX-VALUE+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-TYPE-INDEX-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJECT-TYPE-INDEX-VALUE))) :-BUILD-FN OBJECT-TYPE-INDEX-VALUE+\,1$1178) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-TYPE-INDEX-VALUE "," OBJECT-TYPE-INDEX-VALUE+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJECT-TYPE-INDEX-VALUE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE OBJECT-TYPE-INDEX-VALUE+\,1$))) :-BUILD-FN OBJECT-TYPE-INDEX-VALUE+\,1$1179))))
-(MODULE-COMPLIANCE-BODY* . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-BODY* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-BODY MODULE-COMPLIANCE-BODY*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-BODY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-COMPLIANCE-BODY*))) :-BUILD-FN MODULE-COMPLIANCE-BODY*1177))))
-(IDENTIFIER+\,1$ . #S(ZEBU::ZB-RULE :-NAME IDENTIFIER+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER))) :-BUILD-FN IDENTIFIER+\,1$1175) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "," IDENTIFIER+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE IDENTIFIER+\,1$))) :-BUILD-FN IDENTIFIER+\,1$1176))))
-(MODULE-REVISION* . #S(ZEBU::ZB-RULE :-NAME MODULE-REVISION* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-REVISION MODULE-REVISION*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-REVISION) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-REVISION*))) :-BUILD-FN MODULE-REVISION*1174))))
-(GARBAGE+ . #S(ZEBU::ZB-RULE :-NAME GARBAGE+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE))) :-BUILD-FN GARBAGE+1172) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE GARBAGE+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE GARBAGE+))) :-BUILD-FN GARBAGE+1173))))
-(SYMBOL+\,1$ . #S(ZEBU::ZB-RULE :-NAME SYMBOL+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL))) :-BUILD-FN SYMBOL+\,1$1170) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL "," SYMBOL+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SYMBOL+\,1$))) :-BUILD-FN SYMBOL+\,1$1171))))
-(SYMBOLS-FROM-MODULE* . #S(ZEBU::ZB-RULE :-NAME SYMBOLS-FROM-MODULE* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOLS-FROM-MODULE SYMBOLS-FROM-MODULE*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOLS-FROM-MODULE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SYMBOLS-FROM-MODULE*))) :-BUILD-FN SYMBOLS-FROM-MODULE*1169))))
-(|Rest-SYMBOL*,1$| . #S(ZEBU::ZB-RULE :-NAME |Rest-SYMBOL*,1$| :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("," SYMBOL |Rest-SYMBOL*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-SYMBOL*,1$|))) :-BUILD-FN |Rest-SYMBOL*,1$1168|))))
-(SYMBOL*\,1$ . #S(ZEBU::ZB-RULE :-NAME SYMBOL*\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL |Rest-SYMBOL*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-SYMBOL*,1$|))) :-BUILD-FN SYMBOL*\,1$1167))))
-(ASSIGNMENT* . #S(ZEBU::ZB-RULE :-NAME ASSIGNMENT* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (ASSIGNMENT ASSIGNMENT*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE ASSIGNMENT) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE ASSIGNMENT*))) :-BUILD-FN ASSIGNMENT*1166))))
+(GARBAGE* . #S(ZEBU::ZB-RULE :-NAME GARBAGE* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE GARBAGE*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE GARBAGE*))) :-BUILD-FN GARBAGE*198))))
+(NAMED-NUMBER+\,1$ . #S(ZEBU::ZB-RULE :-NAME NAMED-NUMBER+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAMED-NUMBER) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NAMED-NUMBER))) :-BUILD-FN NAMED-NUMBER+\,1$196) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NAMED-NUMBER "," NAMED-NUMBER+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NAMED-NUMBER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE NAMED-NUMBER+\,1$))) :-BUILD-FN NAMED-NUMBER+\,1$197))))
+(SPLITED-NUMBERS+\|1$ . #S(ZEBU::ZB-RULE :-NAME SPLITED-NUMBERS+\|1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SPLITED-NUMBERS) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SPLITED-NUMBERS))) :-BUILD-FN SPLITED-NUMBERS+\|1$194) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SPLITED-NUMBERS "|" SPLITED-NUMBERS+\|1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SPLITED-NUMBERS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SPLITED-NUMBERS+\|1$))) :-BUILD-FN SPLITED-NUMBERS+\|1$195))))
+(NUMBERS+\|1$ . #S(ZEBU::ZB-RULE :-NAME NUMBERS+\|1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (NUMBERS) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NUMBERS))) :-BUILD-FN NUMBERS+\|1$192) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (NUMBERS "|" NUMBERS+\|1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE NUMBERS) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE NUMBERS+\|1$))) :-BUILD-FN NUMBERS+\|1$193))))
+(OBJ-ID-COMPONENT+ . #S(ZEBU::ZB-RULE :-NAME OBJ-ID-COMPONENT+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENT) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJ-ID-COMPONENT))) :-BUILD-FN OBJ-ID-COMPONENT+190) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJ-ID-COMPONENT OBJ-ID-COMPONENT+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJ-ID-COMPONENT) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE OBJ-ID-COMPONENT+))) :-BUILD-FN OBJ-ID-COMPONENT+191))))
+(MODULE-COMPLIANCE-ITEM* . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-ITEM* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-ITEM MODULE-COMPLIANCE-ITEM*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-ITEM) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-COMPLIANCE-ITEM*))) :-BUILD-FN MODULE-COMPLIANCE-ITEM*189))))
+(|Rest-IDENTIFIER*,1$| . #S(ZEBU::ZB-RULE :-NAME |Rest-IDENTIFIER*,1$| :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("," IDENTIFIER |Rest-IDENTIFIER*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-IDENTIFIER*,1$|))) :-BUILD-FN |Rest-IDENTIFIER*,1$188|))))
+(IDENTIFIER*\,1$ . #S(ZEBU::ZB-RULE :-NAME IDENTIFIER*\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER |Rest-IDENTIFIER*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-IDENTIFIER*,1$|))) :-BUILD-FN IDENTIFIER*\,1$187))))
+(OBJECT-TYPE-INDEX-VALUE+\,1$ . #S(ZEBU::ZB-RULE :-NAME OBJECT-TYPE-INDEX-VALUE+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-TYPE-INDEX-VALUE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJECT-TYPE-INDEX-VALUE))) :-BUILD-FN OBJECT-TYPE-INDEX-VALUE+\,1$185) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (OBJECT-TYPE-INDEX-VALUE "," OBJECT-TYPE-INDEX-VALUE+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE OBJECT-TYPE-INDEX-VALUE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE OBJECT-TYPE-INDEX-VALUE+\,1$))) :-BUILD-FN OBJECT-TYPE-INDEX-VALUE+\,1$186))))
+(MODULE-COMPLIANCE-BODY+ . #S(ZEBU::ZB-RULE :-NAME MODULE-COMPLIANCE-BODY+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-BODY) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-BODY))) :-BUILD-FN MODULE-COMPLIANCE-BODY+183) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-COMPLIANCE-BODY MODULE-COMPLIANCE-BODY+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-COMPLIANCE-BODY) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-COMPLIANCE-BODY+))) :-BUILD-FN MODULE-COMPLIANCE-BODY+184))))
+(IDENTIFIER+\,1$ . #S(ZEBU::ZB-RULE :-NAME IDENTIFIER+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER))) :-BUILD-FN IDENTIFIER+\,1$181) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (IDENTIFIER "," IDENTIFIER+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE IDENTIFIER) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE IDENTIFIER+\,1$))) :-BUILD-FN IDENTIFIER+\,1$182))))
+(MODULE-REVISION* . #S(ZEBU::ZB-RULE :-NAME MODULE-REVISION* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (MODULE-REVISION MODULE-REVISION*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE MODULE-REVISION) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE MODULE-REVISION*))) :-BUILD-FN MODULE-REVISION*180))))
+(GARBAGE+ . #S(ZEBU::ZB-RULE :-NAME GARBAGE+ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE))) :-BUILD-FN GARBAGE+178) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (GARBAGE GARBAGE+) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE GARBAGE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE GARBAGE+))) :-BUILD-FN GARBAGE+179))))
+(SYMBOL+\,1$ . #S(ZEBU::ZB-RULE :-NAME SYMBOL+\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL))) :-BUILD-FN SYMBOL+\,1$176) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL "," SYMBOL+\,1$) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SYMBOL+\,1$))) :-BUILD-FN SYMBOL+\,1$177))))
+(SYMBOLS-FROM-MODULE* . #S(ZEBU::ZB-RULE :-NAME SYMBOLS-FROM-MODULE* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOLS-FROM-MODULE SYMBOLS-FROM-MODULE*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOLS-FROM-MODULE) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE SYMBOLS-FROM-MODULE*))) :-BUILD-FN SYMBOLS-FROM-MODULE*175))))
+(|Rest-SYMBOL*,1$| . #S(ZEBU::ZB-RULE :-NAME |Rest-SYMBOL*,1$| :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX ("," SYMBOL |Rest-SYMBOL*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-SYMBOL*,1$|))) :-BUILD-FN |Rest-SYMBOL*,1$174|))))
+(SYMBOL*\,1$ . #S(ZEBU::ZB-RULE :-NAME SYMBOL*\,1$ :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (SYMBOL |Rest-SYMBOL*,1$|) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE SYMBOL) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE |Rest-SYMBOL*,1$|))) :-BUILD-FN SYMBOL*\,1$173))))
+(ASSIGNMENT* . #S(ZEBU::ZB-RULE :-NAME ASSIGNMENT* :-PRODUCTIONS (#S(ZEBU::PRODUCTION-RHS :-SYNTAX NIL :-SEMANTICS NIL :-BUILD-FN IDENTITY*) #S(ZEBU::PRODUCTION-RHS :-SYNTAX (ASSIGNMENT ASSIGNMENT*) :-SEMANTICS #S(ZEBU::FEAT-TERM :-TYPE KB-SEQUENCE :-SLOTS (#S(ZEBU::LABEL-VALUE-PAIR :-LABEL FIRST :-VALUE ASSIGNMENT) #S(ZEBU::LABEL-VALUE-PAIR :-LABEL REST :-VALUE ASSIGNMENT*))) :-BUILD-FN ASSIGNMENT*172))))
 )
\ No newline at end of file

Modified: trunk/asn.1/asn.1.zb
==============================================================================
--- trunk/asn.1/asn.1.zb	(original)
+++ trunk/asn.1/asn.1.zb	Tue Sep 25 05:08:03 2007
@@ -12,7 +12,7 @@
  :lex-cats ((Type-Reference "[A-Z][a-zA-Z0-9-]*")
 	    (Signed-Number "-?[0-9]+")
 	    (Anything "[^ ]+")
-            (HString "'[0-9]*'H")))
+            (HString "'[0-9a-fA-F]*'[hH]")))
 
 ;; Domain Definitions
 
@@ -97,7 +97,7 @@
                    | Identifier "OBJECT-TYPE"
                      "SYNTAX" Type
                      Object-Type-Units
-                     "MAX-ACCESS" Max-Access
+                     Object-Type-Access
                      "STATUS" Status
                      "DESCRIPTION" Description
                      Object-Type-Index
@@ -130,9 +130,7 @@
                    | Identifier "MODULE-COMPLIANCE"
                      "STATUS" Status
                      "DESCRIPTION" Description
-                     "MODULE" "MANDATORY-GROUPS" "{" Identifier+ "," "}"
-                     Module-Compliance-Body* " "
-                     Module-Compliance-Other
+                     Module-Compliance-Body+ " "
                      "::=" Object-Identifier-Value
                      { Value-Assignment:[(name Identifier)
                                          (type :module-compliance)
@@ -149,8 +147,6 @@
                    ;
 
 Status --> Identifier;
-Max-Access --> Identifier;
-Min-Access --> Identifier;
 Description --> String;
 Last-Updated --> String;
 Organization --> String;
@@ -168,11 +164,16 @@
 
 Object-Type-Units --> "UNITS" String |;
 Object-Type-Reference --> "REFERENCE" String |;
-Module-Compliance-Body --> Module-Compliance-Group | Module-Compliance-Object;
-
+Object-Type-Access --> "MAX-ACCESS" Identifier | "ACCESS" Identifier;
+Module-Compliance-Body --> Module-Compliance-Local | Module-Compliance-Other;
+Module-Compliance-Local --> "MODULE"
+                            Module-Compliance-Mandatory
+                            Module-Compliance-Item* " ";
+Module-Compliance-Mandatory --> "MANDATORY-GROUPS" "{" Identifier+ "," "}" |;
+Module-Compliance-Item --> Module-Compliance-Group | Module-Compliance-Object;
 Module-Compliance-Other --> "MODULE" Type-Reference
                             "MANDATORY-GROUPS" "{" Identifier+ "," "}"
-                          | ;
+                            Module-Compliance-Item* " ";
 
 Module-Compliance-Group --> "GROUP" Identifier "DESCRIPTION" Description;
 Module-Compliance-Object --> "OBJECT" Identifier
@@ -182,7 +183,7 @@
                              "DESCRIPTION" Description;
 Module-Compliance-Object-Syntax --> "SYNTAX" Type |;
 Module-Compliance-Object-Write-Syntax --> "WRITE-SYNTAX" Type |;
-Module-Compliance-Object-Access --> "MIN-ACCESS" Min-Access |;
+Module-Compliance-Object-Access --> "MIN-ACCESS" Identifier |;
 
 Notification-Type-Objects --> "OBJECTS" "{" Identifier+ "," "}" |;
 
@@ -233,13 +234,13 @@
                    | "PhysAddress"
                    | "SnmpAdminString"
                    | "DateAndTime"
-                   | "InternationalDisplayString" ;
+                   | "InternationalDisplayString"
+                   | "Opaque" ;
 
-String-Options -->  "(" "SIZE" "(" Numbers ")" ")" |;
+String-Options -->  "(" "SIZE" "(" Numbers+ "|" ")" ")" |;
 
-Numbers --> Signed-Number "|" Signed-Number
-          | Signed-Number ".." Signed-Number
-          | Signed-Number;
+Numbers --> Common-Number ".." Common-Number
+          | Common-Number;
 
 Integer-Type --> Integer-Type-Name "(" Splited-Numbers+ "|" ")"
                | Integer-Type-Name "{" Named-Number+ "," "}"
@@ -252,8 +253,10 @@
                     | "SnmpSecurityModel"
                     | "BITS" ;
 
-Splited-Numbers --> Signed-Number | Signed-Number ".." Signed-Number;
-Named-Number --> Identifier "(" Signed-Number ")";
+Splited-Numbers --> Common-Number | Common-Number ".." Common-Number;
+Named-Number --> Identifier "(" Common-Number ")";
+
+Common-Number --> Signed-Number | HString;
 
 Sequence-Type --> "SEQUENCE" "{" Garbage* " " "}";
 Sequence-Of-Type --> "SEQUENCE" "OF" Type;

Modified: trunk/asn.1/package.lisp
==============================================================================
--- trunk/asn.1/package.lisp	(original)
+++ trunk/asn.1/package.lisp	Tue Sep 25 05:08:03 2007
@@ -5,6 +5,7 @@
    #+lispworks :stream
    #+sbcl :sb-gray
    #+clisp :gray
-   :zebu))
+   :zebu)
+  (:export *mib-tree* *mib-index*))
 
 (in-package :asn.1)

Modified: trunk/asn.1/parse.lisp
==============================================================================
--- trunk/asn.1/parse.lisp	(original)
+++ trunk/asn.1/parse.lisp	Tue Sep 25 05:08:03 2007
@@ -3,12 +3,30 @@
 (defparameter *mib-list*
   '("SNMPv2-SMI"
     "SNMPv2-MIB"
+    "SNMPv2-TM"
+    "SNMP-TARGET-MIB"
+    "SNMP-FRAMEWORK-MIB"
+    "SNMP-COMMUNITY-MIB"
+    "SNMP-MPD-MIB"
+    "SNMP-NOTIFICATION-MIB"
+    "SNMP-PROXY-MIB"
+    "SNMP-VIEW-BASED-ACM-MIB"
+    "SNMP-USER-BASED-SM-MIB"
+    "SNMP-USM-AES-MIB"
+    "SNMP-USM-DH-OBJECTS-MIB"
     "IF-MIB"
+    "INET-ADDRESS-MIB"
+    "TRANSPORT-ADDRESS-MIB"
     "IP-MIB" ;; one char patch: string not close
+    "TCP-MIB"
+    "UDP-MIB"
+    "IPV6-MIB"
+    "IPV6-ICMP-MIB"
+    "IPV6-TCP-MIB"
+    "IPV6-UDP-MIB"
+    "IP-FORWARD-MIB"
     "AGENTX-MIB"
     "BGP4-MIB"
-    "SNMP-TARGET-MIB"
-    "SNMP-FRAMEWORK-MIB"
     "DISMAN-EVENT-MIB"
     "DISMAN-SCHEDULE-MIB"
     "DISMAN-SCRIPT-MIB"
@@ -21,8 +39,22 @@
     "IANA-LANGUAGE-MIB"
     "IANA-RTPROTO-MIB"
     "IF-INVERTED-STACK-MIB"
-    "INET-ADDRESS-MIB"
-    "IP-FORWARD-MIB"))
+    "NET-SNMP-MIB"
+    "NET-SNMP-TC"
+    "NET-SNMP-AGENT-MIB" ;; a patch to deal with comment: -- ... --
+    "NET-SNMP-EXTEND-MIB"
+    "NET-SNMP-EXAMPLES-MIB"
+    "UCD-SNMP-MIB"
+    "UCD-DISKIO-MIB"
+    "UCD-IPFWACC-MIB"
+    "UCD-DLMOD-MIB"
+    "UCD-DEMO-MIB"
+    "LM-SENSORS-MIB"
+    "RMON-MIB"
+    "NOTIFICATION-LOG-MIB"
+    "SMUX-MIB"
+    "LINUX-HA-MIB"     ;; heartbeat-2
+    ))
 
 (defparameter *mib-pathname-base*
   (merge-pathnames

Added: trunk/mibs/IPV6-ICMP-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/IPV6-ICMP-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,529 @@
+ IPV6-ICMP-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+     MODULE-IDENTITY, OBJECT-TYPE,
+     Counter32, mib-2                 FROM SNMPv2-SMI
+     MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF
+     ipv6IfEntry                      FROM IPV6-MIB;
+
+ ipv6IcmpMIB MODULE-IDENTITY
+     LAST-UPDATED "9801082155Z"
+     ORGANIZATION "IETF IPv6 Working Group"
+     CONTACT-INFO
+       "           Dimitry Haskin
+
+           Postal: Bay Networks, Inc.
+                   660 Techology Park Drive.
+                   Billerica, MA  01821
+                   US
+
+              Tel: +1-978-916-8124
+           E-mail: dhaskin at baynetworks.com
+
+                   Steve Onishi
+
+           Postal: Bay Networks, Inc.
+                   3 Federal Street
+                   Billerica, MA 01821
+                   US
+
+              Tel: +1-978-916-3816
+           E-mail: sonishi at baynetworks.com"
+     DESCRIPTION
+       "The MIB module for entities implementing
+        the ICMPv6."
+     ::= { mib-2 56 }
+
+ -- the ICMPv6 group
+
+ ipv6IcmpMIBObjects OBJECT IDENTIFIER ::= { ipv6IcmpMIB  1 }
+
+ -- Per-interface ICMPv6 statistics table
+
+ ipv6IfIcmpTable OBJECT-TYPE
+     SYNTAX     SEQUENCE OF Ipv6IfIcmpEntry
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+      "IPv6 ICMP statistics. This table contains statistics
+      of ICMPv6 messages that are received and sourced by
+      the entity."
+     ::= { ipv6IcmpMIBObjects 1 }
+
+ ipv6IfIcmpEntry OBJECT-TYPE
+     SYNTAX     Ipv6IfIcmpEntry
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+      "An ICMPv6 statistics entry containing
+      objects at a particular IPv6 interface.
+
+      Note that a receiving interface is
+      the interface to which a given ICMPv6 message
+      is addressed which may not be necessarily
+      the input interface for the message.
+
+      Similarly,  the sending interface is
+      the interface that sources a given
+      ICMP message which is usually but not
+      necessarily the output interface for the message."
+     AUGMENTS { ipv6IfEntry }
+     ::= { ipv6IfIcmpTable 1 }
+
+ Ipv6IfIcmpEntry ::= SEQUENCE {
+         ipv6IfIcmpInMsgs
+               Counter32      ,
+         ipv6IfIcmpInErrors
+               Counter32      ,
+         ipv6IfIcmpInDestUnreachs
+               Counter32      ,
+         ipv6IfIcmpInAdminProhibs
+               Counter32      ,
+         ipv6IfIcmpInTimeExcds
+               Counter32      ,
+         ipv6IfIcmpInParmProblems
+               Counter32      ,
+         ipv6IfIcmpInPktTooBigs
+               Counter32      ,
+         ipv6IfIcmpInEchos
+               Counter32      ,
+         ipv6IfIcmpInEchoReplies
+               Counter32      ,
+         ipv6IfIcmpInRouterSolicits
+               Counter32      ,
+         ipv6IfIcmpInRouterAdvertisements
+               Counter32      ,
+         ipv6IfIcmpInNeighborSolicits
+               Counter32      ,
+         ipv6IfIcmpInNeighborAdvertisements
+               Counter32      ,
+         ipv6IfIcmpInRedirects
+               Counter32      ,
+         ipv6IfIcmpInGroupMembQueries
+               Counter32      ,
+         ipv6IfIcmpInGroupMembResponses
+               Counter32      ,
+         ipv6IfIcmpInGroupMembReductions
+               Counter32      ,
+         ipv6IfIcmpOutMsgs
+               Counter32      ,
+         ipv6IfIcmpOutErrors
+               Counter32      ,
+         ipv6IfIcmpOutDestUnreachs
+               Counter32      ,
+         ipv6IfIcmpOutAdminProhibs
+               Counter32      ,
+         ipv6IfIcmpOutTimeExcds
+               Counter32      ,
+         ipv6IfIcmpOutParmProblems
+               Counter32      ,
+         ipv6IfIcmpOutPktTooBigs
+               Counter32      ,
+         ipv6IfIcmpOutEchos
+               Counter32      ,
+         ipv6IfIcmpOutEchoReplies
+               Counter32      ,
+         ipv6IfIcmpOutRouterSolicits
+               Counter32      ,
+         ipv6IfIcmpOutRouterAdvertisements
+               Counter32      ,
+         ipv6IfIcmpOutNeighborSolicits
+               Counter32      ,
+         ipv6IfIcmpOutNeighborAdvertisements
+               Counter32      ,
+         ipv6IfIcmpOutRedirects
+               Counter32      ,
+         ipv6IfIcmpOutGroupMembQueries
+               Counter32      ,
+         ipv6IfIcmpOutGroupMembResponses
+               Counter32      ,
+         ipv6IfIcmpOutGroupMembReductions
+               Counter32
+
+     }
+
+ ipv6IfIcmpInMsgs OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The total number of ICMP messages received
+      by the interface which includes all those
+      counted by ipv6IfIcmpInErrors. Note that this
+      interface is the interface to which the
+      ICMP messages were addressed which may not be
+      necessarily the input interface for the messages."
+     ::= { ipv6IfIcmpEntry 1 }
+
+ ipv6IfIcmpInErrors OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP messages which the interface
+      received but determined as having ICMP-specific
+      errors (bad ICMP checksums, bad length, etc.)."
+     ::= { ipv6IfIcmpEntry 2 }
+
+ ipv6IfIcmpInDestUnreachs OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Destination Unreachable
+      messages received by the interface."
+     ::= { ipv6IfIcmpEntry 3 }
+
+ ipv6IfIcmpInAdminProhibs OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP destination
+      unreachable/communication administratively
+      prohibited messages received by the interface."
+     ::= { ipv6IfIcmpEntry 4 }
+
+ ipv6IfIcmpInTimeExcds OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Time Exceeded messages
+       received by the interface."
+     ::= { ipv6IfIcmpEntry 5 }
+
+ ipv6IfIcmpInParmProblems OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Parameter Problem messages
+       received by the interface."
+     ::= { ipv6IfIcmpEntry 6 }
+
+ ipv6IfIcmpInPktTooBigs OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Packet Too Big messages
+      received by the interface."
+     ::= { ipv6IfIcmpEntry 7 }
+
+ ipv6IfIcmpInEchos OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Echo (request) messages
+       received by the interface."
+     ::= { ipv6IfIcmpEntry 8 }
+
+ ipv6IfIcmpInEchoReplies OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Echo Reply messages received
+      by the interface."
+     ::= { ipv6IfIcmpEntry 9 }
+
+ ipv6IfIcmpInRouterSolicits OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Router Solicit messages
+       received by the interface."
+     ::= { ipv6IfIcmpEntry 10 }
+
+ ipv6IfIcmpInRouterAdvertisements OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Router Advertisement messages
+      received by the interface."
+     ::= { ipv6IfIcmpEntry 11 }
+
+ ipv6IfIcmpInNeighborSolicits OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Neighbor Solicit messages
+       received by the interface."
+     ::= { ipv6IfIcmpEntry 12 }
+
+ ipv6IfIcmpInNeighborAdvertisements OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Neighbor Advertisement
+      messages received by the interface."
+     ::= { ipv6IfIcmpEntry 13 }
+
+ ipv6IfIcmpInRedirects OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of Redirect messages received
+      by the interface."
+     ::= { ipv6IfIcmpEntry 14 }
+
+ ipv6IfIcmpInGroupMembQueries OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMPv6 Group Membership Query
+      messages received by the interface."
+     ::= { ipv6IfIcmpEntry 15}
+
+ ipv6IfIcmpInGroupMembResponses OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMPv6 Group Membership Response messages
+      received by the interface."
+     ::= { ipv6IfIcmpEntry 16}
+
+  ipv6IfIcmpInGroupMembReductions OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMPv6 Group Membership Reduction messages
+      received by the interface."
+     ::= { ipv6IfIcmpEntry 17}
+
+ ipv6IfIcmpOutMsgs OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The total number of ICMP messages which this
+      interface attempted to send.  Note that this counter
+      includes all those counted by icmpOutErrors."
+     ::= { ipv6IfIcmpEntry 18 }
+
+ ipv6IfIcmpOutErrors OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP messages which this interface did
+      not send due to problems discovered within ICMP
+      such as a lack of buffers.  This value should not
+      include errors discovered outside the ICMP layer
+      such as the inability of IPv6 to route the resultant
+      datagram.  In some implementations there may be no
+      types of error which contribute to this counter's
+      value."
+     ::= { ipv6IfIcmpEntry 19 }
+
+ ipv6IfIcmpOutDestUnreachs OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Destination Unreachable
+
+      messages sent by the interface."
+     ::= { ipv6IfIcmpEntry 20 }
+
+ ipv6IfIcmpOutAdminProhibs OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+       "Number of ICMP dest unreachable/communication
+       administratively prohibited messages sent."
+     ::= { ipv6IfIcmpEntry 21 }
+
+ ipv6IfIcmpOutTimeExcds OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Time Exceeded messages sent
+      by the interface."
+     ::= { ipv6IfIcmpEntry 22 }
+
+ ipv6IfIcmpOutParmProblems OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Parameter Problem messages
+      sent by the interface."
+     ::= { ipv6IfIcmpEntry 23 }
+
+ ipv6IfIcmpOutPktTooBigs OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Packet Too Big messages sent
+      by the interface."
+     ::= { ipv6IfIcmpEntry 24 }
+
+ ipv6IfIcmpOutEchos OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Echo (request) messages sent
+      by the interface."
+     ::= { ipv6IfIcmpEntry 25 }
+
+ ipv6IfIcmpOutEchoReplies OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Echo Reply messages sent
+      by the interface."
+     ::= { ipv6IfIcmpEntry 26 }
+
+ ipv6IfIcmpOutRouterSolicits OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Router Solicitation messages
+       sent by the interface."
+     ::= { ipv6IfIcmpEntry 27 }
+
+ ipv6IfIcmpOutRouterAdvertisements OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Router Advertisement messages
+      sent by the interface."
+     ::= { ipv6IfIcmpEntry 28 }
+
+ ipv6IfIcmpOutNeighborSolicits OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Neighbor Solicitation
+       messages sent by the interface."
+     ::= { ipv6IfIcmpEntry 29 }
+
+ ipv6IfIcmpOutNeighborAdvertisements OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMP Neighbor Advertisement
+      messages sent by the interface."
+     ::= { ipv6IfIcmpEntry 30 }
+
+ ipv6IfIcmpOutRedirects OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of Redirect messages sent. For
+      a host, this object will always be zero,
+      since hosts do not send redirects."
+     ::= { ipv6IfIcmpEntry 31 }
+
+ ipv6IfIcmpOutGroupMembQueries OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMPv6 Group Membership Query
+      messages sent."
+     ::= { ipv6IfIcmpEntry 32}
+
+ ipv6IfIcmpOutGroupMembResponses OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMPv6 Group Membership Response
+      messages sent."
+     ::= { ipv6IfIcmpEntry 33}
+
+ ipv6IfIcmpOutGroupMembReductions OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The number of ICMPv6 Group Membership Reduction
+      messages sent."
+     ::= { ipv6IfIcmpEntry 34}
+
+-- conformance information
+
+ipv6IcmpConformance OBJECT IDENTIFIER ::= { ipv6IcmpMIB 2 }
+
+ipv6IcmpCompliances
+        OBJECT IDENTIFIER ::= { ipv6IcmpConformance 1 }
+ipv6IcmpGroups
+        OBJECT IDENTIFIER ::= { ipv6IcmpConformance 2 }
+
+-- compliance statements
+
+ipv6IcmpCompliance MODULE-COMPLIANCE
+    STATUS  current
+    DESCRIPTION
+      "The compliance statement for SNMPv2 entities which
+      implement ICMPv6."
+    MODULE  -- this module
+        MANDATORY-GROUPS { ipv6IcmpGroup }
+    ::= { ipv6IcmpCompliances 1 }
+
+ipv6IcmpGroup OBJECT-GROUP
+    OBJECTS   {
+                ipv6IfIcmpInMsgs,
+                ipv6IfIcmpInErrors,
+                ipv6IfIcmpInDestUnreachs,
+                ipv6IfIcmpInAdminProhibs,
+                ipv6IfIcmpInTimeExcds,
+                ipv6IfIcmpInParmProblems,
+                ipv6IfIcmpInPktTooBigs,
+                ipv6IfIcmpInEchos,
+                ipv6IfIcmpInEchoReplies,
+                ipv6IfIcmpInRouterSolicits,
+                ipv6IfIcmpInRouterAdvertisements,
+                ipv6IfIcmpInNeighborSolicits,
+                ipv6IfIcmpInNeighborAdvertisements,
+                ipv6IfIcmpInRedirects,
+                ipv6IfIcmpInGroupMembQueries,
+                ipv6IfIcmpInGroupMembResponses,
+                ipv6IfIcmpInGroupMembReductions,
+                ipv6IfIcmpOutMsgs,
+                ipv6IfIcmpOutErrors,
+                ipv6IfIcmpOutDestUnreachs,
+                ipv6IfIcmpOutAdminProhibs,
+                ipv6IfIcmpOutTimeExcds,
+                ipv6IfIcmpOutParmProblems,
+                ipv6IfIcmpOutPktTooBigs,
+                ipv6IfIcmpOutEchos,
+                ipv6IfIcmpOutEchoReplies,
+                ipv6IfIcmpOutRouterSolicits,
+                ipv6IfIcmpOutRouterAdvertisements,
+                ipv6IfIcmpOutNeighborSolicits,
+                ipv6IfIcmpOutNeighborAdvertisements,
+                ipv6IfIcmpOutRedirects,
+                ipv6IfIcmpOutGroupMembQueries,
+                ipv6IfIcmpOutGroupMembResponses,
+                ipv6IfIcmpOutGroupMembReductions
+              }
+    STATUS    current
+    DESCRIPTION
+         "The ICMPv6 group of objects providing information
+          specific to ICMPv6."
+    ::= { ipv6IcmpGroups 1 }
+
+ END

Added: trunk/mibs/IPV6-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/IPV6-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,1443 @@
+ IPV6-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+     MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
+     mib-2, Counter32, Unsigned32, Integer32,
+     Gauge32                               FROM SNMPv2-SMI
+     DisplayString, PhysAddress, TruthValue, TimeStamp,
+     VariablePointer, RowPointer           FROM SNMPv2-TC
+     MODULE-COMPLIANCE, OBJECT-GROUP,
+     NOTIFICATION-GROUP                    FROM SNMPv2-CONF
+     Ipv6IfIndex, Ipv6Address, Ipv6AddressPrefix,
+     Ipv6AddressIfIdentifier,
+     Ipv6IfIndexOrZero                     FROM IPV6-TC;
+
+ ipv6MIB MODULE-IDENTITY
+     LAST-UPDATED "9802052155Z"
+     ORGANIZATION "IETF IPv6 Working Group"
+     CONTACT-INFO
+       "           Dimitry Haskin
+
+           Postal: Bay Networks, Inc.
+                   660 Techology Park Drive.
+                   Billerica, MA  01821
+
+                   US
+
+              Tel: +1-978-916-8124
+           E-mail: dhaskin at baynetworks.com
+
+                   Steve Onishi
+
+           Postal: Bay Networks, Inc.
+                   3 Federal Street
+                   Billerica, MA 01821
+                   US
+
+              Tel: +1-978-916-3816
+           E-mail: sonishi at baynetworks.com"
+     DESCRIPTION
+       "The MIB module for entities implementing the IPv6
+        protocol."
+     ::= { mib-2 55 }
+
+ -- the IPv6 general group
+
+ ipv6MIBObjects OBJECT IDENTIFIER   ::= { ipv6MIB 1 }
+
+ ipv6Forwarding OBJECT-TYPE
+     SYNTAX      INTEGER {
+                  forwarding(1),    -- acting as a router
+
+                                    -- NOT acting as
+                  notForwarding(2)  -- a router
+                 }
+      MAX-ACCESS read-write
+      STATUS     current
+      DESCRIPTION
+        "The indication of whether this entity is acting
+        as an IPv6 router in respect to the forwarding of
+        datagrams received by, but not addressed to, this
+        entity.  IPv6 routers forward datagrams.  IPv6
+        hosts do not (except those source-routed via the
+        host).
+
+        Note that for some managed nodes, this object may
+        take on only a subset of the values possible.
+        Accordingly, it is appropriate for an agent to
+        return a `wrongValue' response if a management
+        station attempts to change this object to an
+        inappropriate value."
+      ::= { ipv6MIBObjects 1 }
+
+ ipv6DefaultHopLimit OBJECT-TYPE
+     SYNTAX      INTEGER(0..255)
+     MAX-ACCESS  read-write
+      STATUS     current
+     DESCRIPTION
+        "The default value inserted into the Hop Limit
+        field of the IPv6 header of datagrams originated
+        at this entity, whenever a Hop Limit value is not
+        supplied by the transport layer protocol."
+     DEFVAL  { 64 }
+     ::= { ipv6MIBObjects 2 }
+
+ipv6Interfaces OBJECT-TYPE
+     SYNTAX      Unsigned32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "The number of IPv6 interfaces (regardless of
+        their current state) present on this system."
+     ::= { ipv6MIBObjects 3 }
+
+ipv6IfTableLastChange OBJECT-TYPE
+     SYNTAX      TimeStamp
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "The value of sysUpTime at the time of the last
+       insertion or removal of an entry in the
+       ipv6IfTable. If the number of entries has been
+       unchanged since the last re-initialization of
+       the local network management subsystem, then this
+       object contains a zero value."
+     ::= { ipv6MIBObjects 4 }
+
+-- the IPv6 Interfaces table
+
+ipv6IfTable OBJECT-TYPE
+     SYNTAX     SEQUENCE OF Ipv6IfEntry
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+       "The IPv6 Interfaces table contains information
+       on the entity's internetwork-layer interfaces.
+       An IPv6 interface constitutes a logical network
+       layer attachment to the layer immediately below
+
+       IPv6 including internet layer 'tunnels', such as
+       tunnels over IPv4 or IPv6 itself."
+     ::= { ipv6MIBObjects 5 }
+
+ ipv6IfEntry OBJECT-TYPE
+     SYNTAX     Ipv6IfEntry
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+       "An interface entry containing objects
+        about a particular IPv6 interface."
+     INDEX   { ipv6IfIndex }
+     ::= { ipv6IfTable 1 }
+
+ Ipv6IfEntry ::= SEQUENCE {
+         ipv6IfIndex              Ipv6IfIndex,
+         ipv6IfDescr              DisplayString,
+         ipv6IfLowerLayer         VariablePointer,
+         ipv6IfEffectiveMtu       Unsigned32,
+         ipv6IfReasmMaxSize       Unsigned32,
+         ipv6IfIdentifier         Ipv6AddressIfIdentifier,
+         ipv6IfIdentifierLength   INTEGER,
+         ipv6IfPhysicalAddress    PhysAddress,
+         ipv6IfAdminStatus        INTEGER,
+         ipv6IfOperStatus         INTEGER,
+         ipv6IfLastChange         TimeStamp
+     }
+
+ ipv6IfIndex OBJECT-TYPE
+     SYNTAX     Ipv6IfIndex
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+       "A unique non-zero value identifying
+        the particular IPv6 interface."
+     ::= { ipv6IfEntry 1 }
+
+ ipv6IfDescr OBJECT-TYPE
+     SYNTAX     DisplayString
+     MAX-ACCESS read-write
+     STATUS     current
+     DESCRIPTION
+       "A textual string containing information about the
+       interface.  This string may be set by the network
+       management system."
+     ::= { ipv6IfEntry 2 }
+
+ ipv6IfLowerLayer OBJECT-TYPE
+    SYNTAX      VariablePointer
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "This object identifies the protocol layer over
+       which this network interface operates.  If this
+       network interface operates over the data-link
+       layer, then the value of this object refers to an
+       instance of ifIndex [6]. If this network interface
+       operates over an IPv4 interface, the value of this
+       object refers to an instance of ipAdEntAddr [3].
+
+       If this network interface operates over another
+       IPv6 interface, the value of this object refers to
+       an instance of ipv6IfIndex.  If this network
+       interface is not currently operating over an active
+       protocol layer, then the value of this object
+       should be set to the OBJECT ID { 0 0 }."
+    ::= { ipv6IfEntry 3 }
+
+ ipv6IfEffectiveMtu OBJECT-TYPE
+    SYNTAX      Unsigned32
+    UNITS       "octets"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "The size of the largest IPv6 packet which can be
+      sent/received on the interface, specified in
+      octets."
+ ::= { ipv6IfEntry 4 }
+
+ ipv6IfReasmMaxSize OBJECT-TYPE
+    SYNTAX      Unsigned32 (0..65535)
+    UNITS       "octets"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "The size of the largest IPv6 datagram which this
+      entity can re-assemble from incoming IPv6 fragmented
+      datagrams received on this interface."
+ ::= { ipv6IfEntry 5 }
+
+ ipv6IfIdentifier OBJECT-TYPE
+     SYNTAX      Ipv6AddressIfIdentifier
+     MAX-ACCESS  read-write
+     STATUS      current
+     DESCRIPTION
+        "The Interface Identifier for this interface that
+
+        is (at least) unique on the link this interface is
+        attached to. The Interface Identifier is combined
+        with an address prefix to form an interface address.
+
+        By default, the Interface Identifier is autoconfigured
+        according to the rules of the link type this
+        interface is attached to."
+     ::= { ipv6IfEntry 6 }
+
+ ipv6IfIdentifierLength OBJECT-TYPE
+     SYNTAX      INTEGER (0..64)
+     UNITS       "bits"
+     MAX-ACCESS  read-write
+     STATUS      current
+     DESCRIPTION
+       "The length of the Interface Identifier in bits."
+     ::= { ipv6IfEntry 7 }
+
+ ipv6IfPhysicalAddress OBJECT-TYPE
+     SYNTAX      PhysAddress
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "The interface's physical address. For example, for
+       an IPv6 interface attached to an 802.x link, this
+       object normally contains a MAC address. Note that
+       in some cases this address may differ from the
+       address of the interface's protocol sub-layer.  The
+       interface's media-specific MIB must define the bit
+       and byte ordering and the format of the value of
+       this object. For interfaces which do not have such
+       an address (e.g., a serial line), this object should
+       contain an octet string of zero length."
+     ::= { ipv6IfEntry 8 }
+
+ipv6IfAdminStatus OBJECT-TYPE
+    SYNTAX  INTEGER {
+             up(1),       -- ready to pass packets
+             down(2)
+            }
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+      "The desired state of the interface.  When a managed
+      system initializes,  all IPv6 interfaces start with
+      ipv6IfAdminStatus in the down(2) state.  As a result
+      of either explicit management action or per
+      configuration information retained by the managed
+
+      system,  ipv6IfAdminStatus is then changed to
+      the up(1) state (or remains in the down(2) state)."
+    ::= { ipv6IfEntry 9 }
+
+ipv6IfOperStatus OBJECT-TYPE
+    SYNTAX  INTEGER {
+             up(1),             -- ready to pass packets
+
+             down(2),
+             noIfIdentifier(3), -- no interface identifier
+
+                                -- status can not be
+                                -- determined for some
+             unknown(4),        -- reason
+
+                                -- some component is
+             notPresent(5)      -- missing
+            }
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "The current operational state of the interface.
+      The noIfIdentifier(3) state indicates that no valid
+      Interface Identifier is assigned to the interface.
+      This state usually indicates that the link-local
+      interface address failed Duplicate Address Detection.
+      If ipv6IfAdminStatus is down(2) then ipv6IfOperStatus
+      should be down(2).  If ipv6IfAdminStatus is changed
+      to up(1) then ipv6IfOperStatus should change to up(1)
+      if the interface is ready to transmit and receive
+      network traffic; it should remain in the down(2) or
+      noIfIdentifier(3) state if and only if there is a
+      fault that prevents it from going to the up(1) state;
+      it should remain in the notPresent(5) state if
+      the interface has missing (typically, lower layer)
+      components."
+    ::= { ipv6IfEntry 10 }
+
+ipv6IfLastChange OBJECT-TYPE
+    SYNTAX      TimeStamp
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The value of sysUpTime at the time the interface
+        entered its current operational state.  If the
+        current state was entered prior to the last
+        re-initialization of the local network management
+
+        subsystem, then this object contains a zero
+        value."
+    ::= { ipv6IfEntry 11 }
+
+ --  IPv6 Interface Statistics table
+
+ ipv6IfStatsTable OBJECT-TYPE
+     SYNTAX     SEQUENCE OF Ipv6IfStatsEntry
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+         "IPv6 interface traffic statistics."
+     ::= { ipv6MIBObjects 6 }
+
+ ipv6IfStatsEntry OBJECT-TYPE
+     SYNTAX     Ipv6IfStatsEntry
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+         "An interface statistics entry containing objects
+         at a particular IPv6 interface."
+     AUGMENTS { ipv6IfEntry }
+     ::= { ipv6IfStatsTable 1 }
+
+ Ipv6IfStatsEntry ::= SEQUENCE {
+         ipv6IfStatsInReceives
+             Counter32,
+         ipv6IfStatsInHdrErrors
+             Counter32,
+         ipv6IfStatsInTooBigErrors
+             Counter32,
+         ipv6IfStatsInNoRoutes
+             Counter32,
+         ipv6IfStatsInAddrErrors
+             Counter32,
+         ipv6IfStatsInUnknownProtos
+             Counter32,
+         ipv6IfStatsInTruncatedPkts
+             Counter32,
+         ipv6IfStatsInDiscards
+             Counter32,
+         ipv6IfStatsInDelivers
+             Counter32,
+         ipv6IfStatsOutForwDatagrams
+             Counter32,
+         ipv6IfStatsOutRequests
+             Counter32,
+         ipv6IfStatsOutDiscards
+
+             Counter32,
+         ipv6IfStatsOutFragOKs
+             Counter32,
+         ipv6IfStatsOutFragFails
+             Counter32,
+         ipv6IfStatsOutFragCreates
+             Counter32,
+         ipv6IfStatsReasmReqds
+             Counter32,
+         ipv6IfStatsReasmOKs
+             Counter32,
+         ipv6IfStatsReasmFails
+             Counter32,
+         ipv6IfStatsInMcastPkts
+             Counter32,
+         ipv6IfStatsOutMcastPkts
+             Counter32
+     }
+
+ ipv6IfStatsInReceives OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The total number of input datagrams received by
+        the interface, including those received in error."
+     ::= { ipv6IfStatsEntry 1 }
+
+ ipv6IfStatsInHdrErrors OBJECT-TYPE
+     SYNTAX     Counter32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+        "The number of input datagrams discarded due to
+        errors in their IPv6 headers, including version
+        number mismatch, other format errors, hop count
+        exceeded, errors discovered in processing their
+        IPv6 options, etc."
+     ::= { ipv6IfStatsEntry 2 }
+
+ ipv6IfStatsInTooBigErrors OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "The number of input datagrams that could not be
+       forwarded because their size exceeded the link MTU
+       of outgoing interface."
+     ::= { ipv6IfStatsEntry 3 }
+
+ ipv6IfStatsInNoRoutes OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of input datagrams discarded because no
+         route could be found to transmit them to their
+         destination."
+     ::= { ipv6IfStatsEntry 4 }
+
+ ipv6IfStatsInAddrErrors OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of input datagrams discarded because
+        the IPv6 address in their IPv6 header's destination
+        field was not a valid address to be received at
+        this entity.  This count includes invalid
+        addresses (e.g., ::0) and unsupported addresses
+        (e.g., addresses with unallocated prefixes).  For
+        entities which are not IPv6 routers and therefore
+        do not forward datagrams, this counter includes
+        datagrams discarded because the destination address
+        was not a local address."
+     ::= { ipv6IfStatsEntry 5 }
+
+ ipv6IfStatsInUnknownProtos OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of locally-addressed datagrams
+        received successfully but discarded because of an
+        unknown or unsupported protocol. This counter is
+        incremented at the interface to which these
+        datagrams were addressed which might not be
+        necessarily the input interface for some of
+        the datagrams."
+     ::= { ipv6IfStatsEntry 6 }
+
+ ipv6IfStatsInTruncatedPkts OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of input datagrams discarded because
+         datagram frame didn't carry enough data."
+     ::= { ipv6IfStatsEntry 7 }
+
+ ipv6IfStatsInDiscards OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of input IPv6 datagrams for which no
+        problems were encountered to prevent their
+        continued processing, but which were discarded
+        (e.g., for lack of buffer space).  Note that this
+        counter does not include any datagrams discarded
+        while awaiting re-assembly."
+     ::= { ipv6IfStatsEntry 8 }
+
+ ipv6IfStatsInDelivers OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+      "The total number of datagrams successfully
+      delivered to IPv6 user-protocols (including ICMP).
+      This counter is incremented at the interface to
+      which these datagrams were addressed which might
+      not be necessarily the input interface for some of
+      the datagrams."
+     ::= { ipv6IfStatsEntry 9 }
+
+ ipv6IfStatsOutForwDatagrams OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of output datagrams which this
+        entity received and forwarded to their final
+        destinations.  In entities which do not act
+        as IPv6 routers, this counter will include
+        only those packets which were Source-Routed
+        via this entity, and the Source-Route
+        processing was successful.  Note that for
+        a successfully forwarded datagram the counter
+        of the outgoing interface is incremented."
+     ::= { ipv6IfStatsEntry 10 }
+
+ ipv6IfStatsOutRequests OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+      "The total number of IPv6 datagrams which local IPv6
+      user-protocols (including ICMP) supplied to IPv6 in
+      requests for transmission.  Note that this counter
+      does not include any datagrams counted in
+      ipv6IfStatsOutForwDatagrams."
+     ::= { ipv6IfStatsEntry 11 }
+
+ ipv6IfStatsOutDiscards OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+         "The number of output IPv6 datagrams for which no
+         problem was encountered to prevent their
+         transmission to their destination, but which were
+         discarded (e.g., for lack of buffer space).  Note
+         that this counter would include datagrams counted
+         in ipv6IfStatsOutForwDatagrams if any such packets
+         met this (discretionary) discard criterion."
+     ::= { ipv6IfStatsEntry 12 }
+
+ ipv6IfStatsOutFragOKs OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of IPv6 datagrams that have been
+         successfully fragmented at this output interface."
+     ::= { ipv6IfStatsEntry 13 }
+
+ ipv6IfStatsOutFragFails OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of IPv6 datagrams that have been
+         discarded because they needed to be fragmented
+         at this output interface but could not be."
+     ::= { ipv6IfStatsEntry 14 }
+
+ ipv6IfStatsOutFragCreates OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of output datagram fragments that have
+         been generated as a result of fragmentation at
+         this output interface."
+     ::= { ipv6IfStatsEntry 15 }
+
+ ipv6IfStatsReasmReqds OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of IPv6 fragments received which needed
+         to be reassembled at this interface.  Note that this
+         counter is incremented at the interface to which
+         these fragments were addressed which might not
+         be necessarily the input interface for some of
+         the fragments."
+     ::= { ipv6IfStatsEntry 16 }
+
+ ipv6IfStatsReasmOKs OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "The number of IPv6 datagrams successfully
+       reassembled.  Note that this counter is incremented
+       at the interface to which these datagrams were
+       addressed which might not be necessarily the input
+       interface for some of the fragments."
+     ::= { ipv6IfStatsEntry 17 }
+
+ ipv6IfStatsReasmFails OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of failures detected by the IPv6 re-
+        assembly algorithm (for whatever reason: timed
+        out, errors, etc.).  Note that this is not
+        necessarily a count of discarded IPv6 fragments
+        since some algorithms (notably the algorithm in
+        RFC 815) can lose track of the number of fragments
+        by combining them as they are received.
+        This counter is incremented at the interface to which
+        these fragments were addressed which might not be
+        necessarily the input interface for some of the
+        fragments."
+     ::= { ipv6IfStatsEntry 18 }
+
+ ipv6IfStatsInMcastPkts OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS     current
+     DESCRIPTION
+        "The number of multicast packets received
+         by the interface"
+     ::= { ipv6IfStatsEntry 19 }
+
+ ipv6IfStatsOutMcastPkts OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "The number of multicast packets transmitted
+         by the interface"
+     ::= { ipv6IfStatsEntry 20 }
+
+ -- Address Prefix table
+
+ -- The IPv6 Address Prefix table contains information on
+ -- the entity's IPv6 Address Prefixes that are associated
+ -- with IPv6 interfaces.
+
+ ipv6AddrPrefixTable OBJECT-TYPE
+     SYNTAX  SEQUENCE OF Ipv6AddrPrefixEntry
+     MAX-ACCESS  not-accessible
+     STATUS      current
+     DESCRIPTION
+         "The list of IPv6 address prefixes of
+         IPv6 interfaces."
+     ::= { ipv6MIBObjects 7 }
+
+ ipv6AddrPrefixEntry OBJECT-TYPE
+     SYNTAX  Ipv6AddrPrefixEntry
+     MAX-ACCESS  not-accessible
+     STATUS      current
+     DESCRIPTION
+         "An interface entry containing objects of
+         a particular IPv6 address prefix."
+     INDEX   { ipv6IfIndex,
+               ipv6AddrPrefix,
+               ipv6AddrPrefixLength }
+     ::= { ipv6AddrPrefixTable 1 }
+
+ Ipv6AddrPrefixEntry ::= SEQUENCE {
+
+      ipv6AddrPrefix                     Ipv6AddressPrefix,
+      ipv6AddrPrefixLength               INTEGER (0..128),
+      ipv6AddrPrefixOnLinkFlag           TruthValue,
+      ipv6AddrPrefixAutonomousFlag       TruthValue,
+      ipv6AddrPrefixAdvPreferredLifetime Unsigned32,
+      ipv6AddrPrefixAdvValidLifetime     Unsigned32
+     }
+
+ ipv6AddrPrefix OBJECT-TYPE
+     SYNTAX      Ipv6AddressPrefix
+     MAX-ACCESS  not-accessible
+     STATUS      current
+     DESCRIPTION
+       "The prefix associated with the this interface."
+     ::= { ipv6AddrPrefixEntry 1 }
+
+ ipv6AddrPrefixLength OBJECT-TYPE
+     SYNTAX      INTEGER (0..128)
+     UNITS       "bits"
+     MAX-ACCESS  not-accessible
+     STATUS      current
+     DESCRIPTION
+       "The length of the prefix (in bits)."
+     ::= { ipv6AddrPrefixEntry 2 }
+
+ ipv6AddrPrefixOnLinkFlag OBJECT-TYPE
+     SYNTAX      TruthValue
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "This object has the value 'true(1)', if this
+       prefix can be used  for on-link determination
+       and the value 'false(2)' otherwise."
+     ::= { ipv6AddrPrefixEntry 3 }
+
+ ipv6AddrPrefixAutonomousFlag OBJECT-TYPE
+     SYNTAX      TruthValue
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "Autonomous address configuration flag. When
+       true(1), indicates that this prefix can be used
+       for autonomous address configuration (i.e. can
+       be used to form a local interface address).
+       If false(2), it is not used to autoconfigure
+       a local interface address."
+     ::= { ipv6AddrPrefixEntry 4 }
+
+ ipv6AddrPrefixAdvPreferredLifetime OBJECT-TYPE
+     SYNTAX      Unsigned32
+     UNITS       "seconds"
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+        "It is the length of time in seconds that this
+        prefix will remain preferred, i.e. time until
+        deprecation.  A value of 4,294,967,295 represents
+        infinity.
+
+        The address generated from a deprecated prefix
+        should no longer be used as a source address in
+        new communications, but packets received on such
+        an interface are processed as expected."
+     ::= { ipv6AddrPrefixEntry 5 }
+
+ ipv6AddrPrefixAdvValidLifetime OBJECT-TYPE
+     SYNTAX      Unsigned32
+     UNITS       "seconds"
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "It is the length of time in seconds that this
+       prefix will remain valid, i.e. time until
+       invalidation.  A value of 4,294,967,295 represents
+       infinity.
+
+       The address generated from an invalidated prefix
+       should not appear as the destination or source
+       address of a packet."
+     ::= { ipv6AddrPrefixEntry 6 }
+
+ -- the IPv6 Address table
+
+ -- The IPv6 address table contains this node's IPv6
+ -- addressing information.
+
+ ipv6AddrTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF Ipv6AddrEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "The table of addressing information relevant to
+      this node's interface addresses."
+    ::= { ipv6MIBObjects 8 }
+
+ ipv6AddrEntry OBJECT-TYPE
+    SYNTAX      Ipv6AddrEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "The addressing information for one of this
+        node's interface addresses."
+    INDEX   { ipv6IfIndex, ipv6AddrAddress }
+    ::= { ipv6AddrTable 1 }
+
+ Ipv6AddrEntry ::=
+    SEQUENCE {
+         ipv6AddrAddress        Ipv6Address,
+         ipv6AddrPfxLength      INTEGER,
+         ipv6AddrType           INTEGER,
+         ipv6AddrAnycastFlag    TruthValue,
+         ipv6AddrStatus         INTEGER
+        }
+
+ ipv6AddrAddress OBJECT-TYPE
+    SYNTAX      Ipv6Address
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "The IPv6 address to which this entry's addressing
+      information pertains."
+    ::= { ipv6AddrEntry 1 }
+
+ ipv6AddrPfxLength OBJECT-TYPE
+    SYNTAX      INTEGER(0..128)
+    UNITS       "bits"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "The length of the prefix (in bits) associated with
+      the IPv6 address of this entry."
+    ::= { ipv6AddrEntry 2 }
+
+ ipv6AddrType OBJECT-TYPE
+    SYNTAX      INTEGER {
+                        -- address has been formed
+                        -- using stateless
+         stateless(1),  -- autoconfiguration
+
+                        -- address has been acquired
+                        -- by stateful means
+                        -- (e.g. DHCPv6, manual
+         stateful(2),   -- configuration)
+
+                        -- type can not be determined
+         unknown(3)     -- for some reason.
+       }
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+       "The type of address. Note that 'stateless(1)'
+       refers to an address that was statelessly
+       autoconfigured; 'stateful(2)' refers to a address
+       which was acquired by via a stateful protocol
+       (e.g. DHCPv6, manual configuration)."
+    ::= { ipv6AddrEntry 3 }
+
+ ipv6AddrAnycastFlag OBJECT-TYPE
+     SYNTAX      TruthValue
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "This object has the value 'true(1)', if this
+       address is an anycast address and the value
+       'false(2)' otherwise."
+     ::= { ipv6AddrEntry 4 }
+
+ ipv6AddrStatus OBJECT-TYPE
+    SYNTAX      INTEGER {
+             preferred(1),
+             deprecated(2),
+             invalid(3),
+             inaccessible(4),
+             unknown(5)   -- status can not be determined
+                          -- for some reason.
+            }
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "Address status.  The preferred(1) state indicates
+      that this is a valid address that can appear as
+      the destination or source address of a packet.
+      The deprecated(2) state indicates that this is
+      a valid but deprecated address that should no longer
+      be used as a source address in new communications,
+      but packets addressed to such an address are
+      processed as expected. The invalid(3) state indicates
+      that this is not valid address which should not
+
+      appear as the destination or source address of
+      a packet. The inaccessible(4) state indicates that
+      the address is not accessible because the interface
+      to which this address is assigned is not operational."
+    ::= { ipv6AddrEntry 5 }
+
+ -- IPv6 Routing objects
+
+ ipv6RouteNumber OBJECT-TYPE
+     SYNTAX      Gauge32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "The number of current ipv6RouteTable entries.
+       This is primarily to avoid having to read
+       the table in order to determine this number."
+     ::= { ipv6MIBObjects 9 }
+
+ ipv6DiscardedRoutes OBJECT-TYPE
+     SYNTAX      Counter32
+     MAX-ACCESS  read-only
+     STATUS      current
+     DESCRIPTION
+       "The number of routing entries which were chosen
+        to be discarded even though they are valid.  One
+        possible reason for discarding such an entry could
+        be to free-up buffer space for other routing
+        entries."
+     ::= { ipv6MIBObjects 10 }
+
+ -- IPv6 Routing table
+
+ ipv6RouteTable OBJECT-TYPE
+     SYNTAX     SEQUENCE OF Ipv6RouteEntry
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+       "IPv6 Routing table. This table contains
+       an entry for each valid IPv6 unicast route
+       that can be used for packet forwarding
+       determination."
+     ::= { ipv6MIBObjects 11 }
+
+ ipv6RouteEntry OBJECT-TYPE
+     SYNTAX     Ipv6RouteEntry
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+             "A routing entry."
+     INDEX   { ipv6RouteDest,
+               ipv6RoutePfxLength,
+               ipv6RouteIndex }
+     ::= { ipv6RouteTable 1 }
+
+ Ipv6RouteEntry ::= SEQUENCE {
+         ipv6RouteDest           Ipv6Address,
+         ipv6RoutePfxLength      INTEGER,
+         ipv6RouteIndex          Unsigned32,
+         ipv6RouteIfIndex        Ipv6IfIndexOrZero,
+         ipv6RouteNextHop        Ipv6Address,
+         ipv6RouteType           INTEGER,
+         ipv6RouteProtocol       INTEGER,
+         ipv6RoutePolicy         Integer32,
+         ipv6RouteAge            Unsigned32,
+         ipv6RouteNextHopRDI     Unsigned32,
+         ipv6RouteMetric         Unsigned32,
+         ipv6RouteWeight         Unsigned32,
+         ipv6RouteInfo           RowPointer,
+         ipv6RouteValid          TruthValue
+     }
+
+ ipv6RouteDest OBJECT-TYPE
+     SYNTAX     Ipv6Address
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+       "The destination IPv6 address of this route.
+       This object may not take a Multicast address
+       value."
+     ::= { ipv6RouteEntry 1 }
+
+ ipv6RoutePfxLength OBJECT-TYPE
+     SYNTAX     INTEGER(0..128)
+     UNITS      "bits"
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+       "Indicates the prefix length of the destination
+       address."
+     ::= { ipv6RouteEntry 2 }
+
+ ipv6RouteIndex OBJECT-TYPE
+     SYNTAX     Unsigned32
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+       "The value which uniquely identifies the route
+       among the routes to the same network layer
+       destination.  The way this value is chosen is
+       implementation specific but it must be unique for
+       ipv6RouteDest/ipv6RoutePfxLength pair and remain
+       constant for the life of the route."
+     ::= { ipv6RouteEntry 3 }
+
+ ipv6RouteIfIndex OBJECT-TYPE
+     SYNTAX     Ipv6IfIndexOrZero
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+       "The index value which uniquely identifies the local
+       interface through which the next hop of this
+       route should be reached.  The interface identified
+       by a particular value of this index is the same
+       interface as identified by the same value of
+       ipv6IfIndex.  For routes of the discard type this
+       value can be zero."
+     ::= { ipv6RouteEntry 4 }
+
+ ipv6RouteNextHop OBJECT-TYPE
+     SYNTAX     Ipv6Address
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+       "On remote routes, the address of the next
+       system en route;  otherwise, ::0
+       ('00000000000000000000000000000000'H in ASN.1
+       string representation)."
+     ::= { ipv6RouteEntry 5 }
+
+ ipv6RouteType OBJECT-TYPE
+     SYNTAX     INTEGER {
+        other(1),     -- none of the following
+
+                      -- an route indicating that
+                      -- packets to destinations
+                      -- matching this route are
+        discard(2),   -- to be discarded
+
+                      -- route to directly
+        local(3),     -- connected (sub-)network
+
+                      -- route to a remote
+
+        remote(4)     -- destination
+
+     }
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+        "The type of route. Note that 'local(3)' refers
+        to a route for which the next hop is the final
+        destination; 'remote(4)' refers to a route for
+        which  the  next  hop is not the final
+        destination; 'discard(2)' refers to a route
+        indicating that packets to destinations matching
+        this route are to be discarded (sometimes called
+        black-hole route)."
+     ::= { ipv6RouteEntry 6 }
+
+ ipv6RouteProtocol OBJECT-TYPE
+     SYNTAX     INTEGER {
+       other(1),   -- none of the following
+
+                   -- non-protocol information,
+                   -- e.g., manually configured
+       local(2),   -- entries
+
+       netmgmt(3), -- static route
+
+                   -- obtained via Neighbor
+                   -- Discovery protocol,
+       ndisc(4),   -- e.g., result of Redirect
+
+                   -- the following are all
+                   -- dynamic routing protocols
+       rip(5),     -- RIPng
+       ospf(6),    -- Open Shortest Path First
+       bgp(7),     -- Border Gateway Protocol
+       idrp(8),    -- InterDomain Routing Protocol
+       igrp(9)     -- InterGateway Routing Protocol
+     }
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+       "The routing mechanism via which this route was
+       learned."
+     ::= { ipv6RouteEntry 7 }
+
+ ipv6RoutePolicy OBJECT-TYPE
+     SYNTAX     Integer32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+      "The general set of conditions that would cause the
+      selection of one multipath route (set of next hops
+      for a given destination) is referred to as 'policy'.
+      Unless the mechanism indicated by ipv6RouteProtocol
+      specified otherwise, the policy specifier is the
+      8-bit Traffic Class field of the IPv6 packet header
+      that is zero extended at the left to a 32-bit value.
+
+      Protocols defining 'policy' otherwise must either
+      define a set of values which are valid for
+      this object or must implement an integer-
+      instanced  policy table for which this object's
+      value acts as an index."
+     ::= { ipv6RouteEntry 8 }
+
+ ipv6RouteAge OBJECT-TYPE
+     SYNTAX     Unsigned32
+     UNITS      "seconds"
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+        "The number of seconds since this route was last
+        updated or otherwise determined to be correct.
+        Note that no semantics of `too old' can be implied
+        except through knowledge of the routing protocol
+        by which the route was learned."
+     ::= { ipv6RouteEntry 9 }
+
+ ipv6RouteNextHopRDI OBJECT-TYPE
+     SYNTAX     Unsigned32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+        "The Routing Domain ID of the Next Hop.
+        The  semantics of this object are determined by
+        the routing-protocol specified in  the  route's
+        ipv6RouteProtocol value.   When  this object is
+        unknown or not relevant its value should be set
+        to zero."
+     ::= { ipv6RouteEntry 10 }
+
+ ipv6RouteMetric OBJECT-TYPE
+     SYNTAX     Unsigned32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+        "The routing metric for this route. The
+        semantics of this metric are determined by the
+        routing protocol specified in the route's
+        ipv6RouteProtocol value.  When this is unknown
+        or not relevant to the protocol indicated by
+        ipv6RouteProtocol, the object value should be
+        set to its maximum value (4,294,967,295)."
+     ::= { ipv6RouteEntry 11 }
+
+ ipv6RouteWeight OBJECT-TYPE
+     SYNTAX     Unsigned32
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+        "The system internal weight value for this route.
+        The semantics of this value are determined by
+        the implementation specific rules. Generally,
+        within routes with the same ipv6RoutePolicy value,
+        the lower the weight value the more preferred is
+        the route."
+     ::= { ipv6RouteEntry 12 }
+
+ ipv6RouteInfo OBJECT-TYPE
+     SYNTAX     RowPointer
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+        "A reference to MIB definitions specific to the
+        particular routing protocol which is responsible
+        for this route, as determined by the  value
+        specified  in the route's ipv6RouteProto value.
+        If this information is not present,  its  value
+        should be set to the OBJECT ID { 0 0 },
+        which is a syntactically valid object  identifier,
+        and any implementation conforming to ASN.1
+        and the Basic Encoding Rules must  be  able  to
+        generate and recognize this value."
+     ::= { ipv6RouteEntry 13 }
+
+ ipv6RouteValid OBJECT-TYPE
+     SYNTAX     TruthValue
+     MAX-ACCESS read-write
+     STATUS     current
+     DESCRIPTION
+        "Setting this object to the value 'false(2)' has
+        the effect of invalidating the corresponding entry
+        in the ipv6RouteTable object.  That is, it
+        effectively disassociates the destination
+
+        identified with said entry from the route
+        identified with said entry.  It is an
+        implementation-specific matter as to whether the
+        agent removes an invalidated entry from the table.
+        Accordingly, management stations must be prepared
+        to receive tabular information from agents that
+        corresponds to entries not currently in use.
+        Proper interpretation of such entries requires
+        examination of the relevant ipv6RouteValid
+        object."
+     DEFVAL  { true }
+     ::= { ipv6RouteEntry 14 }
+
+ -- IPv6 Address Translation table
+
+ ipv6NetToMediaTable OBJECT-TYPE
+     SYNTAX      SEQUENCE OF Ipv6NetToMediaEntry
+     MAX-ACCESS  not-accessible
+     STATUS      current
+     DESCRIPTION
+       "The IPv6 Address Translation table used for
+       mapping from IPv6 addresses to physical addresses.
+
+       The IPv6 address translation table contain the
+       Ipv6Address to `physical' address equivalencies.
+       Some interfaces do not use translation tables
+       for determining address equivalencies; if all
+       interfaces are of this type, then the Address
+       Translation table is empty, i.e., has zero
+       entries."
+     ::= { ipv6MIBObjects 12 }
+
+ ipv6NetToMediaEntry OBJECT-TYPE
+     SYNTAX     Ipv6NetToMediaEntry
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+       "Each entry contains one IPv6 address to `physical'
+       address equivalence."
+     INDEX   { ipv6IfIndex,
+               ipv6NetToMediaNetAddress }
+     ::= { ipv6NetToMediaTable 1 }
+
+ Ipv6NetToMediaEntry ::= SEQUENCE {
+         ipv6NetToMediaNetAddress
+             Ipv6Address,
+         ipv6NetToMediaPhysAddress
+
+             PhysAddress,
+         ipv6NetToMediaType
+             INTEGER,
+         ipv6IfNetToMediaState
+             INTEGER,
+         ipv6IfNetToMediaLastUpdated
+             TimeStamp,
+         ipv6NetToMediaValid
+             TruthValue
+     }
+
+ ipv6NetToMediaNetAddress OBJECT-TYPE
+     SYNTAX     Ipv6Address
+     MAX-ACCESS not-accessible
+     STATUS     current
+     DESCRIPTION
+        "The IPv6 Address corresponding to
+        the media-dependent `physical' address."
+     ::= { ipv6NetToMediaEntry 1 }
+
+ ipv6NetToMediaPhysAddress OBJECT-TYPE
+     SYNTAX     PhysAddress
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+       "The media-dependent `physical' address."
+     ::= { ipv6NetToMediaEntry 2 }
+
+ ipv6NetToMediaType OBJECT-TYPE
+     SYNTAX     INTEGER {
+                 other(1),    -- none of the following
+                 dynamic(2),  -- dynamically resolved
+                 static(3),   -- statically configured
+                 local(4)     -- local interface
+                }
+     MAX-ACCESS read-only
+     STATUS     current
+     DESCRIPTION
+             "The type of the mapping. The 'dynamic(2)' type
+             indicates that the IPv6 address to physical
+             addresses mapping has been dynamically
+             resolved using the IPv6 Neighbor Discovery
+             protocol. The static(3)' types indicates that
+             the mapping has been statically configured.
+             The local(4) indicates that the mapping is
+             provided for an entity's own interface address."
+     ::= { ipv6NetToMediaEntry 3 }
+
+ipv6IfNetToMediaState OBJECT-TYPE
+    SYNTAX      INTEGER {
+             reachable(1), -- confirmed reachability
+
+             stale(2),     -- unconfirmed reachability
+
+             delay(3),     -- waiting for reachability
+                           -- confirmation before entering
+                           -- the probe state
+
+             probe(4),     -- actively probing
+
+             invalid(5),   -- an invalidated mapping
+
+             unknown(6)    -- state can not be determined
+                           -- for some reason.
+            }
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The Neighbor Unreachability Detection [8] state
+        for the interface when the address mapping in
+        this entry is used."
+    ::= { ipv6NetToMediaEntry 4 }
+
+ipv6IfNetToMediaLastUpdated OBJECT-TYPE
+    SYNTAX      TimeStamp
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The value of sysUpTime at the time this entry
+        was last updated.  If this entry was updated prior
+        to the last re-initialization of the local network
+        management subsystem, then this object contains
+        a zero value."
+    ::= { ipv6NetToMediaEntry 5 }
+
+ ipv6NetToMediaValid OBJECT-TYPE
+     SYNTAX     TruthValue
+     MAX-ACCESS read-write
+     STATUS     current
+     DESCRIPTION
+      "Setting this object to the value 'false(2)' has
+      the effect of invalidating the corresponding entry
+      in the ipv6NetToMediaTable.  That is, it effectively
+      disassociates the interface identified with said
+      entry from the mapping identified with said entry.
+      It is an implementation-specific matter as to
+
+      whether the agent removes an invalidated entry
+      from the table.  Accordingly, management stations
+      must be prepared to receive tabular information
+      from agents that corresponds to entries not
+      currently in use.  Proper interpretation of such
+      entries requires examination of the relevant
+      ipv6NetToMediaValid object."
+     DEFVAL  { true }
+     ::= { ipv6NetToMediaEntry 6 }
+
+-- definition of IPv6-related notifications.
+-- Note that we need ipv6NotificationPrefix with the 0
+-- sub-identifier to make this MIB to translate to
+-- an SNMPv1 format in a reversible way. For example
+-- it is needed for proxies that convert SNMPv1 traps
+-- to SNMPv2 notifications without MIB knowledge.
+
+ipv6Notifications      OBJECT IDENTIFIER
+     ::= { ipv6MIB 2 }
+ipv6NotificationPrefix OBJECT IDENTIFIER
+     ::= { ipv6Notifications 0 }
+
+ipv6IfStateChange NOTIFICATION-TYPE
+     OBJECTS {
+              ipv6IfDescr,
+              ipv6IfOperStatus -- the new state of the If.
+             }
+     STATUS             current
+     DESCRIPTION
+        "An ipv6IfStateChange notification signifies
+        that there has been a change in the state of
+        an ipv6 interface.  This notification should
+        be generated when the interface's operational
+        status transitions to or from the up(1) state."
+     ::= { ipv6NotificationPrefix 1 }
+
+-- conformance information
+
+ipv6Conformance OBJECT IDENTIFIER ::= { ipv6MIB 3 }
+
+ipv6Compliances OBJECT IDENTIFIER ::= { ipv6Conformance 1 }
+ipv6Groups      OBJECT IDENTIFIER ::= { ipv6Conformance 2 }
+
+-- compliance statements
+
+ipv6Compliance MODULE-COMPLIANCE
+    STATUS  current
+    DESCRIPTION
+      "The compliance statement for SNMPv2 entities which
+      implement ipv6 MIB."
+    MODULE  -- this module
+        MANDATORY-GROUPS { ipv6GeneralGroup,
+                           ipv6NotificationGroup }
+          OBJECT    ipv6Forwarding
+            MIN-ACCESS  read-only
+            DESCRIPTION
+               "An agent is not required to provide write
+                access to this object"
+          OBJECT    ipv6DefaultHopLimit
+            MIN-ACCESS  read-only
+            DESCRIPTION
+               "An agent is not required to provide write
+                access to this object"
+          OBJECT    ipv6IfDescr
+            MIN-ACCESS  read-only
+            DESCRIPTION
+               "An agent is not required to provide write
+                access to this object"
+          OBJECT    ipv6IfIdentifier
+            MIN-ACCESS  read-only
+            DESCRIPTION
+               "An agent is not required to provide write
+                access to this object"
+          OBJECT    ipv6IfIdentifierLength
+            MIN-ACCESS  read-only
+            DESCRIPTION
+               "An agent is not required to provide write
+                access to this object"
+
+          OBJECT    ipv6IfAdminStatus
+            MIN-ACCESS  read-only
+            DESCRIPTION
+               "An agent is not required to provide write
+                access to this object"
+          OBJECT    ipv6RouteValid
+            MIN-ACCESS  read-only
+            DESCRIPTION
+               "An agent is not required to provide write
+                access to this object"
+          OBJECT    ipv6NetToMediaValid
+            MIN-ACCESS  read-only
+            DESCRIPTION
+               "An agent is not required to provide write
+
+                access to this object"
+    ::= { ipv6Compliances 1 }
+
+ipv6GeneralGroup OBJECT-GROUP
+    OBJECTS { ipv6Forwarding,
+              ipv6DefaultHopLimit,
+              ipv6Interfaces,
+              ipv6IfTableLastChange,
+              ipv6IfDescr,
+              ipv6IfLowerLayer,
+              ipv6IfEffectiveMtu,
+              ipv6IfReasmMaxSize,
+              ipv6IfIdentifier,
+              ipv6IfIdentifierLength,
+              ipv6IfPhysicalAddress,
+              ipv6IfAdminStatus,
+              ipv6IfOperStatus,
+              ipv6IfLastChange,
+              ipv6IfStatsInReceives,
+              ipv6IfStatsInHdrErrors,
+              ipv6IfStatsInTooBigErrors,
+              ipv6IfStatsInNoRoutes,
+              ipv6IfStatsInAddrErrors,
+              ipv6IfStatsInUnknownProtos,
+              ipv6IfStatsInTruncatedPkts,
+              ipv6IfStatsInDiscards,
+              ipv6IfStatsInDelivers,
+              ipv6IfStatsOutForwDatagrams,
+              ipv6IfStatsOutRequests,
+              ipv6IfStatsOutDiscards,
+              ipv6IfStatsOutFragOKs,
+              ipv6IfStatsOutFragFails,
+              ipv6IfStatsOutFragCreates,
+              ipv6IfStatsReasmReqds,
+              ipv6IfStatsReasmOKs,
+              ipv6IfStatsReasmFails,
+              ipv6IfStatsInMcastPkts,
+              ipv6IfStatsOutMcastPkts,
+              ipv6AddrPrefixOnLinkFlag,
+              ipv6AddrPrefixAutonomousFlag,
+              ipv6AddrPrefixAdvPreferredLifetime,
+              ipv6AddrPrefixAdvValidLifetime,
+              ipv6AddrPfxLength,
+              ipv6AddrType,
+              ipv6AddrAnycastFlag,
+              ipv6AddrStatus,
+              ipv6RouteNumber,
+              ipv6DiscardedRoutes,
+              ipv6RouteIfIndex,
+              ipv6RouteNextHop,
+              ipv6RouteType,
+              ipv6RouteProtocol,
+              ipv6RoutePolicy,
+              ipv6RouteAge,
+              ipv6RouteNextHopRDI,
+              ipv6RouteMetric,
+              ipv6RouteWeight,
+              ipv6RouteInfo,
+              ipv6RouteValid,
+              ipv6NetToMediaPhysAddress,
+              ipv6NetToMediaType,
+              ipv6IfNetToMediaState,
+              ipv6IfNetToMediaLastUpdated,
+              ipv6NetToMediaValid }
+    STATUS    current
+    DESCRIPTION
+         "The IPv6 group of objects providing for basic
+          management of IPv6 entities."
+    ::= { ipv6Groups 1 }
+
+ipv6NotificationGroup NOTIFICATION-GROUP
+    NOTIFICATIONS { ipv6IfStateChange }
+    STATUS    current
+    DESCRIPTION
+         "The notification that an IPv6 entity is required
+          to implement."
+    ::= { ipv6Groups 2 }
+
+ END

Added: trunk/mibs/IPV6-TCP-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/IPV6-TCP-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,211 @@
+IPV6-TCP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+   MODULE-COMPLIANCE, OBJECT-GROUP      FROM SNMPv2-CONF
+   MODULE-IDENTITY, OBJECT-TYPE,
+   mib-2, experimental                  FROM SNMPv2-SMI
+   Ipv6Address, Ipv6IfIndexOrZero       FROM IPV6-TC;
+
+ipv6TcpMIB MODULE-IDENTITY
+   LAST-UPDATED "9801290000Z"
+   ORGANIZATION "IETF IPv6 MIB Working Group"
+   CONTACT-INFO
+        "       Mike Daniele
+
+                Postal: Compaq Computer Corporation
+                        110 Spitbrook Rd
+                        Nashua, NH 03062.
+                        US
+
+                Phone:  +1 603 884 1423
+                Email:  daniele at zk3.dec.com"
+   DESCRIPTION
+        "The MIB module for entities implementing TCP over IPv6."
+   ::= { experimental 86 }
+
+-- objects specific to TCP for IPv6
+
+tcp      OBJECT IDENTIFIER ::= { mib-2 6 }
+
+-- the TCP over IPv6 Connection table
+
+-- This connection table contains information about this
+-- entity's existing TCP connections between IPv6 endpoints.
+-- Only connections between IPv6 addresses are contained in
+-- this table.  This entity's connections between IPv4
+-- endpoints are contained in tcpConnTable.
+
+ipv6TcpConnTable OBJECT-TYPE
+   SYNTAX      SEQUENCE OF Ipv6TcpConnEntry
+   MAX-ACCESS  not-accessible
+   STATUS      current
+   DESCRIPTION
+        "A table containing TCP connection-specific information,
+         for only those connections whose endpoints are IPv6 addresses."
+   ::= { tcp 16 }
+
+ipv6TcpConnEntry OBJECT-TYPE
+   SYNTAX      Ipv6TcpConnEntry
+   MAX-ACCESS  not-accessible
+   STATUS      current
+   DESCRIPTION
+        "A conceptual row of the ipv6TcpConnTable containing
+         information about a particular current TCP connection.
+         Each row of this table is transient, in that it ceases to
+         exist when (or soon after) the connection makes the transition
+         to the CLOSED state.
+
+         Note that conceptual rows in this table require an additional
+         index object compared to tcpConnTable, since IPv6 addresses
+         are not guaranteed to be unique on the managed node."
+   INDEX   { ipv6TcpConnLocalAddress,
+             ipv6TcpConnLocalPort,
+             ipv6TcpConnRemAddress,
+             ipv6TcpConnRemPort,
+             ipv6TcpConnIfIndex }
+   ::= { ipv6TcpConnTable 1 }
+
+Ipv6TcpConnEntry ::=
+   SEQUENCE { ipv6TcpConnLocalAddress    Ipv6Address,
+              ipv6TcpConnLocalPort       INTEGER (0..65535),
+              ipv6TcpConnRemAddress      Ipv6Address,
+              ipv6TcpConnRemPort         INTEGER (0..65535),
+              ipv6TcpConnIfIndex         Ipv6IfIndexOrZero,
+              ipv6TcpConnState           INTEGER }
+
+ipv6TcpConnLocalAddress OBJECT-TYPE
+   SYNTAX     Ipv6Address
+   MAX-ACCESS not-accessible
+   STATUS     current
+   DESCRIPTION
+        "The local IPv6 address for this TCP connection. In
+         the case of a connection in the listen state which
+         is willing to accept connections for any IPv6
+         address associated with the managed node, the value
+         ::0 is used."
+   ::= { ipv6TcpConnEntry 1 }
+
+ipv6TcpConnLocalPort OBJECT-TYPE
+   SYNTAX     INTEGER (0..65535)
+   MAX-ACCESS not-accessible
+   STATUS     current
+   DESCRIPTION
+        "The local port number for this TCP connection."
+   ::= { ipv6TcpConnEntry 2 }
+
+ipv6TcpConnRemAddress OBJECT-TYPE
+   SYNTAX     Ipv6Address
+   MAX-ACCESS not-accessible
+   STATUS     current
+   DESCRIPTION
+        "The remote IPv6 address for this TCP connection."
+   ::= { ipv6TcpConnEntry 3 }
+
+ipv6TcpConnRemPort OBJECT-TYPE
+   SYNTAX     INTEGER (0..65535)
+   MAX-ACCESS not-accessible
+   STATUS     current
+   DESCRIPTION
+        "The remote port number for this TCP connection."
+   ::= { ipv6TcpConnEntry 4 }
+
+ipv6TcpConnIfIndex OBJECT-TYPE
+   SYNTAX     Ipv6IfIndexOrZero
+   MAX-ACCESS not-accessible
+   STATUS     current
+   DESCRIPTION
+        "An index object used to disambiguate conceptual rows in
+         the table, since the connection 4-tuple may not be unique.
+
+         If the connection's remote address (ipv6TcpConnRemAddress)
+         is a link-local address and the connection's local address
+
+         (ipv6TcpConnLocalAddress) is not a link-local address, this
+         object identifies a local interface on the same link as
+         the connection's remote link-local address.
+
+         Otherwise, this object identifies the local interface that
+         is associated with the ipv6TcpConnLocalAddress for this
+         TCP connection.  If such a local interface cannot be determined,
+         this object should take on the value 0.  (A possible example
+         of this would be if the value of ipv6TcpConnLocalAddress is ::0.)
+
+         The interface identified by a particular non-0 value of this
+         index is the same interface as identified by the same value
+         of ipv6IfIndex.
+
+         The value of this object must remain constant during the life
+         of the TCP connection."
+   ::= { ipv6TcpConnEntry 5 }
+
+ipv6TcpConnState OBJECT-TYPE
+   SYNTAX     INTEGER {
+        closed(1),
+        listen(2),
+        synSent(3),
+        synReceived(4),
+        established(5),
+        finWait1(6),
+        finWait2(7),
+        closeWait(8),
+        lastAck(9),
+        closing(10),
+        timeWait(11),
+        deleteTCB(12) }
+   MAX-ACCESS read-write
+   STATUS     current
+   DESCRIPTION
+        "The state of this TCP connection.
+
+         The only value which may be set by a management station is
+         deleteTCB(12).  Accordingly, it is appropriate for an agent
+         to return an error response (`badValue' for SNMPv1, 'wrongValue'
+         for SNMPv2) if a management station attempts to set this
+         object to any other value.
+
+         If a management station sets this object to the value
+         deleteTCB(12), then this has the effect of deleting the TCB
+         (as defined in RFC 793) of the corresponding connection on
+         the managed node, resulting in immediate termination of the
+         connection.
+
+         As an implementation-specific option, a RST segment may be
+         sent from the managed node to the other TCP endpoint (note
+         however that RST segments are not sent reliably)."
+   ::= { ipv6TcpConnEntry 6 }
+
+--
+-- conformance information
+--
+
+ipv6TcpConformance OBJECT IDENTIFIER ::= { ipv6TcpMIB 2 }
+
+ipv6TcpCompliances OBJECT IDENTIFIER ::= { ipv6TcpConformance 1 }
+ipv6TcpGroups      OBJECT IDENTIFIER ::= { ipv6TcpConformance 2 }
+
+-- compliance statements
+
+ipv6TcpCompliance MODULE-COMPLIANCE
+   STATUS  current
+   DESCRIPTION
+        "The compliance statement for SNMPv2 entities which
+         implement TCP over IPv6."
+   MODULE  -- this module
+   MANDATORY-GROUPS { ipv6TcpGroup }
+   ::= { ipv6TcpCompliances 1 }
+
+ipv6TcpGroup OBJECT-GROUP
+   OBJECTS   { -- these are defined in this module
+               -- ipv6TcpConnLocalAddress (not-accessible)
+               -- ipv6TcpConnLocalPort (not-accessible)
+               -- ipv6TcpConnRemAddress (not-accessible)
+               -- ipv6TcpConnRemPort (not-accessible)
+               -- ipv6TcpConnIfIndex (not-accessible)
+               ipv6TcpConnState }
+   STATUS    current
+   DESCRIPTION
+        "The group of objects providing management of
+         TCP over IPv6."
+   ::= { ipv6TcpGroups 1 }
+
+END

Added: trunk/mibs/IPV6-UDP-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/IPV6-UDP-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,141 @@
+IPV6-UDP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+   MODULE-COMPLIANCE, OBJECT-GROUP      FROM SNMPv2-CONF
+   MODULE-IDENTITY, OBJECT-TYPE,
+   mib-2, experimental                  FROM SNMPv2-SMI
+   Ipv6Address, Ipv6IfIndexOrZero       FROM IPV6-TC;
+
+ipv6UdpMIB MODULE-IDENTITY
+   LAST-UPDATED "9801290000Z"
+   ORGANIZATION "IETF IPv6 MIB Working Group"
+   CONTACT-INFO
+        "               Mike Daniele
+
+                Postal: Compaq Computer Corporation
+                        110 Spitbrook Rd
+                        Nashua, NH 03062.
+                        US
+
+                Phone:  +1 603 884 1423
+                Email:  daniele at zk3.dec.com"
+   DESCRIPTION
+        "The MIB module for entities implementing UDP over IPv6."
+   ::= { experimental 87 }
+
+-- objects specific to UDP for IPv6
+
+udp      OBJECT IDENTIFIER ::= { mib-2 7 }
+
+-- the UDP over IPv6 Listener table
+
+-- This table contains information about this entity's
+-- UDP/IPv6 endpoints.  Only endpoints utilizing IPv6 addresses
+-- are contained in this table.  This entity's UDP/IPv4 endpoints
+-- are contained in udpTable.
+
+ipv6UdpTable OBJECT-TYPE
+   SYNTAX      SEQUENCE OF Ipv6UdpEntry
+   MAX-ACCESS  not-accessible
+   STATUS      current
+   DESCRIPTION
+        "A table containing UDP listener information for
+         UDP/IPv6 endpoints."
+   ::= { udp 6 }
+
+ipv6UdpEntry OBJECT-TYPE
+   SYNTAX      Ipv6UdpEntry
+   MAX-ACCESS  not-accessible
+   STATUS      current
+   DESCRIPTION
+        "Information about a particular current UDP listener.
+
+         Note that conceptual rows in this table require an
+         additional index object compared to udpTable, since
+         IPv6 addresses are not guaranteed to be unique on the
+         managed node."
+   INDEX   { ipv6UdpLocalAddress,
+             ipv6UdpLocalPort,
+             ipv6UdpIfIndex }
+   ::= { ipv6UdpTable 1 }
+
+Ipv6UdpEntry ::= SEQUENCE {
+   ipv6UdpLocalAddress    Ipv6Address,
+   ipv6UdpLocalPort       INTEGER (0..65535),
+   ipv6UdpIfIndex         Ipv6IfIndexOrZero }
+
+ipv6UdpLocalAddress OBJECT-TYPE
+   SYNTAX       Ipv6Address
+   MAX-ACCESS   not-accessible
+   STATUS       current
+   DESCRIPTION
+        "The local IPv6 address for this UDP listener.
+         In the case of a UDP listener which is willing
+         to accept datagrams for any IPv6 address
+         associated with the managed node, the value ::0
+         is used."
+   ::= { ipv6UdpEntry 1 }
+
+ipv6UdpLocalPort OBJECT-TYPE
+    SYNTAX     INTEGER (0..65535)
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "The local port number for this UDP listener."
+    ::= { ipv6UdpEntry 2 }
+
+ipv6UdpIfIndex OBJECT-TYPE
+   SYNTAX     Ipv6IfIndexOrZero
+   MAX-ACCESS   read-only
+   STATUS     current
+   DESCRIPTION
+        "An index object used to disambiguate conceptual rows in
+         the table, since the ipv6UdpLocalAddress/ipv6UdpLocalPort
+         pair may not be unique.
+
+         This object identifies the local interface that is
+         associated with ipv6UdpLocalAddress for this UDP listener.
+         If such a local interface cannot be determined, this object
+         should take on the value 0.  (A possible example of this
+         would be if the value of ipv6UdpLocalAddress is ::0.)
+
+         The interface identified by a particular non-0 value of
+         this index is the same interface as identified by the same
+         value of ipv6IfIndex.
+
+         The value of this object must remain constant during
+         the life of this UDP endpoint."
+   ::= { ipv6UdpEntry 3 }
+
+--
+-- conformance information
+--
+
+ipv6UdpConformance OBJECT IDENTIFIER ::= { ipv6UdpMIB 2 }
+
+ipv6UdpCompliances OBJECT IDENTIFIER ::= { ipv6UdpConformance 1 }
+ipv6UdpGroups      OBJECT IDENTIFIER ::= { ipv6UdpConformance 2 }
+
+-- compliance statements
+
+ipv6UdpCompliance MODULE-COMPLIANCE
+   STATUS  current
+   DESCRIPTION
+        "The compliance statement for SNMPv2 entities which
+         implement UDP over IPv6."
+   MODULE  -- this module
+   MANDATORY-GROUPS { ipv6UdpGroup }
+   ::= { ipv6UdpCompliances 1 }
+
+ipv6UdpGroup OBJECT-GROUP
+   OBJECTS   { -- these are defined in this module
+               -- ipv6UdpLocalAddress (not-accessible)
+               -- ipv6UdpLocalPort (not-accessible)
+               ipv6UdpIfIndex }
+   STATUS    current
+   DESCRIPTION
+        "The group of objects providing management of
+         UDP over IPv6."
+   ::= { ipv6UdpGroups 1 }
+
+END

Added: trunk/mibs/LINUX-HA-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/LINUX-HA-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,581 @@
+-- Linux-HA: SNMP Subagent
+-- 
+-- Copyright (C) 2002 Yixiong Zou (yixiong.zou at intel.com)
+--
+-- This program is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU General Public License
+-- as published by the Free Software Foundation; either version 2
+-- of the License, or (at your option) any later version.
+-- 
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+-- 
+-- You should have received a copy of the GNU General Public License
+-- along with this program; if not, write to the Free Software
+-- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+--
+
+LINUX-HA-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, enterprises,
+    Counter32, INTEGER, Integer32, Unsigned32, IpAddress
+	FROM SNMPv2-SMI
+
+    TEXTUAL-CONVENTION, DisplayString, 
+    TimeStamp, TruthValue, DateAndTime			    
+	FROM SNMPv2-TC
+
+    MODULE-COMPLIANCE, OBJECT-GROUP		    
+	FROM SNMPv2-CONF;
+
+linuxHA	MODULE-IDENTITY
+    LAST-UPDATED "200211040000Z"	-- Nov. 4, 2002
+    ORGANIZATION "High-Availability Linux Project"
+    CONTACT-INFO
+	"Alan Robertson
+	Postal:	Linux-HA Project
+		13750 Bayberry Drive
+		Broomfield, CO 80020-6163
+	Phone:	303-466-7405
+	FAX:	n/a
+	Email:	alanr at unix.sh
+
+	Yixiong Zou
+	Postal: Intel Corp.  
+		CO5-162
+		15400 NW Greenbrier Parkway
+		Beaverton, OR 97006
+		USA
+	Phone:	503-677-4988
+	Fax:	503-677-6670
+	Email:	yixiong.zou at intel.com
+
+	In addition, the Linux-HA mailing list is where all the 
+	discussion about this MIB happens. To join the mailing list, 
+	send a request message to linux-ha-subscribe at muc.de.  
+	The mailing list address is
+	linux-ha-dev at lists.community.tummy.com."
+    DESCRIPTION
+	"This MIB can be used to manage a Linux-HA cluster. The
+	initial plan is to make the heartbeat, resource managment,
+	and memberships accessible through SNMP. Hopefully more
+	things can be added as Linux-HA matures."
+
+    REVISION "200211040000Z"	    -- Nov. 4, 2002
+    DESCRIPTION
+	"The original version of this MIB."
+    ::= { enterprises 4682 }
+
+-- Current LinuxHA core MIB entries
+--  lhaClusterInfo 	      OBJECT IDENTIFIER ::= { linuxHA 1 }
+--  lhaNodeTable	      OBJECT IDENTIFIER ::= { linuxHA 2 }
+--  lhaIFStatusTable	      OBJECT IDENTIFIER ::= { linuxHA 3 }
+--  lhaResourceGroupTable     OBJECT IDENTIFIER ::= { linuxHA 4 }
+--  lhaMembershipTable	      OBJECT IDENTIFIER ::= { linuxHA 6 }
+--  lhaHeartbeatConfigInfo    OBJECT IDENTIFIER ::= { linuxHA 7 }
+--  lhaTrapTable	      OBJECT IDENTIFIER ::= { linuxHA 900 }
+
+LHAUUIDString ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "4x-2x-2x-2x-4x2x"
+    STATUS       current
+    DESCRIPTION
+    	"A string that represents a UUID"
+    SYNTAX       OCTET STRING (SIZE (16))
+
+lhaClusterInfo		OBJECT IDENTIFIER ::= { linuxHA 1 }
+
+lhaTotalNodeCount OBJECT-TYPE
+    SYNTAX	Counter32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The number of nodes that are currently configured for this
+	cluster."
+    ::= { lhaClusterInfo 1 }
+
+lhaLiveNodeCount OBJECT-TYPE
+    SYNTAX	Counter32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The number of nodes that are currently active in this
+	cluster."
+    ::= { lhaClusterInfo 2 }
+
+lhaCurrentNodeID OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The nodes id of the host that this agent currently
+	represents.  This value is the same as the lhaNodeIndex value
+	of this node."
+    ::= { lhaClusterInfo 3 }
+
+lhaResourceGroupCount OBJECT-TYPE
+    SYNTAX	Counter32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The total number of Resource Groups that have been
+	configured for this cluster."
+    ::= { lhaClusterInfo 4 }
+
+lhaNodeTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF LHANodeEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A table contains information about all the nodes in the
+	cluster."
+    ::= { linuxHA 2 }
+
+lhaNodeEntry OBJECT-TYPE
+    SYNTAX	LHANodeEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION	
+	"An entry containing a node and its statistics."
+    INDEX	{ lhaNodeIndex }
+    ::= { lhaNodeTable 1 }
+
+LHANodeEntry ::= SEQUENCE {
+    lhaNodeIndex	    Integer32,
+    lhaNodeName	    	    DisplayString,
+    lhaNodeType		    INTEGER,
+    lhaNodeStatus           INTEGER,
+    lhaNodeUUID		    DisplayString,
+    lhaNodeIFCount	    Counter32,
+}
+
+lhaNodeIndex OBJECT-TYPE    
+    SYNTAX	Integer32 (0..65535)
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"An integer that identifies a node in a cluster for a given
+	snmp session."
+    ::= { lhaNodeEntry 1 }
+
+lhaNodeName OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"A human readable name that represents that node."
+    ::= { lhaNodeEntry 2 }
+
+lhaNodeType OBJECT-TYPE
+    SYNTAX	INTEGER {
+	    	    unknown (0),
+		    normal (1),
+		    ping (2)
+	    	}
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"There could be many types of nodes in the cluster.  For
+	example, a node could be a normal node, or a ping node
+	depending on the configuration.  This object shows the
+	type of this node as an integer.  
+	
+	So far only the normal node and ping node are defined.  All
+	the rest will fall into the 'unknown' catagory. "
+    ::= { lhaNodeEntry 3 }
+
+lhaNodeStatus OBJECT-TYPE
+    SYNTAX	INTEGER {
+	    	    unknown (0),
+		    init (1),
+		    up (2),
+		    active (3), 
+		    dead (4)
+	    	}
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The status of the node as an integer. For heartbeat, this
+	would normally be init, up, active, or dead.
+
+	So far, only these four states are defined.  All the rest
+	falls in 'unknown' catagory."
+    ::= { lhaNodeEntry 4 }
+
+lhaNodeUUID OBJECT-TYPE
+    SYNTAX	LHAUUIDString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The UUID of the current node in string representatio.  This
+	UUID will be persisted over the heartbeat session.  So it can
+	be used as a unique identifier for a node."
+    ::= { lhaNodeEntry 5 }
+
+lhaNodeIFCount OBJECT-TYPE
+    SYNTAX	Counter32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The number of interfaces that is used by heartbeat
+	for this node."
+    ::= { lhaNodeEntry 6 }
+
+lhaIFStatusTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF LHAIFEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A table describes all the interfaces that are used by the
+	heartbeat cluster."
+    ::= { linuxHA 3 }
+
+lhaIFStatusEntry OBJECT-TYPE
+    SYNTAX	LHAIFStatusEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"An entry containing information about that interface.
+	The lhaNodeIndex is listed in the lhaNodeTable."
+    INDEX	{ lhaNodeIndex, lhaIFIndex }
+    ::= { lhaIFStatusTable 1 }
+
+LHAIFStatusEntry ::= SEQUENCE {
+    lhaIFIndex	    	Integer32,
+    lhaIFName	    	DisplayString,
+    lhaIFStatus		INTEGER
+}
+
+lhaIFIndex OBJECT-TYPE
+    SYNTAX	Integer32 (0..65535)
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"An unique integer identifies this interface."
+    ::= { lhaIFStatusEntry 1 }
+
+lhaIFName OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"A name for this interface."
+    ::= { lhaIFStatusEntry 2 }
+
+lhaIFStatus OBJECT-TYPE
+    SYNTAX	INTEGER {
+	    	    unknown (0),
+		    up (1),
+		    down (2)
+    		}
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The status for this interface as an integer. 
+	
+	Currently only up and down are defined as the interface
+	status.  All the others will fall into the unknown catagory."
+    ::= { lhaIFStatusEntry 3 }
+
+
+lhaResourceGroupTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF LHAResourceGroupEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A table containing information of all the resource groups."
+    ::= { linuxHA 4 }
+
+lhaResourceGroupEntry OBJECT-TYPE
+    SYNTAX	LHAResourceGroupEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"An entry that describes the resource group and its
+	information."
+    INDEX	{ lhaResourceGroupIndex }
+    ::= { lhaResourceGroupTable 1 }
+
+LHAResourceGroupEntry ::= SEQUENCE	{
+    lhaResourceGroupIndex	Integer32,
+    lhaResourceGroupMaster	DisplayString,
+    lhaResourceGroupResources   DisplayString,
+    lhaResourceGroupStatus	Integer32
+}
+
+lhaResourceGroupIndex OBJECT-TYPE
+    SYNTAX	Integer32 (0..65535)
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A unique integer that identifies this resource group."
+    ::= { lhaResourceGroupEntry 1 }
+
+lhaResourceGroupMaster OBJECT-TYPE
+    SYNTAX	Integer32 (0..65535)
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The master node id of this resource group.  This is 
+	the lhaNodeIndex for the master node of this resource
+	group. "
+    ::= { lhaResourceGroupEntry 2 }
+
+lhaResourceGroupResources OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The resources contained in this resource group."
+    ::= { lhaResourceGroupEntry 3 }
+
+lhaResourceGroupStatus OBJECT-TYPE
+    SYNTAX	Unsigned32 (0..255)
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The status of this resource group.
+
+	 0       program is running 
+	 1       program is dead and /var/run pid file exists
+	 2       program is dead and /var/lock lock file exists
+	 3       program is stopped
+	 4-100   reserved for future LSB use
+	 100-149 reserved for distribution use
+	 150-199 reserved for application use
+	 200-254 reserved
+	 "
+    ::= { lhaResourceGroupEntry 4 }
+
+lhaMembershipTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF LHAMembershipEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A table containing membership information for the cluster.
+	A successful membership has to have qurom.  
+	
+				NOTE WELL
+
+	If this table does not contain any entries, that means the 
+	node is not part of the cluster membership."
+    ::= { linuxHA 6 }
+
+lhaMembershipEntry OBJECT-TYPE
+    SYNTAX	LHAMembershipEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"An entry containing a member and its status."
+    INDEX	{ lhaMemberIndex }
+    ::= { lhaMembershipTable 1 }
+
+LHAMembershipEntry ::= SEQUENCE {
+    lhaMemberIndex   		Integer32,
+    lhaMemberName    		DisplayString,
+    lhaMemberAddress 		DisplayString,
+    lhaMemberClusterName	DisplayString,
+    lhaMemberIsMember		TruthValue,
+    lhaMemberLastChange 	INTEGER,
+    lhaMemberBootTime 		TimeStamp,
+}
+
+lhaMemberIndex OBJECT-TYPE
+    SYNTAX	Integer32 (0..65535)
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A unique integer that identifies this member."
+    ::= { lhaMembershipEntry 1 }
+
+lhaMemberName OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The name of the cluster member."
+    ::= { lhaMembershipEntry 2 }
+
+lhaMemberAddress OBJECT-TYPE
+    SYNTAX	OCTET STRING (SIZE (64))
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The address of the cluster member."
+    ::= { lhaMembershipEntry 3 }
+
+lhaMemberClusterName OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The name of this cluster."
+    ::= { lhaMembershipEntry 4 }
+
+lhaMemberIsMember OBJECT-TYPE
+    SYNTAX	TruthValue
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"If this node is part of the membership or not."
+    ::= { lhaMembershipEntry 5 }
+
+lhaMemberLastChange OBJECT-TYPE
+    SYNTAX	INTEGER {
+	    	    undefined (0),
+		    nochange (1),
+		    joined (2),
+		    left (3)
+		}
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"If this node is part of the membership or not."
+    ::= { lhaMembershipEntry 6 }
+
+lhaMemberBootTime OBJECT-TYPE
+    SYNTAX	TimeStamp
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The time when this cluster member last started."
+    ::= { lhaMembershipEntry 7 }
+
+lhaHeartbeatConfigInfo		OBJECT IDENTIFIER ::= { linuxHA 7 }
+
+lhaHBVersion OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The heartbeat version."
+    ::= { lhaHeartbeatConfigInfo 1 }
+
+lhaKeepAlive OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The heartbeat interval."
+    ::= { lhaHeartbeatConfigInfo 3 }
+
+lhaDeadTime OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The time it waits before declaring a node to be dead."
+    ::= { lhaHeartbeatConfigInfo 4 }
+
+lhaDeadPing OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The time it waits before declaring a ping node to be dead."
+    ::= { lhaHeartbeatConfigInfo 5 }
+
+lhaWarnTime OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The time it waits before issuing a 'late heartbeat' warning."
+    ::= { lhaHeartbeatConfigInfo 6 }
+
+lhaInitDead OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Very first dead time.  Should be twice the normal dead time."
+    ::= { lhaHeartbeatConfigInfo 7 }
+
+lhaBaudRate OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Baud rate for serial ports."
+    ::= { lhaHeartbeatConfigInfo 9 }
+
+lhaAutoFailBack OBJECT-TYPE
+    SYNTAX	INTEGER {
+	    	    undefined (0),
+		    on (1),
+		    off (2),
+		    legacy (3)
+    		}
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Determins whether a resource will automatically fail back to
+	its primary node, or remain on whatever the node is serving.
+	
+	Possible values are: on, off, legacy."
+    ::= { lhaHeartbeatConfigInfo 12 }
+
+lhaStonith OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The STONITH device configured for this cluster."
+    ::= { lhaHeartbeatConfigInfo 13 }
+
+lhaStonithHost OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The STONITH host configured for this cluster."
+    ::= { lhaHeartbeatConfigInfo 14 }
+
+lhaRespawn OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The other services that got respawned by heartbeat daemon."
+    ::= { lhaHeartbeatConfigInfo 15 }
+
+lhaTrapTable                    OBJECT IDENTIFIER ::= { linuxHA 900 }
+
+lhaNodeStatusUpdate NOTIFICATION-TYPE
+    OBJECTS { lhaNodeName, lhaNodeStatus }
+    STATUS  current
+    DESCRIPTION
+    	"A node status change event just happened."
+    ::= { lhaTrapTable 1 }
+
+lhaIFStatusUpdate NOTIFICATION-TYPE
+    OBJECTS { lhaNodeName, lhaIFName, lhaIFStatus }
+    STATUS  current
+    DESCRIPTION
+    	"A link status just changed."
+    ::= { lhaTrapTable 3 }
+
+lhaMembershipChange NOTIFICATION-TYPE
+    OBJECTS { lhaNodeName, lhaMemberLastChange }
+    STATUS  current
+    DESCRIPTION
+    	"A node just changed it membership. "
+    ::= { lhaTrapTable 5 }
+
+lhaHBAgentOnline NOTIFICATION-TYPE
+    OBJECTS { lhaNodeName }
+    STATUS  current
+    DESCRIPTION
+    	"The heartbeat agent for this node is online and ready to accept queries. "
+    ::= { lhaTrapTable 7 }
+
+lhaHBAgentOffline NOTIFICATION-TYPE
+    OBJECTS { lhaNodeName }
+    STATUS  current
+    DESCRIPTION
+    	"The heartbeat agent for this node is offline. "
+    ::= { lhaTrapTable 9 }
+
+END

Added: trunk/mibs/LM-SENSORS-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/LM-SENSORS-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,231 @@
+LM-SENSORS-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Derived from the original VEST-INTERNETT-MIB. Open issues:
+--
+-- (a) where to register this MIB?
+-- (b) use not-accessible for diskIOIndex?
+--
+
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Gauge32
+        FROM SNMPv2-SMI
+    DisplayString
+        FROM SNMPv2-TC
+    ucdExperimental
+        FROM UCD-SNMP-MIB;
+
+lmSensors      OBJECT IDENTIFIER ::= { ucdExperimental 16 }
+
+lmSensorsMIB MODULE-IDENTITY
+    LAST-UPDATED "200011050000Z"
+    ORGANIZATION "AdamsNames Ltd"
+    CONTACT-INFO    
+        "Primary Contact: M J Oldfield
+         email:     m at mail.tc"
+    DESCRIPTION
+        "This MIB module defines objects for lm_sensor derived data."
+    REVISION     "200011050000Z"
+    DESCRIPTION
+        "Derived from DISKIO-MIB ex UCD."
+    ::= { lmSensors 1 }
+
+
+--
+
+lmTempSensorsTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF LMTempSensorsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "Table of temperature sensors and their values."
+    ::= { lmSensors 2 }
+
+lmTempSensorsEntry OBJECT-TYPE
+    SYNTAX      LMTempSensorsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "An entry containing a device and its statistics."
+    INDEX       { lmTempSensorsIndex }
+    ::= { lmTempSensorsTable 1 }
+
+LMTempSensorsEntry ::= SEQUENCE {
+    lmTempSensorsIndex    Integer32,
+    lmTempSensorsDevice   DisplayString,
+    lmTempSensorsValue    Gauge32
+}
+
+lmTempSensorsIndex OBJECT-TYPE
+    SYNTAX      Integer32 (0..65535)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Reference index for each observed device."
+    ::= { lmTempSensorsEntry 1 }
+
+lmTempSensorsDevice OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The name of the temperature sensor we are reading."
+    ::= { lmTempSensorsEntry 2 }
+
+lmTempSensorsValue OBJECT-TYPE
+    SYNTAX      Gauge32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The temperature of this sensor in mC."
+    ::= { lmTempSensorsEntry 3 }
+--
+
+lmFanSensorsTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF LMFanSensorsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "Table of fan sensors and their values."
+    ::= { lmSensors 3 }
+
+lmFanSensorsEntry OBJECT-TYPE
+    SYNTAX      LMFanSensorsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "An entry containing a device and its statistics."
+    INDEX       { lmFanSensorsIndex }
+    ::= { lmFanSensorsTable 1 }
+
+LMFanSensorsEntry ::= SEQUENCE {
+    lmFanSensorsIndex    Integer32,
+    lmFanSensorsDevice   DisplayString,
+    lmFanSensorsValue    Gauge32
+}
+
+lmFanSensorsIndex OBJECT-TYPE
+    SYNTAX      Integer32 (0..65535)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Reference index for each observed device."
+    ::= { lmFanSensorsEntry 1 }
+
+lmFanSensorsDevice OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The name of the fan sensor we are reading."
+    ::= { lmFanSensorsEntry 2 }
+
+lmFanSensorsValue OBJECT-TYPE
+    SYNTAX      Gauge32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The rotation speed of the fan in RPM."
+    ::= { lmFanSensorsEntry 3 }
+
+--
+
+lmVoltSensorsTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF LMVoltSensorsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "Table of voltage sensors and their values."
+    ::= { lmSensors 4 }
+
+lmVoltSensorsEntry OBJECT-TYPE
+    SYNTAX      LMVoltSensorsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "An entry containing a device and its statistics."
+    INDEX       { lmVoltSensorsIndex }
+    ::= { lmVoltSensorsTable 1 }
+
+LMVoltSensorsEntry ::= SEQUENCE {
+    lmVoltSensorsIndex    Integer32,
+    lmVoltSensorsDevice   DisplayString,
+    lmVoltSensorsValue    Gauge32
+}
+
+lmVoltSensorsIndex OBJECT-TYPE
+    SYNTAX      Integer32 (0..65535)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Reference index for each observed device."
+    ::= { lmVoltSensorsEntry 1 }
+
+lmVoltSensorsDevice OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The name of the device we are reading."
+    ::= { lmVoltSensorsEntry 2 }
+
+lmVoltSensorsValue OBJECT-TYPE
+    SYNTAX      Gauge32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The voltage in mV."
+    ::= { lmVoltSensorsEntry 3 }
+
+--
+
+lmMiscSensorsTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF LMMiscSensorsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "Table of miscellaneous sensor devices and their values."
+    ::= { lmSensors 5 }
+
+lmMiscSensorsEntry OBJECT-TYPE
+    SYNTAX      LMMiscSensorsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "An entry containing a device and its statistics."
+    INDEX       { lmMiscSensorsIndex }
+    ::= { lmMiscSensorsTable 1 }
+
+LMMiscSensorsEntry ::= SEQUENCE {
+    lmMiscSensorsIndex    Integer32,
+    lmMiscSensorsDevice   DisplayString,
+    lmMiscSensorsValue    Gauge32
+}
+
+lmMiscSensorsIndex OBJECT-TYPE
+    SYNTAX      Integer32 (0..65535)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Reference index for each observed device."
+    ::= { lmMiscSensorsEntry 1 }
+
+lmMiscSensorsDevice OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The name of the device we are reading."
+    ::= { lmMiscSensorsEntry 2 }
+
+lmMiscSensorsValue OBJECT-TYPE
+    SYNTAX      Gauge32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The value of this sensor."
+    ::= { lmMiscSensorsEntry 3 }
+
+
+END

Added: trunk/mibs/NET-SNMP-AGENT-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/NET-SNMP-AGENT-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,550 @@
+NET-SNMP-AGENT-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Defines control and monitoring structures for the Net-SNMP agent.
+--
+
+IMPORTS
+    SnmpAdminString
+    	FROM SNMP-FRAMEWORK-MIB
+
+    netSnmpObjects, netSnmpModuleIDs, netSnmpNotifications, netSnmpGroups
+	FROM NET-SNMP-MIB
+
+    OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY, Integer32, Unsigned32
+        FROM SNMPv2-SMI
+
+    OBJECT-GROUP, NOTIFICATION-GROUP
+	FROM SNMPv2-CONF
+
+    TEXTUAL-CONVENTION, DisplayString, RowStatus, TruthValue
+	FROM SNMPv2-TC;
+
+
+netSnmpAgentMIB MODULE-IDENTITY
+    LAST-UPDATED "200502070000Z"
+    ORGANIZATION "www.net-snmp.org"
+    CONTACT-INFO    
+	 "postal:   Wes Hardaker
+                    P.O. Box 382
+                    Davis CA  95617
+
+          email:    net-snmp-coders at lists.sourceforge.net"
+    DESCRIPTION
+	 "Defines control and monitoring structures for the Net-SNMP agent."
+    REVISION     "200502070000Z"
+    DESCRIPTION
+    	"Fixing syntax errors"
+    REVISION     "200202090000Z"
+    DESCRIPTION
+	"First revision."
+    ::= { netSnmpModuleIDs 2 }
+
+
+nsVersion              OBJECT IDENTIFIER ::= {netSnmpObjects 1}
+nsMibRegistry          OBJECT IDENTIFIER ::= {netSnmpObjects 2}
+nsExtensions           OBJECT IDENTIFIER ::= {netSnmpObjects 3}
+nsDLMod                OBJECT IDENTIFIER ::= {netSnmpObjects 4}
+nsCache                OBJECT IDENTIFIER ::= {netSnmpObjects 5}
+nsErrorHistory         OBJECT IDENTIFIER ::= {netSnmpObjects 6}
+nsConfiguration        OBJECT IDENTIFIER ::= {netSnmpObjects 7}
+nsTransactions         OBJECT IDENTIFIER ::= {netSnmpObjects 8}
+
+--
+--  MIB Module data caching management
+--
+
+NetsnmpCacheStatus ::= TEXTUAL-CONVENTION
+    STATUS      current
+    DESCRIPTION "an indication of the status of data caching entries"
+    SYNTAX INTEGER {
+		enabled(1),
+		disabled(2),
+		empty  (3),
+		cached (4),
+		expired(5)
+           }
+
+nsCacheDefaultTimeout         OBJECT-TYPE
+    SYNTAX      INTEGER		-- ???
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+      "Default cache timeout value (unless overridden
+       for a particular cache entry)."
+    DEFVAL { 5 } -- seconds
+    ::= { nsCache 1 }
+
+nsCacheEnabled                OBJECT-TYPE
+    SYNTAX      TruthValue
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+      "Whether data caching is active overall."
+    DEFVAL { true }
+    ::= { nsCache 2 }
+
+nsCacheTable     OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NsCacheEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A table of individual MIB module data caches."
+    ::= { nsCache 3 }
+
+nsCacheEntry     OBJECT-TYPE
+    SYNTAX      NsCacheEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A conceptual row within the cache table."
+    INDEX       { IMPLIED nsCachedOID }
+    ::= { nsCacheTable 1 }
+
+NsCacheEntry ::= SEQUENCE {
+    nsCachedOID     OBJECT IDENTIFIER,
+    nsCacheTimeout  INTEGER,		-- ?? TimeTicks ??
+    nsCacheStatus   NetsnmpCacheStatus	-- ?? INTEGER ??
+}
+
+nsCachedOID     OBJECT-TYPE
+    SYNTAX      OBJECT IDENTIFIER
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "The root OID of the data being cached."
+    ::= { nsCacheEntry 1 }
+
+nsCacheTimeout  OBJECT-TYPE
+    SYNTAX      INTEGER
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+      "The length of time (?in seconds) for which the data in
+       this particular cache entry will remain valid." 
+    ::= { nsCacheEntry 2 }
+
+nsCacheStatus   OBJECT-TYPE
+    SYNTAX      NetsnmpCacheStatus
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+      "The current status of this particular cache entry.
+       Acceptable values for Set requests are 'enabled(1)',
+       'disabled(2)' or 'empty(3)' (to clear all cached data).
+       Requests to read the value of such an object will
+       return 'disabled(2)' through to 'expired(5)'."
+    ::= { nsCacheEntry 3 }
+
+--
+--  Agent configuration
+--    Debug and logging output
+--
+
+nsConfigDebug          OBJECT IDENTIFIER ::= {nsConfiguration 1}
+nsConfigLogging        OBJECT IDENTIFIER ::= {nsConfiguration 2}
+
+nsDebugEnabled         OBJECT-TYPE
+    SYNTAX      TruthValue
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+      "Whether the agent is configured to generate debugging output"
+    DEFVAL { false }
+    ::= { nsConfigDebug 1 }
+
+nsDebugOutputAll       OBJECT-TYPE
+    SYNTAX      TruthValue
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+      "Whether the agent is configured to display all debugging output
+       rather than filtering on individual debug tokens.  Nothing will
+       be generated unless nsDebugEnabled is also true(1)"
+    DEFVAL { false }
+    ::= { nsConfigDebug 2 }
+
+nsDebugDumpPdu        OBJECT-TYPE
+    SYNTAX      TruthValue
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+      "Whether the agent is configured to display raw packet dumps.
+       This is unrelated to the nsDebugEnabled setting."
+    DEFVAL { false }
+    ::= { nsConfigDebug 3 }
+
+nsDebugTokenTable     OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NsDebugTokenEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A table of individual debug tokens, used to control the selection
+       of what debugging output should be produced.  This table is only
+       effective if nsDebugOutputAll is false(2), and nothing will
+       be generated unless nsDebugEnabled is also true(1)"
+    ::= { nsConfigDebug 4 }
+
+nsDebugTokenEntry     OBJECT-TYPE
+    SYNTAX      NsDebugTokenEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A conceptual row within the debug token table."
+    INDEX       { IMPLIED nsDebugTokenPrefix }
+    ::= { nsDebugTokenTable 1 }
+
+NsDebugTokenEntry ::= SEQUENCE {
+    nsDebugTokenPrefix  DisplayString,
+    nsDebugTokenStatus  RowStatus
+}
+
+nsDebugTokenPrefix    OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A token prefix for which to generate the corresponding
+       debugging output.  Note that debug output will be generated
+       for all registered debug statements sharing this prefix
+       (rather than an exact match).  Nothing will be generated
+       unless both nsDebuggingEnabled is set true(1) and the
+       corresponding nsDebugTokenStatus value is active(1)."
+    ::= { nsDebugTokenEntry 2 }
+
+nsDebugTokenStatus   OBJECT-TYPE
+    SYNTAX      RowStatus
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "Whether to generate debug output for the corresponding debug
+       token prefix.  Nothing will be generated unless both
+       nsDebuggingEnabled is true(1) and this instance is active(1).
+       Note that is valid for an instance to be left with the value
+       notInService(2) indefinitely - i.e. the meaning of 'abnormally
+       long' (see RFC 2579, RowStatus) for this table is infinite."
+    ::= { nsDebugTokenEntry 4 }
+
+--
+-- Logging configuration
+--
+
+nsLoggingTable     OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NsLoggingEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A table of individual logging output destinations, used to control
+       where various levels of output from the agent should be directed."
+    ::= { nsConfigLogging 1 }
+
+nsLoggingEntry     OBJECT-TYPE
+    SYNTAX      NsLoggingEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A conceptual row within the logging table."
+    INDEX       { nsLogLevel, IMPLIED nsLogToken }
+    ::= { nsLoggingTable 1 }
+
+NsLoggingEntry ::= SEQUENCE {
+    nsLogLevel          INTEGER,
+    nsLogToken          DisplayString,
+    nsLogType           INTEGER,
+    nsLogMaxLevel       INTEGER,
+    nsLogStatus         RowStatus
+}
+
+nsLogLevel    OBJECT-TYPE
+    SYNTAX      INTEGER {
+		     emergency(0),
+		     alert    (1),
+		     critical (2),
+		     error    (3),
+		     warning  (4),
+		     notice   (5),
+		     info     (6),
+		     debug    (7)
+                }
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "The (minimum) priority level for which this logging entry
+       should be applied."
+    ::= { nsLoggingEntry 1 }
+
+nsLogToken    OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A token for which to generate logging entries.
+       Depending on the style of logging, this may either
+       be simply an arbitrary token, or may have some
+       particular meaning (such as the filename to log to)."
+    ::= { nsLoggingEntry 2 }
+
+nsLogType     OBJECT-TYPE
+    SYNTAX      INTEGER {
+		     stdout   (1),
+		     stderr   (2),
+		     file     (3),
+		     syslog   (4),
+		     callback (5)
+                }
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "The type of logging for this entry."
+    ::= { nsLoggingEntry 3 }
+
+nsLogMaxLevel OBJECT-TYPE
+    SYNTAX      INTEGER {
+		     emergency(0),
+		     alert    (1),
+		     critical (2),
+		     error    (3),
+		     warning  (4),
+		     notice   (5),
+		     info     (6),
+		     debug    (7)
+                }
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "The maximum priority level for which this logging entry
+       should be applied."
+    DEFVAL      { emergency }
+    ::= { nsLoggingEntry 4 }
+
+nsLogStatus   OBJECT-TYPE
+    SYNTAX      RowStatus
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "Whether to generate logging output for this entry.
+       Note that is valid for an instance to be left with the value
+       notInService(2) indefinitely - i.e. the meaning of 'abnormally
+       long' (see RFC 2579, RowStatus) for this table is infinite."
+    ::= { nsLoggingEntry 5 }
+
+--
+--  Monitoring outstanding "transactions"
+--    (i.e. requests sent to AgentX subagents, or proxied agents)
+--
+
+nsTransactionTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NsTransactionEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+	"Lists currently outstanding transactions in the net-snmp agent.
+	 This includes requests to AgentX subagents, or proxied SNMP agents."
+    ::= { nsTransactions 1 }
+
+nsTransactionEntry OBJECT-TYPE
+    SYNTAX      NsTransactionEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+	"A row describing a given transaction."
+    INDEX   { nsTransactionID }
+    ::= {nsTransactionTable 1 }
+
+NsTransactionEntry ::= SEQUENCE {
+    nsTransactionID   Unsigned32,
+    nsTransactionMode Integer32
+}
+
+nsTransactionID OBJECT-TYPE
+    SYNTAX      Unsigned32 (0..4294967295)
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+	"The internal identifier for a given transaction."
+    ::= { nsTransactionEntry 1 }
+
+nsTransactionMode OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+	"The mode number for the current operation being performed."
+    ::= { nsTransactionEntry 2 }
+
+
+--
+--  Monitoring the MIB modules currently registered in the agent
+--    (an updated version of UCD-SNMP-MIB::mrTable)
+--
+
+nsModuleTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF NsModuleEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A table displaying all the oid's registered by mib modules in
+	 the agent.  Since the agent is modular in nature, this lists
+	 each module's OID it is responsible for and the name of the module"
+    ::= { nsMibRegistry 1 }
+
+nsModuleEntry OBJECT-TYPE
+    SYNTAX	NsModuleEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+        "An entry containing a registered mib oid."
+    INDEX       { nsmContextName, nsmRegistrationPoint, 
+                  nsmRegistrationPriority }
+    ::= { nsModuleTable 1 }
+
+NsModuleEntry ::= SEQUENCE {
+    nsmContextName          SnmpAdminString,
+    nsmRegistrationPoint    OBJECT IDENTIFIER,
+    nsmRegistrationPriority INTEGER,
+    nsModuleName	    DisplayString,
+    nsModuleModes           BITS,
+    nsModuleTimeout         Integer32
+}
+
+nsmContextName OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+	"The context name the module is registered under."
+    ::= { nsModuleEntry 1 }
+
+nsmRegistrationPoint OBJECT-TYPE
+    SYNTAX	OBJECT IDENTIFIER
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"The registry OID of a mib module."
+    ::= { nsModuleEntry  2 }
+
+nsmRegistrationPriority OBJECT-TYPE
+    SYNTAX	INTEGER (-2147483648..2147483647)
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"The priority of the registered mib module."
+    ::= { nsModuleEntry  3 }
+
+nsModuleName OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The module name that registered this OID."
+    ::= { nsModuleEntry  4 }
+
+nsModuleModes OBJECT-TYPE
+    SYNTAX	BITS { getAndGetNext(0), set(1), getBulk(2) }
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The modes that the particular lower level handler can cope
+  	 with directly."
+    ::= { nsModuleEntry  5 }
+
+nsModuleTimeout OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The registered timeout.  This is only meaningful for handlers
+	 that expect to return results at a later date (subagents,
+	 etc)"
+    ::= { nsModuleEntry  6 }
+
+
+--
+--  Notifications relating to the basic operation of the agent
+--
+
+nsNotifyStart        NOTIFICATION-TYPE
+    STATUS	current
+    DESCRIPTION
+	"An indication that the agent has started running."
+    ::= { netSnmpNotifications 1 }
+    
+nsNotifyShutdown     NOTIFICATION-TYPE
+    STATUS current
+    DESCRIPTION
+	"An indication that the agent is in the process of being shut down."
+    ::= { netSnmpNotifications 2 }
+
+nsNotifyRestart      NOTIFICATION-TYPE
+    STATUS	current
+    DESCRIPTION
+	"An indication that the agent has been restarted.
+	 This does not imply anything about whether the configuration has
+	 changed or not (unlike the standard coldStart or warmStart traps)"
+    ::= { netSnmpNotifications 3 }
+    
+
+--
+-- Conformance-related definitions
+--
+
+nsModuleGroup  OBJECT-GROUP
+    OBJECTS {
+        nsModuleName, nsModuleModes, nsModuleTimeout
+    }
+    STATUS	current
+    DESCRIPTION
+	"The objects relating to the list of MIB modules registered
+	 with the Net-SNMP agent."
+    ::= { netSnmpGroups 2 }
+
+nsCacheGroup  OBJECT-GROUP
+    OBJECTS {
+        nsCacheDefaultTimeout, nsCacheEnabled,
+        nsCacheTimeout,        nsCacheStatus
+    }
+    STATUS	current
+    DESCRIPTION
+	"The objects relating to data caching in the Net-SNMP agent."
+    ::= { netSnmpGroups 4 }
+
+nsConfigGroups OBJECT IDENTIFIER ::= {netSnmpGroups 7}
+
+nsDebugGroup  OBJECT-GROUP
+    OBJECTS {
+        nsDebugEnabled, nsDebugOutputAll, nsDebugDumpPdu,
+        nsDebugTokenStatus
+    }
+    STATUS	current
+    DESCRIPTION
+	"The objects relating to debug configuration in the Net-SNMP agent."
+    ::= { nsConfigGroups 1 }
+
+nsLoggingGroup  OBJECT-GROUP
+    OBJECTS {
+        nsLogType, nsLogMaxLevel, nsLogStatus
+    }
+    STATUS	current
+    DESCRIPTION
+	"The objects relating to logging configuration in the Net-SNMP agent."
+    ::= { nsConfigGroups 2 }
+
+nsTransactionGroup  OBJECT-GROUP
+    OBJECTS {
+        nsTransactionMode
+    }
+    STATUS	current
+    DESCRIPTION
+	"The objects relating to transaction monitoring in the Net-SNMP agent."
+    ::= { netSnmpGroups 8 }
+
+nsAgentNotifyGroup NOTIFICATION-GROUP
+    NOTIFICATIONS { nsNotifyStart, nsNotifyShutdown, nsNotifyRestart }
+    STATUS	current
+    DESCRIPTION
+	"The notifications relating to the basic operation of the Net-SNMP agent."
+    ::= { netSnmpGroups 9 }
+
+    
+
+END

Added: trunk/mibs/NET-SNMP-EXAMPLES-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/NET-SNMP-EXAMPLES-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,285 @@
+NET-SNMP-EXAMPLES-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Example MIB objects for agent module example implementations
+--
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, Integer32,
+    NOTIFICATION-TYPE                       FROM SNMPv2-SMI
+    SnmpAdminString                         FROM SNMP-FRAMEWORK-MIB
+    netSnmp                                 FROM NET-SNMP-MIB
+    RowStatus, StorageType                  FROM SNMPv2-TC
+    InetAddressType, InetAddress            FROM INET-ADDRESS-MIB
+;
+
+netSnmpExamples MODULE-IDENTITY
+    LAST-UPDATED "200406150000Z"
+    ORGANIZATION "www.net-snmp.org"
+    CONTACT-INFO    
+	 "postal:   Wes Hardaker
+                    P.O. Box 382
+                    Davis CA  95617
+
+          email:    net-snmp-coders at lists.sourceforge.net"
+    DESCRIPTION
+	"Example MIB objects for agent module example implementations"
+    REVISION     "200406150000Z"
+    DESCRIPTION
+	"Corrected notification example definitions"
+    REVISION     "200202060000Z"
+    DESCRIPTION
+	"First draft"
+    ::= { netSnmp 2 }
+
+--
+-- top level structure
+--
+netSnmpExampleScalars       OBJECT IDENTIFIER ::= { netSnmpExamples 1 }
+netSnmpExampleTables        OBJECT IDENTIFIER ::= { netSnmpExamples 2 }
+netSnmpExampleNotifications OBJECT IDENTIFIER ::= { netSnmpExamples 3 }
+netSnmpExampleNotificationPrefix  OBJECT IDENTIFIER
+                                  ::= { netSnmpExampleNotifications 0 }
+netSnmpExampleNotificationObjects OBJECT IDENTIFIER
+                                  ::= { netSnmpExampleNotifications 2 }
+-- netSnmpTutorial          OBJECT IDENTIFIER ::= { netSnmpExamples 4 }
+
+--
+-- Example scalars
+--
+
+netSnmpExampleInteger OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+	"This is a simple object which merely houses a writable
+	 integer.  It's only purposes is to hold the value of a single
+	 integer.  Writing to it will simply change the value for
+	 subsequent GET/GETNEXT/GETBULK retrievals.
+
+	 This example object is implemented in the
+	 agent/mibgroup/examples/scalar_int.c file."
+    DEFVAL { 42 }
+    ::= { netSnmpExampleScalars 1 }
+
+netSnmpExampleSleeper OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+	"This is a simple object which is a basic integer.  It's value
+	 indicates the number of seconds that the agent will take in
+	 responding to requests of this object.  This is implemented
+	 in a way which will allow the agent to keep responding to
+	 other requests while access to this object is blocked.  It is
+	 writable, and changing it's value will change the amount of
+	 time the agent will effectively wait for before returning a
+	 response when this object is manipulated.  Note that SET
+	 requests through this object will take longer, since the
+	 delay is applied to each internal transaction phase, which
+	 could result in delays of up to 4 times the value of this
+	 object.
+
+	 This example object is implemented in the
+	 agent/mibgroup/examples/delayed_instance.c file."
+    DEFVAL { 1 }
+    ::= { netSnmpExampleScalars 2 }
+
+netSnmpExampleString OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+	"This is a simple object which merely houses a writable
+	 string.  It's only purposes is to hold the value of a single
+	 string.  Writing to it will simply change the value for
+	 subsequent GET/GETNEXT/GETBULK retrievals.
+
+	 This example object is implemented in the
+	 agent/mibgroup/examples/watched.c file."
+    DEFVAL { "So long, and thanks for all the fish!" }
+    ::= { netSnmpExampleScalars 3 }
+
+
+--
+--  Example Tables
+--
+
+netSnmpIETFWGTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NetSnmpIETFWGEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+	"This table merely contains a set of data which is otherwise
+	 useless for true network management.  It is a table which
+	 describes properies about a IETF Working Group, such as the
+	 names of the two working group chairs.
+
+	 This example table is implemented in the
+	 agent/mibgroup/examples/data_set.c file."
+    ::= { netSnmpExampleTables 1 }
+
+netSnmpIETFWGEntry OBJECT-TYPE
+    SYNTAX      NetSnmpIETFWGEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+	"A row describing a given working group"
+    INDEX   { nsIETFWGName }
+    ::= {netSnmpIETFWGTable 1 }
+
+NetSnmpIETFWGEntry ::= SEQUENCE {
+	nsIETFWGName	OCTET STRING,
+	nsIETFWGChair1	OCTET STRING,
+	nsIETFWGChair2	OCTET STRING
+}
+
+nsIETFWGName OBJECT-TYPE
+    SYNTAX      OCTET STRING (SIZE(1..32))
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+	"The name of the IETF Working Group this table describes."
+    ::= { netSnmpIETFWGEntry 1 }
+
+nsIETFWGChair1 OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+	"One of the names of the chairs for the IETF working group."
+    ::= { netSnmpIETFWGEntry 2 }
+
+nsIETFWGChair2 OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+	"The other name, if one exists, of the chairs for the IETF
+	working group."
+    ::= { netSnmpIETFWGEntry 3 }
+
+--
+-- A table used in a table_iterator example
+--   (agent/mibgroup/examples/netSnmpHostsTable*.[ch])
+--
+
+netSnmpHostsTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NetSnmpHostsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+	"An example table that implements a wrapper around the
+	/etc/hosts file on a machine using the iterator helper API."
+    ::= { netSnmpExampleTables 2 }
+
+netSnmpHostsEntry OBJECT-TYPE
+    SYNTAX      NetSnmpHostsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+	"A host name mapped to an ip address"
+    INDEX   { netSnmpHostName }
+    ::= { netSnmpHostsTable 1 }
+
+NetSnmpHostsEntry ::= SEQUENCE {
+    netSnmpHostName         OCTET STRING,
+    netSnmpHostAddressType  InetAddressType,
+    netSnmpHostAddress      InetAddress,
+    netSnmpHostStorage      StorageType,
+    netSnmpHostRowStatus    RowStatus
+}
+
+netSnmpHostName OBJECT-TYPE
+    SYNTAX      OCTET STRING (SIZE(0..64))
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+	"A host name that exists in the /etc/hosts (unix) file."
+    ::= { netSnmpHostsEntry 1 }
+
+netSnmpHostAddressType OBJECT-TYPE
+    SYNTAX      InetAddressType
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+	"The address type of then given host."
+    ::= { netSnmpHostsEntry 2 }
+
+netSnmpHostAddress OBJECT-TYPE
+    SYNTAX      InetAddress
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+	"The address of then given host."
+    ::= { netSnmpHostsEntry 3 }
+
+netSnmpHostStorage OBJECT-TYPE
+    SYNTAX       StorageType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The storage type for this conceptual row."
+    DEFVAL      { nonVolatile }
+    ::= { netSnmpHostsEntry 4 }
+
+netSnmpHostRowStatus OBJECT-TYPE
+    SYNTAX       RowStatus
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The status of this conceptual row."
+    ::= { netSnmpHostsEntry 5 }
+
+
+--
+--  Example Notifications
+--
+
+netSnmpExampleHeartbeatRate OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "A simple integer object, to act as a payload for the
+         netSnmpExampleHeartbeatNotification.  The value has
+         no real meaning, but is nominally the interval (in
+         seconds) between successive heartbeat notifications."
+::= { netSnmpExampleNotificationObjects 1 }
+
+netSnmpExampleHeartbeatName OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "A simple string object, to act as an optional payload
+         for the netSnmpExampleHeartbeatNotification.  This varbind
+         is not part of the notification definition, so is optional
+         and need not be included in the notification payload. 
+         The value has no real meaning, but the romantically inclined
+         may take it to be the object of the sender's affection,
+         and hence the cause of the heart beating faster."
+::= { netSnmpExampleNotificationObjects 2 }
+
+netSnmpExampleHeartbeatNotification NOTIFICATION-TYPE
+    OBJECTS     { netSnmpExampleHeartbeatRate }
+    STATUS      current
+    DESCRIPTION
+        "An example notification, used to illustrate the
+         definition and generation of trap and inform PDUs
+         (including the use of both standard and additional
+         varbinds in the notification payload).
+         This notification will typically be sent every
+	 30 seconds, using the code found in the example module
+             agent/mibgroup/examples/notification.c"
+::= { netSnmpExampleNotificationPrefix 1 }
+    
+netSnmpExampleNotification OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  accessible-for-notify
+    STATUS      obsolete
+    DESCRIPTION
+        "This object was improperly defined for its original purpose,
+         and should no longer be used."
+::= { netSnmpExampleNotifications 1 }
+
+END

Added: trunk/mibs/NET-SNMP-EXTEND-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/NET-SNMP-EXTEND-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,322 @@
+NET-SNMP-EXTEND-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Defines a framework for scripted extensions
+--
+
+IMPORTS
+    nsExtensions FROM NET-SNMP-AGENT-MIB
+
+    OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY, Integer32
+        FROM SNMPv2-SMI
+
+    OBJECT-GROUP, NOTIFICATION-GROUP
+	FROM SNMPv2-CONF
+
+    DisplayString, RowStatus, StorageType FROM SNMPv2-TC;
+
+
+netSnmpExtendMIB MODULE-IDENTITY
+    LAST-UPDATED "200405080000Z"
+    ORGANIZATION "www.net-snmp.org"
+    CONTACT-INFO    
+	 "postal:   Wes Hardaker
+                    P.O. Box 382
+                    Davis CA  95617
+
+          email:    net-snmp-coders at lists.sourceforge.net"
+    DESCRIPTION
+	 "Defines a framework for scripted extensions for the Net-SNMP agent."
+    REVISION     "200405080000Z"
+    DESCRIPTION
+	"First revision."
+    ::= { nsExtensions 1 }
+
+nsExtendObjects  OBJECT IDENTIFIER ::= { nsExtensions 2}
+nsExtendGroups   OBJECT IDENTIFIER ::= { nsExtensions 3}
+
+nsExtendNumEntries OBJECT-TYPE
+    SYNTAX      INTEGER
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "The number of rows in the nsExtendConfigTable"
+    ::= { nsExtendObjects 1 }
+
+nsExtendConfigTable     OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NsExtendConfigEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A table of scripted extensions - configuration and (basic) output."
+    ::= { nsExtendObjects 2 }
+
+nsExtendConfigEntry     OBJECT-TYPE
+    SYNTAX      NsExtendConfigEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A conceptual row within the extension table."
+    INDEX       { nsExtendToken }
+    ::= { nsExtendConfigTable 1 }
+
+NsExtendConfigEntry ::= SEQUENCE {
+    nsExtendToken       DisplayString,
+    nsExtendCommand     DisplayString,
+    nsExtendArgs        DisplayString,
+    nsExtendInput       DisplayString,
+    nsExtendCacheTime   INTEGER,
+    nsExtendExecType    INTEGER,
+    nsExtendRunType     INTEGER,
+
+    nsExtendStorage     StorageType,
+    nsExtendStatus      RowStatus
+}
+
+    --
+    --  The configuration of an extension command
+    --
+
+nsExtendToken   OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "An arbitrary token to identify this extension entry"
+    ::= { nsExtendConfigEntry 1 }
+
+nsExtendCommand OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "The full path of the command binary (or script) to run"
+    ::= { nsExtendConfigEntry 2 }
+
+nsExtendArgs    OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "Any command-line arguments for the command"
+    DEFVAL      { ''H }   -- the empty string
+    ::= { nsExtendConfigEntry 3 }
+
+nsExtendInput   OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "The standard input for the command"
+    DEFVAL      { ''H }   -- the empty string
+    ::= { nsExtendConfigEntry 4 }
+
+nsExtendCacheTime OBJECT-TYPE
+    SYNTAX      INTEGER
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "The length of time for which the output of
+       this command will be cached.  During this time,
+       retrieving the output-related values will not
+       reinvoke the command.
+       A value of -1 indicates that the output results
+       should not be cached at all, and retrieving each
+       individual output-related value will invoke the
+       command afresh." 
+    DEFVAL      { 5 }
+    ::= { nsExtendConfigEntry 5 }
+
+nsExtendExecType OBJECT-TYPE
+    SYNTAX      INTEGER
+               { exec  (1), -- 'fork-and-exec'
+                 shell (2)  -- run via a sub-shell
+               }
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "The mechanism used to invoke the command."
+    DEFVAL      { exec }
+    ::= { nsExtendConfigEntry 6 }
+
+nsExtendRunType OBJECT-TYPE
+    SYNTAX      INTEGER
+               { run-on-read (1),
+                 run-on-set  (2),
+                 run-command (3)
+               }
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "Used to implement 'push-button' command invocation.
+       The command for a 'run-on-read' entry will be invoked
+       whenever one of the corresponding output-related
+       instances is requested (and assuming the cached value
+       is not still current).
+       The command for a 'run-on-set' entry will only be invoked
+       on receipt of a SET assignment for this object with the
+       value 'run-command'.
+       Reading an instance of this object will always return either
+       'run-on-read' or 'run-on-set'.
+      "
+    DEFVAL      { run-on-read }
+    ::= { nsExtendConfigEntry 7 }
+
+    --
+    --  Standard table-manipulation objects
+    --
+
+nsExtendStorage OBJECT-TYPE
+    SYNTAX      StorageType
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "The storage type for this conceptual row."
+    DEFVAL      { volatile }
+    ::= { nsExtendConfigEntry 20 }
+
+nsExtendStatus  OBJECT-TYPE
+    SYNTAX      RowStatus
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+      "Used to create new rows in the table, in the standard manner.
+       Note that is valid for an instance to be left with the value
+       notInService(2) indefinitely - i.e. the meaning of 'abnormally
+       long' (see RFC 2579, RowStatus) for this table is infinite."
+    ::= { nsExtendConfigEntry 21 }
+
+
+    --
+    --  The results of running the extension command
+    --
+
+nsExtendOutput1Table     OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NsExtendOutput1Entry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A table of scripted extensions - configuration and (basic) output."
+    ::= { nsExtendObjects 3 }
+
+nsExtendOutput1Entry     OBJECT-TYPE
+    SYNTAX      NsExtendOutput1Entry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A conceptual row within the extension table."
+    AUGMENTS    { nsExtendConfigEntry }
+    ::= { nsExtendOutput1Table 1 }
+
+NsExtendOutput1Entry ::= SEQUENCE {
+    nsExtendOutput1Line DisplayString,
+    nsExtendOutputFull  DisplayString,
+    nsExtendOutNumLines INTEGER,
+    nsExtendResult      INTEGER
+}
+
+nsExtendOutput1Line OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "The first line of output from the command"
+    ::= { nsExtendOutput1Entry 1 }
+
+nsExtendOutputFull  OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "The full output from the command, as a single string"
+    ::= { nsExtendOutput1Entry 2 }
+
+nsExtendOutNumLines OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "The number of lines of output (and hence
+       the number of rows in nsExtendOutputTable
+       relating to this particular entry)."
+    ::= { nsExtendOutput1Entry 3 }
+
+nsExtendResult  OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "The return value of the command."
+    ::= { nsExtendOutput1Entry 4 }
+
+
+    --
+    --  The line-based output table
+    --
+
+nsExtendOutput2Table     OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NsExtendOutput2Entry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A table of (line-based) output from scripted extensions."
+    ::= { nsExtendObjects 4 }
+
+nsExtendOutput2Entry     OBJECT-TYPE
+    SYNTAX      NsExtendOutput2Entry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "A conceptual row within the line-based output table."
+    INDEX       { nsExtendToken, nsExtendLineIndex }
+    ::= { nsExtendOutput2Table 1 }
+
+NsExtendOutput2Entry ::= SEQUENCE {
+    nsExtendLineIndex INTEGER,
+    nsExtendOutLine   DisplayString
+}
+
+nsExtendLineIndex OBJECT-TYPE
+    SYNTAX      INTEGER(1..1024)
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+      "The index of this line of output.
+       For a given nsExtendToken, this will run from
+       1 to the corresponding value of nsExtendNumLines."
+    ::= { nsExtendOutput2Entry 1 }
+
+nsExtendOutLine OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+      "A single line of output from the extension command."
+    ::= { nsExtendOutput2Entry 2 }
+
+--
+-- Conformance-related definitions
+--
+
+nsExtendConfigGroup  OBJECT-GROUP
+    OBJECTS {
+        nsExtendCommand,   nsExtendArgs,     nsExtendInput,
+        nsExtendCacheTime, nsExtendExecType, nsExtendRunType,
+        nsExtendStorage,   nsExtendStatus,   nsExtendNumEntries
+    }
+    STATUS	current
+    DESCRIPTION
+	"Objects relating to the configuration of extension commands."
+    ::= { nsExtendGroups 1 }
+
+nsExtendOutputGroup  OBJECT-GROUP
+    OBJECTS {
+        nsExtendOutNumLines, nsExtendResult,
+        nsExtendOutLine,   nsExtendOutput1Line, nsExtendOutputFull
+    }
+    STATUS	current
+    DESCRIPTION
+	"Objects relating to the output of extension commands."
+    ::= { nsExtendGroups 2 }
+
+END

Added: trunk/mibs/NET-SNMP-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/NET-SNMP-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,67 @@
+NET-SNMP-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Top-level infrastructure of the Net-SNMP project enterprise MIB tree
+--
+
+IMPORTS
+    MODULE-IDENTITY, enterprises FROM SNMPv2-SMI;
+
+netSnmp MODULE-IDENTITY
+    LAST-UPDATED "200201300000Z"
+    ORGANIZATION "www.net-snmp.org"
+    CONTACT-INFO    
+	 "postal:   Wes Hardaker
+                    P.O. Box 382
+                    Davis CA  95617
+
+          email:    net-snmp-coders at lists.sourceforge.net"
+    DESCRIPTION
+	"Top-level infrastructure of the Net-SNMP project enterprise MIB tree"
+    REVISION     "200201300000Z"
+    DESCRIPTION
+	"First draft"
+    ::= { enterprises 8072}
+
+
+--
+--  Net-SNMP enterprise-specific management objects
+--
+
+netSnmpObjects              OBJECT IDENTIFIER ::= {netSnmp 1}
+-- netSnmpExamples             OBJECT IDENTIFIER ::= {netSnmp 2}
+netSnmpEnumerations         OBJECT IDENTIFIER ::= {netSnmp 3}
+netSnmpModuleIDs            OBJECT IDENTIFIER ::= {netSnmpEnumerations 1}
+netSnmpAgentOIDs            OBJECT IDENTIFIER ::= {netSnmpEnumerations 2}
+netSnmpDomains              OBJECT IDENTIFIER ::= {netSnmpEnumerations 3}
+netSnmpExperimental         OBJECT IDENTIFIER ::= {netSnmp 9999}
+
+--
+-- A subtree specifically designed for private testing purposes.
+-- No "public" management objects should ever be defined within this tree.
+--
+-- It is provided for private experimentation, prior to transferring a MIB
+-- structure to another part of the overall OID tree
+--
+netSnmpPlaypen              OBJECT IDENTIFIER ::= {netSnmpExperimental 9999}
+
+
+--
+--  Notifications
+--
+
+netSnmpNotificationPrefix   OBJECT IDENTIFIER ::= {netSnmp 4}
+netSnmpNotifications        OBJECT IDENTIFIER ::= {netSnmpNotificationPrefix 0}
+netSnmpNotificationObjects  OBJECT IDENTIFIER ::= {netSnmpNotificationPrefix 1}
+
+
+--
+--  Conformance
+--     (No laughing at the back!)
+--
+
+netSnmpConformance          OBJECT IDENTIFIER ::= {netSnmp 5}
+netSnmpCompliances          OBJECT IDENTIFIER ::= {netSnmpConformance 1}
+netSnmpGroups               OBJECT IDENTIFIER ::= {netSnmpConformance 2}
+
+END

Added: trunk/mibs/NET-SNMP-TC.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/NET-SNMP-TC.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,123 @@
+NET-SNMP-TC DEFINITIONS ::= BEGIN
+
+--
+-- Textual conventions and enumerations for the Net-SNMP project
+--
+
+IMPORTS
+    netSnmpModuleIDs, netSnmpAgentOIDs, netSnmpDomains FROM NET-SNMP-MIB
+
+    MODULE-IDENTITY, Opaque FROM SNMPv2-SMI
+
+    TEXTUAL-CONVENTION FROM SNMPv2-TC;
+
+netSnmpTCs MODULE-IDENTITY
+    LAST-UPDATED "200510140000Z"
+    ORGANIZATION "www.net-snmp.org"
+    CONTACT-INFO    
+	 "postal:   Wes Hardaker
+                    P.O. Box 382
+                    Davis CA  95617
+
+          email:    net-snmp-coders at lists.sourceforge.net"
+    DESCRIPTION
+	"Textual conventions and enumerations for the Net-SNMP project"
+    REVISION     "200202120000Z"
+    DESCRIPTION
+	"First draft"
+    ::= { netSnmpModuleIDs 1}
+
+
+-- =====================
+--
+--  Textual Conventions
+--
+-- =====================
+
+--
+-- Define the Float Textual Convention
+--   This definition was written by David Perkins.
+--
+
+Float ::= TEXTUAL-CONVENTION
+    STATUS      current
+    DESCRIPTION
+        "A single precision floating-point number.  The semantics
+         and encoding are identical for type 'single' defined in
+         IEEE Standard for Binary Floating-Point,
+         ANSI/IEEE Std 754-1985.
+         The value is restricted to the BER serialization of
+         the following ASN.1 type:
+             FLOATTYPE ::= [120] IMPLICIT FloatType
+         (note: the value 120 is the sum of '30'h and '48'h)
+         The BER serialization of the length for values of
+         this type must use the definite length, short
+         encoding form.
+
+         For example, the BER serialization of value 123
+         of type FLOATTYPE is '9f780442f60000'h.  (The tag
+         is '9f78'h; the length is '04'h; and the value is
+         '42f60000'h.) The BER serialization of value
+         '9f780442f60000'h of data type Opaque is
+         '44079f780442f60000'h. (The tag is '44'h; the length
+         is '07'h; and the value is '9f780442f60000'h."
+    SYNTAX Opaque (SIZE (7))
+
+
+-- =====================
+--
+--  Enumerations
+--
+-- =====================
+
+--
+-- System Object ID values
+--
+--	XXX - do we want to distinguish between O/S versions ?
+--	(as is currently done with HP-UX)
+--
+
+hpux9             OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 1 }
+sunos4            OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 2 }
+solaris           OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 3 }
+osf               OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 4 }
+ultrix            OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 5 }
+hpux10            OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 6 }
+netbsd            OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 7 }
+freebsd           OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 8 }
+irix              OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 9 }
+linux             OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 10 }
+bsdi              OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 11 }
+openbsd           OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 12 }
+win32		  OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 13 } -- unlucky
+hpux11            OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 14 }
+aix               OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 15 }
+macosx            OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 16 }
+unknown           OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 255 }
+
+
+
+--
+--  Transport Domains
+--
+-- Object identifiers for the non-standard transports that UCD/Net-SNMP
+-- supports.  Note that snmpTCPDomain is the subject of Internet Draft
+-- draft-irtf-nmrg-snmp-tcp-06.txt, which defines the OID
+-- .iso.org.dod.internet.experimental.nmrg.nmrgSnmpDomains.snmpTCPDomain
+-- (.1.3.6.1.3.91.1.1) for the SNMP over TCP over IPv4 transport domain.
+-- This draft (or its successor) is available from the Network Management
+-- Research Group web page at http://www.ibr.cs.tu-bs.de/projects/nmrg/
+--
+-- The NMRG OID for snmpTCPDomain is currently used by the code, but in case
+-- this is thought to be a Bad Idea, we define a private transport domain here
+-- that we could use instead.  The Unix domain, AAL5 PVC domain and
+-- the IPv6 domains are also defined privately here (for now).
+
+netSnmpTCPDomain	OBJECT IDENTIFIER ::= { netSnmpDomains 1 } -- obsolete
+netSnmpUnixDomain	OBJECT IDENTIFIER ::= { netSnmpDomains 2 } -- obsolete
+netSnmpAAL5PVCDomain	OBJECT IDENTIFIER ::= { netSnmpDomains 3 }
+netSnmpUDPIPv6Domain	OBJECT IDENTIFIER ::= { netSnmpDomains 4 } -- obsolete
+netSnmpTCPIPv6Domain	OBJECT IDENTIFIER ::= { netSnmpDomains 5 } -- obsolete
+netSnmpCallbackDomain	OBJECT IDENTIFIER ::= { netSnmpDomains 6 }
+
+END

Added: trunk/mibs/NOTIFICATION-LOG-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/NOTIFICATION-LOG-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,782 @@
+NOTIFICATION-LOG-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE,
+    Integer32, Unsigned32,
+    TimeTicks, Counter32, Counter64,
+    IpAddress, Opaque, mib-2       FROM SNMPv2-SMI
+    TimeStamp, DateAndTime,
+    StorageType, RowStatus,
+    TAddress, TDomain              FROM SNMPv2-TC
+    SnmpAdminString, SnmpEngineID  FROM SNMP-FRAMEWORK-MIB
+    MODULE-COMPLIANCE, OBJECT-GROUP     FROM SNMPv2-CONF;
+
+notificationLogMIB MODULE-IDENTITY
+    LAST-UPDATED "200011270000Z"            -- 27 November 2000
+    ORGANIZATION "IETF Distributed Management Working Group"
+    CONTACT-INFO "Ramanathan Kavasseri
+                  Cisco Systems, Inc.
+                  170 West Tasman Drive,
+                  San Jose CA 95134-1706.
+                  Phone: +1 408 527 2446
+                  Email: ramk at cisco.com"
+    DESCRIPTION
+     "The MIB module for logging SNMP Notifications, that is, Traps
+
+
+     and Informs."
+-- Revision History
+
+       REVISION     "200011270000Z"            -- 27 November 2000
+       DESCRIPTION  "This is the initial version of this MIB.
+               Published as RFC 3014"
+    ::= { mib-2 92 }
+
+
+notificationLogMIBObjects OBJECT IDENTIFIER ::= { notificationLogMIB 1 }
+
+nlmConfig OBJECT IDENTIFIER ::= { notificationLogMIBObjects 1 }
+nlmStats  OBJECT IDENTIFIER ::= { notificationLogMIBObjects 2 }
+nlmLog         OBJECT IDENTIFIER ::= { notificationLogMIBObjects 3 }
+
+--
+-- Configuration Section
+--
+
+nlmConfigGlobalEntryLimit OBJECT-TYPE
+    SYNTAX      Unsigned32
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+     "The maximum number of notification entries that may be held
+     in nlmLogTable for all nlmLogNames added together.  A particular
+     setting does not guarantee that much data can be held.
+
+     If an application changes the limit while there are
+     Notifications in the log, the oldest Notifications MUST be
+     discarded to bring the log down to the new limit - thus the
+     value of nlmConfigGlobalEntryLimit MUST take precedence over
+     the values of nlmConfigGlobalAgeOut and nlmConfigLogEntryLimit,
+     even if the Notification being discarded has been present for
+     fewer minutes than the value of nlmConfigGlobalAgeOut, or if
+     the named log has fewer entries than that specified in
+     nlmConfigLogEntryLimit.
+
+     A value of 0 means no limit.
+
+     Please be aware that contention between multiple managers
+     trying to set this object to different values MAY affect the
+     reliability and completeness of data seen by each manager."
+    DEFVAL { 0 }
+    ::= { nlmConfig 1 }
+
+nlmConfigGlobalAgeOut OBJECT-TYPE
+    SYNTAX      Unsigned32
+
+
+    UNITS       "minutes"
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+     "The number of minutes a Notification SHOULD be kept in a log
+     before it is automatically removed.
+
+     If an application changes the value of nlmConfigGlobalAgeOut,
+     Notifications older than the new time MAY be discarded to meet the
+     new time.
+
+     A value of 0 means no age out.
+
+     Please be aware that contention between multiple managers
+     trying to set this object to different values MAY affect the
+     reliability and completeness of data seen by each manager."
+    DEFVAL { 1440 }  -- 24 hours
+    ::= { nlmConfig 2 }
+
+
+--
+-- Basic Log Configuration Table
+--
+
+nlmConfigLogTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NlmConfigLogEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+     "A table of logging control entries."
+    ::= { nlmConfig 3 }
+
+nlmConfigLogEntry OBJECT-TYPE
+    SYNTAX      NlmConfigLogEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+     "A logging control entry.  Depending on the entry's storage type
+     entries may be supplied by the system or created and deleted by
+     applications using nlmConfigLogEntryStatus."
+    INDEX      { nlmLogName }
+    ::= { nlmConfigLogTable 1 }
+
+NlmConfigLogEntry ::= SEQUENCE {
+    nlmLogName           SnmpAdminString,
+    nlmConfigLogFilterName    SnmpAdminString,
+    nlmConfigLogEntryLimit    Unsigned32,
+    nlmConfigLogAdminStatus   INTEGER,
+
+
+    nlmConfigLogOperStatus    INTEGER,
+    nlmConfigLogStorageType   StorageType,
+    nlmConfigLogEntryStatus   RowStatus
+    }
+
+nlmLogName OBJECT-TYPE
+    SYNTAX     SnmpAdminString (SIZE(0..32))
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+     "The name of the log.
+
+     An implementation may allow multiple named logs, up to some
+     implementation-specific limit (which may be none).  A
+     zero-length log name is reserved for creation and deletion by
+     the managed system, and MUST be used as the default log name by
+     systems that do not support named logs."
+    ::= { nlmConfigLogEntry 1 }
+
+nlmConfigLogFilterName OBJECT-TYPE
+    SYNTAX     SnmpAdminString (SIZE(0..32))
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+     "A value of snmpNotifyFilterProfileName as used as an index
+     into the snmpNotifyFilterTable in the SNMP Notification MIB,
+     specifying the locally or remotely originated Notifications
+     to be filtered out and not logged in this log.
+
+     A zero-length value or a name that does not identify an
+     existing entry in snmpNotifyFilterTable indicate no
+     Notifications are to be logged in this log."
+    DEFVAL { ''H }
+    ::= { nlmConfigLogEntry 2 }
+
+nlmConfigLogEntryLimit OBJECT-TYPE
+    SYNTAX     Unsigned32
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+     "The maximum number of notification entries that can be held in
+     nlmLogTable for this named log.  A particular setting does not
+     guarantee that that much data can be held.
+
+     If an application changes the limit while there are
+     Notifications in the log, the oldest Notifications are discarded
+     to bring the log down to the new limit.
+
+
+
+     A value of 0 indicates no limit.
+
+     Please be aware that contention between multiple managers
+     trying to set this object to different values MAY affect the
+     reliability and completeness of data seen by each manager."
+    DEFVAL { 0 }
+    ::= { nlmConfigLogEntry 3 }
+
+nlmConfigLogAdminStatus OBJECT-TYPE
+    SYNTAX     INTEGER { enabled(1), disabled(2) }
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+     "Control to enable or disable the log without otherwise
+     disturbing the log's entry.
+
+     Please be aware that contention between multiple managers
+     trying to set this object to different values MAY affect the
+     reliability and completeness of data seen by each manager."
+    DEFVAL { enabled }
+    ::= { nlmConfigLogEntry 4 }
+
+nlmConfigLogOperStatus OBJECT-TYPE
+    SYNTAX     INTEGER { disabled(1), operational(2), noFilter(3) }
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+     "The operational status of this log:
+
+          disabled  administratively disabled
+
+          operational    administratively enabled and working
+
+          noFilter  administratively enabled but either
+                    nlmConfigLogFilterName is zero length
+                    or does not name an existing entry in
+                    snmpNotifyFilterTable"
+    ::= { nlmConfigLogEntry 5 }
+
+nlmConfigLogStorageType OBJECT-TYPE
+    SYNTAX     StorageType
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+     "The storage type of this conceptual row."
+    ::= { nlmConfigLogEntry 6 }
+
+nlmConfigLogEntryStatus OBJECT-TYPE
+
+
+    SYNTAX     RowStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+     "Control for creating and deleting entries.  Entries may be
+     modified while active.
+
+     For non-null-named logs, the managed system records the security
+     credentials from the request that sets nlmConfigLogStatus
+     to 'active' and uses that identity to apply access control to
+     the objects in the Notification to decide if that Notification
+     may be logged."
+    ::= { nlmConfigLogEntry 7 }
+
+--
+-- Statistics Section
+--
+
+nlmStatsGlobalNotificationsLogged OBJECT-TYPE
+    SYNTAX      Counter32
+    UNITS       "notifications"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The number of Notifications put into the nlmLogTable.  This
+     counts a Notification once for each log entry, so a Notification
+      put into multiple logs is counted multiple times."
+    ::= { nlmStats 1 }
+
+nlmStatsGlobalNotificationsBumped OBJECT-TYPE
+    SYNTAX      Counter32
+    UNITS       "notifications"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The number of log entries discarded to make room for a new entry
+     due to lack of resources or the value of nlmConfigGlobalEntryLimit
+     or nlmConfigLogEntryLimit.  This does not include entries discarded
+     due to the value of nlmConfigGlobalAgeOut."
+    ::= { nlmStats 2 }
+
+--
+-- Log Statistics Table
+--
+
+nlmStatsLogTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NlmStatsLogEntry
+    MAX-ACCESS  not-accessible
+
+
+    STATUS      current
+    DESCRIPTION
+     "A table of Notification log statistics entries."
+    ::= { nlmStats 3 }
+
+nlmStatsLogEntry OBJECT-TYPE
+    SYNTAX      NlmStatsLogEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+     "A Notification log statistics entry."
+    AUGMENTS { nlmConfigLogEntry }
+    ::= { nlmStatsLogTable 1 }
+
+NlmStatsLogEntry ::= SEQUENCE {
+    nlmStatsLogNotificationsLogged Counter32,
+    nlmStatsLogNotificationsBumped Counter32
+}
+
+nlmStatsLogNotificationsLogged OBJECT-TYPE
+    SYNTAX      Counter32
+    UNITS       "notifications"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The number of Notifications put in this named log."
+    ::= { nlmStatsLogEntry 1 }
+
+nlmStatsLogNotificationsBumped OBJECT-TYPE
+    SYNTAX      Counter32
+    UNITS       "notifications"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The number of log entries discarded from this named log to make
+     room for a new entry due to lack of resources or the value of
+     nlmConfigGlobalEntryLimit or nlmConfigLogEntryLimit.  This does not
+     include entries discarded due to the value of
+     nlmConfigGlobalAgeOut."
+    ::= { nlmStatsLogEntry 2 }
+
+
+--
+-- Log Section
+--
+
+--
+-- Log Table
+--
+
+nlmLogTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NlmLogEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+     "A table of Notification log entries.
+
+     It is an implementation-specific matter whether entries in this
+     table are preserved across initializations of the management
+     system.  In general one would expect that they are not.
+
+     Note that keeping entries across initializations of the
+     management system leads to some confusion with counters and
+     TimeStamps, since both of those are based on sysUpTime, which
+     resets on management initialization.  In this situation,
+     counters apply only after the reset and nlmLogTime for entries
+     made before the reset MUST be set to 0."
+    ::= { nlmLog 1 }
+
+nlmLogEntry OBJECT-TYPE
+    SYNTAX      NlmLogEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+     "A Notification log entry.
+
+     Entries appear in this table when Notifications occur and pass
+     filtering by nlmConfigLogFilterName and access control.  They are
+     removed to make way for new entries due to lack of resources or
+     the values of nlmConfigGlobalEntryLimit, nlmConfigGlobalAgeOut, or
+     nlmConfigLogEntryLimit.
+
+     If adding an entry would exceed nlmConfigGlobalEntryLimit or system
+     resources in general, the oldest entry in any log SHOULD be removed
+     to make room for the new one.
+
+     If adding an entry would exceed nlmConfigLogEntryLimit the oldest
+     entry in that log SHOULD be removed to make room for the new one.
+
+     Before the managed system puts a locally-generated Notification
+     into a non-null-named log it assures that the creator of the log
+     has access to the information in the Notification.  If not it
+     does not log that Notification in that log."
+    INDEX       { nlmLogName, nlmLogIndex }
+    ::= { nlmLogTable 1 }
+
+
+
+NlmLogEntry ::= SEQUENCE {
+    nlmLogIndex                Unsigned32,
+    nlmLogTime                 TimeStamp,
+    nlmLogDateAndTime          DateAndTime,
+    nlmLogEngineID             SnmpEngineID,
+    nlmLogEngineTAddress       TAddress,
+    nlmLogEngineTDomain        TDomain,
+    nlmLogContextEngineID      SnmpEngineID,
+    nlmLogContextName          SnmpAdminString,
+    nlmLogNotificationID       OBJECT IDENTIFIER
+}
+
+nlmLogIndex OBJECT-TYPE
+    SYNTAX     Unsigned32 (1..4294967295)
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+     "A monotonically increasing integer for the sole purpose of
+     indexing entries within the named log.  When it reaches the
+     maximum value, an extremely unlikely event, the agent wraps the
+     value back to 1."
+    ::= { nlmLogEntry 1 }
+
+nlmLogTime OBJECT-TYPE
+    SYNTAX      TimeStamp
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The value of sysUpTime when the entry was placed in the log. If
+     the entry occurred before the most recent management system
+     initialization this object value MUST be set to zero."
+    ::= { nlmLogEntry 2 }
+
+nlmLogDateAndTime OBJECT-TYPE
+    SYNTAX      DateAndTime
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The local date and time when the entry was logged, instantiated
+     only by systems that have date and time capability."
+    ::= { nlmLogEntry 3 }
+
+nlmLogEngineID OBJECT-TYPE
+    SYNTAX      SnmpEngineID
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The identification of the SNMP engine at which the Notification
+
+
+     originated.
+
+     If the log can contain Notifications from only one engine
+     or the Trap is in SNMPv1 format, this object is a zero-length
+     string."
+    ::= { nlmLogEntry 4 }
+
+nlmLogEngineTAddress OBJECT-TYPE
+    SYNTAX      TAddress
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The transport service address of the SNMP engine from which the
+     Notification was received, formatted according to the corresponding
+     value of nlmLogEngineTDomain. This is used to identify the source
+     of an SNMPv1 trap, since an nlmLogEngineId cannot be extracted
+     from the SNMPv1 trap pdu.
+
+     This object MUST always be instantiated, even if the log
+     can contain Notifications from only one engine.
+
+     Please be aware that the nlmLogEngineTAddress may not uniquely
+     identify the SNMP engine from which the Notification was received.
+     For example, if an SNMP engine uses DHCP or NAT to obtain
+     ip addresses, the address it uses may be shared with other
+     network devices, and hence will not uniquely identify the
+     SNMP engine."
+    ::= { nlmLogEntry 5 }
+
+nlmLogEngineTDomain OBJECT-TYPE
+    SYNTAX      TDomain
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "Indicates the kind of transport service by which a Notification
+     was received from an SNMP engine. nlmLogEngineTAddress contains
+     the transport service address of the SNMP engine from which
+     this Notification was received.
+
+     Possible values for this object are presently found in the
+     Transport Mappings for SNMPv2 document (RFC 1906 [8])."
+    ::= { nlmLogEntry 6 }
+
+nlmLogContextEngineID OBJECT-TYPE
+    SYNTAX      SnmpEngineID
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+
+
+     "If the Notification was received in a protocol which has a
+      contextEngineID element like SNMPv3, this object has that value.
+      Otherwise its value is a zero-length string."
+     ::= { nlmLogEntry 7 }
+
+nlmLogContextName OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The name of the SNMP MIB context from which the Notification came.
+     For SNMPv1 Traps this is the community string from the Trap."
+    ::= { nlmLogEntry 8 }
+
+nlmLogNotificationID OBJECT-TYPE
+    SYNTAX      OBJECT IDENTIFIER
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The NOTIFICATION-TYPE object identifier of the Notification that
+     occurred."
+    ::= { nlmLogEntry 9 }
+
+--
+-- Log Variable Table
+--
+
+nlmLogVariableTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF NlmLogVariableEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+     "A table of variables to go with Notification log entries."
+    ::= { nlmLog 2 }
+
+nlmLogVariableEntry OBJECT-TYPE
+    SYNTAX      NlmLogVariableEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+     "A Notification log entry variable.
+
+     Entries appear in this table when there are variables in
+     the varbind list of a Notification in nlmLogTable."
+    INDEX       { nlmLogName, nlmLogIndex, nlmLogVariableIndex }
+    ::= { nlmLogVariableTable 1 }
+
+NlmLogVariableEntry ::= SEQUENCE {
+
+
+    nlmLogVariableIndex              Unsigned32,
+    nlmLogVariableID                 OBJECT IDENTIFIER,
+    nlmLogVariableValueType          INTEGER,
+    nlmLogVariableCounter32Val       Counter32,
+    nlmLogVariableUnsigned32Val      Unsigned32,
+    nlmLogVariableTimeTicksVal       TimeTicks,
+    nlmLogVariableInteger32Val       Integer32,
+    nlmLogVariableOctetStringVal     OCTET STRING,
+    nlmLogVariableIpAddressVal       IpAddress,
+    nlmLogVariableOidVal             OBJECT IDENTIFIER,
+    nlmLogVariableCounter64Val       Counter64,
+    nlmLogVariableOpaqueVal          Opaque
+}
+
+nlmLogVariableIndex OBJECT-TYPE
+    SYNTAX     Unsigned32 (1..4294967295)
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+     "A monotonically increasing integer, starting at 1 for a given
+     nlmLogIndex, for indexing variables within the logged
+     Notification."
+    ::= { nlmLogVariableEntry 1 }
+
+nlmLogVariableID OBJECT-TYPE
+    SYNTAX     OBJECT IDENTIFIER
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+     "The variable's object identifier."
+    ::= { nlmLogVariableEntry 2 }
+
+nlmLogVariableValueType OBJECT-TYPE
+    SYNTAX      INTEGER { counter32(1), unsigned32(2), timeTicks(3),
+                 integer32(4), ipAddress(5), octetString(6),
+                 objectId(7), counter64(8), opaque(9) }
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The type of the value.  One and only one of the value
+     objects that follow must be instantiated, based on this type."
+    ::= { nlmLogVariableEntry 3 }
+
+nlmLogVariableCounter32Val OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+
+
+     "The value when nlmLogVariableType is 'counter32'."
+    ::= { nlmLogVariableEntry 4 }
+
+nlmLogVariableUnsigned32Val OBJECT-TYPE
+    SYNTAX      Unsigned32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The value when nlmLogVariableType is 'unsigned32'."
+    ::= { nlmLogVariableEntry 5 }
+
+nlmLogVariableTimeTicksVal OBJECT-TYPE
+    SYNTAX      TimeTicks
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The value when nlmLogVariableType is 'timeTicks'."
+    ::= { nlmLogVariableEntry 6 }
+
+nlmLogVariableInteger32Val OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The value when nlmLogVariableType is 'integer32'."
+    ::= { nlmLogVariableEntry 7 }
+
+nlmLogVariableOctetStringVal OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The value when nlmLogVariableType is 'octetString'."
+    ::= { nlmLogVariableEntry 8 }
+
+nlmLogVariableIpAddressVal OBJECT-TYPE
+    SYNTAX      IpAddress
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The value when nlmLogVariableType is 'ipAddress'.
+     Although this seems to be unfriendly for IPv6, we
+     have to recognize that there are a number of older
+     MIBs that do contain an IPv4 format address, known
+     as IpAddress.
+
+     IPv6 addresses are represented using TAddress or
+     InetAddress, and so the underlying datatype is
+
+
+     OCTET STRING, and their value would be stored in
+     the nlmLogVariableOctetStringVal column."
+    ::= { nlmLogVariableEntry 9 }
+
+nlmLogVariableOidVal OBJECT-TYPE
+    SYNTAX      OBJECT IDENTIFIER
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The value when nlmLogVariableType is 'objectId'."
+    ::= { nlmLogVariableEntry 10 }
+
+nlmLogVariableCounter64Val OBJECT-TYPE
+    SYNTAX      Counter64
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The value when nlmLogVariableType is 'counter64'."
+    ::= { nlmLogVariableEntry 11 }
+
+nlmLogVariableOpaqueVal OBJECT-TYPE
+    SYNTAX      Opaque
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+     "The value when nlmLogVariableType is 'opaque'."
+    ::= { nlmLogVariableEntry 12 }
+
+
+--
+-- Conformance
+--
+
+notificationLogMIBConformance OBJECT IDENTIFIER ::=
+    { notificationLogMIB 3 }
+notificationLogMIBCompliances OBJECT IDENTIFIER ::=
+    { notificationLogMIBConformance 1 }
+notificationLogMIBGroups      OBJECT IDENTIFIER ::=
+    { notificationLogMIBConformance 2 }
+
+-- Compliance
+
+notificationLogMIBCompliance MODULE-COMPLIANCE
+     STATUS current
+     DESCRIPTION
+          "The compliance statement for entities which implement
+          the Notification Log MIB."
+     MODULE    -- this module
+
+
+          MANDATORY-GROUPS {
+               notificationLogConfigGroup,
+               notificationLogStatsGroup,
+               notificationLogLogGroup
+          }
+
+     OBJECT nlmConfigGlobalEntryLimit
+         SYNTAX Unsigned32 (0..4294967295)
+         MIN-ACCESS read-only
+         DESCRIPTION
+          "Implementations may choose a limit and not allow it to be
+          changed or may enforce an upper or lower bound on the
+          limit."
+
+     OBJECT nlmConfigLogEntryLimit
+         SYNTAX Unsigned32 (0..4294967295)
+         MIN-ACCESS read-only
+         DESCRIPTION
+          "Implementations may choose a limit and not allow it to be
+          changed or may enforce an upper or lower bound on the
+          limit."
+
+     OBJECT nlmConfigLogEntryStatus
+         MIN-ACCESS read-only
+         DESCRIPTION
+          "Implementations may disallow the creation of named logs."
+
+     GROUP notificationLogDateGroup
+         DESCRIPTION
+          "This group is mandatory on systems that keep wall clock
+          date and time and should not be implemented on systems that
+          do not have a wall clock date."
+
+     ::= { notificationLogMIBCompliances 1 }
+
+-- Units of Conformance
+
+notificationLogConfigGroup OBJECT-GROUP
+     OBJECTS {
+          nlmConfigGlobalEntryLimit,
+          nlmConfigGlobalAgeOut,
+          nlmConfigLogFilterName,
+          nlmConfigLogEntryLimit,
+          nlmConfigLogAdminStatus,
+          nlmConfigLogOperStatus,
+          nlmConfigLogStorageType,
+          nlmConfigLogEntryStatus
+     }
+
+
+     STATUS current
+     DESCRIPTION
+          "Notification log configuration management."
+     ::= { notificationLogMIBGroups 1 }
+
+notificationLogStatsGroup OBJECT-GROUP
+     OBJECTS {
+          nlmStatsGlobalNotificationsLogged,
+          nlmStatsGlobalNotificationsBumped,
+          nlmStatsLogNotificationsLogged,
+          nlmStatsLogNotificationsBumped
+     }
+     STATUS current
+     DESCRIPTION
+          "Notification log statistics."
+     ::= { notificationLogMIBGroups 2 }
+
+notificationLogLogGroup OBJECT-GROUP
+     OBJECTS {
+          nlmLogTime,
+          nlmLogEngineID,
+          nlmLogEngineTAddress,
+          nlmLogEngineTDomain,
+          nlmLogContextEngineID,
+          nlmLogContextName,
+          nlmLogNotificationID,
+          nlmLogVariableID,
+          nlmLogVariableValueType,
+          nlmLogVariableCounter32Val,
+          nlmLogVariableUnsigned32Val,
+          nlmLogVariableTimeTicksVal,
+          nlmLogVariableInteger32Val,
+          nlmLogVariableOctetStringVal,
+          nlmLogVariableIpAddressVal,
+          nlmLogVariableOidVal,
+          nlmLogVariableCounter64Val,
+          nlmLogVariableOpaqueVal
+     }
+     STATUS current
+     DESCRIPTION
+          "Notification log data."
+     ::= { notificationLogMIBGroups 3 }
+
+notificationLogDateGroup OBJECT-GROUP
+     OBJECTS {
+          nlmLogDateAndTime
+     }
+     STATUS current
+
+
+     DESCRIPTION
+          "Conditionally mandatory notification log data.
+          This group is mandatory on systems that keep wall
+          clock date and time and should not be implemented
+          on systems that do not have a wall clock date."
+     ::= { notificationLogMIBGroups 4 }
+
+END

Added: trunk/mibs/RMON-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/RMON-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,3980 @@
+RMON-MIB DEFINITIONS ::= BEGIN
+
+    IMPORTS
+        MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
+        NOTIFICATION-TYPE, mib-2, Counter32,
+        Integer32, TimeTicks                   FROM SNMPv2-SMI
+
+        TEXTUAL-CONVENTION, DisplayString      FROM SNMPv2-TC
+
+        MODULE-COMPLIANCE, OBJECT-GROUP,
+        NOTIFICATION-GROUP                     FROM SNMPv2-CONF;
+
+--  Remote Network Monitoring MIB
+
+rmonMibModule MODULE-IDENTITY
+    LAST-UPDATED "200005110000Z"  -- 11 May, 2000
+    ORGANIZATION "IETF RMON MIB Working Group"
+    CONTACT-INFO
+        "Steve Waldbusser
+        Phone: +1-650-948-6500
+        Fax:   +1-650-745-0671
+        Email: waldbusser at nextbeacon.com"
+    DESCRIPTION
+        "Remote network monitoring devices, often called
+        monitors or probes, are instruments that exist for
+        the purpose of managing a network. This MIB defines
+        objects for managing remote network monitoring devices."
+
+    REVISION "200005110000Z"    -- 11 May, 2000
+    DESCRIPTION
+        "Reformatted into SMIv2 format.
+
+        This version published as RFC 2819."
+
+    REVISION "199502010000Z" -- 1 Feb, 1995
+    DESCRIPTION
+        "Bug fixes, clarifications and minor changes based on
+        implementation experience, published as RFC1757 [18].
+
+        Two changes were made to object definitions:
+
+        1) A new status bit has been defined for the
+        captureBufferPacketStatus object, indicating that the
+        packet order within the capture buffer may not be identical to
+        the packet order as received off the wire.  This bit may only
+
+        be used for packets transmitted by the probe.  Older NMS
+        applications can safely ignore this status bit, which might be
+        used by newer agents.
+
+        2) The packetMatch trap has been removed.  This trap was never
+        actually 'approved' and was not added to this document along
+        with the risingAlarm and fallingAlarm traps. The packetMatch
+        trap could not be throttled, which could cause disruption of
+        normal network traffic under some circumstances. An NMS should
+        configure a risingAlarm threshold on the appropriate
+        channelMatches instance if a trap is desired for a packetMatch
+        event. Note that logging of packetMatch events is still
+        supported--only trap generation for such events has been
+        removed.
+
+        In addition, several clarifications to individual object
+        definitions have been added to assist agent and NMS
+        implementors:
+
+        - global definition of 'good packets' and 'bad packets'
+
+        - more detailed text governing conceptual row creation and
+          modification
+
+        - instructions for probes relating to interface changes and
+          disruptions
+
+        - clarification of some ethernet counter definitions
+
+        - recommended formula for calculating network utilization
+
+        - clarification of channel and captureBuffer behavior for some
+          unusual conditions
+
+        - examples of proper instance naming for each table"
+
+    REVISION "199111010000Z"    -- 1 Nov, 1991
+    DESCRIPTION
+        "The original version of this MIB, published as RFC1271."
+    ::= { rmonConformance 8 }
+
+    rmon    OBJECT IDENTIFIER ::= { mib-2 16 }
+
+    -- textual conventions
+
+OwnerString ::= TEXTUAL-CONVENTION
+    STATUS current
+    DESCRIPTION
+        "This data type is used to model an administratively
+        assigned name of the owner of a resource. Implementations
+        must accept values composed of well-formed NVT ASCII
+        sequences. In addition, implementations should accept
+        values composed of well-formed UTF-8 sequences.
+
+        It is suggested that this name contain one or more of
+        the following: IP address, management station name,
+        network manager's name, location, or phone number.
+        In some cases the agent itself will be the owner of
+        an entry.  In these cases, this string shall be set
+        to a string starting with 'monitor'.
+
+        SNMP access control is articulated entirely in terms
+        of the contents of MIB views; access to a particular
+        SNMP object instance depends only upon its presence
+        or absence in a particular MIB view and never upon
+        its value or the value of related object instances.
+        Thus, objects of this type afford resolution of
+        resource contention only among cooperating
+        managers; they realize no access control function
+        with respect to uncooperative parties."
+    SYNTAX OCTET STRING (SIZE (0..127))
+
+EntryStatus ::= TEXTUAL-CONVENTION
+    STATUS current
+    DESCRIPTION
+        "The status of a table entry.
+
+        Setting this object to the value invalid(4) has the
+        effect of invalidating the corresponding entry.
+        That is, it effectively disassociates the mapping
+        identified with said entry.
+        It is an implementation-specific matter as to whether
+        the agent removes an invalidated entry from the table.
+        Accordingly, management stations must be prepared to
+        receive tabular information from agents that corresponds
+        to entries currently not in use.  Proper
+        interpretation of such entries requires examination
+        of the relevant EntryStatus object.
+
+        An existing instance of this object cannot be set to
+        createRequest(2).  This object may only be set to
+        createRequest(2) when this instance is created.  When
+        this object is created, the agent may wish to create
+        supplemental object instances with default values
+        to complete a conceptual row in this table.  Because the
+
+        creation of these default objects is entirely at the option
+        of the agent, the manager must not assume that any will be
+        created, but may make use of any that are created.
+        Immediately after completing the create operation, the agent
+        must set this object to underCreation(3).
+
+        When in the underCreation(3) state, an entry is allowed to
+        exist in a possibly incomplete, possibly inconsistent state,
+        usually to allow it to be modified in multiple PDUs.  When in
+        this state, an entry is not fully active.
+        Entries shall exist in the underCreation(3) state until
+        the management station is finished configuring the entry
+        and sets this object to valid(1) or aborts, setting this
+        object to invalid(4).  If the agent determines that an
+        entry has been in the underCreation(3) state for an
+        abnormally long time, it may decide that the management
+        station has crashed.  If the agent makes this decision,
+        it may set this object to invalid(4) to reclaim the
+        entry.  A prudent agent will understand that the
+        management station may need to wait for human input
+        and will allow for that possibility in its
+        determination of this abnormally long period.
+
+        An entry in the valid(1) state is fully configured and
+        consistent and fully represents the configuration or
+        operation such a row is intended to represent.  For
+        example, it could be a statistical function that is
+        configured and active, or a filter that is available
+        in the list of filters processed by the packet capture
+        process.
+
+        A manager is restricted to changing the state of an entry in
+        the following ways:
+
+             To:       valid  createRequest  underCreation  invalid
+        From:
+        valid             OK             NO             OK       OK
+        createRequest    N/A            N/A            N/A      N/A
+        underCreation     OK             NO             OK       OK
+        invalid           NO             NO             NO       OK
+        nonExistent       NO             OK             NO       OK
+
+        In the table above, it is not applicable to move the state
+        from the createRequest state to any other state because the
+        manager will never find the variable in that state.  The
+        nonExistent state is not a value of the enumeration, rather
+        it means that the entryStatus variable does not exist at all.
+
+        An agent may allow an entryStatus variable to change state in
+        additional ways, so long as the semantics of the states are
+        followed.  This allowance is made to ease the implementation of
+        the agent and is made despite the fact that managers should
+        never exercise these additional state transitions."
+    SYNTAX INTEGER {
+               valid(1),
+               createRequest(2),
+               underCreation(3),
+               invalid(4)
+           }
+
+    statistics        OBJECT IDENTIFIER ::= { rmon 1 }
+    history           OBJECT IDENTIFIER ::= { rmon 2 }
+    alarm             OBJECT IDENTIFIER ::= { rmon 3 }
+    hosts             OBJECT IDENTIFIER ::= { rmon 4 }
+    hostTopN          OBJECT IDENTIFIER ::= { rmon 5 }
+    matrix            OBJECT IDENTIFIER ::= { rmon 6 }
+    filter            OBJECT IDENTIFIER ::= { rmon 7 }
+    capture           OBJECT IDENTIFIER ::= { rmon 8 }
+    event             OBJECT IDENTIFIER ::= { rmon 9 }
+    rmonConformance   OBJECT IDENTIFIER ::= { rmon 20 }
+
+-- The Ethernet Statistics Group
+--
+-- Implementation of the Ethernet Statistics group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The ethernet statistics group contains statistics measured by the
+-- probe for each monitored interface on this device.  These
+-- statistics take the form of free running counters that start from
+-- zero when a valid entry is created.
+--
+-- This group currently has statistics defined only for
+-- Ethernet interfaces.  Each etherStatsEntry contains statistics
+-- for one Ethernet interface.  The probe must create one
+-- etherStats entry for each monitored Ethernet interface
+-- on the device.
+
+etherStatsTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF EtherStatsEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of Ethernet statistics entries."
+    ::= { statistics 1 }
+
+etherStatsEntry OBJECT-TYPE
+    SYNTAX     EtherStatsEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A collection of statistics kept for a particular
+        Ethernet interface.  As an example, an instance of the
+        etherStatsPkts object might be named etherStatsPkts.1"
+    INDEX { etherStatsIndex }
+    ::= { etherStatsTable 1 }
+
+EtherStatsEntry ::= SEQUENCE {
+    etherStatsIndex                    Integer32,
+    etherStatsDataSource               OBJECT IDENTIFIER,
+    etherStatsDropEvents               Counter32,
+    etherStatsOctets                   Counter32,
+    etherStatsPkts                     Counter32,
+    etherStatsBroadcastPkts            Counter32,
+    etherStatsMulticastPkts            Counter32,
+    etherStatsCRCAlignErrors           Counter32,
+    etherStatsUndersizePkts            Counter32,
+    etherStatsOversizePkts             Counter32,
+    etherStatsFragments                Counter32,
+    etherStatsJabbers                  Counter32,
+    etherStatsCollisions               Counter32,
+    etherStatsPkts64Octets             Counter32,
+    etherStatsPkts65to127Octets        Counter32,
+    etherStatsPkts128to255Octets       Counter32,
+    etherStatsPkts256to511Octets       Counter32,
+    etherStatsPkts512to1023Octets      Counter32,
+    etherStatsPkts1024to1518Octets     Counter32,
+    etherStatsOwner                    OwnerString,
+    etherStatsStatus                   EntryStatus
+}
+
+etherStatsIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The value of this object uniquely identifies this
+        etherStats entry."
+    ::= { etherStatsEntry 1 }
+
+etherStatsDataSource OBJECT-TYPE
+    SYNTAX     OBJECT IDENTIFIER
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "This object identifies the source of the data that
+        this etherStats entry is configured to analyze.  This
+        source can be any ethernet interface on this device.
+        In order to identify a particular interface, this object
+        shall identify the instance of the ifIndex object,
+        defined in RFC 2233 [17], for the desired interface.
+        For example, if an entry were to receive data from
+        interface #1, this object would be set to ifIndex.1.
+
+        The statistics in this group reflect all packets
+        on the local network segment attached to the identified
+        interface.
+
+        An agent may or may not be able to tell if fundamental
+        changes to the media of the interface have occurred and
+        necessitate an invalidation of this entry.  For example, a
+        hot-pluggable ethernet card could be pulled out and replaced
+        by a token-ring card.  In such a case, if the agent has such
+        knowledge of the change, it is recommended that it
+        invalidate this entry.
+
+        This object may not be modified if the associated
+        etherStatsStatus object is equal to valid(1)."
+    ::= { etherStatsEntry 2 }
+
+etherStatsDropEvents OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of events in which packets
+        were dropped by the probe due to lack of resources.
+        Note that this number is not necessarily the number of
+        packets dropped; it is just the number of times this
+        condition has been detected."
+    ::= { etherStatsEntry 3 }
+
+etherStatsOctets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Octets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of octets of data (including
+        those in bad packets) received on the
+        network (excluding framing bits but including
+        FCS octets).
+
+        This object can be used as a reasonable estimate of
+        10-Megabit ethernet utilization.  If greater precision is
+        desired, the etherStatsPkts and etherStatsOctets objects
+        should be sampled before and after a common interval.  The
+        differences in the sampled values are Pkts and Octets,
+        respectively, and the number of seconds in the interval is
+        Interval.  These values are used to calculate the Utilization
+        as follows:
+
+                         Pkts * (9.6 + 6.4) + (Octets * .8)
+         Utilization = -------------------------------------
+                                 Interval * 10,000
+
+        The result of this equation is the value Utilization which
+        is the percent utilization of the ethernet segment on a
+        scale of 0 to 100 percent."
+    ::= { etherStatsEntry 4 }
+
+etherStatsPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets (including bad packets,
+        broadcast packets, and multicast packets) received."
+    ::= { etherStatsEntry 5 }
+
+etherStatsBroadcastPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of good packets received that were
+        directed to the broadcast address.  Note that this
+        does not include multicast packets."
+    ::= { etherStatsEntry 6 }
+
+etherStatsMulticastPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of good packets received that were
+        directed to a multicast address.  Note that this number
+        does not include packets directed to the broadcast
+
+        address."
+    ::= { etherStatsEntry 7 }
+
+etherStatsCRCAlignErrors OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets received that
+        had a length (excluding framing bits, but
+        including FCS octets) of between 64 and 1518
+        octets, inclusive, but had either a bad
+        Frame Check Sequence (FCS) with an integral
+        number of octets (FCS Error) or a bad FCS with
+        a non-integral number of octets (Alignment Error)."
+    ::= { etherStatsEntry 8 }
+
+etherStatsUndersizePkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets received that were
+        less than 64 octets long (excluding framing bits,
+        but including FCS octets) and were otherwise well
+        formed."
+    ::= { etherStatsEntry 9 }
+
+etherStatsOversizePkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets received that were
+        longer than 1518 octets (excluding framing bits,
+        but including FCS octets) and were otherwise
+        well formed."
+    ::= { etherStatsEntry 10 }
+
+etherStatsFragments OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets received that were less than
+        64 octets in length (excluding framing bits but including
+        FCS octets) and had either a bad Frame Check Sequence
+        (FCS) with an integral number of octets (FCS Error) or a
+        bad FCS with a non-integral number of octets (Alignment
+        Error).
+
+        Note that it is entirely normal for etherStatsFragments to
+        increment.  This is because it counts both runts (which are
+        normal occurrences due to collisions) and noise hits."
+    ::= { etherStatsEntry 11 }
+
+etherStatsJabbers OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets received that were
+        longer than 1518 octets (excluding framing bits,
+        but including FCS octets), and had either a bad
+        Frame Check Sequence (FCS) with an integral number
+        of octets (FCS Error) or a bad FCS with a non-integral
+        number of octets (Alignment Error).
+
+        Note that this definition of jabber is different
+        than the definition in IEEE-802.3 section 8.2.1.5
+        (10BASE5) and section 10.3.1.4 (10BASE2).  These
+        documents define jabber as the condition where any
+        packet exceeds 20 ms.  The allowed range to detect
+        jabber is between 20 ms and 150 ms."
+    ::= { etherStatsEntry 12 }
+
+etherStatsCollisions OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Collisions"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The best estimate of the total number of collisions
+        on this Ethernet segment.
+
+        The value returned will depend on the location of the
+        RMON probe. Section 8.2.1.3 (10BASE-5) and section
+        10.3.1.3 (10BASE-2) of IEEE standard 802.3 states that a
+        station must detect a collision, in the receive mode, if
+        three or more stations are transmitting simultaneously.  A
+        repeater port must detect a collision when two or more
+
+        stations are transmitting simultaneously.  Thus a probe
+        placed on a repeater port could record more collisions
+        than a probe connected to a station on the same segment
+        would.
+
+        Probe location plays a much smaller role when considering
+        10BASE-T.  14.2.1.4 (10BASE-T) of IEEE standard 802.3
+        defines a collision as the simultaneous presence of signals
+        on the DO and RD circuits (transmitting and receiving
+        at the same time).  A 10BASE-T station can only detect
+        collisions when it is transmitting.  Thus probes placed on
+        a station and a repeater, should report the same number of
+        collisions.
+
+        Note also that an RMON probe inside a repeater should
+        ideally report collisions between the repeater and one or
+        more other hosts (transmit collisions as defined by IEEE
+        802.3k) plus receiver collisions observed on any coax
+        segments to which the repeater is connected."
+    ::= { etherStatsEntry 13 }
+
+etherStatsPkts64Octets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets (including bad
+        packets) received that were 64 octets in length
+        (excluding framing bits but including FCS octets)."
+    ::= { etherStatsEntry 14 }
+
+etherStatsPkts65to127Octets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets (including bad
+        packets) received that were between
+        65 and 127 octets in length inclusive
+        (excluding framing bits but including FCS octets)."
+    ::= { etherStatsEntry 15 }
+
+etherStatsPkts128to255Octets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets (including bad
+        packets) received that were between
+        128 and 255 octets in length inclusive
+        (excluding framing bits but including FCS octets)."
+    ::= { etherStatsEntry 16 }
+
+etherStatsPkts256to511Octets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets (including bad
+        packets) received that were between
+        256 and 511 octets in length inclusive
+        (excluding framing bits but including FCS octets)."
+    ::= { etherStatsEntry 17 }
+
+etherStatsPkts512to1023Octets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets (including bad
+        packets) received that were between
+        512 and 1023 octets in length inclusive
+        (excluding framing bits but including FCS octets)."
+    ::= { etherStatsEntry 18 }
+
+etherStatsPkts1024to1518Octets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets (including bad
+        packets) received that were between
+        1024 and 1518 octets in length inclusive
+        (excluding framing bits but including FCS octets)."
+    ::= { etherStatsEntry 19 }
+
+etherStatsOwner OBJECT-TYPE
+    SYNTAX     OwnerString
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The entity that configured this entry and is therefore
+        using the resources assigned to it."
+    ::= { etherStatsEntry 20 }
+
+etherStatsStatus OBJECT-TYPE
+    SYNTAX     EntryStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status of this etherStats entry."
+    ::= { etherStatsEntry 21 }
+
+-- The History Control Group
+
+-- Implementation of the History Control group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The history control group controls the periodic statistical
+-- sampling of data from various types of networks.  The
+-- historyControlTable stores configuration entries that each
+-- define an interface, polling period, and other parameters.
+-- Once samples are taken, their data is stored in an entry
+-- in a media-specific table.  Each such entry defines one
+-- sample, and is associated with the historyControlEntry that
+-- caused the sample to be taken.  Each counter in the
+-- etherHistoryEntry counts the same event as its similarly-named
+-- counterpart in the etherStatsEntry, except that each value here
+-- is a cumulative sum during a sampling period.
+--
+-- If the probe keeps track of the time of day, it should start
+-- the first sample of the history at a time such that
+-- when the next hour of the day begins, a sample is
+-- started at that instant.  This tends to make more
+-- user-friendly reports, and enables comparison of reports
+-- from different probes that have relatively accurate time
+-- of day.
+--
+-- The probe is encouraged to add two history control entries
+-- per monitored interface upon initialization that describe a short
+-- term and a long term polling period.  Suggested parameters are 30
+-- seconds for the short term polling period and 30 minutes for
+-- the long term period.
+
+historyControlTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF HistoryControlEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of history control entries."
+    ::= { history 1 }
+
+historyControlEntry OBJECT-TYPE
+    SYNTAX     HistoryControlEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of parameters that set up a periodic sampling of
+        statistics.  As an example, an instance of the
+        historyControlInterval object might be named
+        historyControlInterval.2"
+    INDEX { historyControlIndex }
+    ::= { historyControlTable 1 }
+
+HistoryControlEntry ::= SEQUENCE {
+    historyControlIndex             Integer32,
+    historyControlDataSource        OBJECT IDENTIFIER,
+    historyControlBucketsRequested  Integer32,
+    historyControlBucketsGranted    Integer32,
+    historyControlInterval          Integer32,
+    historyControlOwner             OwnerString,
+    historyControlStatus            EntryStatus
+}
+
+historyControlIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry in the
+        historyControl table.  Each such entry defines a
+        set of samples at a particular interval for an
+        interface on the device."
+    ::= { historyControlEntry 1 }
+
+historyControlDataSource OBJECT-TYPE
+    SYNTAX     OBJECT IDENTIFIER
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "This object identifies the source of the data for
+        which historical data was collected and
+        placed in a media-specific table on behalf of this
+        historyControlEntry.  This source can be any
+        interface on this device.  In order to identify
+
+        a particular interface, this object shall identify
+        the instance of the ifIndex object, defined
+        in  RFC 2233 [17], for the desired interface.
+        For example, if an entry were to receive data from
+        interface #1, this object would be set to ifIndex.1.
+
+        The statistics in this group reflect all packets
+        on the local network segment attached to the identified
+        interface.
+
+        An agent may or may not be able to tell if fundamental
+        changes to the media of the interface have occurred and
+        necessitate an invalidation of this entry.  For example, a
+        hot-pluggable ethernet card could be pulled out and replaced
+        by a token-ring card.  In such a case, if the agent has such
+        knowledge of the change, it is recommended that it
+        invalidate this entry.
+
+        This object may not be modified if the associated
+        historyControlStatus object is equal to valid(1)."
+    ::= { historyControlEntry 2 }
+
+historyControlBucketsRequested OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The requested number of discrete time intervals
+        over which data is to be saved in the part of the
+        media-specific table associated with this
+        historyControlEntry.
+
+        When this object is created or modified, the probe
+        should set historyControlBucketsGranted as closely to
+        this object as is possible for the particular probe
+        implementation and available resources."
+    DEFVAL { 50 }
+    ::= { historyControlEntry 3 }
+
+historyControlBucketsGranted OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of discrete sampling intervals
+        over which data shall be saved in the part of
+        the media-specific table associated with this
+        historyControlEntry.
+
+        When the associated historyControlBucketsRequested
+        object is created or modified, the probe
+        should set this object as closely to the requested
+        value as is possible for the particular
+        probe implementation and available resources.  The
+        probe must not lower this value except as a result
+        of a modification to the associated
+        historyControlBucketsRequested object.
+
+        There will be times when the actual number of
+        buckets associated with this entry is less than
+        the value of this object.  In this case, at the
+        end of each sampling interval, a new bucket will
+        be added to the media-specific table.
+
+        When the number of buckets reaches the value of
+        this object and a new bucket is to be added to the
+        media-specific table, the oldest bucket associated
+        with this historyControlEntry shall be deleted by
+        the agent so that the new bucket can be added.
+
+        When the value of this object changes to a value less
+        than the current value, entries are deleted
+        from the media-specific table associated with this
+        historyControlEntry.  Enough of the oldest of these
+        entries shall be deleted by the agent so that their
+        number remains less than or equal to the new value of
+        this object.
+
+        When the value of this object changes to a value greater
+        than the current value, the number of associated media-
+        specific entries may be allowed to grow."
+    ::= { historyControlEntry 4 }
+
+historyControlInterval OBJECT-TYPE
+    SYNTAX     Integer32 (1..3600)
+    UNITS      "Seconds"
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The interval in seconds over which the data is
+        sampled for each bucket in the part of the
+        media-specific table associated with this
+        historyControlEntry.  This interval can
+        be set to any number of seconds between 1 and
+        3600 (1 hour).
+
+        Because the counters in a bucket may overflow at their
+
+        maximum value with no indication, a prudent manager will
+        take into account the possibility of overflow in any of
+        the associated counters.  It is important to consider the
+        minimum time in which any counter could overflow on a
+        particular media type and set the historyControlInterval
+        object to a value less than this interval.  This is
+        typically most important for the 'octets' counter in any
+        media-specific table.  For example, on an Ethernet
+        network, the etherHistoryOctets counter could overflow
+        in about one hour at the Ethernet's maximum
+        utilization.
+
+        This object may not be modified if the associated
+        historyControlStatus object is equal to valid(1)."
+    DEFVAL { 1800 }
+    ::= { historyControlEntry 5 }
+
+historyControlOwner OBJECT-TYPE
+    SYNTAX     OwnerString
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The entity that configured this entry and is therefore
+        using the resources assigned to it."
+    ::= { historyControlEntry 6 }
+
+historyControlStatus OBJECT-TYPE
+    SYNTAX     EntryStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status of this historyControl entry.
+
+        Each instance of the media-specific table associated
+        with this historyControlEntry will be deleted by the agent
+        if this historyControlEntry is not equal to valid(1)."
+    ::= { historyControlEntry 7 }
+
+-- The Ethernet History Group
+
+-- Implementation of the Ethernet History group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Ethernet History group records periodic statistical samples
+-- from a network and stores them for later retrieval.
+-- Once samples are taken, their data is stored in an entry
+-- in a media-specific table.  Each such entry defines one
+
+-- sample, and is associated with the historyControlEntry that
+-- caused the sample to be taken.  This group defines the
+-- etherHistoryTable, for Ethernet networks.
+--
+
+etherHistoryTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF EtherHistoryEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of Ethernet history entries."
+    ::= { history 2 }
+
+etherHistoryEntry OBJECT-TYPE
+    SYNTAX     EtherHistoryEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "An historical sample of Ethernet statistics on a particular
+        Ethernet interface.  This sample is associated with the
+        historyControlEntry which set up the parameters for
+        a regular collection of these samples.  As an example, an
+        instance of the etherHistoryPkts object might be named
+        etherHistoryPkts.2.89"
+    INDEX { etherHistoryIndex , etherHistorySampleIndex }
+    ::= { etherHistoryTable 1 }
+
+EtherHistoryEntry ::= SEQUENCE {
+    etherHistoryIndex                 Integer32,
+    etherHistorySampleIndex           Integer32,
+    etherHistoryIntervalStart         TimeTicks,
+    etherHistoryDropEvents            Counter32,
+    etherHistoryOctets                Counter32,
+    etherHistoryPkts                  Counter32,
+    etherHistoryBroadcastPkts         Counter32,
+    etherHistoryMulticastPkts         Counter32,
+    etherHistoryCRCAlignErrors        Counter32,
+    etherHistoryUndersizePkts         Counter32,
+    etherHistoryOversizePkts          Counter32,
+    etherHistoryFragments             Counter32,
+    etherHistoryJabbers               Counter32,
+    etherHistoryCollisions            Counter32,
+    etherHistoryUtilization           Integer32
+}
+
+etherHistoryIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The history of which this entry is a part.  The
+        history identified by a particular value of this
+        index is the same history as identified
+        by the same value of historyControlIndex."
+    ::= { etherHistoryEntry 1 }
+
+etherHistorySampleIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..2147483647)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies the particular
+        sample this entry represents among all samples
+        associated with the same historyControlEntry.
+        This index starts at 1 and increases by one
+        as each new sample is taken."
+    ::= { etherHistoryEntry 2 }
+
+etherHistoryIntervalStart OBJECT-TYPE
+    SYNTAX     TimeTicks
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The value of sysUpTime at the start of the interval
+        over which this sample was measured.  If the probe
+        keeps track of the time of day, it should start
+        the first sample of the history at a time such that
+        when the next hour of the day begins, a sample is
+        started at that instant.  Note that following this
+        rule may require the probe to delay collecting the
+        first sample of the history, as each sample must be
+        of the same interval.  Also note that the sample which
+        is currently being collected is not accessible in this
+        table until the end of its interval."
+    ::= { etherHistoryEntry 3 }
+
+etherHistoryDropEvents OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of events in which packets
+        were dropped by the probe due to lack of resources
+        during this sampling interval.  Note that this number
+        is not necessarily the number of packets dropped, it
+        is just the number of times this condition has been
+
+        detected."
+    ::= { etherHistoryEntry 4 }
+
+etherHistoryOctets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Octets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of octets of data (including
+        those in bad packets) received on the
+        network (excluding framing bits but including
+        FCS octets)."
+    ::= { etherHistoryEntry 5 }
+
+etherHistoryPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of packets (including bad packets)
+        received during this sampling interval."
+    ::= { etherHistoryEntry 6 }
+
+etherHistoryBroadcastPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of good packets received during this
+        sampling interval that were directed to the
+        broadcast address."
+    ::= { etherHistoryEntry 7 }
+
+etherHistoryMulticastPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of good packets received during this
+        sampling interval that were directed to a
+        multicast address.  Note that this number does not
+        include packets addressed to the broadcast address."
+    ::= { etherHistoryEntry 8 }
+
+etherHistoryCRCAlignErrors OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of packets received during this
+        sampling interval that had a length (excluding
+        framing bits but including FCS octets) between
+        64 and 1518 octets, inclusive, but had either a bad Frame
+        Check Sequence (FCS) with an integral number of octets
+        (FCS Error) or a bad FCS with a non-integral number
+        of octets (Alignment Error)."
+    ::= { etherHistoryEntry 9 }
+
+etherHistoryUndersizePkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of packets received during this
+        sampling interval that were less than 64 octets
+        long (excluding framing bits but including FCS
+        octets) and were otherwise well formed."
+    ::= { etherHistoryEntry 10 }
+
+etherHistoryOversizePkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of packets received during this
+        sampling interval that were longer than 1518
+        octets (excluding framing bits but including
+        FCS octets) but were otherwise well formed."
+    ::= { etherHistoryEntry 11 }
+
+etherHistoryFragments OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The total number of packets received during this
+        sampling interval that were less than 64 octets in
+        length (excluding framing bits but including FCS
+
+        octets) had either a bad Frame Check Sequence (FCS)
+        with an integral number of octets (FCS Error) or a bad
+        FCS with a non-integral number of octets (Alignment
+        Error).
+
+        Note that it is entirely normal for etherHistoryFragments to
+        increment.  This is because it counts both runts (which are
+        normal occurrences due to collisions) and noise hits."
+    ::= { etherHistoryEntry 12 }
+
+etherHistoryJabbers OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of packets received during this
+        sampling interval that were longer than 1518 octets
+        (excluding framing bits but including FCS octets),
+        and  had either a bad Frame Check Sequence (FCS)
+        with an integral number of octets (FCS Error) or
+        a bad FCS with a non-integral number of octets
+        (Alignment Error).
+
+        Note that this definition of jabber is different
+        than the definition in IEEE-802.3 section 8.2.1.5
+        (10BASE5) and section 10.3.1.4 (10BASE2).  These
+        documents define jabber as the condition where any
+        packet exceeds 20 ms.  The allowed range to detect
+        jabber is between 20 ms and 150 ms."
+    ::= { etherHistoryEntry 13 }
+
+etherHistoryCollisions OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Collisions"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The best estimate of the total number of collisions
+        on this Ethernet segment during this sampling
+        interval.
+
+        The value returned will depend on the location of the
+        RMON probe. Section 8.2.1.3 (10BASE-5) and section
+        10.3.1.3 (10BASE-2) of IEEE standard 802.3 states that a
+        station must detect a collision, in the receive mode, if
+        three or more stations are transmitting simultaneously.  A
+        repeater port must detect a collision when two or more
+
+        stations are transmitting simultaneously.  Thus a probe
+        placed on a repeater port could record more collisions
+        than a probe connected to a station on the same segment
+        would.
+
+        Probe location plays a much smaller role when considering
+        10BASE-T.  14.2.1.4 (10BASE-T) of IEEE standard 802.3
+        defines a collision as the simultaneous presence of signals
+        on the DO and RD circuits (transmitting and receiving
+        at the same time).  A 10BASE-T station can only detect
+        collisions when it is transmitting.  Thus probes placed on
+        a station and a repeater, should report the same number of
+        collisions.
+
+        Note also that an RMON probe inside a repeater should
+        ideally report collisions between the repeater and one or
+        more other hosts (transmit collisions as defined by IEEE
+        802.3k) plus receiver collisions observed on any coax
+        segments to which the repeater is connected."
+    ::= { etherHistoryEntry 14 }
+
+etherHistoryUtilization OBJECT-TYPE
+    SYNTAX     Integer32 (0..10000)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The best estimate of the mean physical layer
+        network utilization on this interface during this
+        sampling interval, in hundredths of a percent."
+    ::= { etherHistoryEntry 15 }
+
+-- The Alarm Group
+
+-- Implementation of the Alarm group is optional. The Alarm Group
+-- requires the implementation of the Event group.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Alarm group periodically takes statistical samples from
+-- variables in the probe and compares them to thresholds that have
+-- been configured.  The alarm table stores configuration
+-- entries that each define a variable, polling period, and
+-- threshold parameters.  If a sample is found to cross the
+-- threshold values, an event is generated.  Only variables that
+-- resolve to an ASN.1 primitive type of INTEGER (INTEGER, Integer32,
+-- Counter32, Counter64, Gauge32, or TimeTicks) may be monitored in
+-- this way.
+--
+
+-- This function has a hysteresis mechanism to limit the generation
+-- of events.  This mechanism generates one event as a threshold
+-- is crossed in the appropriate direction.  No more events are
+-- generated for that threshold until the opposite threshold is
+-- crossed.
+--
+-- In the case of a sampling a deltaValue, a probe may implement
+-- this mechanism with more precision if it takes a delta sample
+-- twice per period, each time comparing the sum of the latest two
+-- samples to the threshold.  This allows the detection of threshold
+-- crossings that span the sampling boundary.  Note that this does
+-- not require any special configuration of the threshold value.
+-- It is suggested that probes implement this more precise algorithm.
+
+alarmTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF AlarmEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of alarm entries."
+    ::= { alarm 1 }
+
+alarmEntry OBJECT-TYPE
+    SYNTAX     AlarmEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of parameters that set up a periodic checking
+        for alarm conditions.  For example, an instance of the
+        alarmValue object might be named alarmValue.8"
+    INDEX { alarmIndex }
+    ::= { alarmTable 1 }
+
+AlarmEntry ::= SEQUENCE {
+    alarmIndex                    Integer32,
+    alarmInterval                 Integer32,
+    alarmVariable                 OBJECT IDENTIFIER,
+    alarmSampleType               INTEGER,
+    alarmValue                    Integer32,
+    alarmStartupAlarm             INTEGER,
+    alarmRisingThreshold          Integer32,
+    alarmFallingThreshold         Integer32,
+    alarmRisingEventIndex         Integer32,
+    alarmFallingEventIndex        Integer32,
+    alarmOwner                    OwnerString,
+    alarmStatus                   EntryStatus
+}
+
+alarmIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry in the
+        alarm table.  Each such entry defines a
+        diagnostic sample at a particular interval
+        for an object on the device."
+    ::= { alarmEntry 1 }
+
+alarmInterval OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Seconds"
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The interval in seconds over which the data is
+        sampled and compared with the rising and falling
+        thresholds.  When setting this variable, care
+        should be taken in the case of deltaValue
+        sampling - the interval should be set short enough
+        that the sampled variable is very unlikely to
+        increase or decrease by more than 2^31 - 1 during
+        a single sampling interval.
+
+        This object may not be modified if the associated
+        alarmStatus object is equal to valid(1)."
+    ::= { alarmEntry 2 }
+
+alarmVariable OBJECT-TYPE
+    SYNTAX     OBJECT IDENTIFIER
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The object identifier of the particular variable to be
+        sampled.  Only variables that resolve to an ASN.1 primitive
+        type of INTEGER (INTEGER, Integer32, Counter32, Counter64,
+        Gauge, or TimeTicks) may be sampled.
+
+        Because SNMP access control is articulated entirely
+        in terms of the contents of MIB views, no access
+        control mechanism exists that can restrict the value of
+        this object to identify only those objects that exist
+        in a particular MIB view.  Because there is thus no
+        acceptable means of restricting the read access that
+        could be obtained through the alarm mechanism, the
+        probe must only grant write access to this object in
+
+        those views that have read access to all objects on
+        the probe.
+
+        During a set operation, if the supplied variable name is
+        not available in the selected MIB view, a badValue error
+        must be returned.  If at any time the variable name of
+        an established alarmEntry is no longer available in the
+        selected MIB view, the probe must change the status of
+        this alarmEntry to invalid(4).
+
+        This object may not be modified if the associated
+        alarmStatus object is equal to valid(1)."
+    ::= { alarmEntry 3 }
+
+alarmSampleType OBJECT-TYPE
+    SYNTAX     INTEGER {
+                 absoluteValue(1),
+                 deltaValue(2)
+               }
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The method of sampling the selected variable and
+        calculating the value to be compared against the
+        thresholds.  If the value of this object is
+        absoluteValue(1), the value of the selected variable
+        will be compared directly with the thresholds at the
+        end of the sampling interval.  If the value of this
+        object is deltaValue(2), the value of the selected
+        variable at the last sample will be subtracted from
+        the current value, and the difference compared with
+        the thresholds.
+
+        This object may not be modified if the associated
+        alarmStatus object is equal to valid(1)."
+    ::= { alarmEntry 4 }
+
+alarmValue OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The value of the statistic during the last sampling
+        period.  For example, if the sample type is deltaValue,
+        this value will be the difference between the samples
+        at the beginning and end of the period.  If the sample
+        type is absoluteValue, this value will be the sampled
+        value at the end of the period.
+
+        This is the value that is compared with the rising and
+        falling thresholds.
+
+        The value during the current sampling period is not
+        made available until the period is completed and will
+        remain available until the next period completes."
+    ::= { alarmEntry 5 }
+
+alarmStartupAlarm OBJECT-TYPE
+    SYNTAX     INTEGER {
+                 risingAlarm(1),
+                 fallingAlarm(2),
+                 risingOrFallingAlarm(3)
+               }
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The alarm that may be sent when this entry is first
+        set to valid.  If the first sample after this entry
+        becomes valid is greater than or equal to the
+        risingThreshold and alarmStartupAlarm is equal to
+        risingAlarm(1) or risingOrFallingAlarm(3), then a single
+        rising alarm will be generated.  If the first sample
+        after this entry becomes valid is less than or equal
+        to the fallingThreshold and alarmStartupAlarm is equal
+        to fallingAlarm(2) or risingOrFallingAlarm(3), then a
+        single falling alarm will be generated.
+
+        This object may not be modified if the associated
+        alarmStatus object is equal to valid(1)."
+    ::= { alarmEntry 6 }
+
+alarmRisingThreshold OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "A threshold for the sampled statistic.  When the current
+        sampled value is greater than or equal to this threshold,
+        and the value at the last sampling interval was less than
+        this threshold, a single event will be generated.
+        A single event will also be generated if the first
+        sample after this entry becomes valid is greater than or
+        equal to this threshold and the associated
+        alarmStartupAlarm is equal to risingAlarm(1) or
+        risingOrFallingAlarm(3).
+
+        After a rising event is generated, another such event
+
+        will not be generated until the sampled value
+        falls below this threshold and reaches the
+        alarmFallingThreshold.
+
+        This object may not be modified if the associated
+        alarmStatus object is equal to valid(1)."
+    ::= { alarmEntry 7 }
+
+alarmFallingThreshold OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "A threshold for the sampled statistic.  When the current
+        sampled value is less than or equal to this threshold,
+        and the value at the last sampling interval was greater than
+        this threshold, a single event will be generated.
+        A single event will also be generated if the first
+        sample after this entry becomes valid is less than or
+        equal to this threshold and the associated
+        alarmStartupAlarm is equal to fallingAlarm(2) or
+        risingOrFallingAlarm(3).
+
+        After a falling event is generated, another such event
+        will not be generated until the sampled value
+        rises above this threshold and reaches the
+        alarmRisingThreshold.
+
+        This object may not be modified if the associated
+        alarmStatus object is equal to valid(1)."
+    ::= { alarmEntry 8 }
+
+alarmRisingEventIndex OBJECT-TYPE
+    SYNTAX     Integer32 (0..65535)
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The index of the eventEntry that is
+        used when a rising threshold is crossed.  The
+        eventEntry identified by a particular value of
+        this index is the same as identified by the same value
+        of the eventIndex object.  If there is no
+        corresponding entry in the eventTable, then
+        no association exists.  In particular, if this value
+        is zero, no associated event will be generated, as
+        zero is not a valid event index.
+
+        This object may not be modified if the associated
+
+        alarmStatus object is equal to valid(1)."
+    ::= { alarmEntry 9 }
+
+alarmFallingEventIndex OBJECT-TYPE
+    SYNTAX     Integer32 (0..65535)
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The index of the eventEntry that is
+        used when a falling threshold is crossed.  The
+        eventEntry identified by a particular value of
+        this index is the same as identified by the same value
+        of the eventIndex object.  If there is no
+        corresponding entry in the eventTable, then
+        no association exists.  In particular, if this value
+        is zero, no associated event will be generated, as
+        zero is not a valid event index.
+
+        This object may not be modified if the associated
+        alarmStatus object is equal to valid(1)."
+    ::= { alarmEntry 10 }
+
+alarmOwner OBJECT-TYPE
+    SYNTAX     OwnerString
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The entity that configured this entry and is therefore
+        using the resources assigned to it."
+    ::= { alarmEntry 11 }
+
+alarmStatus OBJECT-TYPE
+    SYNTAX     EntryStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status of this alarm entry."
+    ::= { alarmEntry 12 }
+
+-- The Host Group
+
+-- Implementation of the Host group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The host group discovers new hosts on the network by
+-- keeping a list of source and destination MAC Addresses seen
+-- in good packets.  For each of these addresses, the host group
+
+-- keeps a set of statistics.  The hostControlTable controls
+-- which interfaces this function is performed on, and contains
+-- some information about the process.  On behalf of each
+-- hostControlEntry, data is collected on an interface and placed
+-- in both the hostTable and the hostTimeTable.  If the
+-- monitoring device finds itself short of resources, it may
+-- delete entries as needed.  It is suggested that the device
+-- delete the least recently used entries first.
+
+-- The hostTable contains entries for each address discovered on
+-- a particular interface.  Each entry contains statistical
+-- data about that host.  This table is indexed by the
+-- MAC address of the host, through which a random access
+-- may be achieved.
+
+-- The hostTimeTable contains data in the same format as the
+-- hostTable, and must contain the same set of hosts, but is
+-- indexed using hostTimeCreationOrder rather than hostAddress.
+-- The hostTimeCreationOrder is an integer which reflects
+-- the relative order in which a particular entry was discovered
+-- and thus inserted into the table.  As this order, and thus
+-- the index, is among those entries currently in the table,
+-- the index for a particular entry may change if an
+-- (earlier) entry is deleted.  Thus the association between
+-- hostTimeCreationOrder and hostTimeEntry may be broken at
+-- any time.
+
+-- The hostTimeTable has two important uses.  The first is the
+-- fast download of this potentially large table.  Because the
+-- index of this table runs from 1 to the size of the table,
+-- inclusive, its values are predictable.  This allows very
+-- efficient packing of variables into SNMP PDU's and allows
+-- a table transfer to have multiple packets outstanding.
+-- These benefits increase transfer rates tremendously.
+
+-- The second use of the hostTimeTable is the efficient discovery
+-- by the management station of new entries added to the table.
+-- After the management station has downloaded the entire table,
+-- it knows that new entries will be added immediately after the
+-- end of the current table.  It can thus detect new entries there
+-- and retrieve them easily.
+
+-- Because the association between hostTimeCreationOrder and
+-- hostTimeEntry may be broken at any time, the management
+-- station must monitor the related hostControlLastDeleteTime
+-- object.  When the management station thus detects a deletion,
+-- it must assume that any such associations have been broken,
+-- and invalidate any it has stored locally.  This includes
+
+-- restarting any download of the hostTimeTable that may have been
+-- in progress, as well as rediscovering the end of the
+-- hostTimeTable so that it may detect new entries.  If the
+-- management station does not detect the broken association,
+-- it may continue to refer to a particular host by its
+-- creationOrder while unwittingly retrieving the data associated
+-- with another host entirely.  If this happens while downloading
+-- the host table, the management station may fail to download
+-- all of the entries in the table.
+
+hostControlTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF HostControlEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of host table control entries."
+    ::= { hosts 1 }
+
+hostControlEntry OBJECT-TYPE
+    SYNTAX     HostControlEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of parameters that set up the discovery of hosts
+        on a particular interface and the collection of statistics
+        about these hosts.  For example, an instance of the
+        hostControlTableSize object might be named
+        hostControlTableSize.1"
+    INDEX { hostControlIndex }
+    ::= { hostControlTable 1 }
+
+HostControlEntry ::= SEQUENCE {
+
+    hostControlIndex            Integer32,
+    hostControlDataSource       OBJECT IDENTIFIER,
+    hostControlTableSize        Integer32,
+    hostControlLastDeleteTime   TimeTicks,
+    hostControlOwner            OwnerString,
+    hostControlStatus           EntryStatus
+}
+
+hostControlIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry in the
+
+        hostControl table.  Each such entry defines
+        a function that discovers hosts on a particular interface
+        and places statistics about them in the hostTable and
+        the hostTimeTable on behalf of this hostControlEntry."
+    ::= { hostControlEntry 1 }
+
+hostControlDataSource OBJECT-TYPE
+    SYNTAX     OBJECT IDENTIFIER
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "This object identifies the source of the data for
+        this instance of the host function.  This source
+        can be any interface on this device.  In order
+        to identify a particular interface, this object shall
+        identify the instance of the ifIndex object, defined
+        in RFC 2233 [17], for the desired interface.
+        For example, if an entry were to receive data from
+        interface #1, this object would be set to ifIndex.1.
+
+        The statistics in this group reflect all packets
+        on the local network segment attached to the identified
+        interface.
+
+        An agent may or may not be able to tell if fundamental
+        changes to the media of the interface have occurred and
+        necessitate an invalidation of this entry.  For example, a
+        hot-pluggable ethernet card could be pulled out and replaced
+        by a token-ring card.  In such a case, if the agent has such
+        knowledge of the change, it is recommended that it
+        invalidate this entry.
+
+        This object may not be modified if the associated
+        hostControlStatus object is equal to valid(1)."
+    ::= { hostControlEntry 2 }
+
+hostControlTableSize OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of hostEntries in the hostTable and the
+        hostTimeTable associated with this hostControlEntry."
+    ::= { hostControlEntry 3 }
+
+hostControlLastDeleteTime OBJECT-TYPE
+    SYNTAX     TimeTicks
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The value of sysUpTime when the last entry
+        was deleted from the portion of the hostTable
+        associated with this hostControlEntry.  If no
+        deletions have occurred, this value shall be zero."
+    ::= { hostControlEntry 4 }
+
+hostControlOwner OBJECT-TYPE
+    SYNTAX     OwnerString
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The entity that configured this entry and is therefore
+        using the resources assigned to it."
+    ::= { hostControlEntry 5 }
+
+hostControlStatus OBJECT-TYPE
+    SYNTAX     EntryStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status of this hostControl entry.
+
+        If this object is not equal to valid(1), all associated
+        entries in the hostTable, hostTimeTable, and the
+        hostTopNTable shall be deleted by the agent."
+    ::= { hostControlEntry 6 }
+
+hostTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF HostEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of host entries."
+    ::= { hosts 2 }
+
+hostEntry OBJECT-TYPE
+    SYNTAX     HostEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A collection of statistics for a particular host that has
+        been discovered on an interface of this device.  For example,
+        an instance of the hostOutBroadcastPkts object might be
+        named hostOutBroadcastPkts.1.6.8.0.32.27.3.176"
+    INDEX { hostIndex, hostAddress }
+    ::= { hostTable 1 }
+
+HostEntry ::= SEQUENCE {
+    hostAddress             OCTET STRING,
+    hostCreationOrder       Integer32,
+    hostIndex               Integer32,
+    hostInPkts              Counter32,
+    hostOutPkts             Counter32,
+    hostInOctets            Counter32,
+    hostOutOctets           Counter32,
+    hostOutErrors           Counter32,
+    hostOutBroadcastPkts    Counter32,
+    hostOutMulticastPkts    Counter32
+}
+
+hostAddress OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The physical address of this host."
+    ::= { hostEntry 1 }
+
+hostCreationOrder OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that defines the relative ordering of
+        the creation time of hosts captured for a
+        particular hostControlEntry.  This index shall
+        be between 1 and N, where N is the value of
+        the associated hostControlTableSize.  The ordering
+        of the indexes is based on the order of each entry's
+        insertion into the table, in which entries added earlier
+        have a lower index value than entries added later.
+
+        It is important to note that the order for a
+        particular entry may change as an (earlier) entry
+        is deleted from the table.  Because this order may
+        change, management stations should make use of the
+        hostControlLastDeleteTime variable in the
+        hostControlEntry associated with the relevant
+        portion of the hostTable.  By observing
+        this variable, the management station may detect
+        the circumstances where a previous association
+        between a value of hostCreationOrder
+        and a hostEntry may no longer hold."
+    ::= { hostEntry 2 }
+
+hostIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The set of collected host statistics of which
+        this entry is a part.  The set of hosts
+        identified by a particular value of this
+        index is associated with the hostControlEntry
+        as identified by the same value of hostControlIndex."
+    ::= { hostEntry 3 }
+
+hostInPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of good packets transmitted to this
+        address since it was added to the hostTable."
+    ::= { hostEntry 4 }
+
+hostOutPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of packets, including bad packets, transmitted
+        by this address since it was added to the hostTable."
+    ::= { hostEntry 5 }
+
+hostInOctets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Octets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of octets transmitted to this address since
+        it was added to the hostTable (excluding framing
+        bits but including FCS octets), except for those
+        octets in bad packets."
+    ::= { hostEntry 6 }
+
+hostOutOctets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Octets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of octets transmitted by this address since
+        it was added to the hostTable (excluding framing
+        bits but including FCS octets), including those
+        octets in bad packets."
+    ::= { hostEntry 7 }
+
+hostOutErrors OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of bad packets transmitted by this address
+        since this host was added to the hostTable."
+    ::= { hostEntry 8 }
+
+hostOutBroadcastPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of good packets transmitted by this
+        address that were directed to the broadcast address
+        since this host was added to the hostTable."
+    ::= { hostEntry 9 }
+
+hostOutMulticastPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of good packets transmitted by this
+        address that were directed to a multicast address
+        since this host was added to the hostTable.
+        Note that this number does not include packets
+        directed to the broadcast address."
+    ::= { hostEntry 10 }
+
+-- host Time Table
+
+hostTimeTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF HostTimeEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of time-ordered host table entries."
+    ::= { hosts 3 }
+
+hostTimeEntry OBJECT-TYPE
+    SYNTAX     HostTimeEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A collection of statistics for a particular host that has
+        been discovered on an interface of this device.  This
+        collection includes the relative ordering of the creation
+        time of this object.  For example, an instance of the
+        hostTimeOutBroadcastPkts object might be named
+        hostTimeOutBroadcastPkts.1.687"
+    INDEX { hostTimeIndex, hostTimeCreationOrder }
+    ::= { hostTimeTable 1 }
+
+HostTimeEntry ::= SEQUENCE {
+    hostTimeAddress              OCTET STRING,
+    hostTimeCreationOrder        Integer32,
+    hostTimeIndex                Integer32,
+    hostTimeInPkts               Counter32,
+    hostTimeOutPkts              Counter32,
+    hostTimeInOctets             Counter32,
+    hostTimeOutOctets            Counter32,
+    hostTimeOutErrors            Counter32,
+    hostTimeOutBroadcastPkts     Counter32,
+    hostTimeOutMulticastPkts     Counter32
+}
+
+hostTimeAddress OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The physical address of this host."
+    ::= { hostTimeEntry 1 }
+
+hostTimeCreationOrder OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry in
+        the hostTime table among those entries associated
+        with the same hostControlEntry.  This index shall
+        be between 1 and N, where N is the value of
+
+        the associated hostControlTableSize.  The ordering
+        of the indexes is based on the order of each entry's
+        insertion into the table, in which entries added earlier
+        have a lower index value than entries added later.
+        Thus the management station has the ability to
+        learn of new entries added to this table without
+        downloading the entire table.
+
+        It is important to note that the index for a
+        particular entry may change as an (earlier) entry
+        is deleted from the table.  Because this order may
+        change, management stations should make use of the
+        hostControlLastDeleteTime variable in the
+        hostControlEntry associated with the relevant
+        portion of the hostTimeTable.  By observing
+        this variable, the management station may detect
+        the circumstances where a download of the table
+        may have missed entries, and where a previous
+        association between a value of hostTimeCreationOrder
+        and a hostTimeEntry may no longer hold."
+    ::= { hostTimeEntry 2 }
+
+hostTimeIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The set of collected host statistics of which
+        this entry is a part.  The set of hosts
+        identified by a particular value of this
+        index is associated with the hostControlEntry
+        as identified by the same value of hostControlIndex."
+    ::= { hostTimeEntry 3 }
+
+hostTimeInPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of good packets transmitted to this
+        address since it was added to the hostTimeTable."
+    ::= { hostTimeEntry 4 }
+
+hostTimeOutPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of packets, including bad packets, transmitted
+        by this address since it was added to the hostTimeTable."
+    ::= { hostTimeEntry 5 }
+
+hostTimeInOctets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Octets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of octets transmitted to this address since
+        it was added to the hostTimeTable (excluding framing
+        bits but including FCS octets), except for those
+        octets in bad packets."
+    ::= { hostTimeEntry 6 }
+
+hostTimeOutOctets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Octets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of octets transmitted by this address since
+        it was added to the hostTimeTable (excluding framing
+        bits but including FCS octets), including those
+        octets in bad packets."
+    ::= { hostTimeEntry 7 }
+
+hostTimeOutErrors OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of bad packets transmitted by this address
+        since this host was added to the hostTimeTable."
+    ::= { hostTimeEntry 8 }
+
+hostTimeOutBroadcastPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of good packets transmitted by this
+        address that were directed to the broadcast address
+
+        since this host was added to the hostTimeTable."
+    ::= { hostTimeEntry 9 }
+
+hostTimeOutMulticastPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of good packets transmitted by this
+        address that were directed to a multicast address
+        since this host was added to the hostTimeTable.
+        Note that this number does not include packets directed
+        to the broadcast address."
+    ::= { hostTimeEntry 10 }
+
+-- The Host Top "N" Group
+
+-- Implementation of the Host Top N group is optional. The Host Top N
+-- group requires the implementation of the host group.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Host Top N group is used to prepare reports that describe
+-- the hosts that top a list ordered by one of their statistics.
+-- The available statistics are samples of one of their
+-- base statistics, over an interval specified by the management
+-- station.  Thus, these statistics are rate based.  The management
+-- station also selects how many such hosts are reported.
+
+-- The hostTopNControlTable is used to initiate the generation of
+-- such a report.  The management station may select the parameters
+-- of such a report, such as which interface, which statistic,
+-- how many hosts, and the start and stop times of the sampling.
+-- When the report is prepared, entries are created in the
+-- hostTopNTable associated with the relevant hostTopNControlEntry.
+-- These entries are static for each report after it has been
+-- prepared.
+
+hostTopNControlTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF HostTopNControlEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of top N host control entries."
+    ::= { hostTopN 1 }
+
+hostTopNControlEntry OBJECT-TYPE
+    SYNTAX     HostTopNControlEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A set of parameters that control the creation of a report
+        of the top N hosts according to several metrics.  For
+        example, an instance of the hostTopNDuration object might
+        be named hostTopNDuration.3"
+    INDEX { hostTopNControlIndex }
+    ::= { hostTopNControlTable 1 }
+
+HostTopNControlEntry ::= SEQUENCE {
+    hostTopNControlIndex    Integer32,
+    hostTopNHostIndex       Integer32,
+    hostTopNRateBase        INTEGER,
+    hostTopNTimeRemaining   Integer32,
+    hostTopNDuration        Integer32,
+    hostTopNRequestedSize   Integer32,
+    hostTopNGrantedSize     Integer32,
+    hostTopNStartTime       TimeTicks,
+    hostTopNOwner           OwnerString,
+    hostTopNStatus          EntryStatus
+}
+
+hostTopNControlIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry
+        in the hostTopNControl table.  Each such
+        entry defines one top N report prepared for
+        one interface."
+    ::= { hostTopNControlEntry 1 }
+
+hostTopNHostIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The host table for which a top N report will be prepared
+        on behalf of this entry.  The host table identified by a
+        particular value of this index is associated with the same
+        host table as identified by the same value of
+        hostIndex.
+
+        This object may not be modified if the associated
+        hostTopNStatus object is equal to valid(1)."
+    ::= { hostTopNControlEntry 2 }
+
+hostTopNRateBase OBJECT-TYPE
+    SYNTAX     INTEGER {
+                 hostTopNInPkts(1),
+                 hostTopNOutPkts(2),
+                 hostTopNInOctets(3),
+                 hostTopNOutOctets(4),
+                 hostTopNOutErrors(5),
+                 hostTopNOutBroadcastPkts(6),
+                 hostTopNOutMulticastPkts(7)
+               }
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The variable for each host that the hostTopNRate
+        variable is based upon.
+
+        This object may not be modified if the associated
+        hostTopNStatus object is equal to valid(1)."
+    ::= { hostTopNControlEntry 3 }
+
+hostTopNTimeRemaining OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Seconds"
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The number of seconds left in the report currently being
+        collected.  When this object is modified by the management
+        station, a new collection is started, possibly aborting
+        a currently running report.  The new value is used
+        as the requested duration of this report, which is
+        loaded into the associated hostTopNDuration object.
+
+        When this object is set to a non-zero value, any
+        associated hostTopNEntries shall be made
+        inaccessible by the monitor.  While the value of this
+        object is non-zero, it decrements by one per second until
+        it reaches zero.  During this time, all associated
+        hostTopNEntries shall remain inaccessible.  At the time
+        that this object decrements to zero, the report is made
+        accessible in the hostTopNTable.  Thus, the hostTopN
+        table needs to be created only at the end of the collection
+        interval."
+    DEFVAL { 0 }
+    ::= { hostTopNControlEntry 4 }
+
+hostTopNDuration OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Seconds"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of seconds that this report has collected
+        during the last sampling interval, or if this
+        report is currently being collected, the number
+        of seconds that this report is being collected
+        during this sampling interval.
+
+        When the associated hostTopNTimeRemaining object is set,
+        this object shall be set by the probe to the same value
+        and shall not be modified until the next time
+        the hostTopNTimeRemaining is set.
+
+        This value shall be zero if no reports have been
+        requested for this hostTopNControlEntry."
+    DEFVAL { 0 }
+    ::= { hostTopNControlEntry 5 }
+
+hostTopNRequestedSize OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The maximum number of hosts requested for the top N
+        table.
+
+        When this object is created or modified, the probe
+        should set hostTopNGrantedSize as closely to this
+        object as is possible for the particular probe
+        implementation and available resources."
+    DEFVAL { 10 }
+    ::= { hostTopNControlEntry 6 }
+
+hostTopNGrantedSize OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The maximum number of hosts in the top N table.
+
+        When the associated hostTopNRequestedSize object is
+        created or modified, the probe should set this
+        object as closely to the requested value as is possible
+        for the particular implementation and available
+
+        resources. The probe must not lower this value except
+        as a result of a set to the associated
+        hostTopNRequestedSize object.
+
+        Hosts with the highest value of hostTopNRate shall be
+        placed in this table in decreasing order of this rate
+        until there is no more room or until there are no more
+        hosts."
+    ::= { hostTopNControlEntry 7 }
+
+hostTopNStartTime OBJECT-TYPE
+    SYNTAX     TimeTicks
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The value of sysUpTime when this top N report was
+        last started.  In other words, this is the time that
+        the associated hostTopNTimeRemaining object was
+        modified to start the requested report."
+    ::= { hostTopNControlEntry 8 }
+
+hostTopNOwner OBJECT-TYPE
+    SYNTAX     OwnerString
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The entity that configured this entry and is therefore
+        using the resources assigned to it."
+    ::= { hostTopNControlEntry 9 }
+
+hostTopNStatus OBJECT-TYPE
+    SYNTAX     EntryStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status of this hostTopNControl entry.
+
+        If this object is not equal to valid(1), all associated
+        hostTopNEntries shall be deleted by the agent."
+    ::= { hostTopNControlEntry 10 }
+
+hostTopNTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF HostTopNEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of top N host entries."
+    ::= { hostTopN 2 }
+
+hostTopNEntry OBJECT-TYPE
+    SYNTAX     HostTopNEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A set of statistics for a host that is part of a top N
+        report.  For example, an instance of the hostTopNRate
+        object might be named hostTopNRate.3.10"
+    INDEX { hostTopNReport, hostTopNIndex }
+    ::= { hostTopNTable 1 }
+
+HostTopNEntry ::= SEQUENCE {
+    hostTopNReport                Integer32,
+    hostTopNIndex                 Integer32,
+    hostTopNAddress               OCTET STRING,
+    hostTopNRate                  Integer32
+}
+
+hostTopNReport OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "This object identifies the top N report of which
+        this entry is a part.  The set of hosts
+        identified by a particular value of this
+        object is part of the same report as identified
+        by the same value of the hostTopNControlIndex object."
+    ::= { hostTopNEntry 1 }
+
+hostTopNIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry in
+        the hostTopN table among those in the same report.
+        This index is between 1 and N, where N is the
+        number of entries in this table.  Increasing values
+        of hostTopNIndex shall be assigned to entries with
+        decreasing values of hostTopNRate until index N
+        is assigned to the entry with the lowest value of
+        hostTopNRate or there are no more hostTopNEntries."
+    ::= { hostTopNEntry 2 }
+
+hostTopNAddress OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The physical address of this host."
+    ::= { hostTopNEntry 3 }
+
+hostTopNRate OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The amount of change in the selected variable
+        during this sampling interval.  The selected
+        variable is this host's instance of the object
+        selected by hostTopNRateBase."
+    ::= { hostTopNEntry 4 }
+
+-- The Matrix Group
+
+-- Implementation of the Matrix group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Matrix group consists of the matrixControlTable, matrixSDTable
+-- and the matrixDSTable.  These tables store statistics for a
+-- particular conversation between two addresses.  As the device
+-- detects a new conversation, including those to a non-unicast
+-- address, it creates a new entry in both of the matrix tables.
+-- It must only create new entries based on information
+-- received in good packets.  If the monitoring device finds
+-- itself short of resources, it may delete entries as needed.
+-- It is suggested that the device delete the least recently used
+-- entries first.
+
+matrixControlTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF MatrixControlEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of information entries for the
+        traffic matrix on each interface."
+    ::= { matrix 1 }
+
+matrixControlEntry OBJECT-TYPE
+    SYNTAX     MatrixControlEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "Information about a traffic matrix on a particular
+
+        interface.  For example, an instance of the
+        matrixControlLastDeleteTime object might be named
+        matrixControlLastDeleteTime.1"
+    INDEX { matrixControlIndex }
+    ::= { matrixControlTable 1 }
+
+MatrixControlEntry ::= SEQUENCE {
+    matrixControlIndex           Integer32,
+    matrixControlDataSource      OBJECT IDENTIFIER,
+    matrixControlTableSize       Integer32,
+    matrixControlLastDeleteTime  TimeTicks,
+    matrixControlOwner           OwnerString,
+    matrixControlStatus          EntryStatus
+}
+
+matrixControlIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry in the
+        matrixControl table.  Each such entry defines
+        a function that discovers conversations on a particular
+        interface and places statistics about them in the
+        matrixSDTable and the matrixDSTable on behalf of this
+        matrixControlEntry."
+    ::= { matrixControlEntry 1 }
+
+matrixControlDataSource OBJECT-TYPE
+    SYNTAX     OBJECT IDENTIFIER
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "This object identifies the source of
+        the data from which this entry creates a traffic matrix.
+        This source can be any interface on this device.  In
+        order to identify a particular interface, this object
+        shall identify the instance of the ifIndex object,
+        defined in RFC 2233 [17], for the desired
+        interface.  For example, if an entry were to receive data
+        from interface #1, this object would be set to ifIndex.1.
+
+        The statistics in this group reflect all packets
+        on the local network segment attached to the identified
+        interface.
+
+        An agent may or may not be able to tell if fundamental
+        changes to the media of the interface have occurred and
+
+        necessitate an invalidation of this entry.  For example, a
+        hot-pluggable ethernet card could be pulled out and replaced
+        by a token-ring card.  In such a case, if the agent has such
+        knowledge of the change, it is recommended that it
+        invalidate this entry.
+
+        This object may not be modified if the associated
+        matrixControlStatus object is equal to valid(1)."
+    ::= { matrixControlEntry 2 }
+
+matrixControlTableSize OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of matrixSDEntries in the matrixSDTable
+        for this interface.  This must also be the value of
+        the number of entries in the matrixDSTable for this
+        interface."
+    ::= { matrixControlEntry 3 }
+
+matrixControlLastDeleteTime OBJECT-TYPE
+    SYNTAX     TimeTicks
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The value of sysUpTime when the last entry
+        was deleted from the portion of the matrixSDTable
+        or matrixDSTable associated with this matrixControlEntry.
+        If no deletions have occurred, this value shall be
+        zero."
+    ::= { matrixControlEntry 4 }
+
+matrixControlOwner OBJECT-TYPE
+    SYNTAX     OwnerString
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The entity that configured this entry and is therefore
+        using the resources assigned to it."
+    ::= { matrixControlEntry 5 }
+
+matrixControlStatus OBJECT-TYPE
+    SYNTAX     EntryStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status of this matrixControl entry.
+
+        If this object is not equal to valid(1), all associated
+        entries in the matrixSDTable and the matrixDSTable
+        shall be deleted by the agent."
+    ::= { matrixControlEntry 6 }
+
+matrixSDTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF MatrixSDEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of traffic matrix entries indexed by
+        source and destination MAC address."
+    ::= { matrix 2 }
+
+matrixSDEntry OBJECT-TYPE
+    SYNTAX     MatrixSDEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A collection of statistics for communications between
+        two addresses on a particular interface.  For example,
+        an instance of the matrixSDPkts object might be named
+        matrixSDPkts.1.6.8.0.32.27.3.176.6.8.0.32.10.8.113"
+    INDEX { matrixSDIndex,
+            matrixSDSourceAddress, matrixSDDestAddress }
+    ::= { matrixSDTable 1 }
+
+MatrixSDEntry ::= SEQUENCE {
+    matrixSDSourceAddress       OCTET STRING,
+    matrixSDDestAddress         OCTET STRING,
+    matrixSDIndex               Integer32,
+    matrixSDPkts                Counter32,
+    matrixSDOctets              Counter32,
+    matrixSDErrors              Counter32
+}
+
+matrixSDSourceAddress OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The source physical address."
+    ::= { matrixSDEntry 1 }
+
+matrixSDDestAddress OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The destination physical address."
+    ::= { matrixSDEntry 2 }
+
+matrixSDIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The set of collected matrix statistics of which
+        this entry is a part.  The set of matrix statistics
+        identified by a particular value of this index
+        is associated with the same matrixControlEntry
+        as identified by the same value of matrixControlIndex."
+    ::= { matrixSDEntry 3 }
+
+matrixSDPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of packets transmitted from the source
+        address to the destination address (this number includes
+        bad packets)."
+    ::= { matrixSDEntry 4 }
+
+matrixSDOctets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Octets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of octets (excluding framing bits but
+        including FCS octets) contained in all packets
+        transmitted from the source address to the
+        destination address."
+    ::= { matrixSDEntry 5 }
+
+matrixSDErrors OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of bad packets transmitted from
+        the source address to the destination address."
+    ::= { matrixSDEntry 6 }
+
+-- Traffic matrix tables from destination to source
+
+matrixDSTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF MatrixDSEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of traffic matrix entries indexed by
+        destination and source MAC address."
+    ::= { matrix 3 }
+
+matrixDSEntry OBJECT-TYPE
+    SYNTAX     MatrixDSEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A collection of statistics for communications between
+        two addresses on a particular interface.  For example,
+        an instance of the matrixSDPkts object might be named
+        matrixSDPkts.1.6.8.0.32.10.8.113.6.8.0.32.27.3.176"
+    INDEX { matrixDSIndex,
+            matrixDSDestAddress, matrixDSSourceAddress }
+    ::= { matrixDSTable 1 }
+
+MatrixDSEntry ::= SEQUENCE {
+    matrixDSSourceAddress       OCTET STRING,
+    matrixDSDestAddress         OCTET STRING,
+    matrixDSIndex               Integer32,
+    matrixDSPkts                Counter32,
+    matrixDSOctets              Counter32,
+    matrixDSErrors              Counter32
+}
+
+matrixDSSourceAddress OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The source physical address."
+    ::= { matrixDSEntry 1 }
+
+matrixDSDestAddress OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The destination physical address."
+    ::= { matrixDSEntry 2 }
+
+matrixDSIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The set of collected matrix statistics of which
+        this entry is a part.  The set of matrix statistics
+        identified by a particular value of this index
+        is associated with the same matrixControlEntry
+        as identified by the same value of matrixControlIndex."
+    ::= { matrixDSEntry 3 }
+
+matrixDSPkts OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of packets transmitted from the source
+        address to the destination address (this number includes
+        bad packets)."
+    ::= { matrixDSEntry 4 }
+
+matrixDSOctets OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Octets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of octets (excluding framing bits
+        but including FCS octets) contained in all packets
+        transmitted from the source address to the
+        destination address."
+    ::= { matrixDSEntry 5 }
+
+matrixDSErrors OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of bad packets transmitted from
+        the source address to the destination address."
+    ::= { matrixDSEntry 6 }
+
+-- The Filter Group
+
+-- Implementation of the Filter group is optional.
+
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Filter group allows packets to be captured with an
+-- arbitrary filter expression.  A logical data and
+-- event stream or "channel" is formed by the packets
+-- that match the filter expression.
+--
+-- This filter mechanism allows the creation of an arbitrary
+-- logical expression with which to filter packets.  Each
+-- filter associated with a channel is OR'ed with the others.
+-- Within a filter, any bits checked in the data and status are
+-- AND'ed with respect to other bits in the same filter.  The
+-- NotMask also allows for checking for inequality.  Finally,
+-- the channelAcceptType object allows for inversion of the
+-- whole equation.
+--
+-- If a management station wishes to receive a trap to alert it
+-- that new packets have been captured and are available for
+-- download, it is recommended that it set up an alarm entry that
+-- monitors the value of the relevant channelMatches instance.
+--
+-- The channel can be turned on or off, and can also
+-- generate events when packets pass through it.
+
+filterTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF FilterEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of packet filter entries."
+    ::= { filter 1 }
+
+filterEntry OBJECT-TYPE
+    SYNTAX     FilterEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A set of parameters for a packet filter applied on a
+        particular interface.  As an example, an instance of the
+        filterPktData object might be named filterPktData.12"
+    INDEX { filterIndex }
+    ::= { filterTable 1 }
+
+FilterEntry ::= SEQUENCE {
+    filterIndex                 Integer32,
+    filterChannelIndex          Integer32,
+    filterPktDataOffset         Integer32,
+    filterPktData               OCTET STRING,
+    filterPktDataMask           OCTET STRING,
+    filterPktDataNotMask        OCTET STRING,
+    filterPktStatus             Integer32,
+    filterPktStatusMask         Integer32,
+    filterPktStatusNotMask      Integer32,
+    filterOwner                 OwnerString,
+    filterStatus                EntryStatus
+}
+
+filterIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry
+        in the filter table.  Each such entry defines
+        one filter that is to be applied to every packet
+        received on an interface."
+    ::= { filterEntry 1 }
+
+filterChannelIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "This object identifies the channel of which this filter
+        is a part.  The filters identified by a particular value
+        of this object are associated with the same channel as
+        identified by the same value of the channelIndex object."
+    ::= { filterEntry 2 }
+
+filterPktDataOffset OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Octets"
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The offset from the beginning of each packet where
+        a match of packet data will be attempted.  This offset
+        is measured from the point in the physical layer
+        packet after the framing bits, if any.  For example,
+        in an Ethernet frame, this point is at the beginning of
+        the destination MAC address.
+
+        This object may not be modified if the associated
+        filterStatus object is equal to valid(1)."
+    DEFVAL { 0 }
+    ::= { filterEntry 3 }
+
+filterPktData OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The data that is to be matched with the input packet.
+        For each packet received, this filter and the accompanying
+        filterPktDataMask and filterPktDataNotMask will be
+        adjusted for the offset.  The only bits relevant to this
+        match algorithm are those that have the corresponding
+        filterPktDataMask bit equal to one.  The following three
+        rules are then applied to every packet:
+
+        (1) If the packet is too short and does not have data
+            corresponding to part of the filterPktData, the packet
+            will fail this data match.
+
+        (2) For each relevant bit from the packet with the
+            corresponding filterPktDataNotMask bit set to zero, if
+            the bit from the packet is not equal to the corresponding
+            bit from the filterPktData, then the packet will fail
+            this data match.
+
+        (3) If for every relevant bit from the packet with the
+            corresponding filterPktDataNotMask bit set to one, the
+            bit from the packet is equal to the corresponding bit
+            from the filterPktData, then the packet will fail this
+            data match.
+
+        Any packets that have not failed any of the three matches
+        above have passed this data match.  In particular, a zero
+        length filter will match any packet.
+
+        This object may not be modified if the associated
+        filterStatus object is equal to valid(1)."
+    ::= { filterEntry 4 }
+
+filterPktDataMask OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The mask that is applied to the match process.
+        After adjusting this mask for the offset, only those
+        bits in the received packet that correspond to bits set
+        in this mask are relevant for further processing by the
+
+        match algorithm.  The offset is applied to filterPktDataMask
+        in the same way it is applied to the filter.  For the
+        purposes of the matching algorithm, if the associated
+        filterPktData object is longer than this mask, this mask is
+        conceptually extended with '1' bits until it reaches the
+        length of the filterPktData object.
+
+        This object may not be modified if the associated
+        filterStatus object is equal to valid(1)."
+    ::= { filterEntry 5 }
+
+filterPktDataNotMask OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The inversion mask that is applied to the match
+        process.  After adjusting this mask for the offset,
+        those relevant bits in the received packet that correspond
+        to bits cleared in this mask must all be equal to their
+        corresponding bits in the filterPktData object for the packet
+        to be accepted.  In addition, at least one of those relevant
+        bits in the received packet that correspond to bits set in
+        this mask must be different to its corresponding bit in the
+        filterPktData object.
+
+        For the purposes of the matching algorithm, if the associated
+        filterPktData object is longer than this mask, this mask is
+        conceptually extended with '0' bits until it reaches the
+        length of the filterPktData object.
+
+        This object may not be modified if the associated
+        filterStatus object is equal to valid(1)."
+    ::= { filterEntry 6 }
+
+filterPktStatus OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status that is to be matched with the input packet.
+        The only bits relevant to this match algorithm are those that
+        have the corresponding filterPktStatusMask bit equal to one.
+        The following two rules are then applied to every packet:
+
+        (1) For each relevant bit from the packet status with the
+            corresponding filterPktStatusNotMask bit set to zero, if
+            the bit from the packet status is not equal to the
+
+            corresponding bit from the filterPktStatus, then the
+            packet will fail this status match.
+
+        (2) If for every relevant bit from the packet status with the
+            corresponding filterPktStatusNotMask bit set to one, the
+            bit from the packet status is equal to the corresponding
+            bit from the filterPktStatus, then the packet will fail
+            this status match.
+
+        Any packets that have not failed either of the two matches
+        above have passed this status match.  In particular, a zero
+        length status filter will match any packet's status.
+
+        The value of the packet status is a sum.  This sum
+        initially takes the value zero.  Then, for each
+        error, E, that has been discovered in this packet,
+        2 raised to a value representing E is added to the sum.
+        The errors and the bits that represent them are dependent
+        on the media type of the interface that this channel
+        is receiving packets from.
+
+        The errors defined for a packet captured off of an
+        Ethernet interface are as follows:
+
+            bit #    Error
+                0    Packet is longer than 1518 octets
+                1    Packet is shorter than 64 octets
+                2    Packet experienced a CRC or Alignment error
+
+        For example, an Ethernet fragment would have a
+        value of 6 (2^1 + 2^2).
+
+        As this MIB is expanded to new media types, this object
+        will have other media-specific errors defined.
+
+        For the purposes of this status matching algorithm, if the
+        packet status is longer than this filterPktStatus object,
+        this object is conceptually extended with '0' bits until it
+        reaches the size of the packet status.
+
+        This object may not be modified if the associated
+        filterStatus object is equal to valid(1)."
+    ::= { filterEntry 7 }
+
+filterPktStatusMask OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The mask that is applied to the status match process.
+        Only those bits in the received packet that correspond to
+        bits set in this mask are relevant for further processing
+        by the status match algorithm.  For the purposes
+        of the matching algorithm, if the associated filterPktStatus
+        object is longer than this mask, this mask is conceptually
+        extended with '1' bits until it reaches the size of the
+        filterPktStatus.  In addition, if a packet status is longer
+        than this mask, this mask is conceptually extended with '0'
+        bits until it reaches the size of the packet status.
+
+        This object may not be modified if the associated
+        filterStatus object is equal to valid(1)."
+    ::= { filterEntry 8 }
+
+filterPktStatusNotMask OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The inversion mask that is applied to the status match
+        process.  Those relevant bits in the received packet status
+        that correspond to bits cleared in this mask must all be
+        equal to their corresponding bits in the filterPktStatus
+        object for the packet to be accepted.  In addition, at least
+        one of those relevant bits in the received packet status
+        that correspond to bits set in this mask must be different
+        to its corresponding bit in the filterPktStatus object for
+        the packet to be accepted.
+
+        For the purposes of the matching algorithm, if the associated
+        filterPktStatus object or a packet status is longer than this
+        mask, this mask is conceptually extended with '0' bits until
+        it reaches the longer of the lengths of the filterPktStatus
+        object and the packet status.
+
+        This object may not be modified if the associated
+        filterStatus object is equal to valid(1)."
+    ::= { filterEntry 9 }
+
+filterOwner OBJECT-TYPE
+    SYNTAX     OwnerString
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The entity that configured this entry and is therefore
+        using the resources assigned to it."
+    ::= { filterEntry 10 }
+
+filterStatus OBJECT-TYPE
+    SYNTAX     EntryStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status of this filter entry."
+    ::= { filterEntry 11 }
+
+channelTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF ChannelEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of packet channel entries."
+    ::= { filter 2 }
+
+channelEntry OBJECT-TYPE
+    SYNTAX     ChannelEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A set of parameters for a packet channel applied on a
+        particular interface.  As an example, an instance of the
+        channelMatches object might be named channelMatches.3"
+    INDEX { channelIndex }
+    ::= { channelTable 1 }
+
+ChannelEntry ::= SEQUENCE {
+    channelIndex                 Integer32,
+    channelIfIndex               Integer32,
+    channelAcceptType            INTEGER,
+    channelDataControl           INTEGER,
+    channelTurnOnEventIndex      Integer32,
+    channelTurnOffEventIndex     Integer32,
+    channelEventIndex            Integer32,
+    channelEventStatus           INTEGER,
+    channelMatches               Counter32,
+    channelDescription           DisplayString,
+    channelOwner                 OwnerString,
+    channelStatus                EntryStatus
+}
+
+channelIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry in the channel
+        table.  Each such entry defines one channel, a logical
+        data and event stream.
+
+        It is suggested that before creating a channel, an
+        application should scan all instances of the
+        filterChannelIndex object to make sure that there are no
+        pre-existing filters that would be inadvertently be linked
+        to the channel."
+    ::= { channelEntry 1 }
+
+channelIfIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The value of this object uniquely identifies the
+        interface on this remote network monitoring device to which
+        the associated filters are applied to allow data into this
+        channel.  The interface identified by a particular value
+        of this object is the same interface as identified by the
+        same value of the ifIndex object, defined in RFC 2233 [17].
+
+        The filters in this group are applied to all packets on
+        the local network segment attached to the identified
+        interface.
+
+        An agent may or may not be able to tell if fundamental
+        changes to the media of the interface have occurred and
+        necessitate an invalidation of this entry.  For example, a
+        hot-pluggable ethernet card could be pulled out and replaced
+        by a token-ring card.  In such a case, if the agent has such
+        knowledge of the change, it is recommended that it
+        invalidate this entry.
+
+        This object may not be modified if the associated
+        channelStatus object is equal to valid(1)."
+    ::= { channelEntry 2 }
+
+channelAcceptType OBJECT-TYPE
+    SYNTAX     INTEGER {
+                 acceptMatched(1),
+                 acceptFailed(2)
+               }
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "This object controls the action of the filters
+        associated with this channel.  If this object is equal
+        to acceptMatched(1), packets will be accepted to this
+        channel if they are accepted by both the packet data and
+        packet status matches of an associated filter.  If
+        this object is equal to acceptFailed(2), packets will
+        be accepted to this channel only if they fail either
+        the packet data match or the packet status match of
+        each of the associated filters.
+
+        In particular, a channel with no associated filters will
+        match no packets if set to acceptMatched(1) case and will
+        match all packets in the acceptFailed(2) case.
+
+        This object may not be modified if the associated
+        channelStatus object is equal to valid(1)."
+    ::= { channelEntry 3 }
+
+channelDataControl OBJECT-TYPE
+    SYNTAX     INTEGER {
+                 on(1),
+                 off(2)
+               }
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "This object controls the flow of data through this channel.
+        If this object is on(1), data, status and events flow
+        through this channel.  If this object is off(2), data,
+        status and events will not flow through this channel."
+    DEFVAL { off }
+    ::= { channelEntry 4 }
+
+channelTurnOnEventIndex OBJECT-TYPE
+    SYNTAX     Integer32 (0..65535)
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The value of this object identifies the event
+        that is configured to turn the associated
+        channelDataControl from off to on when the event is
+        generated.  The event identified by a particular value
+        of this object is the same event as identified by the
+        same value of the eventIndex object.  If there is no
+        corresponding entry in the eventTable, then no
+        association exists.  In fact, if no event is intended
+        for this channel, channelTurnOnEventIndex must be
+        set to zero, a non-existent event index.
+
+        This object may not be modified if the associated
+        channelStatus object is equal to valid(1)."
+    ::= { channelEntry 5 }
+
+channelTurnOffEventIndex OBJECT-TYPE
+    SYNTAX     Integer32 (0..65535)
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The value of this object identifies the event
+        that is configured to turn the associated
+        channelDataControl from on to off when the event is
+        generated.  The event identified by a particular value
+        of this object is the same event as identified by the
+        same value of the eventIndex object.  If there is no
+        corresponding entry in the eventTable, then no
+        association exists.  In fact, if no event is intended
+        for this channel, channelTurnOffEventIndex must be
+        set to zero, a non-existent event index.
+
+        This object may not be modified if the associated
+        channelStatus object is equal to valid(1)."
+    ::= { channelEntry 6 }
+
+channelEventIndex OBJECT-TYPE
+    SYNTAX     Integer32 (0..65535)
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The value of this object identifies the event
+        that is configured to be generated when the
+        associated channelDataControl is on and a packet
+        is matched.  The event identified by a particular value
+        of this object is the same event as identified by the
+        same value of the eventIndex object.  If there is no
+        corresponding entry in the eventTable, then no
+        association exists.  In fact, if no event is intended
+        for this channel, channelEventIndex must be
+        set to zero, a non-existent event index.
+
+        This object may not be modified if the associated
+        channelStatus object is equal to valid(1)."
+    ::= { channelEntry 7 }
+
+channelEventStatus OBJECT-TYPE
+    SYNTAX     INTEGER {
+                 eventReady(1),
+                 eventFired(2),
+                 eventAlwaysReady(3)
+               }
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The event status of this channel.
+
+        If this channel is configured to generate events
+        when packets are matched, a means of controlling
+        the flow of those events is often needed.  When
+        this object is equal to eventReady(1), a single
+        event may be generated, after which this object
+        will be set by the probe to eventFired(2).  While
+        in the eventFired(2) state, no events will be
+        generated until the object is modified to
+        eventReady(1) (or eventAlwaysReady(3)).  The
+        management station can thus easily respond to a
+        notification of an event by re-enabling this object.
+
+        If the management station wishes to disable this
+        flow control and allow events to be generated
+        at will, this object may be set to
+        eventAlwaysReady(3).  Disabling the flow control
+        is discouraged as it can result in high network
+        traffic or other performance problems."
+    DEFVAL { eventReady }
+    ::= { channelEntry 8 }
+
+channelMatches OBJECT-TYPE
+    SYNTAX     Counter32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of times this channel has matched a packet.
+        Note that this object is updated even when
+        channelDataControl is set to off."
+    ::= { channelEntry 9 }
+
+channelDescription OBJECT-TYPE
+    SYNTAX     DisplayString (SIZE (0..127))
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "A comment describing this channel."
+    ::= { channelEntry 10 }
+
+channelOwner OBJECT-TYPE
+    SYNTAX     OwnerString
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The entity that configured this entry and is therefore
+        using the resources assigned to it."
+    ::= { channelEntry 11 }
+
+channelStatus OBJECT-TYPE
+    SYNTAX     EntryStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status of this channel entry."
+    ::= { channelEntry 12 }
+
+-- The Packet Capture Group
+
+-- Implementation of the Packet Capture group is optional. The Packet
+-- Capture Group requires implementation of the Filter Group.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Packet Capture group allows packets to be captured
+-- upon a filter match.  The bufferControlTable controls
+-- the captured packets output from a channel that is
+-- associated with it.  The captured packets are placed
+-- in entries in the captureBufferTable.  These entries are
+-- associated with the bufferControlEntry on whose behalf they
+-- were stored.
+
+bufferControlTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF BufferControlEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of buffers control entries."
+    ::= { capture 1 }
+
+bufferControlEntry OBJECT-TYPE
+    SYNTAX     BufferControlEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A set of parameters that control the collection of a stream
+        of packets that have matched filters.  As an example, an
+        instance of the bufferControlCaptureSliceSize object might
+        be named bufferControlCaptureSliceSize.3"
+    INDEX { bufferControlIndex }
+    ::= { bufferControlTable 1 }
+
+BufferControlEntry ::= SEQUENCE {
+    bufferControlIndex                Integer32,
+    bufferControlChannelIndex         Integer32,
+    bufferControlFullStatus           INTEGER,
+    bufferControlFullAction           INTEGER,
+    bufferControlCaptureSliceSize     Integer32,
+    bufferControlDownloadSliceSize    Integer32,
+    bufferControlDownloadOffset       Integer32,
+    bufferControlMaxOctetsRequested   Integer32,
+    bufferControlMaxOctetsGranted     Integer32,
+    bufferControlCapturedPackets      Integer32,
+    bufferControlTurnOnTime           TimeTicks,
+    bufferControlOwner                OwnerString,
+    bufferControlStatus               EntryStatus
+}
+
+bufferControlIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry
+        in the bufferControl table.  The value of this
+        index shall never be zero.  Each such
+        entry defines one set of packets that is
+        captured and controlled by one or more filters."
+    ::= { bufferControlEntry 1 }
+
+bufferControlChannelIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "An index that identifies the channel that is the
+        source of packets for this bufferControl table.
+        The channel identified by a particular value of this
+        index is the same as identified by the same value of
+        the channelIndex object.
+
+        This object may not be modified if the associated
+        bufferControlStatus object is equal to valid(1)."
+    ::= { bufferControlEntry 2 }
+
+bufferControlFullStatus OBJECT-TYPE
+    SYNTAX     INTEGER {
+
+                 spaceAvailable(1),
+                 full(2)
+               }
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "This object shows whether the buffer has room to
+        accept new packets or if it is full.
+
+        If the status is spaceAvailable(1), the buffer is
+        accepting new packets normally.  If the status is
+        full(2) and the associated bufferControlFullAction
+        object is wrapWhenFull, the buffer is accepting new
+        packets by deleting enough of the oldest packets
+        to make room for new ones as they arrive.  Otherwise,
+        if the status is full(2) and the
+        bufferControlFullAction object is lockWhenFull,
+        then the buffer has stopped collecting packets.
+
+        When this object is set to full(2) the probe must
+        not later set it to spaceAvailable(1) except in the
+        case of a significant gain in resources such as
+        an increase of bufferControlOctetsGranted.  In
+        particular, the wrap-mode action of deleting old
+        packets to make room for newly arrived packets
+        must not affect the value of this object."
+    ::= { bufferControlEntry 3 }
+
+bufferControlFullAction OBJECT-TYPE
+    SYNTAX     INTEGER {
+                 lockWhenFull(1),
+                 wrapWhenFull(2)    -- FIFO
+               }
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "Controls the action of the buffer when it
+        reaches the full status.  When in the lockWhenFull(1)
+        state and a packet is added to the buffer that
+        fills the buffer, the bufferControlFullStatus will
+        be set to full(2) and this buffer will stop capturing
+        packets."
+    ::= { bufferControlEntry 4 }
+
+bufferControlCaptureSliceSize OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Octets"
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The maximum number of octets of each packet
+        that will be saved in this capture buffer.
+        For example, if a 1500 octet packet is received by
+        the probe and this object is set to 500, then only
+        500 octets of the packet will be stored in the
+        associated capture buffer.  If this variable is set
+        to 0, the capture buffer will save as many octets
+        as is possible.
+
+        This object may not be modified if the associated
+        bufferControlStatus object is equal to valid(1)."
+    DEFVAL { 100 }
+    ::= { bufferControlEntry 5 }
+
+bufferControlDownloadSliceSize OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Octets"
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The maximum number of octets of each packet
+        in this capture buffer that will be returned in
+        an SNMP retrieval of that packet.  For example,
+        if 500 octets of a packet have been stored in the
+        associated capture buffer, the associated
+        bufferControlDownloadOffset is 0, and this
+        object is set to 100, then the captureBufferPacket
+        object that contains the packet will contain only
+        the first 100 octets of the packet.
+
+        A prudent manager will take into account possible
+        interoperability or fragmentation problems that may
+        occur if the download slice size is set too large.
+        In particular, conformant SNMP implementations are not
+        required to accept messages whose length exceeds 484
+        octets, although they are encouraged to support larger
+        datagrams whenever feasible."
+    DEFVAL { 100 }
+    ::= { bufferControlEntry 6 }
+
+bufferControlDownloadOffset OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Octets"
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The offset of the first octet of each packet
+        in this capture buffer that will be returned in
+        an SNMP retrieval of that packet.  For example,
+        if 500 octets of a packet have been stored in the
+        associated capture buffer and this object is set to
+        100, then the captureBufferPacket object that
+        contains the packet will contain bytes starting
+        100 octets into the packet."
+    DEFVAL { 0 }
+    ::= { bufferControlEntry 7 }
+
+bufferControlMaxOctetsRequested OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Octets"
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The requested maximum number of octets to be
+        saved in this captureBuffer, including any
+        implementation-specific overhead. If this variable
+        is set to -1, the capture buffer will save as many
+        octets as is possible.
+
+        When this object is created or modified, the probe
+        should set bufferControlMaxOctetsGranted as closely
+        to this object as is possible for the particular probe
+        implementation and available resources.  However, if
+        the object has the special value of -1, the probe
+        must set bufferControlMaxOctetsGranted to -1."
+    DEFVAL { -1 }
+    ::= { bufferControlEntry 8 }
+
+bufferControlMaxOctetsGranted OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Octets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The maximum number of octets that can be
+        saved in this captureBuffer, including overhead.
+        If this variable is -1, the capture buffer will save
+        as many octets as possible.
+
+        When the bufferControlMaxOctetsRequested object is
+        created or modified, the probe should set this object
+        as closely to the requested value as is possible for the
+        particular probe implementation and available resources.
+        However, if the request object has the special value
+
+        of -1, the probe must set this object to -1.
+
+        The probe must not lower this value except as a result of
+        a modification to the associated
+        bufferControlMaxOctetsRequested object.
+
+        When this maximum number of octets is reached
+        and a new packet is to be added to this
+        capture buffer and the corresponding
+        bufferControlFullAction is set to wrapWhenFull(2),
+        enough of the oldest packets associated with this
+        capture buffer shall be deleted by the agent so
+        that the new packet can be added.  If the corresponding
+        bufferControlFullAction is set to lockWhenFull(1),
+        the new packet shall be discarded.  In either case,
+        the probe must set bufferControlFullStatus to
+        full(2).
+
+        When the value of this object changes to a value less
+        than the current value, entries are deleted from
+        the captureBufferTable associated with this
+        bufferControlEntry.  Enough of the
+        oldest of these captureBufferEntries shall be
+        deleted by the agent so that the number of octets
+        used remains less than or equal to the new value of
+        this object.
+
+        When the value of this object changes to a value greater
+        than the current value, the number of associated
+        captureBufferEntries may be allowed to grow."
+    ::= { bufferControlEntry 9 }
+
+bufferControlCapturedPackets OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Packets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of packets currently in this captureBuffer."
+    ::= { bufferControlEntry 10 }
+
+bufferControlTurnOnTime OBJECT-TYPE
+    SYNTAX     TimeTicks
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The value of sysUpTime when this capture buffer was
+        first turned on."
+    ::= { bufferControlEntry 11 }
+
+bufferControlOwner OBJECT-TYPE
+    SYNTAX     OwnerString
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The entity that configured this entry and is therefore
+        using the resources assigned to it."
+    ::= { bufferControlEntry 12 }
+
+bufferControlStatus OBJECT-TYPE
+    SYNTAX     EntryStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status of this buffer Control Entry."
+    ::= { bufferControlEntry 13 }
+
+captureBufferTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF CaptureBufferEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of packets captured off of a channel."
+    ::= { capture 2 }
+
+captureBufferEntry OBJECT-TYPE
+    SYNTAX     CaptureBufferEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A packet captured off of an attached network.  As an
+        example, an instance of the captureBufferPacketData
+        object might be named captureBufferPacketData.3.1783"
+    INDEX { captureBufferControlIndex, captureBufferIndex }
+    ::= { captureBufferTable 1 }
+
+CaptureBufferEntry ::= SEQUENCE {
+    captureBufferControlIndex   Integer32,
+    captureBufferIndex          Integer32,
+    captureBufferPacketID       Integer32,
+    captureBufferPacketData     OCTET STRING,
+    captureBufferPacketLength   Integer32,
+    captureBufferPacketTime     Integer32,
+    captureBufferPacketStatus   Integer32
+}
+
+captureBufferControlIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The index of the bufferControlEntry with which
+        this packet is associated."
+    ::= { captureBufferEntry 1 }
+
+captureBufferIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..2147483647)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry
+        in the captureBuffer table associated with a
+        particular bufferControlEntry.  This index will
+        start at 1 and increase by one for each new packet
+        added with the same captureBufferControlIndex.
+
+        Should this value reach 2147483647, the next packet
+        added with the same captureBufferControlIndex shall
+        cause this value to wrap around to 1."
+    ::= { captureBufferEntry 2 }
+
+captureBufferPacketID OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that describes the order of packets
+        that are received on a particular interface.
+        The packetID of a packet captured on an
+        interface is defined to be greater than the
+        packetID's of all packets captured previously on
+        the same interface.  As the captureBufferPacketID
+        object has a maximum positive value of 2^31 - 1,
+        any captureBufferPacketID object shall have the
+        value of the associated packet's packetID mod 2^31."
+    ::= { captureBufferEntry 3 }
+
+captureBufferPacketData OBJECT-TYPE
+    SYNTAX     OCTET STRING
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The data inside the packet, starting at the beginning
+        of the packet plus any offset specified in the
+
+        associated bufferControlDownloadOffset, including any
+        link level headers.  The length of the data in this object
+        is the minimum of the length of the captured packet minus
+        the offset, the length of the associated
+        bufferControlCaptureSliceSize minus the offset, and the
+        associated bufferControlDownloadSliceSize.  If this minimum
+        is less than zero, this object shall have a length of zero."
+    ::= { captureBufferEntry 4 }
+
+captureBufferPacketLength OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Octets"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The actual length (off the wire) of the packet stored
+        in this entry, including FCS octets."
+    ::= { captureBufferEntry 5 }
+
+captureBufferPacketTime OBJECT-TYPE
+    SYNTAX     Integer32
+    UNITS      "Milliseconds"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The number of milliseconds that had passed since
+        this capture buffer was first turned on when this
+        packet was captured."
+    ::= { captureBufferEntry 6 }
+
+captureBufferPacketStatus OBJECT-TYPE
+    SYNTAX     Integer32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "A value which indicates the error status of this packet.
+
+        The value of this object is defined in the same way as
+        filterPktStatus.  The value is a sum.  This sum
+        initially takes the value zero.  Then, for each
+        error, E, that has been discovered in this packet,
+        2 raised to a value representing E is added to the sum.
+
+        The errors defined for a packet captured off of an
+        Ethernet interface are as follows:
+
+            bit #    Error
+                0    Packet is longer than 1518 octets
+
+                1    Packet is shorter than 64 octets
+                2    Packet experienced a CRC or Alignment error
+                3    First packet in this capture buffer after
+                     it was detected that some packets were
+                     not processed correctly.
+                4    Packet's order in buffer is only approximate
+                     (May only be set for packets sent from
+                     the probe)
+
+        For example, an Ethernet fragment would have a
+        value of 6 (2^1 + 2^2).
+
+        As this MIB is expanded to new media types, this object
+        will have other media-specific errors defined."
+    ::= { captureBufferEntry 7 }
+
+-- The Event Group
+
+-- Implementation of the Event group is optional.
+-- Consult the MODULE-COMPLIANCE macro for the authoritative
+-- conformance information for this MIB.
+--
+-- The Event group controls the generation and notification
+-- of events from this device.  Each entry in the eventTable
+-- describes the parameters of the event that can be triggered.
+-- Each event entry is fired by an associated condition located
+-- elsewhere in the MIB.  An event entry may also be associated
+-- with a function elsewhere in the MIB that will be executed
+-- when the event is generated.  For example, a channel may
+-- be turned on or off by the firing of an event.
+--
+-- Each eventEntry may optionally specify that a log entry
+-- be created on its behalf whenever the event occurs.
+-- Each entry may also specify that notification should
+-- occur by way of SNMP trap messages.  In this case, the
+-- community for the trap message is given in the associated
+-- eventCommunity object.  The enterprise and specific trap
+-- fields of the trap are determined by the condition that
+-- triggered the event.  Two traps are defined: risingAlarm and
+-- fallingAlarm.  If the eventTable is triggered by a condition
+-- specified elsewhere, the enterprise and specific trap fields
+-- must be specified for traps generated for that condition.
+
+eventTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF EventEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of events to be generated."
+    ::= { event 1 }
+
+eventEntry OBJECT-TYPE
+    SYNTAX     EventEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A set of parameters that describe an event to be generated
+        when certain conditions are met.  As an example, an instance
+        of the eventLastTimeSent object might be named
+        eventLastTimeSent.6"
+    INDEX { eventIndex }
+    ::= { eventTable 1 }
+
+EventEntry ::= SEQUENCE {
+    eventIndex          Integer32,
+    eventDescription    DisplayString,
+    eventType           INTEGER,
+    eventCommunity      OCTET STRING,
+    eventLastTimeSent   TimeTicks,
+    eventOwner          OwnerString,
+    eventStatus         EntryStatus
+}
+
+eventIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry in the
+        event table.  Each such entry defines one event that
+        is to be generated when the appropriate conditions
+        occur."
+    ::= { eventEntry 1 }
+
+eventDescription OBJECT-TYPE
+    SYNTAX     DisplayString (SIZE (0..127))
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "A comment describing this event entry."
+    ::= { eventEntry 2 }
+
+eventType OBJECT-TYPE
+    SYNTAX     INTEGER {
+                 none(1),
+                 log(2),
+                 snmptrap(3),    -- send an SNMP trap
+                 logandtrap(4)
+               }
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The type of notification that the probe will make
+        about this event.  In the case of log, an entry is
+        made in the log table for each event.  In the case of
+        snmp-trap, an SNMP trap is sent to one or more
+        management stations."
+    ::= { eventEntry 3 }
+
+eventCommunity OBJECT-TYPE
+    SYNTAX     OCTET STRING (SIZE (0..127))
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "If an SNMP trap is to be sent, it will be sent to
+        the SNMP community specified by this octet string."
+    ::= { eventEntry 4 }
+
+eventLastTimeSent OBJECT-TYPE
+    SYNTAX     TimeTicks
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The value of sysUpTime at the time this event
+        entry last generated an event.  If this entry has
+        not generated any events, this value will be
+        zero."
+    ::= { eventEntry 5 }
+
+eventOwner OBJECT-TYPE
+    SYNTAX     OwnerString
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The entity that configured this entry and is therefore
+        using the resources assigned to it.
+
+        If this object contains a string starting with 'monitor'
+        and has associated entries in the log table, all connected
+        management stations should retrieve those log entries,
+        as they may have significance to all management stations
+        connected to this device"
+    ::= { eventEntry 6 }
+
+eventStatus OBJECT-TYPE
+    SYNTAX     EntryStatus
+    MAX-ACCESS read-create
+    STATUS     current
+    DESCRIPTION
+        "The status of this event entry.
+
+        If this object is not equal to valid(1), all associated
+        log entries shall be deleted by the agent."
+    ::= { eventEntry 7 }
+
+--
+logTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF LogEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A list of events that have been logged."
+    ::= { event 2 }
+
+logEntry OBJECT-TYPE
+    SYNTAX     LogEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "A set of data describing an event that has been
+        logged.  For example, an instance of the logDescription
+        object might be named logDescription.6.47"
+    INDEX { logEventIndex, logIndex }
+    ::= { logTable 1 }
+
+LogEntry ::= SEQUENCE {
+    logEventIndex           Integer32,
+    logIndex                Integer32,
+    logTime                 TimeTicks,
+    logDescription          DisplayString
+}
+
+logEventIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..65535)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The event entry that generated this log
+        entry.  The log identified by a particular
+        value of this index is associated with the same
+        eventEntry as identified by the same value
+        of eventIndex."
+    ::= { logEntry 1 }
+
+logIndex OBJECT-TYPE
+    SYNTAX     Integer32 (1..2147483647)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An index that uniquely identifies an entry
+        in the log table amongst those generated by the
+        same eventEntries.  These indexes are
+        assigned beginning with 1 and increase by one
+        with each new log entry.  The association
+        between values of logIndex and logEntries
+        is fixed for the lifetime of each logEntry.
+        The agent may choose to delete the oldest
+        instances of logEntry as required because of
+        lack of memory.  It is an implementation-specific
+        matter as to when this deletion may occur."
+    ::= { logEntry 2 }
+
+logTime OBJECT-TYPE
+    SYNTAX     TimeTicks
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "The value of sysUpTime when this log entry was created."
+    ::= { logEntry 3 }
+
+logDescription OBJECT-TYPE
+    SYNTAX     DisplayString (SIZE (0..255))
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+        "An implementation dependent description of the
+        event that activated this log entry."
+    ::= { logEntry 4 }
+
+--  Remote Network Monitoring Traps
+
+rmonEventsV2 OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION "Definition point for RMON notifications."
+    ::= { rmon 0 }
+
+risingAlarm NOTIFICATION-TYPE
+    OBJECTS  { alarmIndex, alarmVariable, alarmSampleType,
+               alarmValue, alarmRisingThreshold }
+    STATUS   current
+    DESCRIPTION
+        "The SNMP trap that is generated when an alarm
+        entry crosses its rising threshold and generates
+        an event that is configured for sending SNMP
+        traps."
+    ::= { rmonEventsV2 1 }
+
+fallingAlarm NOTIFICATION-TYPE
+    OBJECTS { alarmIndex, alarmVariable, alarmSampleType,
+              alarmValue, alarmFallingThreshold }
+    STATUS    current
+    DESCRIPTION
+        "The SNMP trap that is generated when an alarm
+        entry crosses its falling threshold and generates
+        an event that is configured for sending SNMP
+        traps."
+    ::= { rmonEventsV2 2 }
+
+-- Conformance information
+
+rmonCompliances OBJECT IDENTIFIER ::= { rmonConformance 9 }
+rmonGroups      OBJECT IDENTIFIER ::= { rmonConformance 10 }
+
+-- Compliance Statements
+rmonCompliance MODULE-COMPLIANCE
+    STATUS current
+    DESCRIPTION
+        "The requirements for conformance to the RMON MIB. At least
+        one of the groups in this module must be implemented to
+        conform to the RMON MIB. Implementations of this MIB
+        must also implement the system group of MIB-II [16] and the
+        IF-MIB [17]."
+    MODULE -- this module
+
+      GROUP rmonEtherStatsGroup
+          DESCRIPTION
+              "The RMON Ethernet Statistics Group is optional."
+
+      GROUP rmonHistoryControlGroup
+          DESCRIPTION
+              "The RMON History Control Group is optional."
+
+      GROUP rmonEthernetHistoryGroup
+          DESCRIPTION
+              "The RMON Ethernet History Group is optional."
+
+      GROUP rmonAlarmGroup
+          DESCRIPTION
+              "The RMON Alarm Group is optional."
+
+      GROUP rmonHostGroup
+          DESCRIPTION
+              "The RMON Host Group is mandatory when the
+              rmonHostTopNGroup is implemented."
+
+      GROUP rmonHostTopNGroup
+          DESCRIPTION
+              "The RMON Host Top N Group is optional."
+
+      GROUP rmonMatrixGroup
+          DESCRIPTION
+              "The RMON Matrix Group is optional."
+
+      GROUP rmonFilterGroup
+          DESCRIPTION
+              "The RMON Filter Group is mandatory when the
+              rmonPacketCaptureGroup is implemented."
+
+      GROUP rmonPacketCaptureGroup
+          DESCRIPTION
+              "The RMON Packet Capture Group is optional."
+
+      GROUP rmonEventGroup
+          DESCRIPTION
+              "The RMON Event Group is mandatory when the
+              rmonAlarmGroup is implemented."
+    ::= { rmonCompliances 1 }
+
+    rmonEtherStatsGroup OBJECT-GROUP
+        OBJECTS {
+            etherStatsIndex, etherStatsDataSource,
+            etherStatsDropEvents, etherStatsOctets, etherStatsPkts,
+            etherStatsBroadcastPkts, etherStatsMulticastPkts,
+            etherStatsCRCAlignErrors, etherStatsUndersizePkts,
+            etherStatsOversizePkts, etherStatsFragments,
+            etherStatsJabbers, etherStatsCollisions,
+            etherStatsPkts64Octets, etherStatsPkts65to127Octets,
+            etherStatsPkts128to255Octets,
+            etherStatsPkts256to511Octets,
+            etherStatsPkts512to1023Octets,
+            etherStatsPkts1024to1518Octets,
+            etherStatsOwner, etherStatsStatus
+        }
+        STATUS current
+        DESCRIPTION
+            "The RMON Ethernet Statistics Group."
+        ::= { rmonGroups 1 }
+
+    rmonHistoryControlGroup OBJECT-GROUP
+        OBJECTS {
+            historyControlIndex, historyControlDataSource,
+            historyControlBucketsRequested,
+            historyControlBucketsGranted, historyControlInterval,
+            historyControlOwner, historyControlStatus
+        }
+        STATUS current
+        DESCRIPTION
+            "The RMON History Control Group."
+        ::= { rmonGroups 2 }
+
+    rmonEthernetHistoryGroup OBJECT-GROUP
+        OBJECTS {
+            etherHistoryIndex, etherHistorySampleIndex,
+            etherHistoryIntervalStart, etherHistoryDropEvents,
+            etherHistoryOctets, etherHistoryPkts,
+            etherHistoryBroadcastPkts, etherHistoryMulticastPkts,
+            etherHistoryCRCAlignErrors, etherHistoryUndersizePkts,
+            etherHistoryOversizePkts, etherHistoryFragments,
+            etherHistoryJabbers, etherHistoryCollisions,
+            etherHistoryUtilization
+        }
+        STATUS current
+        DESCRIPTION
+            "The RMON Ethernet History Group."
+        ::= { rmonGroups 3 }
+
+    rmonAlarmGroup OBJECT-GROUP
+        OBJECTS {
+            alarmIndex, alarmInterval, alarmVariable,
+            alarmSampleType, alarmValue, alarmStartupAlarm,
+            alarmRisingThreshold, alarmFallingThreshold,
+            alarmRisingEventIndex, alarmFallingEventIndex,
+            alarmOwner, alarmStatus
+        }
+        STATUS current
+        DESCRIPTION
+            "The RMON Alarm Group."
+        ::= { rmonGroups 4 }
+
+    rmonHostGroup OBJECT-GROUP
+        OBJECTS {
+            hostControlIndex, hostControlDataSource,
+            hostControlTableSize, hostControlLastDeleteTime,
+            hostControlOwner, hostControlStatus,
+            hostAddress, hostCreationOrder, hostIndex,
+            hostInPkts, hostOutPkts, hostInOctets,
+            hostOutOctets, hostOutErrors, hostOutBroadcastPkts,
+            hostOutMulticastPkts, hostTimeAddress,
+            hostTimeCreationOrder, hostTimeIndex,
+            hostTimeInPkts, hostTimeOutPkts, hostTimeInOctets,
+            hostTimeOutOctets, hostTimeOutErrors,
+            hostTimeOutBroadcastPkts, hostTimeOutMulticastPkts
+        }
+        STATUS current
+        DESCRIPTION
+            "The RMON Host Group."
+        ::= { rmonGroups 5 }
+
+    rmonHostTopNGroup OBJECT-GROUP
+        OBJECTS {
+            hostTopNControlIndex, hostTopNHostIndex,
+            hostTopNRateBase, hostTopNTimeRemaining,
+            hostTopNDuration, hostTopNRequestedSize,
+            hostTopNGrantedSize, hostTopNStartTime,
+            hostTopNOwner, hostTopNStatus,
+            hostTopNReport, hostTopNIndex,
+            hostTopNAddress, hostTopNRate
+        }
+        STATUS current
+        DESCRIPTION
+            "The RMON Host Top 'N' Group."
+        ::= { rmonGroups 6 }
+
+    rmonMatrixGroup OBJECT-GROUP
+        OBJECTS {
+            matrixControlIndex, matrixControlDataSource,
+            matrixControlTableSize, matrixControlLastDeleteTime,
+            matrixControlOwner, matrixControlStatus,
+            matrixSDSourceAddress, matrixSDDestAddress,
+            matrixSDIndex, matrixSDPkts,
+            matrixSDOctets, matrixSDErrors,
+            matrixDSSourceAddress, matrixDSDestAddress,
+            matrixDSIndex, matrixDSPkts,
+            matrixDSOctets, matrixDSErrors
+        }
+        STATUS current
+        DESCRIPTION
+            "The RMON Matrix Group."
+        ::= { rmonGroups 7 }
+
+    rmonFilterGroup OBJECT-GROUP
+        OBJECTS {
+
+            filterIndex, filterChannelIndex, filterPktDataOffset,
+            filterPktData, filterPktDataMask,
+            filterPktDataNotMask, filterPktStatus,
+            filterPktStatusMask, filterPktStatusNotMask,
+            filterOwner, filterStatus,
+            channelIndex, channelIfIndex, channelAcceptType,
+            channelDataControl, channelTurnOnEventIndex,
+            channelTurnOffEventIndex, channelEventIndex,
+            channelEventStatus, channelMatches,
+            channelDescription, channelOwner, channelStatus
+        }
+        STATUS current
+        DESCRIPTION
+            "The RMON Filter Group."
+        ::= { rmonGroups 8 }
+
+    rmonPacketCaptureGroup OBJECT-GROUP
+        OBJECTS {
+            bufferControlIndex, bufferControlChannelIndex,
+            bufferControlFullStatus, bufferControlFullAction,
+            bufferControlCaptureSliceSize,
+            bufferControlDownloadSliceSize,
+            bufferControlDownloadOffset,
+            bufferControlMaxOctetsRequested,
+            bufferControlMaxOctetsGranted,
+            bufferControlCapturedPackets,
+            bufferControlTurnOnTime,
+            bufferControlOwner, bufferControlStatus,
+            captureBufferControlIndex, captureBufferIndex,
+            captureBufferPacketID, captureBufferPacketData,
+            captureBufferPacketLength, captureBufferPacketTime,
+            captureBufferPacketStatus
+        }
+        STATUS current
+        DESCRIPTION
+            "The RMON Packet Capture Group."
+        ::= { rmonGroups 9 }
+
+    rmonEventGroup OBJECT-GROUP
+        OBJECTS {
+            eventIndex, eventDescription, eventType,
+            eventCommunity, eventLastTimeSent,
+            eventOwner, eventStatus,
+            logEventIndex, logIndex, logTime,
+            logDescription
+        }
+        STATUS current
+        DESCRIPTION
+            "The RMON Event Group."
+        ::= { rmonGroups 10 }
+
+    rmonNotificationGroup NOTIFICATION-GROUP
+        NOTIFICATIONS { risingAlarm, fallingAlarm }
+        STATUS        current
+        DESCRIPTION
+            "The RMON Notification Group."
+        ::= { rmonGroups 11 }
+END

Added: trunk/mibs/SMUX-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/SMUX-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,158 @@
+SMUX-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+        enterprises
+                FROM RFC1155-SMI
+        OBJECT-TYPE
+                FROM RFC1212;
+
+unix    OBJECT IDENTIFIER ::= { enterprises 4 }
+
+smux    OBJECT IDENTIFIER ::= { unix 4 }
+
+smuxPeerTable   OBJECT-TYPE
+        SYNTAX  SEQUENCE OF SmuxPeerEntry
+        ACCESS  not-accessible
+        STATUS  mandatory
+        DESCRIPTION
+            "The SMUX peer table."
+        ::= { smux 1 }
+
+smuxPeerEntry   OBJECT-TYPE
+        SYNTAX  SmuxPeerEntry
+        ACCESS  not-accessible
+        STATUS  mandatory
+        DESCRIPTION
+            "An entry in the SMUX peer table."
+        INDEX   { smuxPindex }
+        ::= { smuxPeerTable 1}
+
+SmuxPeerEntry ::=
+    SEQUENCE {
+        smuxPindex
+            INTEGER,
+        smuxPidentity
+            OBJECT IDENTIFIER,
+        smuxPdescription
+            DisplayString,
+        smuxPstatus
+            INTEGER
+    }
+
+smuxPindex      OBJECT-TYPE
+        SYNTAX  INTEGER
+        ACCESS  read-only
+        STATUS  mandatory
+        DESCRIPTION
+            "An index which uniquely identifies a SMUX peer."
+        ::= { smuxPeerEntry 1 }
+
+smuxPidentity   OBJECT-TYPE
+        SYNTAX  OBJECT IDENTIFIER
+        ACCESS  read-only
+        STATUS  mandatory
+        DESCRIPTION
+            "The authoritative designation for a SMUX peer."
+        ::= { smuxPeerEntry 2 }
+
+smuxPdescription OBJECT-TYPE
+        SYNTAX  DisplayString (SIZE (0..255))
+        ACCESS  read-only
+        STATUS  mandatory
+        DESCRIPTION
+            "A human-readable description of a SMUX peer."
+        ::= { smuxPeerEntry 3 }
+
+smuxPstatus     OBJECT-TYPE
+        SYNTAX  INTEGER { valid(1), invalid(2), connecting(3) }
+        ACCESS  read-write
+        STATUS  mandatory
+        DESCRIPTION
+            "The type of SMUX peer.
+
+            Setting this object to the value invalid(2) has
+            the effect of invaliding the corresponding entry
+            in the smuxPeerTable.  It is an implementation-
+            specific matter as to whether the agent removes an
+            invalidated entry from the table.  Accordingly,
+            management stations must be prepared to receive
+            tabular information from agents that correspond to
+            entries not currently in use.  Proper
+            interpretation of such entries requires
+            examination of the relative smuxPstatus object."
+        ::= { smuxPeerEntry 4 }
+
+smuxTreeTable   OBJECT-TYPE
+        SYNTAX  SEQUENCE OF SmuxTreeEntry
+        ACCESS  not-accessible
+        STATUS  mandatory
+        DESCRIPTION
+            "The SMUX tree table."
+        ::= { smux 2 }
+
+smuxTreeEntry   OBJECT-TYPE
+        SYNTAX  SmuxTreeEntry
+        ACCESS  not-accessible
+        STATUS  mandatory
+        DESCRIPTION
+            "An entry in the SMUX tree table."
+        INDEX   { smuxTsubtree, smuxTpriority }
+        ::= { smuxTreeTable 1}
+
+SmuxTreeEntry ::=
+    SEQUENCE {
+        smuxTsubtree
+            OBJECT IDENTIFIER,
+        smuxTpriority
+            INTEGER,
+        smuxTindex
+            INTEGER,
+        smuxTstatus
+            INTEGER
+    }
+
+smuxTsubtree    OBJECT-TYPE
+        SYNTAX  OBJECT IDENTIFIER
+        ACCESS  read-only
+        STATUS  mandatory
+        DESCRIPTION
+            "The MIB subtree being exported by a SMUX peer."
+        ::= { smuxTreeEntry 1 }
+
+smuxTpriority OBJECT-TYPE
+        SYNTAX  INTEGER (0..'07fffffff'h)
+        ACCESS  read-only
+        STATUS  mandatory
+        DESCRIPTION
+            "The SMUX peer's priority when exporting the MIB
+            subtree."
+        ::= { smuxTreeEntry 2 }
+
+smuxTindex OBJECT-TYPE
+        SYNTAX  INTEGER
+        ACCESS  read-only
+        STATUS  mandatory
+        DESCRIPTION
+            "The SMUX peer's identity."
+        ::= { smuxTreeEntry 3 }
+
+smuxTstatus     OBJECT-TYPE
+        SYNTAX  INTEGER { valid(1), invalid(2) }
+        ACCESS  read-write
+        STATUS  mandatory
+        DESCRIPTION
+            "The type of SMUX tree.
+
+            Setting this object to the value invalid(2) has
+            the effect of invaliding the corresponding entry
+            in the smuxTreeTable.  It is an implementation-
+            specific matter as to whether the agent removes an
+            invalidated entry from the table.  Accordingly,
+            management stations must be prepared to receive
+            tabular information from agents that correspond to
+            entries not currently in use.  Proper
+            interpretation of such entries requires
+            examination of the relative smuxTstatus object."
+        ::= { smuxTreeEntry 4 }
+
+END

Added: trunk/mibs/SNMP-COMMUNITY-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/SNMP-COMMUNITY-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,429 @@
+SNMP-COMMUNITY-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    IpAddress,
+    MODULE-IDENTITY,
+    OBJECT-TYPE,
+    Integer32,
+    snmpModules
+        FROM SNMPv2-SMI
+    RowStatus,
+    StorageType
+        FROM SNMPv2-TC
+    SnmpAdminString,
+    SnmpEngineID
+        FROM SNMP-FRAMEWORK-MIB
+    SnmpTagValue,
+    snmpTargetAddrEntry
+        FROM SNMP-TARGET-MIB
+    MODULE-COMPLIANCE,
+    OBJECT-GROUP
+        FROM SNMPv2-CONF;
+
+snmpCommunityMIB MODULE-IDENTITY
+    LAST-UPDATED "200003060000Z"          -- 6 Mar 2000, midnight
+    ORGANIZATION "SNMPv3 Working Group"
+    CONTACT-INFO "WG-email:   snmpv3 at lists.tislabs.com
+                  Subscribe:  majordomo at lists.tislabs.com
+                              In msg body:  subscribe snmpv3
+
+                  Chair:      Russ Mundy
+                              TIS Labs at Network Associates
+                  Postal:     3060 Washington Rd
+                              Glenwood MD 21738
+                              USA
+                  Email:      mundy at tislabs.com
+                  Phone:      +1-301-854-6889
+
+                  Co-editor:  Rob Frye
+                              CoSine Communications
+                  Postal:     1200 Bridge Parkway
+                              Redwood City, CA 94065
+                              USA
+                  E-mail:     rfrye at cosinecom.com
+                  Phone:      +1 703 725 1130
+
+                  Co-editor:  David B. Levi
+                              Nortel Networks
+                  Postal:     3505 Kesterwood Drive
+                              Knoxville, TN 37918
+                  E-mail:     dlevi at nortelnetworks.com
+                  Phone:      +1 423 686 0432
+
+                  Co-editor:  Shawn A. Routhier
+                              Integrated Systems Inc.
+                  Postal:     333 North Ave 4th Floor
+                              Wakefield, MA 01880
+                  E-mail:     sar at epilogue.com
+                  Phone:      +1 781 245 0804
+
+                  Co-editor:  Bert Wijnen
+                              Lucent Technologies
+                  Postal:     Schagen 33
+                              3461 GL Linschoten
+                              Netherlands
+                  Email:      bwijnen at lucent.com
+                  Phone:      +31-348-407-775
+                 "
+        DESCRIPTION
+            "This MIB module defines objects to help support coexistence
+             between SNMPv1, SNMPv2c, and SNMPv3."
+        REVISION "200003060000Z" -- 6 Mar 2000
+        DESCRIPTION "This version published as RFC 2576."
+        REVISION "199905130000Z" -- 13 May 1999
+        DESCRIPTION "The Initial Revision"
+    ::= { snmpModules 18 }
+
+-- Administrative assignments ****************************************
+
+snmpCommunityMIBObjects     OBJECT IDENTIFIER ::= { snmpCommunityMIB 1 }
+snmpCommunityMIBConformance OBJECT IDENTIFIER ::= { snmpCommunityMIB 2 }
+
+--
+-- The snmpCommunityTable contains a database of community strings.
+-- This table provides mappings between community strings, and the
+
+-- parameters required for View-based Access Control.
+--
+
+snmpCommunityTable OBJECT-TYPE
+    SYNTAX       SEQUENCE OF SnmpCommunityEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION
+        "The table of community strings configured in the SNMP
+         engine's Local Configuration Datastore (LCD)."
+    ::= { snmpCommunityMIBObjects 1 }
+
+snmpCommunityEntry OBJECT-TYPE
+    SYNTAX       SnmpCommunityEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION
+        "Information about a particular community string."
+    INDEX       { IMPLIED snmpCommunityIndex }
+    ::= { snmpCommunityTable 1 }
+
+SnmpCommunityEntry ::= SEQUENCE {
+    snmpCommunityIndex               SnmpAdminString,
+    snmpCommunityName                OCTET STRING,
+    snmpCommunitySecurityName        SnmpAdminString,
+    snmpCommunityContextEngineID     SnmpEngineID,
+    snmpCommunityContextName         SnmpAdminString,
+    snmpCommunityTransportTag        SnmpTagValue,
+    snmpCommunityStorageType         StorageType,
+    snmpCommunityStatus              RowStatus
+}
+
+snmpCommunityIndex OBJECT-TYPE
+    SYNTAX      SnmpAdminString (SIZE(1..32))
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "The unique index value of a row in this table."
+    ::= { snmpCommunityEntry 1 }
+
+snmpCommunityName OBJECT-TYPE
+    SYNTAX       OCTET STRING
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION
+        "The community string for which a row in this table
+         represents a configuration."
+    ::= { snmpCommunityEntry 2 }
+
+snmpCommunitySecurityName OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(1..32))
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION
+        "A human readable string representing the corresponding
+         value of snmpCommunityName in a Security Model
+         independent format."
+    ::= { snmpCommunityEntry 3 }
+
+snmpCommunityContextEngineID OBJECT-TYPE
+    SYNTAX       SnmpEngineID
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION
+        "The contextEngineID indicating the location of the
+         context in which management information is accessed
+         when using the community string specified by the
+         corresponding instance of snmpCommunityName.
+
+         The default value is the snmpEngineID of the entity in
+         which this object is instantiated."
+    ::= { snmpCommunityEntry 4 }
+
+snmpCommunityContextName OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(0..32))
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION
+        "The context in which management information is accessed
+         when using the community string specified by the corresponding
+         instance of snmpCommunityName."
+    DEFVAL      { ''H }   -- the empty string
+    ::= { snmpCommunityEntry 5 }
+
+snmpCommunityTransportTag OBJECT-TYPE
+    SYNTAX       SnmpTagValue
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION
+        "This object specifies a set of transport endpoints
+         from which a command responder application will accept
+         management requests.  If a management request containing
+         this community is received on a transport endpoint other
+         than the transport endpoints identified by this object,
+         the request is deemed unauthentic.
+
+         The transports identified by this object are specified
+
+         in the snmpTargetAddrTable.  Entries in that table
+         whose snmpTargetAddrTagList contains this tag value
+         are identified.
+
+         If the value of this object has zero-length, transport
+         endpoints are not checked when authenticating messages
+         containing this community string."
+    DEFVAL      { ''H }   -- the empty string
+    ::= { snmpCommunityEntry 6 }
+
+snmpCommunityStorageType OBJECT-TYPE
+    SYNTAX       StorageType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION
+        "The storage type for this conceptual row in the
+         snmpCommunityTable.  Conceptual rows having the value
+         'permanent' need not allow write-access to any
+         columnar object in the row."
+    ::= { snmpCommunityEntry 7 }
+
+snmpCommunityStatus OBJECT-TYPE
+    SYNTAX       RowStatus
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION
+        "The status of this conceptual row in the snmpCommunityTable.
+
+         An entry in this table is not qualified for activation
+         until instances of all corresponding columns have been
+         initialized, either through default values, or through
+         Set operations.  The snmpCommunityName and
+         snmpCommunitySecurityName objects must be explicitly set.
+
+         There is no restriction on setting columns in this table
+         when the value of snmpCommunityStatus is active(1)."
+    ::= { snmpCommunityEntry 8 }
+
+--
+-- The snmpTargetAddrExtTable
+--
+
+snmpTargetAddrExtTable OBJECT-TYPE
+    SYNTAX       SEQUENCE OF SnmpTargetAddrExtEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION
+        "The table of mask and mms values associated with the
+
+         snmpTargetAddrTable.
+
+         The snmpTargetAddrExtTable augments the
+         snmpTargetAddrTable with a transport address mask value
+         and a maximum message size value.  The transport address
+         mask allows entries in the snmpTargetAddrTable to define
+         a set of addresses instead of just a single address.
+         The maximum message size value allows the maximum
+         message size of another SNMP entity to be configured for
+         use in SNMPv1 (and SNMPv2c) transactions, where the
+         message format does not specify a maximum message size."
+    ::= { snmpCommunityMIBObjects 2 }
+
+snmpTargetAddrExtEntry OBJECT-TYPE
+    SYNTAX       SnmpTargetAddrExtEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION
+        "Information about a particular mask and mms value."
+    AUGMENTS       { snmpTargetAddrEntry }
+    ::= { snmpTargetAddrExtTable 1 }
+
+SnmpTargetAddrExtEntry ::= SEQUENCE {
+    snmpTargetAddrTMask              OCTET STRING,
+    snmpTargetAddrMMS                Integer32
+}
+
+snmpTargetAddrTMask OBJECT-TYPE
+    SYNTAX      OCTET STRING (SIZE (0..255))
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The mask value associated with an entry in the
+         snmpTargetAddrTable.  The value of this object must
+         have the same length as the corresponding instance of
+         snmpTargetAddrTAddress, or must have length 0.  An
+         attempt to set it to any other value will result in
+         an inconsistentValue error.
+
+         The value of this object allows an entry in the
+         snmpTargetAddrTable to specify multiple addresses.
+         The mask value is used to select which bits of
+         a transport address must match bits of the corresponding
+         instance of snmpTargetAddrTAddress, in order for the
+         transport address to match a particular entry in the
+         snmpTargetAddrTable.  Bits which are 1 in the mask
+         value indicate bits in the transport address which
+         must match bits in the snmpTargetAddrTAddress value.
+
+         Bits which are 0 in the mask indicate bits in the
+         transport address which need not match.  If the
+         length of the mask is 0, the mask should be treated
+         as if all its bits were 1 and its length were equal
+         to the length of the corresponding value of
+         snmpTargetAddrTable.
+
+         This object may not be modified while the value of the
+         corresponding instance of snmpTargetAddrRowStatus is
+         active(1).  An attempt to set this object in this case
+         will result in an inconsistentValue error."
+    DEFVAL { ''H }
+    ::= { snmpTargetAddrExtEntry 1 }
+
+snmpTargetAddrMMS OBJECT-TYPE
+    SYNTAX      Integer32 (0|484..2147483647)
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The maximum message size value associated with an entry
+         in the snmpTargetAddrTable."
+    DEFVAL { 484 }
+    ::= { snmpTargetAddrExtEntry 2 }
+
+--
+-- The snmpTrapAddress and snmpTrapCommunity objects are included
+-- in notifications that are forwarded by a proxy, which were
+-- originally received as SNMPv1 Trap messages.
+--
+
+snmpTrapAddress OBJECT-TYPE
+    SYNTAX      IpAddress
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The value of the agent-addr field of a Trap PDU which
+         is forwarded by a proxy forwarder application using
+         an SNMP version other than SNMPv1.  The value of this
+         object SHOULD contain the value of the agent-addr field
+         from the original Trap PDU as generated by an SNMPv1
+         agent."
+    ::= { snmpCommunityMIBObjects 3 }
+
+snmpTrapCommunity OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  accessible-for-notify
+    STATUS      current
+    DESCRIPTION
+        "The value of the community string field of an SNMPv1
+         message containing a Trap PDU which is forwarded by a
+         a proxy forwarder application using an SNMP version
+         other than SNMPv1.  The value of this object SHOULD
+         contain the value of the community string field from
+         the original SNMPv1 message containing a Trap PDU as
+         generated by an SNMPv1 agent."
+    ::= { snmpCommunityMIBObjects 4 }
+
+-- Conformance Information *******************************************
+
+snmpCommunityMIBCompliances OBJECT IDENTIFIER
+                            ::= { snmpCommunityMIBConformance 1 }
+snmpCommunityMIBGroups      OBJECT IDENTIFIER
+                            ::= { snmpCommunityMIBConformance 2 }
+
+-- Compliance statements
+
+snmpCommunityMIBCompliance MODULE-COMPLIANCE
+    STATUS       current
+    DESCRIPTION
+        "The compliance statement for SNMP engines which
+         implement the SNMP-COMMUNITY-MIB."
+
+    MODULE       -- this module
+        MANDATORY-GROUPS { snmpCommunityGroup }
+
+        OBJECT           snmpCommunityName
+        MIN-ACCESS       read-only
+        DESCRIPTION     "Write access is not required."
+
+        OBJECT           snmpCommunitySecurityName
+        MIN-ACCESS       read-only
+        DESCRIPTION     "Write access is not required."
+
+        OBJECT           snmpCommunityContextEngineID
+        MIN-ACCESS       read-only
+        DESCRIPTION     "Write access is not required."
+
+        OBJECT           snmpCommunityContextName
+        MIN-ACCESS       read-only
+        DESCRIPTION     "Write access is not required."
+
+        OBJECT           snmpCommunityTransportTag
+        MIN-ACCESS       read-only
+        DESCRIPTION     "Write access is not required."
+
+        OBJECT           snmpCommunityStorageType
+        MIN-ACCESS       read-only
+        DESCRIPTION     "Write access is not required."
+
+        OBJECT           snmpCommunityStatus
+        MIN-ACCESS       read-only
+        DESCRIPTION     "Write access is not required."
+    ::= { snmpCommunityMIBCompliances 1 }
+
+snmpProxyTrapForwardCompliance MODULE-COMPLIANCE
+    STATUS       current
+    DESCRIPTION
+        "The compliance statement for SNMP engines which
+         contain a proxy forwarding application which is
+         capable of forwarding SNMPv1 traps using SNMPv2c
+         or SNMPv3."
+    MODULE       -- this module
+        MANDATORY-GROUPS { snmpProxyTrapForwardGroup }
+    ::= { snmpCommunityMIBCompliances 2 }
+
+snmpCommunityGroup OBJECT-GROUP
+    OBJECTS {
+        snmpCommunityName,
+        snmpCommunitySecurityName,
+        snmpCommunityContextEngineID,
+        snmpCommunityContextName,
+        snmpCommunityTransportTag,
+        snmpCommunityStorageType,
+        snmpCommunityStatus,
+        snmpTargetAddrTMask,
+        snmpTargetAddrMMS
+    }
+    STATUS       current
+    DESCRIPTION
+        "A collection of objects providing for configuration
+         of community strings for SNMPv1 (and SNMPv2c) usage."
+    ::= { snmpCommunityMIBGroups 1 }
+
+snmpProxyTrapForwardGroup OBJECT-GROUP
+    OBJECTS {
+        snmpTrapAddress,
+        snmpTrapCommunity
+    }
+    STATUS       current
+    DESCRIPTION
+        "Objects which are used by proxy forwarding applications
+         when translating traps between SNMP versions.  These are
+         used to preserve SNMPv1-specific information when
+
+         translating to SNMPv2c or SNMPv3."
+    ::= { snmpCommunityMIBGroups 3 }
+
+END

Added: trunk/mibs/SNMP-MPD-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/SNMP-MPD-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,145 @@
+SNMP-MPD-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-COMPLIANCE, OBJECT-GROUP         FROM SNMPv2-CONF
+    MODULE-IDENTITY, OBJECT-TYPE,
+    snmpModules, Counter32                  FROM SNMPv2-SMI;
+
+snmpMPDMIB MODULE-IDENTITY
+    LAST-UPDATED "200210140000Z"
+    ORGANIZATION "SNMPv3 Working Group"
+    CONTACT-INFO "WG-EMail:   snmpv3 at lists.tislabs.com
+                  Subscribe:  snmpv3-request at lists.tislabs.com
+
+                  Co-Chair:   Russ Mundy
+                              Network Associates Laboratories
+                  postal:     15204 Omega Drive, Suite 300
+                              Rockville, MD 20850-4601
+                              USA
+
+                  EMail:      mundy at tislabs.com
+                  phone:      +1 301-947-7107
+
+                  Co-Chair &
+                  Co-editor:  David Harrington
+                              Enterasys Networks
+                  postal:     35 Industrial Way
+                              P. O. Box 5005
+                              Rochester NH 03866-5005
+                              USA
+                  EMail:      dbh at enterasys.com
+                  phone:      +1 603-337-2614
+
+                  Co-editor:  Jeffrey Case
+                              SNMP Research, Inc.
+                  postal:     3001 Kimberlin Heights Road
+                              Knoxville, TN 37920-9716
+                              USA
+                  EMail:      case at snmp.com
+                  phone:      +1 423-573-1434
+
+                  Co-editor:  Randy Presuhn
+                              BMC Software, Inc.
+                  postal:     2141 North First Street
+                              San Jose, CA 95131
+                              USA
+                  EMail:      randy_presuhn at bmc.com
+                  phone:      +1 408-546-1006
+
+                  Co-editor:  Bert Wijnen
+                              Lucent Technologies
+                  postal:     Schagen 33
+                              3461 GL Linschoten
+                              Netherlands
+                  EMail:      bwijnen at lucent.com
+                  phone:      +31 348-680-485
+                 "
+    DESCRIPTION  "The MIB for Message Processing and Dispatching
+
+                  Copyright (C) The Internet Society (2002). This
+                  version of this MIB module is part of RFC 3412;
+                  see the RFC itself for full legal notices.
+                 "
+    REVISION     "200210140000Z"            -- 14 October 2002
+    DESCRIPTION  "Updated addresses, published as RFC 3412."
+    REVISION     "199905041636Z"            -- 4 May 1999
+    DESCRIPTION  "Updated addresses, published as RFC 2572."
+
+    REVISION     "199709300000Z"            -- 30 September 1997
+    DESCRIPTION  "Original version, published as RFC 2272."
+    ::= { snmpModules 11 }
+
+-- Administrative assignments ***************************************
+
+snmpMPDAdmin           OBJECT IDENTIFIER ::= { snmpMPDMIB 1 }
+snmpMPDMIBObjects      OBJECT IDENTIFIER ::= { snmpMPDMIB 2 }
+snmpMPDMIBConformance  OBJECT IDENTIFIER ::= { snmpMPDMIB 3 }
+
+-- Statistics for SNMP Messages *************************************
+
+snmpMPDStats           OBJECT IDENTIFIER ::= { snmpMPDMIBObjects 1 }
+
+snmpUnknownSecurityModels OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The total number of packets received by the SNMP
+                 engine which were dropped because they referenced a
+                 securityModel that was not known to or supported by
+                 the SNMP engine.
+                "
+    ::= { snmpMPDStats 1 }
+
+snmpInvalidMsgs OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The total number of packets received by the SNMP
+                 engine which were dropped because there were invalid
+                 or inconsistent components in the SNMP message.
+                "
+    ::= { snmpMPDStats 2 }
+
+snmpUnknownPDUHandlers OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The total number of packets received by the SNMP
+                 engine which were dropped because the PDU contained
+                 in the packet could not be passed to an application
+                 responsible for handling the pduType, e.g. no SNMP
+                 application had registered for the proper
+                 combination of the contextEngineID and the pduType.
+                "
+    ::= { snmpMPDStats 3 }
+
+-- Conformance information ******************************************
+
+snmpMPDMIBCompliances OBJECT IDENTIFIER ::= {snmpMPDMIBConformance 1}
+snmpMPDMIBGroups      OBJECT IDENTIFIER ::= {snmpMPDMIBConformance 2}
+
+-- Compliance statements
+
+snmpMPDCompliance MODULE-COMPLIANCE
+    STATUS       current
+    DESCRIPTION "The compliance statement for SNMP entities which
+                 implement the SNMP-MPD-MIB.
+                "
+    MODULE    -- this module
+        MANDATORY-GROUPS { snmpMPDGroup }
+    ::= { snmpMPDMIBCompliances 1 }
+
+snmpMPDGroup OBJECT-GROUP
+    OBJECTS {
+              snmpUnknownSecurityModels,
+              snmpInvalidMsgs,
+              snmpUnknownPDUHandlers
+            }
+    STATUS       current
+    DESCRIPTION "A collection of objects providing for remote
+                 monitoring of the SNMP Message Processing and
+                 Dispatching process.
+                "
+    ::= { snmpMPDMIBGroups 1 }
+
+END

Added: trunk/mibs/SNMP-NOTIFICATION-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/SNMP-NOTIFICATION-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,589 @@
+SNMP-NOTIFICATION-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY,
+    OBJECT-TYPE,
+    snmpModules
+        FROM SNMPv2-SMI
+
+    RowStatus,
+    StorageType
+        FROM SNMPv2-TC
+
+    SnmpAdminString
+        FROM SNMP-FRAMEWORK-MIB
+
+    SnmpTagValue,
+    snmpTargetParamsName
+        FROM SNMP-TARGET-MIB
+
+    MODULE-COMPLIANCE,
+    OBJECT-GROUP
+        FROM SNMPv2-CONF;
+
+snmpNotificationMIB MODULE-IDENTITY
+    LAST-UPDATED "200210140000Z"
+    ORGANIZATION "IETF SNMPv3 Working Group"
+    CONTACT-INFO
+        "WG-email:   snmpv3 at lists.tislabs.com
+         Subscribe:  majordomo at lists.tislabs.com
+                     In message body:  subscribe snmpv3
+
+         Co-Chair:   Russ Mundy
+                     Network Associates Laboratories
+         Postal:     15204 Omega Drive, Suite 300
+                     Rockville, MD 20850-4601
+                     USA
+         EMail:      mundy at tislabs.com
+         Phone:      +1 301-947-7107
+
+         Co-Chair:   David Harrington
+                     Enterasys Networks
+         Postal:     35 Industrial Way
+                     P. O. Box 5004
+                     Rochester, New Hampshire 03866-5005
+                     USA
+         EMail:      dbh at enterasys.com
+         Phone:      +1 603-337-2614
+
+         Co-editor:  David B. Levi
+                     Nortel Networks
+         Postal:     3505 Kesterwood Drive
+                     Knoxville, Tennessee 37918
+         EMail:      dlevi at nortelnetworks.com
+         Phone:      +1 865 686 0432
+
+         Co-editor:  Paul Meyer
+                     Secure Computing Corporation
+         Postal:     2675 Long Lake Road
+                     Roseville, Minnesota 55113
+         EMail:      paul_meyer at securecomputing.com
+         Phone:      +1 651 628 1592
+
+         Co-editor:  Bob Stewart
+                     Retired"
+    DESCRIPTION
+        "This MIB module defines MIB objects which provide
+         mechanisms to remotely configure the parameters
+         used by an SNMP entity for the generation of
+         notifications.
+
+         Copyright (C) The Internet Society (2002). This
+         version of this MIB module is part of RFC 3413;
+         see the RFC itself for full legal notices.
+        "
+    REVISION    "200210140000Z"             -- 14 October 2002
+    DESCRIPTION "Clarifications, published as
+                 RFC 3413."
+    REVISION    "199808040000Z"             -- 4 August 1998
+    DESCRIPTION "Clarifications, published as
+                 RFC 2573."
+    REVISION    "199707140000Z"             -- 14 July 1997
+    DESCRIPTION "The initial revision, published as RFC2273."
+    ::= { snmpModules 13 }
+
+snmpNotifyObjects       OBJECT IDENTIFIER ::=
+                                          { snmpNotificationMIB 1 }
+snmpNotifyConformance   OBJECT IDENTIFIER ::=
+                                          { snmpNotificationMIB 3 }
+
+--
+--
+-- The snmpNotifyObjects group
+--
+--
+
+snmpNotifyTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF SnmpNotifyEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "This table is used to select management targets which should
+         receive notifications, as well as the type of notification
+         which should be sent to each selected management target."
+    ::= { snmpNotifyObjects 1 }
+
+snmpNotifyEntry OBJECT-TYPE
+    SYNTAX      SnmpNotifyEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "An entry in this table selects a set of management targets
+         which should receive notifications, as well as the type of
+
+         notification which should be sent to each selected
+         management target.
+
+         Entries in the snmpNotifyTable are created and
+         deleted using the snmpNotifyRowStatus object."
+    INDEX { IMPLIED snmpNotifyName }
+    ::= { snmpNotifyTable 1 }
+
+SnmpNotifyEntry ::= SEQUENCE {
+    snmpNotifyName         SnmpAdminString,
+    snmpNotifyTag          SnmpTagValue,
+    snmpNotifyType         INTEGER,
+    snmpNotifyStorageType  StorageType,
+    snmpNotifyRowStatus    RowStatus
+}
+
+snmpNotifyName OBJECT-TYPE
+    SYNTAX      SnmpAdminString (SIZE(1..32))
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "The locally arbitrary, but unique identifier associated
+         with this snmpNotifyEntry."
+    ::= { snmpNotifyEntry 1 }
+
+snmpNotifyTag OBJECT-TYPE
+    SYNTAX      SnmpTagValue
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "This object contains a single tag value which is used
+         to select entries in the snmpTargetAddrTable.  Any entry
+         in the snmpTargetAddrTable which contains a tag value
+         which is equal to the value of an instance of this
+         object is selected.  If this object contains a value
+         of zero length, no entries are selected."
+    DEFVAL { "" }
+    ::= { snmpNotifyEntry 2 }
+
+snmpNotifyType OBJECT-TYPE
+    SYNTAX      INTEGER {
+                    trap(1),
+                    inform(2)
+                }
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "This object determines the type of notification to
+
+         be generated for entries in the snmpTargetAddrTable
+         selected by the corresponding instance of
+         snmpNotifyTag.  This value is only used when
+         generating notifications, and is ignored when
+         using the snmpTargetAddrTable for other purposes.
+
+         If the value of this object is trap(1), then any
+         messages generated for selected rows will contain
+         Unconfirmed-Class PDUs.
+
+         If the value of this object is inform(2), then any
+         messages generated for selected rows will contain
+         Confirmed-Class PDUs.
+
+         Note that if an SNMP entity only supports
+         generation of Unconfirmed-Class PDUs (and not
+         Confirmed-Class PDUs), then this object may be
+         read-only."
+    DEFVAL { trap }
+    ::= { snmpNotifyEntry 3 }
+
+snmpNotifyStorageType OBJECT-TYPE
+    SYNTAX      StorageType
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The storage type for this conceptual row.
+         Conceptual rows having the value 'permanent' need not
+         allow write-access to any columnar objects in the row."
+    DEFVAL { nonVolatile }
+    ::= { snmpNotifyEntry 4 }
+
+snmpNotifyRowStatus OBJECT-TYPE
+    SYNTAX      RowStatus
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The status of this conceptual row.
+
+         To create a row in this table, a manager must
+         set this object to either createAndGo(4) or
+         createAndWait(5)."
+    ::= { snmpNotifyEntry 5 }
+
+snmpNotifyFilterProfileTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF SnmpNotifyFilterProfileEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "This table is used to associate a notification filter
+         profile with a particular set of target parameters."
+    ::= { snmpNotifyObjects 2 }
+
+snmpNotifyFilterProfileEntry OBJECT-TYPE
+    SYNTAX      SnmpNotifyFilterProfileEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "An entry in this table indicates the name of the filter
+         profile to be used when generating notifications using
+         the corresponding entry in the snmpTargetParamsTable.
+
+         Entries in the snmpNotifyFilterProfileTable are created
+         and deleted using the snmpNotifyFilterProfileRowStatus
+         object."
+    INDEX { IMPLIED snmpTargetParamsName }
+    ::= { snmpNotifyFilterProfileTable 1 }
+
+SnmpNotifyFilterProfileEntry ::= SEQUENCE {
+    snmpNotifyFilterProfileName         SnmpAdminString,
+    snmpNotifyFilterProfileStorType     StorageType,
+    snmpNotifyFilterProfileRowStatus    RowStatus
+}
+
+snmpNotifyFilterProfileName OBJECT-TYPE
+    SYNTAX      SnmpAdminString (SIZE(1..32))
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The name of the filter profile to be used when generating
+         notifications using the corresponding entry in the
+         snmpTargetAddrTable."
+    ::= { snmpNotifyFilterProfileEntry 1 }
+
+snmpNotifyFilterProfileStorType OBJECT-TYPE
+    SYNTAX      StorageType
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The storage type for this conceptual row.
+         Conceptual rows having the value 'permanent' need not
+         allow write-access to any columnar objects in the row."
+    DEFVAL { nonVolatile }
+    ::= { snmpNotifyFilterProfileEntry 2 }
+
+snmpNotifyFilterProfileRowStatus OBJECT-TYPE
+    SYNTAX      RowStatus
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The status of this conceptual row.
+
+         To create a row in this table, a manager must
+         set this object to either createAndGo(4) or
+         createAndWait(5).
+
+         Until instances of all corresponding columns are
+         appropriately configured, the value of the
+         corresponding instance of the
+         snmpNotifyFilterProfileRowStatus column is 'notReady'.
+
+         In particular, a newly created row cannot be made
+         active until the corresponding instance of
+         snmpNotifyFilterProfileName has been set."
+    ::= { snmpNotifyFilterProfileEntry 3 }
+
+snmpNotifyFilterTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF SnmpNotifyFilterEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "The table of filter profiles.  Filter profiles are used
+         to determine whether particular management targets should
+         receive particular notifications.
+
+         When a notification is generated, it must be compared
+         with the filters associated with each management target
+         which is configured to receive notifications, in order to
+         determine whether it may be sent to each such management
+         target.
+
+         A more complete discussion of notification filtering
+         can be found in section 6. of [SNMP-APPL]."
+    ::= { snmpNotifyObjects 3 }
+
+snmpNotifyFilterEntry OBJECT-TYPE
+    SYNTAX      SnmpNotifyFilterEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "An element of a filter profile.
+
+         Entries in the snmpNotifyFilterTable are created and
+         deleted using the snmpNotifyFilterRowStatus object."
+    INDEX {         snmpNotifyFilterProfileName,
+            IMPLIED snmpNotifyFilterSubtree }
+    ::= { snmpNotifyFilterTable 1 }
+
+SnmpNotifyFilterEntry ::= SEQUENCE {
+    snmpNotifyFilterSubtree           OBJECT IDENTIFIER,
+    snmpNotifyFilterMask              OCTET STRING,
+    snmpNotifyFilterType              INTEGER,
+    snmpNotifyFilterStorageType       StorageType,
+    snmpNotifyFilterRowStatus         RowStatus
+}
+
+snmpNotifyFilterSubtree OBJECT-TYPE
+    SYNTAX      OBJECT IDENTIFIER
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "The MIB subtree which, when combined with the corresponding
+         instance of snmpNotifyFilterMask, defines a family of
+         subtrees which are included in or excluded from the
+         filter profile."
+    ::= { snmpNotifyFilterEntry 1 }
+
+snmpNotifyFilterMask OBJECT-TYPE
+    SYNTAX      OCTET STRING (SIZE(0..16))
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The bit mask which, in combination with the corresponding
+         instance of snmpNotifyFilterSubtree, defines a family of
+         subtrees which are included in or excluded from the
+         filter profile.
+
+         Each bit of this bit mask corresponds to a
+         sub-identifier of snmpNotifyFilterSubtree, with the
+         most significant bit of the i-th octet of this octet
+         string value (extended if necessary, see below)
+         corresponding to the (8*i - 7)-th sub-identifier, and
+         the least significant bit of the i-th octet of this
+         octet string corresponding to the (8*i)-th
+         sub-identifier, where i is in the range 1 through 16.
+
+         Each bit of this bit mask specifies whether or not
+         the corresponding sub-identifiers must match when
+         determining if an OBJECT IDENTIFIER matches this
+         family of filter subtrees; a '1' indicates that an
+         exact match must occur; a '0' indicates 'wild card',
+         i.e., any sub-identifier value matches.
+
+         Thus, the OBJECT IDENTIFIER X of an object instance
+         is contained in a family of filter subtrees if, for
+         each sub-identifier of the value of
+         snmpNotifyFilterSubtree, either:
+
+           the i-th bit of snmpNotifyFilterMask is 0, or
+
+           the i-th sub-identifier of X is equal to the i-th
+           sub-identifier of the value of
+           snmpNotifyFilterSubtree.
+
+         If the value of this bit mask is M bits long and
+         there are more than M sub-identifiers in the
+         corresponding instance of snmpNotifyFilterSubtree,
+         then the bit mask is extended with 1's to be the
+         required length.
+
+         Note that when the value of this object is the
+         zero-length string, this extension rule results in
+         a mask of all-1's being used (i.e., no 'wild card'),
+         and the family of filter subtrees is the one
+         subtree uniquely identified by the corresponding
+         instance of snmpNotifyFilterSubtree."
+    DEFVAL { ''H }
+    ::= { snmpNotifyFilterEntry 2 }
+
+snmpNotifyFilterType OBJECT-TYPE
+    SYNTAX      INTEGER {
+                    included(1),
+                    excluded(2)
+                }
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "This object indicates whether the family of filter subtrees
+         defined by this entry are included in or excluded from a
+         filter.  A more detailed discussion of the use of this
+         object can be found in section 6. of [SNMP-APPL]."
+    DEFVAL { included }
+    ::= { snmpNotifyFilterEntry 3 }
+
+snmpNotifyFilterStorageType OBJECT-TYPE
+    SYNTAX      StorageType
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The storage type for this conceptual row.
+         Conceptual rows having the value 'permanent' need not
+
+         allow write-access to any columnar objects in the row."
+    DEFVAL { nonVolatile }
+    ::= { snmpNotifyFilterEntry 4 }
+
+snmpNotifyFilterRowStatus OBJECT-TYPE
+    SYNTAX      RowStatus
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The status of this conceptual row.
+
+         To create a row in this table, a manager must
+         set this object to either createAndGo(4) or
+         createAndWait(5)."
+    ::= { snmpNotifyFilterEntry 5 }
+
+--
+--
+-- Conformance information
+--
+--
+
+snmpNotifyCompliances OBJECT IDENTIFIER ::=
+                                        { snmpNotifyConformance 1 }
+snmpNotifyGroups      OBJECT IDENTIFIER ::=
+                                        { snmpNotifyConformance 2 }
+
+--
+--
+-- Compliance statements
+--
+--
+
+snmpNotifyBasicCompliance MODULE-COMPLIANCE
+    STATUS      current
+    DESCRIPTION
+        "The compliance statement for minimal SNMP entities which
+         implement only SNMP Unconfirmed-Class notifications and
+         read-create operations on only the snmpTargetAddrTable."
+    MODULE SNMP-TARGET-MIB
+        MANDATORY-GROUPS { snmpTargetBasicGroup }
+
+        OBJECT snmpTargetParamsMPModel
+        MIN-ACCESS    read-only
+        DESCRIPTION
+            "Create/delete/modify access is not required."
+
+        OBJECT snmpTargetParamsSecurityModel
+        MIN-ACCESS    read-only
+        DESCRIPTION
+            "Create/delete/modify access is not required."
+
+        OBJECT snmpTargetParamsSecurityName
+        MIN-ACCESS    read-only
+        DESCRIPTION
+            "Create/delete/modify access is not required."
+
+        OBJECT snmpTargetParamsSecurityLevel
+        MIN-ACCESS    read-only
+        DESCRIPTION
+            "Create/delete/modify access is not required."
+
+        OBJECT snmpTargetParamsStorageType
+        SYNTAX INTEGER {
+            readOnly(5)
+        }
+        MIN-ACCESS    read-only
+        DESCRIPTION
+            "Create/delete/modify access is not required.
+             Support of the values other(1), volatile(2),
+             nonVolatile(3), and permanent(4) is not required."
+
+        OBJECT snmpTargetParamsRowStatus
+        SYNTAX INTEGER {
+            active(1)
+        }
+        MIN-ACCESS    read-only
+        DESCRIPTION
+            "Create/delete/modify access to the
+             snmpTargetParamsTable is not required.
+             Support of the values notInService(2), notReady(3),
+             createAndGo(4), createAndWait(5), and destroy(6) is
+             not required."
+
+    MODULE -- This Module
+        MANDATORY-GROUPS { snmpNotifyGroup }
+
+        OBJECT snmpNotifyTag
+        MIN-ACCESS    read-only
+        DESCRIPTION
+            "Create/delete/modify access is not required."
+
+        OBJECT snmpNotifyType
+        SYNTAX INTEGER {
+            trap(1)
+        }
+        MIN-ACCESS    read-only
+        DESCRIPTION
+            "Create/delete/modify access is not required.
+             Support of the value notify(2) is not required."
+
+        OBJECT snmpNotifyStorageType
+        SYNTAX INTEGER {
+            readOnly(5)
+        }
+        MIN-ACCESS    read-only
+        DESCRIPTION
+            "Create/delete/modify access is not required.
+             Support of the values other(1), volatile(2),
+             nonVolatile(3), and permanent(4) is not required."
+
+        OBJECT snmpNotifyRowStatus
+        SYNTAX INTEGER {
+            active(1)
+        }
+        MIN-ACCESS    read-only
+        DESCRIPTION
+            "Create/delete/modify access to the
+             snmpNotifyTable is not required.
+             Support of the values notInService(2), notReady(3),
+             createAndGo(4), createAndWait(5), and destroy(6) is
+             not required."
+    ::= { snmpNotifyCompliances 1 }
+
+snmpNotifyBasicFiltersCompliance MODULE-COMPLIANCE
+    STATUS      current
+    DESCRIPTION
+        "The compliance statement for SNMP entities which implement
+         SNMP Unconfirmed-Class notifications with filtering, and
+         read-create operations on all related tables."
+    MODULE SNMP-TARGET-MIB
+        MANDATORY-GROUPS { snmpTargetBasicGroup }
+    MODULE -- This Module
+        MANDATORY-GROUPS { snmpNotifyGroup,
+                           snmpNotifyFilterGroup }
+    ::= { snmpNotifyCompliances 2 }
+
+snmpNotifyFullCompliance MODULE-COMPLIANCE
+    STATUS      current
+    DESCRIPTION
+        "The compliance statement for SNMP entities which either
+         implement only SNMP Confirmed-Class notifications, or both
+         SNMP Unconfirmed-Class and Confirmed-Class notifications,
+         plus filtering and read-create operations on all related
+         tables."
+    MODULE SNMP-TARGET-MIB
+        MANDATORY-GROUPS { snmpTargetBasicGroup,
+                           snmpTargetResponseGroup }
+    MODULE -- This Module
+        MANDATORY-GROUPS { snmpNotifyGroup,
+                           snmpNotifyFilterGroup }
+    ::= { snmpNotifyCompliances 3 }
+
+snmpNotifyGroup OBJECT-GROUP
+    OBJECTS {
+        snmpNotifyTag,
+        snmpNotifyType,
+        snmpNotifyStorageType,
+        snmpNotifyRowStatus
+    }
+    STATUS      current
+    DESCRIPTION
+        "A collection of objects for selecting which management
+         targets are used for generating notifications, and the
+         type of notification to be generated for each selected
+         management target."
+    ::= { snmpNotifyGroups 1 }
+
+snmpNotifyFilterGroup OBJECT-GROUP
+    OBJECTS {
+        snmpNotifyFilterProfileName,
+        snmpNotifyFilterProfileStorType,
+        snmpNotifyFilterProfileRowStatus,
+        snmpNotifyFilterMask,
+        snmpNotifyFilterType,
+        snmpNotifyFilterStorageType,
+        snmpNotifyFilterRowStatus
+    }
+    STATUS      current
+    DESCRIPTION
+        "A collection of objects providing remote configuration
+         of notification filters."
+    ::= { snmpNotifyGroups 2 }
+
+END

Added: trunk/mibs/SNMP-PROXY-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/SNMP-PROXY-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,294 @@
+SNMP-PROXY-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY,
+    OBJECT-TYPE,
+    snmpModules
+        FROM SNMPv2-SMI
+
+    RowStatus,
+    StorageType
+        FROM SNMPv2-TC
+
+    SnmpEngineID,
+    SnmpAdminString
+        FROM SNMP-FRAMEWORK-MIB
+
+    SnmpTagValue
+        FROM SNMP-TARGET-MIB
+
+    MODULE-COMPLIANCE,
+    OBJECT-GROUP
+        FROM SNMPv2-CONF;
+
+snmpProxyMIB MODULE-IDENTITY
+    LAST-UPDATED "200210140000Z"
+    ORGANIZATION "IETF SNMPv3 Working Group"
+    CONTACT-INFO
+        "WG-email:   snmpv3 at lists.tislabs.com
+         Subscribe:  majordomo at lists.tislabs.com
+                     In message body:  subscribe snmpv3
+
+         Co-Chair:   Russ Mundy
+                     Network Associates Laboratories
+         Postal:     15204 Omega Drive, Suite 300
+                     Rockville, MD 20850-4601
+                     USA
+         EMail:      mundy at tislabs.com
+         Phone:      +1 301-947-7107
+
+         Co-Chair:   David Harrington
+                     Enterasys Networks
+         Postal:     35 Industrial Way
+                     P. O. Box 5004
+                     Rochester, New Hampshire 03866-5005
+                     USA
+         EMail:      dbh at enterasys.com
+         Phone:      +1 603-337-2614
+
+         Co-editor:  David B. Levi
+                     Nortel Networks
+         Postal:     3505 Kesterwood Drive
+                     Knoxville, Tennessee 37918
+         EMail:      dlevi at nortelnetworks.com
+         Phone:      +1 865 686 0432
+
+         Co-editor:  Paul Meyer
+                     Secure Computing Corporation
+         Postal:     2675 Long Lake Road
+                     Roseville, Minnesota 55113
+         EMail:      paul_meyer at securecomputing.com
+         Phone:      +1 651 628 1592
+
+         Co-editor:  Bob Stewart
+                     Retired"
+    DESCRIPTION
+        "This MIB module defines MIB objects which provide
+         mechanisms to remotely configure the parameters
+         used by a proxy forwarding application.
+
+         Copyright (C) The Internet Society (2002). This
+         version of this MIB module is part of RFC 3413;
+         see the RFC itself for full legal notices.
+        "
+    REVISION    "200210140000Z"             -- 14 October 2002
+    DESCRIPTION "Clarifications, published as
+                 RFC 3413."
+    REVISION    "199808040000Z"             -- 4 August 1998
+    DESCRIPTION "Clarifications, published as
+                 RFC 2573."
+    REVISION    "199707140000Z"             -- 14 July 1997
+    DESCRIPTION "The initial revision, published as RFC2273."
+    ::= { snmpModules 14 }
+
+snmpProxyObjects        OBJECT IDENTIFIER ::= { snmpProxyMIB 1 }
+snmpProxyConformance    OBJECT IDENTIFIER ::= { snmpProxyMIB 3 }
+
+--
+
+--
+-- The snmpProxyObjects group
+--
+--
+
+snmpProxyTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF SnmpProxyEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "The table of translation parameters used by proxy forwarder
+         applications for forwarding SNMP messages."
+    ::= { snmpProxyObjects 2 }
+
+snmpProxyEntry OBJECT-TYPE
+    SYNTAX      SnmpProxyEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A set of translation parameters used by a proxy forwarder
+         application for forwarding SNMP messages.
+
+         Entries in the snmpProxyTable are created and deleted
+         using the snmpProxyRowStatus object."
+    INDEX { IMPLIED snmpProxyName }
+    ::= { snmpProxyTable 1 }
+
+SnmpProxyEntry ::= SEQUENCE {
+    snmpProxyName               SnmpAdminString,
+    snmpProxyType               INTEGER,
+    snmpProxyContextEngineID    SnmpEngineID,
+    snmpProxyContextName        SnmpAdminString,
+    snmpProxyTargetParamsIn     SnmpAdminString,
+    snmpProxySingleTargetOut    SnmpAdminString,
+    snmpProxyMultipleTargetOut  SnmpTagValue,
+    snmpProxyStorageType        StorageType,
+    snmpProxyRowStatus          RowStatus
+}
+
+snmpProxyName OBJECT-TYPE
+    SYNTAX      SnmpAdminString (SIZE(1..32))
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "The locally arbitrary, but unique identifier associated
+         with this snmpProxyEntry."
+    ::= { snmpProxyEntry 1 }
+
+snmpProxyType OBJECT-TYPE
+    SYNTAX      INTEGER {
+                    read(1),
+                    write(2),
+                    trap(3),
+                    inform(4)
+                }
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The type of message that may be forwarded using
+         the translation parameters defined by this entry."
+    ::= { snmpProxyEntry 2 }
+
+snmpProxyContextEngineID OBJECT-TYPE
+    SYNTAX      SnmpEngineID
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The contextEngineID contained in messages that
+         may be forwarded using the translation parameters
+         defined by this entry."
+    ::= { snmpProxyEntry 3 }
+
+snmpProxyContextName OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The contextName contained in messages that may be
+         forwarded using the translation parameters defined
+         by this entry.
+
+         This object is optional, and if not supported, the
+         contextName contained in a message is ignored when
+         selecting an entry in the snmpProxyTable."
+    ::= { snmpProxyEntry 4 }
+
+snmpProxyTargetParamsIn OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "This object selects an entry in the snmpTargetParamsTable.
+         The selected entry is used to determine which row of the
+         snmpProxyTable to use for forwarding received messages."
+    ::= { snmpProxyEntry 5 }
+
+snmpProxySingleTargetOut OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "This object selects a management target defined in the
+         snmpTargetAddrTable (in the SNMP-TARGET-MIB).  The
+         selected target is defined by an entry in the
+         snmpTargetAddrTable whose index value (snmpTargetAddrName)
+         is equal to this object.
+
+         This object is only used when selection of a single
+         target is required (i.e. when forwarding an incoming
+         read or write request)."
+    ::= { snmpProxyEntry 6 }
+
+snmpProxyMultipleTargetOut OBJECT-TYPE
+    SYNTAX      SnmpTagValue
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "This object selects a set of management targets defined
+         in the snmpTargetAddrTable (in the SNMP-TARGET-MIB).
+
+         This object is only used when selection of multiple
+         targets is required (i.e. when forwarding an incoming
+         notification)."
+    ::= { snmpProxyEntry 7 }
+
+snmpProxyStorageType OBJECT-TYPE
+    SYNTAX      StorageType
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The storage type of this conceptual row.
+         Conceptual rows having the value 'permanent' need not
+         allow write-access to any columnar objects in the row."
+    DEFVAL { nonVolatile }
+    ::= { snmpProxyEntry 8 }
+
+snmpProxyRowStatus OBJECT-TYPE
+    SYNTAX      RowStatus
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The status of this conceptual row.
+
+         To create a row in this table, a manager must
+
+         set this object to either createAndGo(4) or
+         createAndWait(5).
+
+         The following objects may not be modified while the
+         value of this object is active(1):
+             - snmpProxyType
+             - snmpProxyContextEngineID
+             - snmpProxyContextName
+             - snmpProxyTargetParamsIn
+             - snmpProxySingleTargetOut
+             - snmpProxyMultipleTargetOut"
+    ::= { snmpProxyEntry 9 }
+
+--
+--
+-- Conformance information
+--
+--
+
+snmpProxyCompliances OBJECT IDENTIFIER ::=
+                                         { snmpProxyConformance 1 }
+snmpProxyGroups      OBJECT IDENTIFIER ::=
+                                         { snmpProxyConformance 2 }
+
+--
+--
+-- Compliance statements
+--
+--
+
+snmpProxyCompliance MODULE-COMPLIANCE
+    STATUS      current
+    DESCRIPTION
+        "The compliance statement for SNMP entities which include
+         a proxy forwarding application."
+    MODULE SNMP-TARGET-MIB
+        MANDATORY-GROUPS { snmpTargetBasicGroup,
+                           snmpTargetResponseGroup }
+    MODULE -- This Module
+        MANDATORY-GROUPS { snmpProxyGroup }
+    ::= { snmpProxyCompliances 1 }
+
+snmpProxyGroup OBJECT-GROUP
+    OBJECTS {
+        snmpProxyType,
+        snmpProxyContextEngineID,
+        snmpProxyContextName,
+        snmpProxyTargetParamsIn,
+        snmpProxySingleTargetOut,
+        snmpProxyMultipleTargetOut,
+        snmpProxyStorageType,
+        snmpProxyRowStatus
+    }
+    STATUS      current
+    DESCRIPTION
+        "A collection of objects providing remote configuration of
+         management target translation parameters for use by
+         proxy forwarder applications."
+    ::= { snmpProxyGroups 3 }
+
+END

Added: trunk/mibs/SNMP-USER-BASED-SM-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/SNMP-USER-BASED-SM-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,912 @@
+SNMP-USER-BASED-SM-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE,
+    OBJECT-IDENTITY,
+    snmpModules, Counter32                FROM SNMPv2-SMI
+    TEXTUAL-CONVENTION, TestAndIncr,
+    RowStatus, RowPointer,
+    StorageType, AutonomousType           FROM SNMPv2-TC
+    MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF
+    SnmpAdminString, SnmpEngineID,
+    snmpAuthProtocols, snmpPrivProtocols  FROM SNMP-FRAMEWORK-MIB;
+
+snmpUsmMIB MODULE-IDENTITY
+    LAST-UPDATED "200210160000Z"            -- 16 Oct 2002, midnight
+    ORGANIZATION "SNMPv3 Working Group"
+    CONTACT-INFO "WG-email:   snmpv3 at lists.tislabs.com
+                  Subscribe:  majordomo at lists.tislabs.com
+                              In msg body:  subscribe snmpv3
+
+                  Chair:      Russ Mundy
+                              Network Associates Laboratories
+                  postal:     15204 Omega Drive, Suite 300
+                              Rockville, MD 20850-4601
+                              USA
+                  email:      mundy at tislabs.com
+
+                  phone:      +1 301-947-7107
+
+                  Co-Chair:   David Harrington
+                              Enterasys Networks
+                  Postal:     35 Industrial Way
+                              P. O. Box 5004
+                              Rochester, New Hampshire 03866-5005
+                              USA
+                  EMail:      dbh at enterasys.com
+                  Phone:      +1 603-337-2614
+
+                  Co-editor   Uri Blumenthal
+                              Lucent Technologies
+                  postal:     67 Whippany Rd.
+                              Whippany, NJ 07981
+                              USA
+                  email:      uri at lucent.com
+                  phone:      +1-973-386-2163
+
+                  Co-editor:  Bert Wijnen
+                              Lucent Technologies
+                  postal:     Schagen 33
+                              3461 GL Linschoten
+                              Netherlands
+                  email:      bwijnen at lucent.com
+                  phone:      +31-348-480-685
+                 "
+    DESCRIPTION  "The management information definitions for the
+                  SNMP User-based Security Model.
+
+                  Copyright (C) The Internet Society (2002). This
+                  version of this MIB module is part of RFC 3414;
+                  see the RFC itself for full legal notices.
+                 "
+--  Revision history
+
+    REVISION     "200210160000Z"          -- 16 Oct 2002, midnight
+    DESCRIPTION  "Changes in this revision:
+                  - Updated references and contact info.
+                  - Clarification to usmUserCloneFrom DESCRIPTION
+                    clause
+                  - Fixed 'command responder' into 'command generator'
+                    in last para of DESCRIPTION clause of
+                    usmUserTable.
+                  This revision published as RFC3414.
+                 "
+    REVISION     "199901200000Z"          -- 20 Jan 1999, midnight
+    DESCRIPTION  "Clarifications, published as RFC2574"
+
+    REVISION     "199711200000Z"          -- 20 Nov 1997, midnight
+    DESCRIPTION  "Initial version, published as RFC2274"
+    ::= { snmpModules 15 }
+
+-- Administrative assignments ****************************************
+
+usmMIBObjects     OBJECT IDENTIFIER ::= { snmpUsmMIB 1 }
+usmMIBConformance OBJECT IDENTIFIER ::= { snmpUsmMIB 2 }
+
+-- Identification of Authentication and Privacy Protocols ************
+
+usmNoAuthProtocol OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "No Authentication Protocol."
+    ::= { snmpAuthProtocols 1 }
+
+usmHMACMD5AuthProtocol OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "The HMAC-MD5-96 Digest Authentication Protocol."
+    REFERENCE    "- H. Krawczyk, M. Bellare, R. Canetti HMAC:
+                    Keyed-Hashing for Message Authentication,
+                    RFC2104, Feb 1997.
+                  - Rivest, R., Message Digest Algorithm MD5, RFC1321.
+                 "
+    ::= { snmpAuthProtocols 2 }
+
+usmHMACSHAAuthProtocol OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "The HMAC-SHA-96 Digest Authentication Protocol."
+    REFERENCE    "- H. Krawczyk, M. Bellare, R. Canetti, HMAC:
+                    Keyed-Hashing for Message Authentication,
+                    RFC2104, Feb 1997.
+                  - Secure Hash Algorithm. NIST FIPS 180-1.
+                 "
+    ::= { snmpAuthProtocols 3 }
+
+usmNoPrivProtocol OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "No Privacy Protocol."
+    ::= { snmpPrivProtocols 1 }
+
+usmDESPrivProtocol OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "The CBC-DES Symmetric Encryption Protocol."
+    REFERENCE    "- Data Encryption Standard, National Institute of
+                    Standards and Technology.  Federal Information
+                    Processing Standard (FIPS) Publication 46-1.
+
+                    Supersedes FIPS Publication 46,
+                    (January, 1977; reaffirmed January, 1988).
+
+                  - Data Encryption Algorithm, American National
+                    Standards Institute.  ANSI X3.92-1981,
+                    (December, 1980).
+
+                  - DES Modes of Operation, National Institute of
+                    Standards and Technology.  Federal Information
+                    Processing Standard (FIPS) Publication 81,
+                    (December, 1980).
+
+                  - Data Encryption Algorithm - Modes of Operation,
+                    American National Standards Institute.
+                    ANSI X3.106-1983, (May 1983).
+                 "
+    ::= { snmpPrivProtocols 2 }
+
+-- Textual Conventions ***********************************************
+
+KeyChange ::=     TEXTUAL-CONVENTION
+   STATUS         current
+   DESCRIPTION
+         "Every definition of an object with this syntax must identify
+          a protocol P, a secret key K, and a hash algorithm H
+          that produces output of L octets.
+
+          The object's value is a manager-generated, partially-random
+          value which, when modified, causes the value of the secret
+          key K, to be modified via a one-way function.
+
+          The value of an instance of this object is the concatenation
+          of two components: first a 'random' component and then a
+          'delta' component.
+
+          The lengths of the random and delta components
+          are given by the corresponding value of the protocol P;
+          if P requires K to be a fixed length, the length of both the
+          random and delta components is that fixed length; if P
+          allows the length of K to be variable up to a particular
+          maximum length, the length of the random component is that
+          maximum length and the length of the delta component is any
+          length less than or equal to that maximum length.
+          For example, usmHMACMD5AuthProtocol requires K to be a fixed
+          length of 16 octets and L - of 16 octets.
+          usmHMACSHAAuthProtocol requires K to be a fixed length of
+          20 octets and L - of 20 octets. Other protocols may define
+          other sizes, as deemed appropriate.
+
+          When a requester wants to change the old key K to a new
+          key keyNew on a remote entity, the 'random' component is
+          obtained from either a true random generator, or from a
+          pseudorandom generator, and the 'delta' component is
+          computed as follows:
+
+           - a temporary variable is initialized to the existing value
+             of K;
+           - if the length of the keyNew is greater than L octets,
+             then:
+              - the random component is appended to the value of the
+                temporary variable, and the result is input to the
+                the hash algorithm H to produce a digest value, and
+                the temporary variable is set to this digest value;
+              - the value of the temporary variable is XOR-ed with
+                the first (next) L-octets (16 octets in case of MD5)
+                of the keyNew to produce the first (next) L-octets
+                (16 octets in case of MD5) of the 'delta' component.
+              - the above two steps are repeated until the unused
+                portion of the keyNew component is L octets or less,
+           - the random component is appended to the value of the
+             temporary variable, and the result is input to the
+             hash algorithm H to produce a digest value;
+           - this digest value, truncated if necessary to be the same
+             length as the unused portion of the keyNew, is XOR-ed
+             with the unused portion of the keyNew to produce the
+             (final portion of the) 'delta' component.
+
+           For example, using MD5 as the hash algorithm H:
+
+              iterations = (lenOfDelta - 1)/16; /* integer division */
+              temp = keyOld;
+              for (i = 0; i < iterations; i++) {
+                  temp = MD5 (temp || random);
+                  delta[i*16 .. (i*16)+15] =
+                         temp XOR keyNew[i*16 .. (i*16)+15];
+              }
+              temp = MD5 (temp || random);
+              delta[i*16 .. lenOfDelta-1] =
+                     temp XOR keyNew[i*16 .. lenOfDelta-1];
+
+          The 'random' and 'delta' components are then concatenated as
+          described above, and the resulting octet string is sent to
+          the recipient as the new value of an instance of this object.
+
+          At the receiver side, when an instance of this object is set
+          to a new value, then a new value of K is computed as follows:
+
+           - a temporary variable is initialized to the existing value
+             of K;
+           - if the length of the delta component is greater than L
+             octets, then:
+              - the random component is appended to the value of the
+                temporary variable, and the result is input to the
+                hash algorithm H to produce a digest value, and the
+                temporary variable is set to this digest value;
+              - the value of the temporary variable is XOR-ed with
+                the first (next) L-octets (16 octets in case of MD5)
+                of the delta component to produce the first (next)
+                L-octets (16 octets in case of MD5) of the new value
+                of K.
+              - the above two steps are repeated until the unused
+                portion of the delta component is L octets or less,
+           - the random component is appended to the value of the
+             temporary variable, and the result is input to the
+             hash algorithm H to produce a digest value;
+           - this digest value, truncated if necessary to be the same
+             length as the unused portion of the delta component, is
+             XOR-ed with the unused portion of the delta component to
+             produce the (final portion of the) new value of K.
+
+           For example, using MD5 as the hash algorithm H:
+
+              iterations = (lenOfDelta - 1)/16; /* integer division */
+              temp = keyOld;
+              for (i = 0; i < iterations; i++) {
+                  temp = MD5 (temp || random);
+                  keyNew[i*16 .. (i*16)+15] =
+                         temp XOR delta[i*16 .. (i*16)+15];
+              }
+              temp = MD5 (temp || random);
+              keyNew[i*16 .. lenOfDelta-1] =
+                     temp XOR delta[i*16 .. lenOfDelta-1];
+
+          The value of an object with this syntax, whenever it is
+          retrieved by the management protocol, is always the zero
+          length string.
+
+          Note that the keyOld and keyNew are the localized keys.
+
+          Note that it is probably wise that when an SNMP entity sends
+          a SetRequest to change a key, that it keeps a copy of the old
+          key until it has confirmed that the key change actually
+          succeeded.
+         "
+    SYNTAX       OCTET STRING
+
+-- Statistics for the User-based Security Model **********************
+
+usmStats         OBJECT IDENTIFIER ::= { usmMIBObjects 1 }
+
+usmStatsUnsupportedSecLevels OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The total number of packets received by the SNMP
+                 engine which were dropped because they requested a
+                 securityLevel that was unknown to the SNMP engine
+                 or otherwise unavailable.
+                "
+    ::= { usmStats 1 }
+
+usmStatsNotInTimeWindows OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The total number of packets received by the SNMP
+                 engine which were dropped because they appeared
+                 outside of the authoritative SNMP engine's window.
+                "
+    ::= { usmStats 2 }
+
+usmStatsUnknownUserNames OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The total number of packets received by the SNMP
+                 engine which were dropped because they referenced a
+                 user that was not known to the SNMP engine.
+                "
+    ::= { usmStats 3 }
+
+usmStatsUnknownEngineIDs OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The total number of packets received by the SNMP
+                 engine which were dropped because they referenced an
+                 snmpEngineID that was not known to the SNMP engine.
+                "
+    ::= { usmStats 4 }
+
+usmStatsWrongDigests OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The total number of packets received by the SNMP
+                 engine which were dropped because they didn't
+                 contain the expected digest value.
+                "
+    ::= { usmStats 5 }
+
+usmStatsDecryptionErrors OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The total number of packets received by the SNMP
+                 engine which were dropped because they could not be
+                 decrypted.
+                "
+    ::= { usmStats 6 }
+
+-- The usmUser Group ************************************************
+
+usmUser          OBJECT IDENTIFIER ::= { usmMIBObjects 2 }
+
+usmUserSpinLock  OBJECT-TYPE
+    SYNTAX       TestAndIncr
+    MAX-ACCESS   read-write
+    STATUS       current
+    DESCRIPTION "An advisory lock used to allow several cooperating
+                 Command Generator Applications to coordinate their
+                 use of facilities to alter secrets in the
+                 usmUserTable.
+                "
+    ::= { usmUser 1 }
+
+-- The table of valid users for the User-based Security Model ********
+
+usmUserTable     OBJECT-TYPE
+    SYNTAX       SEQUENCE OF UsmUserEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "The table of users configured in the SNMP engine's
+                 Local Configuration Datastore (LCD).
+
+                 To create a new user (i.e., to instantiate a new
+                 conceptual row in this table), it is recommended to
+                 follow this procedure:
+
+                   1)  GET(usmUserSpinLock.0) and save in sValue.
+
+                   2)  SET(usmUserSpinLock.0=sValue,
+                           usmUserCloneFrom=templateUser,
+                           usmUserStatus=createAndWait)
+                       You should use a template user to clone from
+                       which has the proper auth/priv protocol defined.
+
+                 If the new user is to use privacy:
+
+                   3)  generate the keyChange value based on the secret
+                       privKey of the clone-from user and the secret key
+                       to be used for the new user. Let us call this
+                       pkcValue.
+                   4)  GET(usmUserSpinLock.0) and save in sValue.
+                   5)  SET(usmUserSpinLock.0=sValue,
+                           usmUserPrivKeyChange=pkcValue
+                           usmUserPublic=randomValue1)
+                   6)  GET(usmUserPulic) and check it has randomValue1.
+                       If not, repeat steps 4-6.
+
+                 If the new user will never use privacy:
+
+                   7)  SET(usmUserPrivProtocol=usmNoPrivProtocol)
+
+                 If the new user is to use authentication:
+
+                   8)  generate the keyChange value based on the secret
+                       authKey of the clone-from user and the secret key
+                       to be used for the new user. Let us call this
+                       akcValue.
+                   9)  GET(usmUserSpinLock.0) and save in sValue.
+                   10) SET(usmUserSpinLock.0=sValue,
+                           usmUserAuthKeyChange=akcValue
+                           usmUserPublic=randomValue2)
+                   11) GET(usmUserPulic) and check it has randomValue2.
+                       If not, repeat steps 9-11.
+
+                 If the new user will never use authentication:
+
+                   12) SET(usmUserAuthProtocol=usmNoAuthProtocol)
+
+                 Finally, activate the new user:
+
+                   13) SET(usmUserStatus=active)
+
+                 The new user should now be available and ready to be
+                 used for SNMPv3 communication. Note however that access
+                 to MIB data must be provided via configuration of the
+                 SNMP-VIEW-BASED-ACM-MIB.
+
+                 The use of usmUserSpinlock is to avoid conflicts with
+                 another SNMP command generator application which may
+                 also be acting on the usmUserTable.
+                "
+    ::= { usmUser 2 }
+
+usmUserEntry     OBJECT-TYPE
+    SYNTAX       UsmUserEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "A user configured in the SNMP engine's Local
+                 Configuration Datastore (LCD) for the User-based
+                 Security Model.
+                "
+    INDEX       { usmUserEngineID,
+                  usmUserName
+                }
+    ::= { usmUserTable 1 }
+
+UsmUserEntry ::= SEQUENCE
+    {
+        usmUserEngineID         SnmpEngineID,
+        usmUserName             SnmpAdminString,
+        usmUserSecurityName     SnmpAdminString,
+        usmUserCloneFrom        RowPointer,
+        usmUserAuthProtocol     AutonomousType,
+        usmUserAuthKeyChange    KeyChange,
+        usmUserOwnAuthKeyChange KeyChange,
+        usmUserPrivProtocol     AutonomousType,
+        usmUserPrivKeyChange    KeyChange,
+        usmUserOwnPrivKeyChange KeyChange,
+        usmUserPublic           OCTET STRING,
+        usmUserStorageType      StorageType,
+        usmUserStatus           RowStatus
+    }
+
+usmUserEngineID  OBJECT-TYPE
+    SYNTAX       SnmpEngineID
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "An SNMP engine's administratively-unique identifier.
+
+                 In a simple agent, this value is always that agent's
+                 own snmpEngineID value.
+
+                 The value can also take the value of the snmpEngineID
+                 of a remote SNMP engine with which this user can
+                 communicate.
+                "
+    ::= { usmUserEntry 1 }
+
+usmUserName      OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(1..32))
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "A human readable string representing the name of
+                 the user.
+
+                 This is the (User-based Security) Model dependent
+                 security ID.
+                "
+    ::= { usmUserEntry 2 }
+
+usmUserSecurityName OBJECT-TYPE
+    SYNTAX       SnmpAdminString
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "A human readable string representing the user in
+                 Security Model independent format.
+
+                 The default transformation of the User-based Security
+                 Model dependent security ID to the securityName and
+                 vice versa is the identity function so that the
+                 securityName is the same as the userName.
+                "
+    ::= { usmUserEntry 3 }
+
+usmUserCloneFrom OBJECT-TYPE
+    SYNTAX       RowPointer
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "A pointer to another conceptual row in this
+                 usmUserTable.  The user in this other conceptual
+                 row is called the clone-from user.
+
+                 When a new user is created (i.e., a new conceptual
+                 row is instantiated in this table), the privacy and
+                 authentication parameters of the new user must be
+                 cloned from its clone-from user. These parameters are:
+                   - authentication protocol (usmUserAuthProtocol)
+                   - privacy protocol (usmUserPrivProtocol)
+                 They will be copied regardless of what the current
+                 value is.
+
+                 Cloning also causes the initial values of the secret
+                 authentication key (authKey) and the secret encryption
+
+                 key (privKey) of the new user to be set to the same
+                 values as the corresponding secrets of the clone-from
+                 user to allow the KeyChange process to occur as
+                 required during user creation.
+
+                 The first time an instance of this object is set by
+                 a management operation (either at or after its
+                 instantiation), the cloning process is invoked.
+                 Subsequent writes are successful but invoke no
+                 action to be taken by the receiver.
+                 The cloning process fails with an 'inconsistentName'
+                 error if the conceptual row representing the
+                 clone-from user does not exist or is not in an active
+                 state when the cloning process is invoked.
+
+                 When this object is read, the ZeroDotZero OID
+                 is returned.
+                "
+    ::= { usmUserEntry 4 }
+
+usmUserAuthProtocol OBJECT-TYPE
+    SYNTAX       AutonomousType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "An indication of whether messages sent on behalf of
+                 this user to/from the SNMP engine identified by
+                 usmUserEngineID, can be authenticated, and if so,
+                 the type of authentication protocol which is used.
+
+                 An instance of this object is created concurrently
+                 with the creation of any other object instance for
+                 the same user (i.e., as part of the processing of
+                 the set operation which creates the first object
+                 instance in the same conceptual row).
+
+                 If an initial set operation (i.e. at row creation time)
+                 tries to set a value for an unknown or unsupported
+                 protocol, then a 'wrongValue' error must be returned.
+
+                 The value will be overwritten/set when a set operation
+                 is performed on the corresponding instance of
+                 usmUserCloneFrom.
+
+                 Once instantiated, the value of such an instance of
+                 this object can only be changed via a set operation to
+                 the value of the usmNoAuthProtocol.
+
+                 If a set operation tries to change the value of an
+
+                 existing instance of this object to any value other
+                 than usmNoAuthProtocol, then an 'inconsistentValue'
+                 error must be returned.
+
+                 If a set operation tries to set the value to the
+                 usmNoAuthProtocol while the usmUserPrivProtocol value
+                 in the same row is not equal to usmNoPrivProtocol,
+                 then an 'inconsistentValue' error must be returned.
+                 That means that an SNMP command generator application
+                 must first ensure that the usmUserPrivProtocol is set
+                 to the usmNoPrivProtocol value before it can set
+                 the usmUserAuthProtocol value to usmNoAuthProtocol.
+                "
+    DEFVAL      { usmNoAuthProtocol }
+    ::= { usmUserEntry 5 }
+
+usmUserAuthKeyChange OBJECT-TYPE
+    SYNTAX       KeyChange   -- typically (SIZE (0 | 32)) for HMACMD5
+                             -- typically (SIZE (0 | 40)) for HMACSHA
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "An object, which when modified, causes the secret
+                 authentication key used for messages sent on behalf
+                 of this user to/from the SNMP engine identified by
+                 usmUserEngineID, to be modified via a one-way
+                 function.
+
+                 The associated protocol is the usmUserAuthProtocol.
+                 The associated secret key is the user's secret
+                 authentication key (authKey). The associated hash
+                 algorithm is the algorithm used by the user's
+                 usmUserAuthProtocol.
+
+                 When creating a new user, it is an 'inconsistentName'
+                 error for a set operation to refer to this object
+                 unless it is previously or concurrently initialized
+                 through a set operation on the corresponding instance
+                 of usmUserCloneFrom.
+
+                 When the value of the corresponding usmUserAuthProtocol
+                 is usmNoAuthProtocol, then a set is successful, but
+                 effectively is a no-op.
+
+                 When this object is read, the zero-length (empty)
+                 string is returned.
+
+                 The recommended way to do a key change is as follows:
+
+                   1) GET(usmUserSpinLock.0) and save in sValue.
+                   2) generate the keyChange value based on the old
+                      (existing) secret key and the new secret key,
+                      let us call this kcValue.
+
+                 If you do the key change on behalf of another user:
+
+                   3) SET(usmUserSpinLock.0=sValue,
+                          usmUserAuthKeyChange=kcValue
+                          usmUserPublic=randomValue)
+
+                 If you do the key change for yourself:
+
+                   4) SET(usmUserSpinLock.0=sValue,
+                          usmUserOwnAuthKeyChange=kcValue
+                          usmUserPublic=randomValue)
+
+                 If you get a response with error-status of noError,
+                 then the SET succeeded and the new key is active.
+                 If you do not get a response, then you can issue a
+                 GET(usmUserPublic) and check if the value is equal
+                 to the randomValue you did send in the SET. If so, then
+                 the key change succeeded and the new key is active
+                 (probably the response got lost). If not, then the SET
+                 request probably never reached the target and so you
+                 can start over with the procedure above.
+                "
+    DEFVAL      { ''H }    -- the empty string
+    ::= { usmUserEntry 6 }
+
+usmUserOwnAuthKeyChange OBJECT-TYPE
+    SYNTAX       KeyChange   -- typically (SIZE (0 | 32)) for HMACMD5
+                             -- typically (SIZE (0 | 40)) for HMACSHA
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "Behaves exactly as usmUserAuthKeyChange, with one
+                 notable difference: in order for the set operation
+                 to succeed, the usmUserName of the operation
+                 requester must match the usmUserName that
+                 indexes the row which is targeted by this
+                 operation.
+                 In addition, the USM security model must be
+                 used for this operation.
+
+                 The idea here is that access to this column can be
+                 public, since it will only allow a user to change
+                 his own secret authentication key (authKey).
+                 Note that this can only be done once the row is active.
+
+                 When a set is received and the usmUserName of the
+                 requester is not the same as the umsUserName that
+                 indexes the row which is targeted by this operation,
+                 then a 'noAccess' error must be returned.
+
+                 When a set is received and the security model in use
+                 is not USM, then a 'noAccess' error must be returned.
+                "
+    DEFVAL      { ''H }    -- the empty string
+    ::= { usmUserEntry 7 }
+
+usmUserPrivProtocol OBJECT-TYPE
+    SYNTAX       AutonomousType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "An indication of whether messages sent on behalf of
+                 this user to/from the SNMP engine identified by
+                 usmUserEngineID, can be protected from disclosure,
+                 and if so, the type of privacy protocol which is used.
+
+                 An instance of this object is created concurrently
+                 with the creation of any other object instance for
+                 the same user (i.e., as part of the processing of
+                 the set operation which creates the first object
+                 instance in the same conceptual row).
+
+                 If an initial set operation (i.e. at row creation time)
+                 tries to set a value for an unknown or unsupported
+                 protocol, then a 'wrongValue' error must be returned.
+
+                 The value will be overwritten/set when a set operation
+                 is performed on the corresponding instance of
+                 usmUserCloneFrom.
+
+                 Once instantiated, the value of such an instance of
+                 this object can only be changed via a set operation to
+                 the value of the usmNoPrivProtocol.
+
+                 If a set operation tries to change the value of an
+                 existing instance of this object to any value other
+                 than usmNoPrivProtocol, then an 'inconsistentValue'
+                 error must be returned.
+
+                 Note that if any privacy protocol is used, then you
+                 must also use an authentication protocol. In other
+                 words, if usmUserPrivProtocol is set to anything else
+                 than usmNoPrivProtocol, then the corresponding instance
+                 of usmUserAuthProtocol cannot have a value of
+
+                 usmNoAuthProtocol. If it does, then an
+                 'inconsistentValue' error must be returned.
+                "
+    DEFVAL      { usmNoPrivProtocol }
+    ::= { usmUserEntry 8 }
+
+usmUserPrivKeyChange OBJECT-TYPE
+    SYNTAX       KeyChange  -- typically (SIZE (0 | 32)) for DES
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "An object, which when modified, causes the secret
+                 encryption key used for messages sent on behalf
+                 of this user to/from the SNMP engine identified by
+                 usmUserEngineID, to be modified via a one-way
+                 function.
+
+                 The associated protocol is the usmUserPrivProtocol.
+                 The associated secret key is the user's secret
+                 privacy key (privKey). The associated hash
+                 algorithm is the algorithm used by the user's
+                 usmUserAuthProtocol.
+
+                 When creating a new user, it is an 'inconsistentName'
+                 error for a set operation to refer to this object
+                 unless it is previously or concurrently initialized
+                 through a set operation on the corresponding instance
+                 of usmUserCloneFrom.
+
+                 When the value of the corresponding usmUserPrivProtocol
+                 is usmNoPrivProtocol, then a set is successful, but
+                 effectively is a no-op.
+
+                 When this object is read, the zero-length (empty)
+                 string is returned.
+                 See the description clause of usmUserAuthKeyChange for
+                 a recommended procedure to do a key change.
+                "
+    DEFVAL      { ''H }    -- the empty string
+    ::= { usmUserEntry 9 }
+
+usmUserOwnPrivKeyChange OBJECT-TYPE
+    SYNTAX       KeyChange  -- typically (SIZE (0 | 32)) for DES
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "Behaves exactly as usmUserPrivKeyChange, with one
+                 notable difference: in order for the Set operation
+                 to succeed, the usmUserName of the operation
+                 requester must match the usmUserName that indexes
+
+                 the row which is targeted by this operation.
+                 In addition, the USM security model must be
+                 used for this operation.
+
+                 The idea here is that access to this column can be
+                 public, since it will only allow a user to change
+                 his own secret privacy key (privKey).
+                 Note that this can only be done once the row is active.
+
+                 When a set is received and the usmUserName of the
+                 requester is not the same as the umsUserName that
+                 indexes the row which is targeted by this operation,
+                 then a 'noAccess' error must be returned.
+
+                 When a set is received and the security model in use
+                 is not USM, then a 'noAccess' error must be returned.
+                "
+    DEFVAL      { ''H }    -- the empty string
+    ::= { usmUserEntry 10 }
+
+usmUserPublic    OBJECT-TYPE
+    SYNTAX       OCTET STRING (SIZE(0..32))
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "A publicly-readable value which can be written as part
+                 of the procedure for changing a user's secret
+                 authentication and/or privacy key, and later read to
+                 determine whether the change of the secret was
+                 effected.
+                "
+    DEFVAL      { ''H }  -- the empty string
+    ::= { usmUserEntry 11 }
+
+usmUserStorageType OBJECT-TYPE
+    SYNTAX       StorageType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The storage type for this conceptual row.
+
+                 Conceptual rows having the value 'permanent' must
+                 allow write-access at a minimum to:
+
+                 - usmUserAuthKeyChange, usmUserOwnAuthKeyChange
+                   and usmUserPublic for a user who employs
+                   authentication, and
+                 - usmUserPrivKeyChange, usmUserOwnPrivKeyChange
+                   and usmUserPublic for a user who employs
+                   privacy.
+
+                 Note that any user who employs authentication or
+                 privacy must allow its secret(s) to be updated and
+                 thus cannot be 'readOnly'.
+
+                 If an initial set operation tries to set the value to
+                 'readOnly' for a user who employs authentication or
+                 privacy, then an 'inconsistentValue' error must be
+                 returned.  Note that if the value has been previously
+                 set (implicit or explicit) to any value, then the rules
+                 as defined in the StorageType Textual Convention apply.
+
+                 It is an implementation issue to decide if a SET for
+                 a readOnly or permanent row is accepted at all. In some
+                 contexts this may make sense, in others it may not. If
+                 a SET for a readOnly or permanent row is not accepted
+                 at all, then a 'wrongValue' error must be returned.
+                "
+    DEFVAL      { nonVolatile }
+    ::= { usmUserEntry 12 }
+
+usmUserStatus    OBJECT-TYPE
+    SYNTAX       RowStatus
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The status of this conceptual row.
+
+                 Until instances of all corresponding columns are
+                 appropriately configured, the value of the
+                 corresponding instance of the usmUserStatus column
+                 is 'notReady'.
+
+                 In particular, a newly created row for a user who
+                 employs authentication, cannot be made active until the
+                 corresponding usmUserCloneFrom and usmUserAuthKeyChange
+                 have been set.
+
+                 Further, a newly created row for a user who also
+                 employs privacy, cannot be made active until the
+                 usmUserPrivKeyChange has been set.
+
+                 The RowStatus TC [RFC2579] requires that this
+                 DESCRIPTION clause states under which circumstances
+                 other objects in this row can be modified:
+
+                 The value of this object has no effect on whether
+                 other objects in this conceptual row can be modified,
+                 except for usmUserOwnAuthKeyChange and
+                 usmUserOwnPrivKeyChange. For these 2 objects, the
+
+                 value of usmUserStatus MUST be active.
+                "
+    ::= { usmUserEntry 13 }
+
+-- Conformance Information *******************************************
+
+usmMIBCompliances OBJECT IDENTIFIER ::= { usmMIBConformance 1 }
+usmMIBGroups      OBJECT IDENTIFIER ::= { usmMIBConformance 2 }
+
+-- Compliance statements
+
+usmMIBCompliance MODULE-COMPLIANCE
+    STATUS       current
+    DESCRIPTION "The compliance statement for SNMP engines which
+                 implement the SNMP-USER-BASED-SM-MIB.
+                "
+
+    MODULE       -- this module
+        MANDATORY-GROUPS { usmMIBBasicGroup }
+
+        OBJECT           usmUserAuthProtocol
+        MIN-ACCESS       read-only
+        DESCRIPTION     "Write access is not required."
+
+        OBJECT           usmUserPrivProtocol
+        MIN-ACCESS       read-only
+        DESCRIPTION     "Write access is not required."
+    ::= { usmMIBCompliances 1 }
+
+-- Units of compliance
+usmMIBBasicGroup OBJECT-GROUP
+    OBJECTS     {
+                  usmStatsUnsupportedSecLevels,
+                  usmStatsNotInTimeWindows,
+                  usmStatsUnknownUserNames,
+                  usmStatsUnknownEngineIDs,
+                  usmStatsWrongDigests,
+                  usmStatsDecryptionErrors,
+                  usmUserSpinLock,
+                  usmUserSecurityName,
+                  usmUserCloneFrom,
+                  usmUserAuthProtocol,
+                  usmUserAuthKeyChange,
+                  usmUserOwnAuthKeyChange,
+                  usmUserPrivProtocol,
+                  usmUserPrivKeyChange,
+                  usmUserOwnPrivKeyChange,
+                  usmUserPublic,
+                  usmUserStorageType,
+                  usmUserStatus
+                }
+    STATUS       current
+    DESCRIPTION "A collection of objects providing for configuration
+                 of an SNMP engine which implements the SNMP
+                 User-based Security Model.
+                "
+    ::= { usmMIBGroups 1 }
+
+END

Added: trunk/mibs/SNMP-USM-AES-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/SNMP-USM-AES-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,62 @@
+SNMP-USM-AES-MIB DEFINITIONS ::= BEGIN
+    IMPORTS
+        MODULE-IDENTITY, OBJECT-IDENTITY,
+        snmpModules             FROM SNMPv2-SMI          -- [RFC2578]
+        snmpPrivProtocols       FROM SNMP-FRAMEWORK-MIB; -- [RFC3411]
+
+snmpUsmAesMIB  MODULE-IDENTITY
+    LAST-UPDATED "200406140000Z"
+    ORGANIZATION "IETF"
+    CONTACT-INFO "Uri Blumenthal
+                  Lucent Technologies / Bell Labs
+                  67 Whippany Rd.
+                  14D-318
+                  Whippany, NJ  07981, USA
+                  973-386-2163
+                  uri at bell-labs.com
+
+                  Fabio Maino
+                  Andiamo Systems, Inc.
+                  375 East Tasman Drive
+                  San Jose, CA  95134, USA
+                  408-853-7530
+                  fmaino at andiamo.com
+
+                  Keith McCloghrie
+                  Cisco Systems, Inc.
+                  170 West Tasman Drive
+                  San Jose, CA  95134-1706, USA
+
+                  408-526-5260
+                  kzm at cisco.com"
+    DESCRIPTION  "Definitions of Object Identities needed for
+                  the use of AES by SNMP's User-based Security
+                  Model.
+
+                  Copyright (C) The Internet Society (2004).
+
+            This version of this MIB module is part of RFC 3826;
+            see the RFC itself for full legal notices.
+            Supplementary information may be available on
+            http://www.ietf.org/copyrights/ianamib.html."
+    REVISION     "200406140000Z"
+    DESCRIPTION  "Initial version, published as RFC3826"
+
+    ::= { snmpModules 20 }
+
+usmAesCfb128Protocol OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "The CFB128-AES-128 Privacy Protocol."
+    REFERENCE    "- Specification for the ADVANCED ENCRYPTION
+                    STANDARD. Federal Information Processing
+                    Standard (FIPS) Publication 197.
+                    (November 2001).
+
+                  - Dworkin, M., NIST Recommendation for Block
+                    Cipher Modes of Operation, Methods and
+                    Techniques. NIST Special Publication 800-38A
+                    (December 2001).
+                 "
+    ::= { snmpPrivProtocols 4 }
+
+END

Added: trunk/mibs/SNMP-USM-DH-OBJECTS-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/SNMP-USM-DH-OBJECTS-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,537 @@
+SNMP-USM-DH-OBJECTS-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE,
+    -- OBJECT-IDENTITY,
+    experimental, Integer32
+        FROM SNMPv2-SMI
+    TEXTUAL-CONVENTION
+        FROM SNMPv2-TC
+    MODULE-COMPLIANCE, OBJECT-GROUP
+        FROM SNMPv2-CONF
+    usmUserEntry
+        FROM SNMP-USER-BASED-SM-MIB
+    SnmpAdminString
+        FROM SNMP-FRAMEWORK-MIB;
+
+snmpUsmDHObjectsMIB MODULE-IDENTITY
+    LAST-UPDATED "200003060000Z"  -- 6 March 2000, Midnight
+    ORGANIZATION "Excite at Home"
+    CONTACT-INFO "Author: Mike StJohns
+                  Postal: Excite at Home
+                          450 Broadway
+                          Redwood City, CA 94063
+                  Email:  stjohns at corp.home.net
+                  Phone:  +1-650-556-5368"
+
+    DESCRIPTION
+        "The management information definitions for providing forward
+    secrecy for key changes for the usmUserTable, and for providing a
+    method for 'kickstarting' access to the agent via a Diffie-Helman
+    key agreement."
+
+    REVISION     "200003060000Z"
+    DESCRIPTION
+       "Initial version published as RFC 2786."
+
+
+    ::= { experimental 101 }  -- IANA DHKEY-CHANGE 101
+
+-- Administrative assignments
+
+usmDHKeyObjects OBJECT IDENTIFIER ::= { snmpUsmDHObjectsMIB 1 }
+usmDHKeyConformance OBJECT IDENTIFIER ::= { snmpUsmDHObjectsMIB 2 }
+
+-- Textual conventions
+
+DHKeyChange ::=         TEXTUAL-CONVENTION
+    STATUS              current
+    DESCRIPTION
+        "Upon initialization, or upon creation of a row containing an
+    object of this type, and after any successful SET of this value, a
+    GET of this value returns 'y' where y = g^xa MOD p, and where g is
+    the base from usmDHParameters, p is the prime from
+    usmDHParameters, and xa is a new random integer selected by the
+    agent in the interval 2^(l-1) <= xa < 2^l < p-1.  'l' is the
+    optional privateValueLength from usmDHParameters in bits.  If 'l'
+    is omitted, then xa (and xr below) is selected in the interval 0
+    <= xa < p-1.  y is expressed as an OCTET STRING 'PV' of length 'k'
+    which satisfies
+
+              k
+        y =  SUM   2^(8(k-i)) PV'i
+             i=1
+
+        where PV1,...,PVk are the octets of PV from first to last, and
+        where PV1 <> 0.
+
+    A successful SET consists of the value 'y' expressed as an OCTET
+    STRING as above concatenated with the value 'z'(expressed as an
+    OCTET STRING in the same manner as y) where z = g^xr MOD p, where
+    g, p and l are as above, and where xr is a new random integer
+    selected by the manager in the interval 2^(l-1) <= xr < 2^l <
+    p-1. A SET to an object of this type will fail with the error
+    wrongValue if the current 'y' does not match the 'y' portion of
+    the value of the varbind for the object. (E.g. GET yout, SET
+    concat(yin, z), yout <> yin).
+
+    Note that the private values xa and xr are never transmitted from
+    manager to device or vice versa, only the values y and z.
+    Obviously, these values must be retained until a successful SET on
+    the associated object.
+
+    The shared secret 'sk' is calculated at the agent as sk = z^xa MOD
+    p, and at the manager as sk = y^xr MOD p.
+
+    Each object definition of this type MUST describe how to map from
+    the shared secret 'sk' to the operational key value used by the
+    protocols and operations related to the object.  In general, if n
+    bits of key are required, the author suggests using the n
+    right-most bits of the shared secret as the operational key value."
+    REFERENCE
+        "-- Diffie-Hellman Key-Agreement Standard, PKCS #3;
+            RSA Laboratories, November 1993"
+    SYNTAX              OCTET STRING
+
+-- Diffie Hellman public values
+
+usmDHPublicObjects      OBJECT IDENTIFIER ::= { usmDHKeyObjects 1 }
+
+usmDHParameters OBJECT-TYPE
+    SYNTAX  OCTET STRING
+    MAX-ACCESS read-write
+    STATUS  current
+    DESCRIPTION
+        "The public Diffie-Hellman parameters for doing a Diffie-Hellman
+    key agreement for this device.  This is encoded as an ASN.1
+    DHParameter per PKCS #3, section 9.  E.g.
+
+        DHParameter ::= SEQUENCE {
+           prime   INTEGER,   -- p
+           base    INTEGER,   -- g
+           privateValueLength  INTEGER OPTIONAL }
+
+
+    Implementors are encouraged to use either the values from
+    Oakley Group 1  or the values of from Oakley Group 2 as specified
+    in RFC-2409, The Internet Key Exchange, Section 6.1, 6.2 as the
+    default for this object.  Other values may be used, but the
+    security properties of those values MUST be well understood and
+    MUST meet the requirements of PKCS #3 for the selection of
+    Diffie-Hellman primes.
+
+        In addition, any time usmDHParameters changes, all values of
+    type DHKeyChange will change and new random numbers MUST be
+    generated by the agent for each DHKeyChange object."
+    REFERENCE
+        "-- Diffie-Hellman Key-Agreement Standard, PKCS #3,
+            RSA Laboratories, November 1993
+         -- The Internet Key Exchange, RFC 2409, November 1998,
+            Sec 6.1, 6.2"
+    ::= { usmDHPublicObjects 1 }
+
+usmDHUserKeyTable OBJECT-TYPE
+    SYNTAX  SEQUENCE OF UsmDHUserKeyEntry
+    MAX-ACCESS not-accessible
+    STATUS  current
+    DESCRIPTION
+        "This table augments and extends the usmUserTable and provides
+    4 objects which exactly mirror the objects in that table with the
+    textual convention of 'KeyChange'.  This extension allows key
+    changes to be done in a manner where the knowledge of the current
+    secret plus knowledge of the key change data exchanges (e.g. via
+    wiretapping)  will not reveal the new key."
+    ::= { usmDHPublicObjects 2 }
+
+usmDHUserKeyEntry OBJECT-TYPE
+    SYNTAX  UsmDHUserKeyEntry
+    MAX-ACCESS not-accessible
+    STATUS  current
+    DESCRIPTION
+        "A row of DHKeyChange objects which augment or replace the
+    functionality of the KeyChange objects in the base table row."
+    AUGMENTS { usmUserEntry }
+    ::= {usmDHUserKeyTable 1 }
+
+UsmDHUserKeyEntry ::= SEQUENCE {
+        usmDHUserAuthKeyChange          DHKeyChange,
+    usmDHUserOwnAuthKeyChange   DHKeyChange,
+        usmDHUserPrivKeyChange          DHKeyChange,
+        usmDHUserOwnPrivKeyChange       DHKeyChange
+        }
+
+usmDHUserAuthKeyChange OBJECT-TYPE
+    SYNTAX  DHKeyChange
+    MAX-ACCESS read-create
+    STATUS  current
+    DESCRIPTION
+        "The object used to change any given user's Authentication Key
+    using a Diffie-Hellman key exchange.
+
+    The right-most n bits of the shared secret 'sk', where 'n' is the
+    number of bits required for the protocol defined by
+    usmUserAuthProtocol, are installed as the operational
+    authentication key for this row after a successful SET."
+    ::= { usmDHUserKeyEntry 1 }
+
+usmDHUserOwnAuthKeyChange OBJECT-TYPE
+    SYNTAX  DHKeyChange
+    MAX-ACCESS read-create
+    STATUS  current
+    DESCRIPTION
+        "The object used to change the agents own Authentication Key
+    using a Diffie-Hellman key exchange.
+
+    The right-most n bits of the shared secret 'sk', where 'n' is the
+    number of bits required for the protocol defined by
+    usmUserAuthProtocol, are installed as the operational
+    authentication key for this row after a successful SET."
+    ::= { usmDHUserKeyEntry 2 }
+
+usmDHUserPrivKeyChange OBJECT-TYPE
+    SYNTAX  DHKeyChange
+    MAX-ACCESS read-create
+    STATUS  current
+    DESCRIPTION
+        "The object used to change any given user's Privacy Key using
+    a Diffie-Hellman key exchange.
+
+    The right-most n bits of the shared secret 'sk', where 'n' is the
+    number of bits required for the protocol defined by
+    usmUserPrivProtocol, are installed as the operational privacy key
+    for this row after a successful SET."
+    ::= { usmDHUserKeyEntry 3 }
+
+usmDHUserOwnPrivKeyChange OBJECT-TYPE
+    SYNTAX  DHKeyChange
+    MAX-ACCESS read-create
+    STATUS  current
+    DESCRIPTION
+        "The object used to change the agent's own Privacy Key using a
+    Diffie-Hellman key exchange.
+
+    The right-most n bits of the shared secret 'sk', where 'n' is the
+    number of bits required for the protocol defined by
+    usmUserPrivProtocol, are installed as the operational privacy key
+    for this row after a successful SET."
+    ::= { usmDHUserKeyEntry 4 }
+
+usmDHKickstartGroup OBJECT IDENTIFIER ::= { usmDHKeyObjects 2 }
+
+usmDHKickstartTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF UsmDHKickstartEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A table of mappings between zero or more Diffie-Helman key
+    agreement values and entries in the usmUserTable.  Entries in this
+    table are created by providing the associated device with a
+    Diffie-Helman public value and a usmUserName/usmUserSecurityName
+    pair during initialization. How these values are provided is
+    outside the scope of this MIB, but could be provided manually, or
+    through a configuration file.  Valid public value/name pairs
+    result in the creation of a row in this table as well as the
+    creation of an associated row (with keys derived as indicated) in
+    the usmUserTable.  The actual access the related usmSecurityName
+    has is dependent on the entries in the VACM tables.  In general,
+    an implementor will specify one or more standard security names
+    and will provide entries in the VACM tables granting various
+    levels of access to those names.  The actual content of the VACM
+    table is beyond the scope of this MIB.
+
+    Note: This table is expected to be readable without authentication
+    using the usmUserSecurityName 'dhKickstart'.  See the conformance
+    statements for details."
+    ::= { usmDHKickstartGroup 1 }
+
+usmDHKickstartEntry OBJECT-TYPE
+    SYNTAX      UsmDHKickstartEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+
+        "An entry in the usmDHKickstartTable.  The agent SHOULD either
+    delete this entry or mark it as inactive upon a successful SET of
+    any of the KeyChange-typed objects in the usmUserEntry or upon a
+    successful SET of any of the DHKeyChange-typed objects in the
+    usmDhKeyChangeEntry where the related usmSecurityName (e.g. row of
+    usmUserTable or row of ushDhKeyChangeTable) equals this entry's
+    usmDhKickstartSecurityName.  In otherwords, once you've changed
+    one or more of the keys for a row in usmUserTable with a
+    particular security name, the row in this table with that same
+    security name is no longer useful or meaningful."
+
+    INDEX   { usmDHKickstartIndex }
+    ::= {usmDHKickstartTable 1 }
+
+UsmDHKickstartEntry ::= SEQUENCE  {
+        usmDHKickstartIndex     Integer32,
+        usmDHKickstartMyPublic  OCTET STRING,
+        usmDHKickstartMgrPublic OCTET STRING,
+        usmDHKickstartSecurityName      SnmpAdminString
+        }
+
+usmDHKickstartIndex OBJECT-TYPE
+    SYNTAX      Integer32  (1..2147483647)
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "Index value for this row."
+    ::= { usmDHKickstartEntry 1 }
+
+usmDHKickstartMyPublic OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The agent's Diffie-Hellman public value for this row.  At
+    initialization, the agent generates a random number and derives
+    its public value from that number.  This public value is published
+    here.  This public value 'y' equals g^r MOD p where g is the from
+    the set of Diffie-Hellman parameters, p is the prime from those
+    parameters, and r is a random integer selected by the agent in the
+    interval 2^(l-1) <= r < p-1 < 2^l.  If l is unspecified, then r is
+    a random integer selected in the interval 0 <= r < p-1
+
+    The public value is expressed as an OCTET STRING 'PV' of length
+    'k' which satisfies
+
+              k
+        y =  SUM   2^(8(k-i)) PV'i
+             i = 1
+
+        where PV1,...,PVk are the octets of PV from first to last, and
+        where PV1 != 0.
+
+
+    The following DH parameters (Oakley group #2, RFC 2409, sec 6.1,
+    6.2) are used for this object:
+
+    g = 2
+    p = FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
+        29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
+        EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
+        E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
+        EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381
+        FFFFFFFF FFFFFFFF
+    l=1024
+    "
+    REFERENCE
+        "-- Diffie-Hellman Key-Agreement Standard, PKCS#3v1.4;
+            RSA Laboratories, November 1993
+         -- The Internet Key Exchange, RFC2409;
+            Harkins, D., Carrel, D.; November 1998"
+    ::= { usmDHKickstartEntry 2 }
+
+usmDHKickstartMgrPublic OBJECT-TYPE
+    SYNTAX      OCTET STRING
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+
+        "The manager's Diffie-Hellman public value for this row.  Note
+    that this value is not set via the SNMP agent, but may be set via
+    some out of band method, such as the device's configuration file.
+    The manager calculates this value in the same manner and using the
+    same parameter set as the agent does.  E.g. it selects a random
+    number 'r', calculates y = g^r mod p and provides 'y' as the
+    public number expressed as an OCTET STRING.  See
+    usmDHKickstartMyPublic for details.
+
+    When this object is set with a valid value during initialization,
+    a row is created in the usmUserTable with the following values:
+
+    usmUserEngineID             localEngineID
+    usmUserName                 [value of usmDHKickstartSecurityName]
+    usmUserSecurityName         [value of usmDHKickstartSecurityName]
+    usmUserCloneFrom            ZeroDotZero
+    usmUserAuthProtocol         usmHMACMD5AuthProtocol
+    usmUserAuthKeyChange        -- derived from set value
+    usmUserOwnAuthKeyChange     -- derived from set value
+    usmUserPrivProtocol         usmDESPrivProtocol
+    usmUserPrivKeyChange        -- derived from set value
+    usmUserOwnPrivKeyChange     -- derived from set value
+    usmUserPublic               ''
+    usmUserStorageType          permanent
+    usmUserStatus               active
+
+    A shared secret 'sk' is calculated at the agent as sk =
+    mgrPublic^r mod p where r is the agents random number and p is the
+    DH prime from the common parameters.  The underlying privacy key
+    for this row is derived from sk by applying the key derivation
+    function PBKDF2 defined in PKCS#5v2.0 with a salt of 0xd1310ba6,
+    and iterationCount of 500, a keyLength of 16 (for
+    usmDESPrivProtocol), and a prf (pseudo random function) of
+    'id-hmacWithSHA1'.  The underlying authentication key for this row
+    is derived from sk by applying the key derivation function PBKDF2
+    with a salt of 0x98dfb5ac , an interation count of 500, a
+    keyLength of 16 (for usmHMAC5AuthProtocol), and a prf of
+    'id-hmacWithSHA1'.  Note: The salts are the first two words in the
+    ks0 [key schedule 0] of the BLOWFISH cipher from 'Applied
+    Cryptography' by Bruce Schnier - they could be any relatively
+    random string of bits.
+
+    The manager can use its knowledge of its own random number and the
+    agent's public value to kickstart its access to the agent in a
+    secure manner.  Note that the security of this approach is
+    directly related to the strength of the authorization security of
+    the out of band provisioning of the managers public value
+    (e.g. the configuration file), but is not dependent at all on the
+    strength of the confidentiality of the out of band provisioning
+    data."
+    REFERENCE
+        "-- Password-Based Cryptography Standard, PKCS#5v2.0;
+            RSA Laboratories, March 1999
+         -- Applied Cryptography, 2nd Ed.; B. Schneier,
+            Counterpane Systems; John Wiley & Sons, 1996"
+    ::= { usmDHKickstartEntry 3 }
+
+usmDHKickstartSecurityName OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The usmUserName and usmUserSecurityName in the usmUserTable
+    associated with this row.  This is provided in the same manner and
+    at the same time as the usmDHKickstartMgrPublic value -
+    e.g. possibly manually, or via the device's configuration file."
+    ::= { usmDHKickstartEntry 4 }
+
+-- Conformance Information
+
+usmDHKeyMIBCompliances  OBJECT IDENTIFIER ::= { usmDHKeyConformance 1 }
+usmDHKeyMIBGroups       OBJECT IDENTIFIER ::= { usmDHKeyConformance 2 }
+
+-- Compliance statements
+
+usmDHKeyMIBCompliance   MODULE-COMPLIANCE
+    STATUS      current
+    DESCRIPTION
+        "The compliance statement for this module."
+    MODULE
+        GROUP usmDHKeyMIBBasicGroup
+        DESCRIPTION
+        "This group MAY be implemented by any agent which
+        implements the usmUserTable and which wishes to provide the
+        ability to change user and agent authentication and privacy
+        keys via Diffie-Hellman key exchanges."
+
+        GROUP usmDHKeyParamGroup
+        DESCRIPTION
+            "This group MUST be implemented by any agent which
+        implements a MIB containing the DHKeyChange Textual
+        Convention defined in this module."
+
+        GROUP usmDHKeyKickstartGroup
+        DESCRIPTION
+            "This group MAY be implemented by any agent which
+        implements the usmUserTable and which wishes the ability to
+        populate the USM table based on out-of-band provided DH
+        ignition values.
+             Any agent implementing this group is expected to provide
+        preinstalled entries in the vacm tables as follows:
+
+             In the usmUserTable: This entry allows access to the
+        system and dhKickstart groups
+
+        usmUserEngineID         localEngineID
+        usmUserName             'dhKickstart'
+        usmUserSecurityName     'dhKickstart'
+        usmUserCloneFrom        ZeroDotZero
+        usmUserAuthProtocol     none
+        usmUserAuthKeyChange    ''
+        usmUserOwnAuthKeyChange ''
+        usmUserPrivProtocol     none
+        usmUserPrivKeyChange    ''
+        usmUserOwnPrivKeyChange ''
+        usmUserPublic           ''
+        usmUserStorageType      permanent
+        usmUserStatus           active
+
+            In the vacmSecurityToGroupTable: This maps the initial
+        user into the accessible objects.
+
+        vacmSecurityModel               3 (USM)
+        vacmSecurityName                'dhKickstart'
+        vacmGroupName                   'dhKickstart'
+        vacmSecurityToGroupStorageType  permanent
+        vacmSecurityToGroupStatus       active
+
+            In the vacmAccessTable: Group name to view name translation.
+
+        vacmGroupName                   'dhKickstart'
+    vacmAccessContextPrefix             ''
+        vacmAccessSecurityModel         3 (USM)
+        vacmAccessSecurityLevel         noAuthNoPriv
+        vacmAccessContextMatch          exact
+        vacmAccessReadViewName          'dhKickRestricted'
+        vacmAccessWriteViewName         ''
+        vacmAccessNotifyViewName        'dhKickRestricted'
+        vacmAccessStorageType           permanent
+        vacmAccessStatus                active
+
+            In the vacmViewTreeFamilyTable: Two entries to allow the
+        initial entry to access the system and kickstart groups.
+
+        vacmViewTreeFamilyViewName      'dhKickRestricted'
+        vacmViewTreeFamilySubtree       1.3.6.1.2.1.1  (system)
+        vacmViewTreeFamilyMask          ''
+        vacmViewTreeFamilyType          1
+        vacmViewTreeFamilyStorageType   permanent
+        vacmViewTreeFamilyStatus        active
+
+        vacmViewTreeFamilyViewName      'dhKickRestricted'
+        vacmViewTreeFamilySubtree         (usmDHKickstartTable OID)
+        vacmViewTreeFamilyMask          ''
+        vacmViewTreeFamilyType          1
+        vacmViewTreeFamilyStorageType   permanent
+        vacmViewTreeFamilyStatus        active
+        "
+
+        OBJECT usmDHParameters
+        MIN-ACCESS      read-only
+        DESCRIPTION
+            "It is compliant to implement this object as read-only for
+        any device."
+
+    ::= { usmDHKeyMIBCompliances 1 }
+
+-- Units of Compliance
+
+usmDHKeyMIBBasicGroup OBJECT-GROUP
+    OBJECTS     {
+                  usmDHUserAuthKeyChange,
+                  usmDHUserOwnAuthKeyChange,
+                  usmDHUserPrivKeyChange,
+                  usmDHUserOwnPrivKeyChange
+                }
+    STATUS      current
+    DESCRIPTION
+        ""
+    ::= { usmDHKeyMIBGroups 1 }
+
+usmDHKeyParamGroup OBJECT-GROUP
+    OBJECTS     {
+                  usmDHParameters
+                }
+    STATUS      current
+    DESCRIPTION
+        "The mandatory object for all MIBs which use the DHKeyChange
+    textual convention."
+    ::= { usmDHKeyMIBGroups 2 }
+
+usmDHKeyKickstartGroup OBJECT-GROUP
+    OBJECTS     {
+                  usmDHKickstartMyPublic,
+                  usmDHKickstartMgrPublic,
+                  usmDHKickstartSecurityName
+                }
+    STATUS      current
+    DESCRIPTION
+        "The objects used for kickstarting one or more SNMPv3 USM
+    associations via a configuration file or other out of band,
+    non-confidential access."
+    ::= { usmDHKeyMIBGroups 3 }
+
+
+END

Added: trunk/mibs/SNMP-VIEW-BASED-ACM-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/SNMP-VIEW-BASED-ACM-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,830 @@
+SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF
+    MODULE-IDENTITY, OBJECT-TYPE,
+    snmpModules                           FROM SNMPv2-SMI
+    TestAndIncr,
+    RowStatus, StorageType                FROM SNMPv2-TC
+    SnmpAdminString,
+    SnmpSecurityLevel,
+    SnmpSecurityModel                     FROM SNMP-FRAMEWORK-MIB;
+
+snmpVacmMIB       MODULE-IDENTITY
+    LAST-UPDATED "200210160000Z"          -- 16 Oct 2002, midnight
+    ORGANIZATION "SNMPv3 Working Group"
+    CONTACT-INFO "WG-email:   snmpv3 at lists.tislabs.com
+                  Subscribe:  majordomo at lists.tislabs.com
+                              In message body:  subscribe snmpv3
+
+                  Co-Chair:   Russ Mundy
+                              Network Associates Laboratories
+                  postal:     15204 Omega Drive, Suite 300
+                              Rockville, MD 20850-4601
+                              USA
+                  email:      mundy at tislabs.com
+                  phone:      +1 301-947-7107
+
+                  Co-Chair:   David Harrington
+                              Enterasys Networks
+                  Postal:     35 Industrial Way
+                              P. O. Box 5004
+                              Rochester, New Hampshire 03866-5005
+                              USA
+                  EMail:      dbh at enterasys.com
+                  Phone:      +1 603-337-2614
+
+                  Co-editor:  Bert Wijnen
+                              Lucent Technologies
+                  postal:     Schagen 33
+                              3461 GL Linschoten
+                              Netherlands
+                  email:      bwijnen at lucent.com
+                  phone:      +31-348-480-685
+
+                  Co-editor:  Randy Presuhn
+                              BMC Software, Inc.
+
+                  postal:     2141 North First Street
+                              San Jose, CA 95131
+                              USA
+                  email:      randy_presuhn at bmc.com
+                  phone:      +1 408-546-1006
+
+                  Co-editor:  Keith McCloghrie
+                              Cisco Systems, Inc.
+                  postal:     170 West Tasman Drive
+                              San Jose, CA  95134-1706
+                              USA
+                  email:      kzm at cisco.com
+                  phone:      +1-408-526-5260
+                 "
+    DESCRIPTION  "The management information definitions for the
+                  View-based Access Control Model for SNMP.
+
+                  Copyright (C) The Internet Society (2002). This
+                  version of this MIB module is part of RFC 3415;
+                  see the RFC itself for full legal notices.
+                 "
+--  Revision history
+
+    REVISION     "200210160000Z"          -- 16 Oct 2002, midnight
+    DESCRIPTION  "Clarifications, published as RFC3415"
+
+    REVISION     "199901200000Z"          -- 20 Jan 1999, midnight
+    DESCRIPTION  "Clarifications, published as RFC2575"
+
+    REVISION     "199711200000Z"          -- 20 Nov 1997, midnight
+    DESCRIPTION  "Initial version, published as RFC2275"
+    ::= { snmpModules 16 }
+
+-- Administrative assignments ****************************************
+
+vacmMIBObjects      OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
+vacmMIBConformance  OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }
+
+-- Information about Local Contexts **********************************
+
+vacmContextTable OBJECT-TYPE
+    SYNTAX       SEQUENCE OF VacmContextEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "The table of locally available contexts.
+
+                 This table provides information to SNMP Command
+
+                 Generator applications so that they can properly
+                 configure the vacmAccessTable to control access to
+                 all contexts at the SNMP entity.
+
+                 This table may change dynamically if the SNMP entity
+                 allows that contexts are added/deleted dynamically
+                 (for instance when its configuration changes).  Such
+                 changes would happen only if the management
+                 instrumentation at that SNMP entity recognizes more
+                 (or fewer) contexts.
+
+                 The presence of entries in this table and of entries
+                 in the vacmAccessTable are independent.  That is, a
+                 context identified by an entry in this table is not
+                 necessarily referenced by any entries in the
+                 vacmAccessTable; and the context(s) referenced by an
+                 entry in the vacmAccessTable does not necessarily
+                 currently exist and thus need not be identified by an
+                 entry in this table.
+
+                 This table must be made accessible via the default
+                 context so that Command Responder applications have
+                 a standard way of retrieving the information.
+
+                 This table is read-only.  It cannot be configured via
+                 SNMP.
+                "
+    ::= { vacmMIBObjects 1 }
+
+vacmContextEntry OBJECT-TYPE
+    SYNTAX       VacmContextEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "Information about a particular context."
+    INDEX       {
+                  vacmContextName
+                }
+    ::= { vacmContextTable 1 }
+
+VacmContextEntry ::= SEQUENCE
+    {
+        vacmContextName SnmpAdminString
+    }
+
+vacmContextName  OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(0..32))
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "A human readable name identifying a particular
+                 context at a particular SNMP entity.
+
+                 The empty contextName (zero length) represents the
+                 default context.
+                "
+    ::= { vacmContextEntry 1 }
+
+-- Information about Groups ******************************************
+
+vacmSecurityToGroupTable OBJECT-TYPE
+    SYNTAX       SEQUENCE OF VacmSecurityToGroupEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "This table maps a combination of securityModel and
+                 securityName into a groupName which is used to define
+                 an access control policy for a group of principals.
+                "
+    ::= { vacmMIBObjects 2 }
+
+vacmSecurityToGroupEntry OBJECT-TYPE
+    SYNTAX       VacmSecurityToGroupEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "An entry in this table maps the combination of a
+                 securityModel and securityName into a groupName.
+                "
+    INDEX       {
+                  vacmSecurityModel,
+                  vacmSecurityName
+                }
+    ::= { vacmSecurityToGroupTable 1 }
+
+VacmSecurityToGroupEntry ::= SEQUENCE
+    {
+        vacmSecurityModel               SnmpSecurityModel,
+        vacmSecurityName                SnmpAdminString,
+        vacmGroupName                   SnmpAdminString,
+        vacmSecurityToGroupStorageType  StorageType,
+        vacmSecurityToGroupStatus       RowStatus
+    }
+
+vacmSecurityModel OBJECT-TYPE
+    SYNTAX       SnmpSecurityModel(1..2147483647)
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "The Security Model, by which the vacmSecurityName
+                 referenced by this entry is provided.
+
+                 Note, this object may not take the 'any' (0) value.
+                "
+    ::= { vacmSecurityToGroupEntry 1 }
+
+vacmSecurityName OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(1..32))
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "The securityName for the principal, represented in a
+                 Security Model independent format, which is mapped by
+                 this entry to a groupName.
+                "
+    ::= { vacmSecurityToGroupEntry 2 }
+
+vacmGroupName    OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(1..32))
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The name of the group to which this entry (e.g., the
+                 combination of securityModel and securityName)
+                 belongs.
+
+                 This groupName is used as index into the
+                 vacmAccessTable to select an access control policy.
+                 However, a value in this table does not imply that an
+                 instance with the value exists in table vacmAccesTable.
+                "
+    ::= { vacmSecurityToGroupEntry 3 }
+
+vacmSecurityToGroupStorageType OBJECT-TYPE
+    SYNTAX       StorageType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The storage type for this conceptual row.
+                 Conceptual rows having the value 'permanent' need not
+                 allow write-access to any columnar objects in the row.
+                "
+    DEFVAL      { nonVolatile }
+    ::= { vacmSecurityToGroupEntry 4 }
+
+vacmSecurityToGroupStatus OBJECT-TYPE
+    SYNTAX       RowStatus
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The status of this conceptual row.
+
+                 Until instances of all corresponding columns are
+                 appropriately configured, the value of the
+
+                 corresponding instance of the vacmSecurityToGroupStatus
+                 column is 'notReady'.
+
+                 In particular, a newly created row cannot be made
+                 active until a value has been set for vacmGroupName.
+
+                 The  RowStatus TC [RFC2579] requires that this
+                 DESCRIPTION clause states under which circumstances
+                 other objects in this row can be modified:
+
+                 The value of this object has no effect on whether
+                 other objects in this conceptual row can be modified.
+                "
+    ::= { vacmSecurityToGroupEntry 5 }
+
+-- Information about Access Rights ***********************************
+
+vacmAccessTable  OBJECT-TYPE
+    SYNTAX       SEQUENCE OF VacmAccessEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "The table of access rights for groups.
+
+                 Each entry is indexed by a groupName, a contextPrefix,
+                 a securityModel and a securityLevel.  To determine
+                 whether access is allowed, one entry from this table
+                 needs to be selected and the proper viewName from that
+                 entry must be used for access control checking.
+
+                 To select the proper entry, follow these steps:
+
+                 1) the set of possible matches is formed by the
+                    intersection of the following sets of entries:
+
+                      the set of entries with identical vacmGroupName
+                      the union of these two sets:
+                       - the set with identical vacmAccessContextPrefix
+                       - the set of entries with vacmAccessContextMatch
+                         value of 'prefix' and matching
+                         vacmAccessContextPrefix
+                      intersected with the union of these two sets:
+                       - the set of entries with identical
+                         vacmSecurityModel
+                       - the set of entries with vacmSecurityModel
+                         value of 'any'
+                      intersected with the set of entries with
+                      vacmAccessSecurityLevel value less than or equal
+                      to the requested securityLevel
+
+                 2) if this set has only one member, we're done
+                    otherwise, it comes down to deciding how to weight
+                    the preferences between ContextPrefixes,
+                    SecurityModels, and SecurityLevels as follows:
+                    a) if the subset of entries with securityModel
+                       matching the securityModel in the message is
+                       not empty, then discard the rest.
+                    b) if the subset of entries with
+                       vacmAccessContextPrefix matching the contextName
+                       in the message is not empty,
+                       then discard the rest
+                    c) discard all entries with ContextPrefixes shorter
+                       than the longest one remaining in the set
+                    d) select the entry with the highest securityLevel
+
+                 Please note that for securityLevel noAuthNoPriv, all
+                 groups are really equivalent since the assumption that
+                 the securityName has been authenticated does not hold.
+                "
+    ::= { vacmMIBObjects 4 }
+
+vacmAccessEntry  OBJECT-TYPE
+    SYNTAX       VacmAccessEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "An access right configured in the Local Configuration
+                 Datastore (LCD) authorizing access to an SNMP context.
+
+                 Entries in this table can use an instance value for
+                 object vacmGroupName even if no entry in table
+                 vacmAccessSecurityToGroupTable has a corresponding
+                 value for object vacmGroupName.
+                "
+    INDEX       { vacmGroupName,
+                  vacmAccessContextPrefix,
+                  vacmAccessSecurityModel,
+                  vacmAccessSecurityLevel
+                }
+    ::= { vacmAccessTable 1 }
+
+VacmAccessEntry ::= SEQUENCE
+    {
+        vacmAccessContextPrefix    SnmpAdminString,
+        vacmAccessSecurityModel    SnmpSecurityModel,
+        vacmAccessSecurityLevel    SnmpSecurityLevel,
+        vacmAccessContextMatch     INTEGER,
+        vacmAccessReadViewName     SnmpAdminString,
+        vacmAccessWriteViewName    SnmpAdminString,
+        vacmAccessNotifyViewName   SnmpAdminString,
+        vacmAccessStorageType      StorageType,
+        vacmAccessStatus           RowStatus
+    }
+
+vacmAccessContextPrefix OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(0..32))
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "In order to gain the access rights allowed by this
+                 conceptual row, a contextName must match exactly
+                 (if the value of vacmAccessContextMatch is 'exact')
+                 or partially (if the value of vacmAccessContextMatch
+                 is 'prefix') to the value of the instance of this
+                 object.
+                "
+    ::= { vacmAccessEntry 1 }
+
+vacmAccessSecurityModel OBJECT-TYPE
+    SYNTAX       SnmpSecurityModel
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "In order to gain the access rights allowed by this
+                 conceptual row, this securityModel must be in use.
+                "
+    ::= { vacmAccessEntry 2 }
+
+vacmAccessSecurityLevel OBJECT-TYPE
+    SYNTAX       SnmpSecurityLevel
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "The minimum level of security required in order to
+                 gain the access rights allowed by this conceptual
+                 row.  A securityLevel of noAuthNoPriv is less than
+                 authNoPriv which in turn is less than authPriv.
+
+                 If multiple entries are equally indexed except for
+                 this vacmAccessSecurityLevel index, then the entry
+                 which has the highest value for
+                 vacmAccessSecurityLevel is selected.
+                "
+    ::= { vacmAccessEntry 3 }
+
+vacmAccessContextMatch OBJECT-TYPE
+    SYNTAX       INTEGER
+                { exact (1), -- exact match of prefix and contextName
+                  prefix (2) -- Only match to the prefix
+                }
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "If the value of this object is exact(1), then all
+                 rows where the contextName exactly matches
+                 vacmAccessContextPrefix are selected.
+
+                 If the value of this object is prefix(2), then all
+                 rows where the contextName whose starting octets
+                 exactly match vacmAccessContextPrefix are selected.
+                 This allows for a simple form of wildcarding.
+                "
+    DEFVAL      { exact }
+    ::= { vacmAccessEntry 4 }
+
+vacmAccessReadViewName OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(0..32))
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The value of an instance of this object identifies
+                 the MIB view of the SNMP context to which this
+                 conceptual row authorizes read access.
+
+                 The identified MIB view is that one for which the
+                 vacmViewTreeFamilyViewName has the same value as the
+                 instance of this object; if the value is the empty
+                 string or if there is no active MIB view having this
+                 value of vacmViewTreeFamilyViewName, then no access
+                 is granted.
+                "
+    DEFVAL      { ''H }   -- the empty string
+    ::= { vacmAccessEntry 5 }
+
+vacmAccessWriteViewName OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(0..32))
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The value of an instance of this object identifies
+                 the MIB view of the SNMP context to which this
+                 conceptual row authorizes write access.
+
+                 The identified MIB view is that one for which the
+                 vacmViewTreeFamilyViewName has the same value as the
+                 instance of this object; if the value is the empty
+                 string or if there is no active MIB view having this
+                 value of vacmViewTreeFamilyViewName, then no access
+                 is granted.
+                "
+    DEFVAL      { ''H }   -- the empty string
+    ::= { vacmAccessEntry 6 }
+
+vacmAccessNotifyViewName OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(0..32))
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The value of an instance of this object identifies
+                 the MIB view of the SNMP context to which this
+                 conceptual row authorizes access for notifications.
+
+                 The identified MIB view is that one for which the
+                 vacmViewTreeFamilyViewName has the same value as the
+                 instance of this object; if the value is the empty
+                 string or if there is no active MIB view having this
+                 value of vacmViewTreeFamilyViewName, then no access
+                 is granted.
+                "
+    DEFVAL      { ''H }   -- the empty string
+    ::= { vacmAccessEntry 7 }
+
+vacmAccessStorageType OBJECT-TYPE
+    SYNTAX       StorageType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The storage type for this conceptual row.
+
+                 Conceptual rows having the value 'permanent' need not
+                 allow write-access to any columnar objects in the row.
+                "
+    DEFVAL      { nonVolatile }
+    ::= { vacmAccessEntry 8 }
+
+vacmAccessStatus OBJECT-TYPE
+    SYNTAX       RowStatus
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The status of this conceptual row.
+
+                 The  RowStatus TC [RFC2579] requires that this
+                 DESCRIPTION clause states under which circumstances
+                 other objects in this row can be modified:
+
+                 The value of this object has no effect on whether
+                 other objects in this conceptual row can be modified.
+                "
+    ::= { vacmAccessEntry 9 }
+
+-- Information about MIB views ***************************************
+
+-- Support for instance-level granularity is optional.
+--
+-- In some implementations, instance-level access control
+-- granularity may come at a high performance cost.  Managers
+-- should avoid requesting such configurations unnecessarily.
+
+vacmMIBViews     OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }
+
+vacmViewSpinLock OBJECT-TYPE
+    SYNTAX       TestAndIncr
+    MAX-ACCESS   read-write
+    STATUS       current
+    DESCRIPTION "An advisory lock used to allow cooperating SNMP
+                 Command Generator applications to coordinate their
+                 use of the Set operation in creating or modifying
+                 views.
+
+                 When creating a new view or altering an existing
+                 view, it is important to understand the potential
+                 interactions with other uses of the view.  The
+                 vacmViewSpinLock should be retrieved.  The name of
+                 the view to be created should be determined to be
+                 unique by the SNMP Command Generator application by
+                 consulting the vacmViewTreeFamilyTable.  Finally,
+                 the named view may be created (Set), including the
+                 advisory lock.
+                 If another SNMP Command Generator application has
+                 altered the views in the meantime, then the spin
+                 lock's value will have changed, and so this creation
+                 will fail because it will specify the wrong value for
+                 the spin lock.
+
+                 Since this is an advisory lock, the use of this lock
+                 is not enforced.
+                "
+    ::= { vacmMIBViews 1 }
+
+vacmViewTreeFamilyTable OBJECT-TYPE
+    SYNTAX       SEQUENCE OF VacmViewTreeFamilyEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "Locally held information about families of subtrees
+                 within MIB views.
+
+                 Each MIB view is defined by two sets of view subtrees:
+                   - the included view subtrees, and
+                   - the excluded view subtrees.
+                 Every such view subtree, both the included and the
+
+                 excluded ones, is defined in this table.
+
+                 To determine if a particular object instance is in
+                 a particular MIB view, compare the object instance's
+                 OBJECT IDENTIFIER with each of the MIB view's active
+                 entries in this table.  If none match, then the
+                 object instance is not in the MIB view.  If one or
+                 more match, then the object instance is included in,
+                 or excluded from, the MIB view according to the
+                 value of vacmViewTreeFamilyType in the entry whose
+                 value of vacmViewTreeFamilySubtree has the most
+                 sub-identifiers.  If multiple entries match and have
+                 the same number of sub-identifiers (when wildcarding
+                 is specified with the value of vacmViewTreeFamilyMask),
+                 then the lexicographically greatest instance of
+                 vacmViewTreeFamilyType determines the inclusion or
+                 exclusion.
+
+                 An object instance's OBJECT IDENTIFIER X matches an
+                 active entry in this table when the number of
+                 sub-identifiers in X is at least as many as in the
+                 value of vacmViewTreeFamilySubtree for the entry,
+                 and each sub-identifier in the value of
+                 vacmViewTreeFamilySubtree matches its corresponding
+                 sub-identifier in X.  Two sub-identifiers match
+                 either if the corresponding bit of the value of
+                 vacmViewTreeFamilyMask for the entry is zero (the
+                 'wild card' value), or if they are equal.
+
+                 A 'family' of subtrees is the set of subtrees defined
+                 by a particular combination of values of
+                 vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask.
+
+                 In the case where no 'wild card' is defined in the
+                 vacmViewTreeFamilyMask, the family of subtrees reduces
+                 to a single subtree.
+
+                 When creating or changing MIB views, an SNMP Command
+                 Generator application should utilize the
+                 vacmViewSpinLock to try to avoid collisions.  See
+                 DESCRIPTION clause of vacmViewSpinLock.
+
+                 When creating MIB views, it is strongly advised that
+                 first the 'excluded' vacmViewTreeFamilyEntries are
+                 created and then the 'included' entries.
+
+                 When deleting MIB views, it is strongly advised that
+                 first the 'included' vacmViewTreeFamilyEntries are
+
+                 deleted and then the 'excluded' entries.
+
+                 If a create for an entry for instance-level access
+                 control is received and the implementation does not
+                 support instance-level granularity, then an
+                 inconsistentName error must be returned.
+                "
+    ::= { vacmMIBViews 2 }
+
+vacmViewTreeFamilyEntry OBJECT-TYPE
+    SYNTAX       VacmViewTreeFamilyEntry
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "Information on a particular family of view subtrees
+                 included in or excluded from a particular SNMP
+                 context's MIB view.
+
+                 Implementations must not restrict the number of
+                 families of view subtrees for a given MIB view,
+                 except as dictated by resource constraints on the
+                 overall number of entries in the
+                 vacmViewTreeFamilyTable.
+
+                 If no conceptual rows exist in this table for a given
+                 MIB view (viewName), that view may be thought of as
+                 consisting of the empty set of view subtrees.
+                "
+    INDEX       { vacmViewTreeFamilyViewName,
+                  vacmViewTreeFamilySubtree
+                }
+    ::= { vacmViewTreeFamilyTable 1 }
+
+VacmViewTreeFamilyEntry ::= SEQUENCE
+    {
+        vacmViewTreeFamilyViewName     SnmpAdminString,
+        vacmViewTreeFamilySubtree      OBJECT IDENTIFIER,
+        vacmViewTreeFamilyMask         OCTET STRING,
+        vacmViewTreeFamilyType         INTEGER,
+        vacmViewTreeFamilyStorageType  StorageType,
+        vacmViewTreeFamilyStatus       RowStatus
+    }
+
+vacmViewTreeFamilyViewName OBJECT-TYPE
+    SYNTAX       SnmpAdminString (SIZE(1..32))
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "The human readable name for a family of view subtrees.
+                "
+    ::= { vacmViewTreeFamilyEntry 1 }
+
+vacmViewTreeFamilySubtree OBJECT-TYPE
+    SYNTAX       OBJECT IDENTIFIER
+    MAX-ACCESS   not-accessible
+    STATUS       current
+    DESCRIPTION "The MIB subtree which when combined with the
+                 corresponding instance of vacmViewTreeFamilyMask
+                 defines a family of view subtrees.
+                "
+    ::= { vacmViewTreeFamilyEntry 2 }
+
+vacmViewTreeFamilyMask OBJECT-TYPE
+    SYNTAX       OCTET STRING (SIZE (0..16))
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The bit mask which, in combination with the
+                 corresponding instance of vacmViewTreeFamilySubtree,
+                 defines a family of view subtrees.
+
+                 Each bit of this bit mask corresponds to a
+                 sub-identifier of vacmViewTreeFamilySubtree, with the
+                 most significant bit of the i-th octet of this octet
+                 string value (extended if necessary, see below)
+                 corresponding to the (8*i - 7)-th sub-identifier, and
+                 the least significant bit of the i-th octet of this
+                 octet string corresponding to the (8*i)-th
+                 sub-identifier, where i is in the range 1 through 16.
+
+                 Each bit of this bit mask specifies whether or not
+                 the corresponding sub-identifiers must match when
+                 determining if an OBJECT IDENTIFIER is in this
+                 family of view subtrees; a '1' indicates that an
+                 exact match must occur; a '0' indicates 'wild card',
+                 i.e., any sub-identifier value matches.
+
+                 Thus, the OBJECT IDENTIFIER X of an object instance
+                 is contained in a family of view subtrees if, for
+                 each sub-identifier of the value of
+                 vacmViewTreeFamilySubtree, either:
+
+                   the i-th bit of vacmViewTreeFamilyMask is 0, or
+
+                   the i-th sub-identifier of X is equal to the i-th
+                   sub-identifier of the value of
+                   vacmViewTreeFamilySubtree.
+
+                 If the value of this bit mask is M bits long and
+
+                 there are more than M sub-identifiers in the
+                 corresponding instance of vacmViewTreeFamilySubtree,
+                 then the bit mask is extended with 1's to be the
+                 required length.
+
+                 Note that when the value of this object is the
+                 zero-length string, this extension rule results in
+                 a mask of all-1's being used (i.e., no 'wild card'),
+                 and the family of view subtrees is the one view
+                 subtree uniquely identified by the corresponding
+                 instance of vacmViewTreeFamilySubtree.
+
+                 Note that masks of length greater than zero length
+                 do not need to be supported.  In this case this
+                 object is made read-only.
+                "
+    DEFVAL      { ''H }
+    ::= { vacmViewTreeFamilyEntry 3 }
+
+vacmViewTreeFamilyType OBJECT-TYPE
+    SYNTAX       INTEGER  { included(1), excluded(2) }
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "Indicates whether the corresponding instances of
+                 vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask
+                 define a family of view subtrees which is included in
+                 or excluded from the MIB view.
+                "
+    DEFVAL      { included }
+    ::= { vacmViewTreeFamilyEntry 4 }
+
+vacmViewTreeFamilyStorageType OBJECT-TYPE
+    SYNTAX       StorageType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The storage type for this conceptual row.
+
+                 Conceptual rows having the value 'permanent' need not
+                 allow write-access to any columnar objects in the row.
+                "
+    DEFVAL      { nonVolatile }
+    ::= { vacmViewTreeFamilyEntry 5 }
+
+vacmViewTreeFamilyStatus OBJECT-TYPE
+    SYNTAX       RowStatus
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION "The status of this conceptual row.
+
+                 The  RowStatus TC [RFC2579] requires that this
+                 DESCRIPTION clause states under which circumstances
+                 other objects in this row can be modified:
+
+                 The value of this object has no effect on whether
+                 other objects in this conceptual row can be modified.
+                "
+    ::= { vacmViewTreeFamilyEntry 6 }
+
+-- Conformance information *******************************************
+
+vacmMIBCompliances  OBJECT IDENTIFIER ::= { vacmMIBConformance 1 }
+vacmMIBGroups       OBJECT IDENTIFIER ::= { vacmMIBConformance 2 }
+
+-- Compliance statements *********************************************
+
+vacmMIBCompliance MODULE-COMPLIANCE
+    STATUS       current
+    DESCRIPTION "The compliance statement for SNMP engines which
+                 implement the SNMP View-based Access Control Model
+                 configuration MIB.
+                "
+    MODULE -- this module
+        MANDATORY-GROUPS { vacmBasicGroup }
+
+        OBJECT        vacmAccessContextMatch
+        MIN-ACCESS    read-only
+        DESCRIPTION  "Write access is not required."
+
+        OBJECT        vacmAccessReadViewName
+        MIN-ACCESS    read-only
+        DESCRIPTION  "Write access is not required."
+
+        OBJECT        vacmAccessWriteViewName
+        MIN-ACCESS    read-only
+        DESCRIPTION  "Write access is not required."
+
+        OBJECT        vacmAccessNotifyViewName
+        MIN-ACCESS    read-only
+        DESCRIPTION  "Write access is not required."
+
+        OBJECT        vacmAccessStorageType
+        MIN-ACCESS    read-only
+        DESCRIPTION  "Write access is not required."
+
+        OBJECT        vacmAccessStatus
+        MIN-ACCESS    read-only
+        DESCRIPTION  "Create/delete/modify access to the
+
+                      vacmAccessTable is not required.
+                     "
+
+        OBJECT        vacmViewTreeFamilyMask
+        WRITE-SYNTAX  OCTET STRING (SIZE (0))
+        MIN-ACCESS    read-only
+        DESCRIPTION  "Support for configuration via SNMP of subtree
+                      families using wild-cards is not required.
+                     "
+
+        OBJECT        vacmViewTreeFamilyType
+        MIN-ACCESS    read-only
+        DESCRIPTION  "Write access is not required."
+
+        OBJECT        vacmViewTreeFamilyStorageType
+        MIN-ACCESS    read-only
+        DESCRIPTION  "Write access is not required."
+
+        OBJECT        vacmViewTreeFamilyStatus
+        MIN-ACCESS    read-only
+        DESCRIPTION  "Create/delete/modify access to the
+                      vacmViewTreeFamilyTable is not required.
+                     "
+    ::= { vacmMIBCompliances 1 }
+
+-- Units of conformance **********************************************
+
+vacmBasicGroup OBJECT-GROUP
+    OBJECTS {
+              vacmContextName,
+              vacmGroupName,
+              vacmSecurityToGroupStorageType,
+              vacmSecurityToGroupStatus,
+              vacmAccessContextMatch,
+              vacmAccessReadViewName,
+              vacmAccessWriteViewName,
+              vacmAccessNotifyViewName,
+              vacmAccessStorageType,
+              vacmAccessStatus,
+              vacmViewSpinLock,
+              vacmViewTreeFamilyMask,
+              vacmViewTreeFamilyType,
+              vacmViewTreeFamilyStorageType,
+              vacmViewTreeFamilyStatus
+            }
+    STATUS       current
+    DESCRIPTION "A collection of objects providing for remote
+                 configuration of an SNMP engine which implements
+
+                 the SNMP View-based Access Control Model.
+                "
+    ::= { vacmMIBGroups 1 }
+
+END

Added: trunk/mibs/SNMPv2-TM.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/SNMPv2-TM.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,176 @@
+SNMPv2-TM DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-IDENTITY,
+    snmpModules, snmpDomains, snmpProxys
+        FROM SNMPv2-SMI
+    TEXTUAL-CONVENTION
+        FROM SNMPv2-TC;
+
+snmpv2tm MODULE-IDENTITY
+    LAST-UPDATED "200210160000Z"
+    ORGANIZATION "IETF SNMPv3 Working Group"
+    CONTACT-INFO
+            "WG-EMail:   snmpv3 at lists.tislabs.com
+             Subscribe:  snmpv3-request at lists.tislabs.com
+
+             Co-Chair:   Russ Mundy
+                         Network Associates Laboratories
+             postal:     15204 Omega Drive, Suite 300
+                         Rockville, MD 20850-4601
+                         USA
+             EMail:      mundy at tislabs.com
+             phone:      +1 301 947-7107
+
+             Co-Chair:   David Harrington
+                         Enterasys Networks
+             postal:     35 Industrial Way
+                         P. O. Box 5005
+                         Rochester, NH 03866-5005
+                         USA
+             EMail:      dbh at enterasys.com
+             phone:      +1 603 337-2614
+
+             Editor:     Randy Presuhn
+                         BMC Software, Inc.
+             postal:     2141 North First Street
+                         San Jose, CA 95131
+                         USA
+             EMail:      randy_presuhn at bmc.com
+             phone:      +1 408 546-1006"
+    DESCRIPTION
+            "The MIB module for SNMP transport mappings.
+
+             Copyright (C) The Internet Society (2002). This
+             version of this MIB module is part of RFC 3417;
+             see the RFC itself for full legal notices.
+            "
+    REVISION     "200210160000Z"
+    DESCRIPTION
+            "Clarifications, published as RFC 3417."
+    REVISION    "199601010000Z"
+    DESCRIPTION
+            "Clarifications, published as RFC 1906."
+    REVISION    "199304010000Z"
+    DESCRIPTION
+            "The initial version, published as RFC 1449."
+    ::= { snmpModules 19 }
+
+-- SNMP over UDP over IPv4
+
+snmpUDPDomain  OBJECT-IDENTITY
+    STATUS     current
+    DESCRIPTION
+            "The SNMP over UDP over IPv4 transport domain.
+            The corresponding transport address is of type
+            SnmpUDPAddress."
+    ::= { snmpDomains 1 }
+
+SnmpUDPAddress ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "1d.1d.1d.1d/2d"
+    STATUS       current
+    DESCRIPTION
+            "Represents a UDP over IPv4 address:
+
+               octets   contents        encoding
+                1-4     IP-address      network-byte order
+                5-6     UDP-port        network-byte order
+            "
+    SYNTAX       OCTET STRING (SIZE (6))
+
+-- SNMP over OSI
+
+snmpCLNSDomain OBJECT-IDENTITY
+    STATUS     current
+    DESCRIPTION
+            "The SNMP over CLNS transport domain.
+            The corresponding transport address is of type
+            SnmpOSIAddress."
+    ::= { snmpDomains 2 }
+
+snmpCONSDomain OBJECT-IDENTITY
+    STATUS     current
+    DESCRIPTION
+            "The SNMP over CONS transport domain.
+            The corresponding transport address is of type
+            SnmpOSIAddress."
+    ::= { snmpDomains 3 }
+
+SnmpOSIAddress ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "*1x:/1x:"
+    STATUS       current
+    DESCRIPTION
+            "Represents an OSI transport-address:
+
+          octets   contents           encoding
+             1     length of NSAP     'n' as an unsigned-integer
+                                         (either 0 or from 3 to 20)
+          2..(n+1) NSAP                concrete binary representation
+          (n+2)..m TSEL                string of (up to 64) octets
+            "
+    SYNTAX       OCTET STRING (SIZE (1 | 4..85))
+
+-- SNMP over DDP
+
+snmpDDPDomain  OBJECT-IDENTITY
+    STATUS     current
+    DESCRIPTION
+            "The SNMP over DDP transport domain.  The corresponding
+            transport address is of type SnmpNBPAddress."
+    ::= { snmpDomains 4 }
+
+SnmpNBPAddress ::= TEXTUAL-CONVENTION
+    STATUS       current
+    DESCRIPTION
+            "Represents an NBP name:
+
+         octets        contents          encoding
+            1          length of object  'n' as an unsigned integer
+          2..(n+1)     object            string of (up to 32) octets
+           n+2         length of type    'p' as an unsigned integer
+      (n+3)..(n+2+p)   type              string of (up to 32) octets
+          n+3+p        length of zone    'q' as an unsigned integer
+    (n+4+p)..(n+3+p+q) zone              string of (up to 32) octets
+
+            For comparison purposes, strings are
+            case-insensitive. All strings may contain any octet
+            other than 255 (hex ff)."
+    SYNTAX       OCTET STRING (SIZE (3..99))
+
+-- SNMP over IPX
+
+snmpIPXDomain  OBJECT-IDENTITY
+    STATUS     current
+    DESCRIPTION
+            "The SNMP over IPX transport domain.  The corresponding
+            transport address is of type SnmpIPXAddress."
+    ::= { snmpDomains 5 }
+
+SnmpIPXAddress ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "4x.1x:1x:1x:1x:1x:1x.2d"
+    STATUS       current
+    DESCRIPTION
+            "Represents an IPX address:
+
+               octets   contents            encoding
+                1-4     network-number      network-byte order
+                5-10    physical-address    network-byte order
+               11-12    socket-number       network-byte order
+            "
+    SYNTAX       OCTET STRING (SIZE (12))
+
+-- for proxy to SNMPv1 (RFC 1157)
+
+rfc1157Proxy   OBJECT IDENTIFIER ::= { snmpProxys 1 }
+
+rfc1157Domain  OBJECT-IDENTITY
+    STATUS     deprecated
+    DESCRIPTION
+            "The transport domain for SNMPv1 over UDP over IPv4.
+            The corresponding transport address is of type
+            SnmpUDPAddress."
+    ::= { rfc1157Proxy 1 }
+
+--  ::= { rfc1157Proxy 2 }            this OID is obsolete
+
+END

Added: trunk/mibs/TCP-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/TCP-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,785 @@
+TCP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32,
+    Gauge32, Counter32, Counter64, IpAddress, mib-2
+                                       FROM SNMPv2-SMI
+    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
+    InetAddress, InetAddressType,
+    InetPortNumber                     FROM INET-ADDRESS-MIB;
+
+tcpMIB MODULE-IDENTITY
+    LAST-UPDATED "200502180000Z"  -- 18 February 2005
+    ORGANIZATION
+           "IETF IPv6 MIB Revision Team
+            http://www.ietf.org/html.charters/ipv6-charter.html"
+    CONTACT-INFO
+           "Rajiv Raghunarayan (editor)
+
+            Cisco Systems Inc.
+            170 West Tasman Drive
+            San Jose, CA 95134
+
+            Phone: +1 408 853 9612
+            Email: <raraghun at cisco.com>
+
+            Send comments to <ipv6 at ietf.org>"
+    DESCRIPTION
+           "The MIB module for managing TCP implementations.
+
+            Copyright (C) The Internet Society (2005). This version
+            of this MIB module is a part of RFC 4022; see the RFC
+            itself for full legal notices."
+    REVISION      "200502180000Z"  -- 18 February 2005
+    DESCRIPTION
+           "IP version neutral revision, published as RFC 4022."
+    REVISION      "9411010000Z"
+    DESCRIPTION
+           "Initial SMIv2 version, published as RFC 2012."
+    REVISION      "9103310000Z"
+    DESCRIPTION
+           "The initial revision of this MIB module was part of
+            MIB-II."
+    ::= { mib-2 49 }
+
+-- the TCP base variables group
+
+tcp      OBJECT IDENTIFIER ::= { mib-2 6 }
+
+-- Scalars
+
+tcpRtoAlgorithm OBJECT-TYPE
+    SYNTAX      INTEGER {
+                    other(1),    -- none of the following
+                    constant(2), -- a constant rto
+                    rsre(3),     -- MIL-STD-1778, Appendix B
+                    vanj(4),     -- Van Jacobson's algorithm
+                    rfc2988(5)   -- RFC 2988
+                }
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The algorithm used to determine the timeout value used for
+            retransmitting unacknowledged octets."
+    ::= { tcp 1 }
+
+tcpRtoMin OBJECT-TYPE
+    SYNTAX     Integer32 (0..2147483647)
+    UNITS      "milliseconds"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The minimum value permitted by a TCP implementation for
+            the retransmission timeout, measured in milliseconds.
+            More refined semantics for objects of this type depend
+            on the algorithm used to determine the retransmission
+            timeout; in particular, the IETF standard algorithm
+            rfc2988(5) provides a minimum value."
+    ::= { tcp 2 }
+
+tcpRtoMax OBJECT-TYPE
+    SYNTAX     Integer32 (0..2147483647)
+    UNITS      "milliseconds"
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The maximum value permitted by a TCP implementation for
+            the retransmission timeout, measured in milliseconds.
+            More refined semantics for objects of this type depend
+            on the algorithm used to determine the retransmission
+            timeout; in particular, the IETF standard algorithm
+            rfc2988(5) provides an upper bound (as part of an
+            adaptive backoff algorithm)."
+    ::= { tcp 3 }
+
+tcpMaxConn OBJECT-TYPE
+    SYNTAX     Integer32 (-1 | 0..2147483647)
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The limit on the total number of TCP connections the entity
+            can support.  In entities where the maximum number of
+            connections is dynamic, this object should contain the
+            value -1."
+    ::= { tcp 4 }
+
+tcpActiveOpens OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The number of times that TCP connections have made a direct
+            transition to the SYN-SENT state from the CLOSED state.
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 5 }
+
+tcpPassiveOpens OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The number of times TCP connections have made a direct
+            transition to the SYN-RCVD state from the LISTEN state.
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 6 }
+
+tcpAttemptFails OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The number of times that TCP connections have made a direct
+            transition to the CLOSED state from either the SYN-SENT
+            state or the SYN-RCVD state, plus the number of times that
+            TCP connections have made a direct transition to the
+            LISTEN state from the SYN-RCVD state.
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 7 }
+
+tcpEstabResets OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The number of times that TCP connections have made a direct
+            transition to the CLOSED state from either the ESTABLISHED
+            state or the CLOSE-WAIT state.
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 8 }
+
+tcpCurrEstab OBJECT-TYPE
+    SYNTAX     Gauge32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The number of TCP connections for which the current state
+            is either ESTABLISHED or CLOSE-WAIT."
+    ::= { tcp 9 }
+
+tcpInSegs OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of segments received, including those
+            received in error.  This count includes segments received
+            on currently established connections.
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 10 }
+
+tcpOutSegs OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of segments sent, including those on
+            current connections but excluding those containing only
+            retransmitted octets.
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 11 }
+
+tcpRetransSegs OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of segments retransmitted; that is, the
+            number of TCP segments transmitted containing one or more
+            previously transmitted octets.
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 12 }
+
+tcpInErrs OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of segments received in error (e.g., bad
+            TCP checksums).
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 14 }
+
+tcpOutRsts OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The number of TCP segments sent containing the RST flag.
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 15 }
+
+-- { tcp 16 } was used to represent the ipv6TcpConnTable in RFC 2452,
+-- which has since been obsoleted.  It MUST not be used.
+
+tcpHCInSegs OBJECT-TYPE
+    SYNTAX     Counter64
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of segments received, including those
+            received in error.  This count includes segments received
+
+            on currently established connections.  This object is
+            the 64-bit equivalent of tcpInSegs.
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 17 }
+
+tcpHCOutSegs OBJECT-TYPE
+    SYNTAX     Counter64
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of segments sent, including those on
+            current connections but excluding those containing only
+            retransmitted octets.  This object is the 64-bit
+            equivalent of tcpOutSegs.
+
+            Discontinuities in the value of this counter are
+            indicated via discontinuities in the value of sysUpTime."
+    ::= { tcp 18 }
+
+-- The TCP Connection table
+
+tcpConnectionTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF TcpConnectionEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "A table containing information about existing TCP
+            connections.  Note that unlike earlier TCP MIBs, there
+            is a separate table for connections in the LISTEN state."
+    ::= { tcp 19 }
+
+tcpConnectionEntry OBJECT-TYPE
+    SYNTAX     TcpConnectionEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "A conceptual row of the tcpConnectionTable containing
+            information about a particular current TCP connection.
+            Each row of this table is transient in that it ceases to
+            exist when (or soon after) the connection makes the
+            transition to the CLOSED state."
+    INDEX   { tcpConnectionLocalAddressType,
+              tcpConnectionLocalAddress,
+              tcpConnectionLocalPort,
+              tcpConnectionRemAddressType,
+              tcpConnectionRemAddress,
+              tcpConnectionRemPort }
+    ::= { tcpConnectionTable 1 }
+
+TcpConnectionEntry ::= SEQUENCE {
+        tcpConnectionLocalAddressType   InetAddressType,
+        tcpConnectionLocalAddress       InetAddress,
+        tcpConnectionLocalPort          InetPortNumber,
+        tcpConnectionRemAddressType     InetAddressType,
+        tcpConnectionRemAddress         InetAddress,
+        tcpConnectionRemPort            InetPortNumber,
+        tcpConnectionState              INTEGER,
+        tcpConnectionProcess            Unsigned32
+    }
+
+tcpConnectionLocalAddressType OBJECT-TYPE
+    SYNTAX     InetAddressType
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The address type of tcpConnectionLocalAddress."
+    ::= { tcpConnectionEntry 1 }
+
+tcpConnectionLocalAddress OBJECT-TYPE
+    SYNTAX     InetAddress
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The local IP address for this TCP connection.  The type
+            of this address is determined by the value of
+            tcpConnectionLocalAddressType.
+
+            As this object is used in the index for the
+            tcpConnectionTable, implementors should be
+            careful not to create entries that would result in OIDs
+            with more than 128 subidentifiers; otherwise the information
+            cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
+    ::= { tcpConnectionEntry 2 }
+
+tcpConnectionLocalPort OBJECT-TYPE
+    SYNTAX     InetPortNumber
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The local port number for this TCP connection."
+    ::= { tcpConnectionEntry 3 }
+
+tcpConnectionRemAddressType OBJECT-TYPE
+    SYNTAX     InetAddressType
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The address type of tcpConnectionRemAddress."
+    ::= { tcpConnectionEntry 4 }
+
+tcpConnectionRemAddress OBJECT-TYPE
+    SYNTAX     InetAddress
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The remote IP address for this TCP connection.  The type
+            of this address is determined by the value of
+            tcpConnectionRemAddressType.
+
+            As this object is used in the index for the
+            tcpConnectionTable, implementors should be
+            careful not to create entries that would result in OIDs
+            with more than 128 subidentifiers; otherwise the information
+            cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
+    ::= { tcpConnectionEntry 5 }
+
+tcpConnectionRemPort OBJECT-TYPE
+    SYNTAX     InetPortNumber
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The remote port number for this TCP connection."
+    ::= { tcpConnectionEntry 6 }
+
+tcpConnectionState OBJECT-TYPE
+    SYNTAX     INTEGER {
+                    closed(1),
+                    listen(2),
+                    synSent(3),
+                    synReceived(4),
+                    established(5),
+                    finWait1(6),
+                    finWait2(7),
+                    closeWait(8),
+                    lastAck(9),
+                    closing(10),
+                    timeWait(11),
+                    deleteTCB(12)
+                }
+    MAX-ACCESS read-write
+    STATUS     current
+    DESCRIPTION
+           "The state of this TCP connection.
+
+            The value listen(2) is included only for parallelism to the
+            old tcpConnTable and should not be used.  A connection in
+            LISTEN state should be present in the tcpListenerTable.
+
+            The only value that may be set by a management station is
+            deleteTCB(12).  Accordingly, it is appropriate for an agent
+            to return a `badValue' response if a management station
+            attempts to set this object to any other value.
+
+            If a management station sets this object to the value
+            deleteTCB(12), then the TCB (as defined in [RFC793]) of
+            the corresponding connection on the managed node is
+            deleted, resulting in immediate termination of the
+            connection.
+
+            As an implementation-specific option, a RST segment may be
+            sent from the managed node to the other TCP endpoint (note,
+            however, that RST segments are not sent reliably)."
+    ::= { tcpConnectionEntry 7 }
+
+tcpConnectionProcess OBJECT-TYPE
+    SYNTAX     Unsigned32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The system's process ID for the process associated with
+            this connection, or zero if there is no such process.  This
+            value is expected to be the same as HOST-RESOURCES-MIB::
+            hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
+            row in the appropriate tables."
+    ::= { tcpConnectionEntry 8 }
+
+-- The TCP Listener table
+
+tcpListenerTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF TcpListenerEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "A table containing information about TCP listeners.  A
+            listening application can be represented in three
+            possible ways:
+
+            1. An application that is willing to accept both IPv4 and
+               IPv6 datagrams is represented by
+
+               a tcpListenerLocalAddressType of unknown (0) and
+               a tcpListenerLocalAddress of ''h (a zero-length
+               octet-string).
+
+            2. An application that is willing to accept only IPv4 or
+               IPv6 datagrams is represented by a
+               tcpListenerLocalAddressType of the appropriate address
+               type and a tcpListenerLocalAddress of '0.0.0.0' or '::'
+               respectively.
+
+            3. An application that is listening for data destined
+               only to a specific IP address, but from any remote
+               system, is represented by a tcpListenerLocalAddressType
+               of an appropriate address type, with
+               tcpListenerLocalAddress as the specific local address.
+
+            NOTE: The address type in this table represents the
+            address type used for the communication, irrespective
+            of the higher-layer abstraction.  For example, an
+            application using IPv6 'sockets' to communicate via
+            IPv4 between ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would
+            use InetAddressType ipv4(1))."
+    ::= { tcp 20 }
+
+tcpListenerEntry OBJECT-TYPE
+    SYNTAX     TcpListenerEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "A conceptual row of the tcpListenerTable containing
+            information about a particular TCP listener."
+    INDEX   { tcpListenerLocalAddressType,
+              tcpListenerLocalAddress,
+              tcpListenerLocalPort }
+    ::= { tcpListenerTable 1 }
+
+TcpListenerEntry ::= SEQUENCE {
+        tcpListenerLocalAddressType       InetAddressType,
+        tcpListenerLocalAddress           InetAddress,
+        tcpListenerLocalPort              InetPortNumber,
+        tcpListenerProcess                Unsigned32
+    }
+
+tcpListenerLocalAddressType OBJECT-TYPE
+    SYNTAX     InetAddressType
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The address type of tcpListenerLocalAddress.  The value
+            should be unknown (0) if connection initiations to all
+            local IP addresses are accepted."
+    ::= { tcpListenerEntry 1 }
+
+tcpListenerLocalAddress OBJECT-TYPE
+    SYNTAX     InetAddress
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The local IP address for this TCP connection.
+
+            The value of this object can be represented in three
+            possible ways, depending on the characteristics of the
+            listening application:
+
+            1. For an application willing to accept both IPv4 and
+               IPv6 datagrams, the value of this object must be
+               ''h (a zero-length octet-string), with the value
+               of the corresponding tcpListenerLocalAddressType
+               object being unknown (0).
+
+            2. For an application willing to accept only IPv4 or
+               IPv6 datagrams, the value of this object must be
+               '0.0.0.0' or '::' respectively, with
+               tcpListenerLocalAddressType representing the
+               appropriate address type.
+
+            3. For an application which is listening for data
+               destined only to a specific IP address, the value
+               of this object is the specific local address, with
+               tcpListenerLocalAddressType representing the
+               appropriate address type.
+
+            As this object is used in the index for the
+            tcpListenerTable, implementors should be
+            careful not to create entries that would result in OIDs
+            with more than 128 subidentifiers; otherwise the information
+            cannot be accessed, using SNMPv1, SNMPv2c, or SNMPv3."
+    ::= { tcpListenerEntry 2 }
+
+tcpListenerLocalPort OBJECT-TYPE
+    SYNTAX     InetPortNumber
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The local port number for this TCP connection."
+    ::= { tcpListenerEntry 3 }
+
+tcpListenerProcess OBJECT-TYPE
+    SYNTAX     Unsigned32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The system's process ID for the process associated with
+            this listener, or zero if there is no such process.  This
+            value is expected to be the same as HOST-RESOURCES-MIB::
+            hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
+            row in the appropriate tables."
+    ::= { tcpListenerEntry 4 }
+
+-- The deprecated TCP Connection table
+
+tcpConnTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF TcpConnEntry
+    MAX-ACCESS not-accessible
+    STATUS     deprecated
+    DESCRIPTION
+           "A table containing information about existing IPv4-specific
+            TCP connections or listeners.  This table has been
+            deprecated in favor of the version neutral
+            tcpConnectionTable."
+    ::= { tcp 13 }
+
+tcpConnEntry OBJECT-TYPE
+    SYNTAX     TcpConnEntry
+    MAX-ACCESS not-accessible
+    STATUS     deprecated
+    DESCRIPTION
+           "A conceptual row of the tcpConnTable containing information
+            about a particular current IPv4 TCP connection.  Each row
+            of this table is transient in that it ceases to exist when
+            (or soon after) the connection makes the transition to the
+            CLOSED state."
+    INDEX   { tcpConnLocalAddress,
+              tcpConnLocalPort,
+              tcpConnRemAddress,
+              tcpConnRemPort }
+    ::= { tcpConnTable 1 }
+
+TcpConnEntry ::= SEQUENCE {
+        tcpConnState         INTEGER,
+        tcpConnLocalAddress  IpAddress,
+        tcpConnLocalPort     Integer32,
+        tcpConnRemAddress    IpAddress,
+        tcpConnRemPort       Integer32
+
+    }
+
+tcpConnState OBJECT-TYPE
+    SYNTAX     INTEGER {
+                    closed(1),
+                    listen(2),
+                    synSent(3),
+                    synReceived(4),
+                    established(5),
+                    finWait1(6),
+                    finWait2(7),
+                    closeWait(8),
+                    lastAck(9),
+                    closing(10),
+                    timeWait(11),
+                    deleteTCB(12)
+                }
+    MAX-ACCESS read-write
+    STATUS     deprecated
+    DESCRIPTION
+           "The state of this TCP connection.
+
+            The only value that may be set by a management station is
+            deleteTCB(12).  Accordingly, it is appropriate for an agent
+            to return a `badValue' response if a management station
+            attempts to set this object to any other value.
+
+            If a management station sets this object to the value
+            deleteTCB(12), then the TCB (as defined in [RFC793]) of
+            the corresponding connection on the managed node is
+            deleted, resulting in immediate termination of the
+            connection.
+
+            As an implementation-specific option, a RST segment may be
+            sent from the managed node to the other TCP endpoint (note,
+            however, that RST segments are not sent reliably)."
+    ::= { tcpConnEntry 1 }
+
+tcpConnLocalAddress OBJECT-TYPE
+    SYNTAX     IpAddress
+    MAX-ACCESS read-only
+    STATUS     deprecated
+    DESCRIPTION
+           "The local IP address for this TCP connection.  In the case
+            of a connection in the listen state willing to
+            accept connections for any IP interface associated with the
+            node, the value 0.0.0.0 is used."
+    ::= { tcpConnEntry 2 }
+
+tcpConnLocalPort OBJECT-TYPE
+    SYNTAX     Integer32 (0..65535)
+    MAX-ACCESS read-only
+    STATUS     deprecated
+    DESCRIPTION
+           "The local port number for this TCP connection."
+    ::= { tcpConnEntry 3 }
+
+tcpConnRemAddress OBJECT-TYPE
+    SYNTAX     IpAddress
+    MAX-ACCESS read-only
+    STATUS     deprecated
+    DESCRIPTION
+           "The remote IP address for this TCP connection."
+    ::= { tcpConnEntry 4 }
+
+tcpConnRemPort OBJECT-TYPE
+    SYNTAX     Integer32 (0..65535)
+    MAX-ACCESS read-only
+    STATUS     deprecated
+    DESCRIPTION
+           "The remote port number for this TCP connection."
+    ::= { tcpConnEntry 5 }
+
+-- conformance information
+
+tcpMIBConformance OBJECT IDENTIFIER ::= { tcpMIB 2 }
+
+tcpMIBCompliances OBJECT IDENTIFIER ::= { tcpMIBConformance 1 }
+tcpMIBGroups      OBJECT IDENTIFIER ::= { tcpMIBConformance 2 }
+
+-- compliance statements
+
+tcpMIBCompliance2 MODULE-COMPLIANCE
+    STATUS     current
+    DESCRIPTION
+           "The compliance statement for systems that implement TCP.
+
+            A number of INDEX objects cannot be
+            represented in the form of OBJECT clauses in SMIv2 but
+            have the following compliance requirements,
+            expressed in OBJECT clause form in this description
+            clause:
+
+            -- OBJECT      tcpConnectionLocalAddressType
+            -- SYNTAX      InetAddressType { ipv4(1), ipv6(2) }
+            -- DESCRIPTION
+            --     This MIB requires support for only global IPv4
+
+            --     and IPv6 address types.
+            --
+            -- OBJECT      tcpConnectionRemAddressType
+            -- SYNTAX      InetAddressType { ipv4(1), ipv6(2) }
+            -- DESCRIPTION
+            --     This MIB requires support for only global IPv4
+            --     and IPv6 address types.
+            --
+            -- OBJECT      tcpListenerLocalAddressType
+            -- SYNTAX      InetAddressType { unknown(0), ipv4(1),
+            --                               ipv6(2) }
+            -- DESCRIPTION
+            --     This MIB requires support for only global IPv4
+            --     and IPv6 address types.  The type unknown also
+            --     needs to be supported to identify a special
+            --     case in the listener table: a listen using
+            --     both IPv4 and IPv6 addresses on the device.
+            --
+           "
+    MODULE  -- this module
+        MANDATORY-GROUPS { tcpBaseGroup, tcpConnectionGroup,
+                           tcpListenerGroup }
+        GROUP       tcpHCGroup
+        DESCRIPTION
+           "This group is mandatory for systems that are capable
+            of receiving or transmitting more than 1 million TCP
+            segments per second.  1 million segments per second will
+            cause a Counter32 to wrap in just over an hour."
+        OBJECT      tcpConnectionState
+        SYNTAX      INTEGER { closed(1), listen(2), synSent(3),
+                              synReceived(4), established(5),
+                              finWait1(6), finWait2(7), closeWait(8),
+                              lastAck(9), closing(10), timeWait(11) }
+        MIN-ACCESS  read-only
+        DESCRIPTION
+           "Write access is not required, nor is support for the value
+            deleteTCB (12)."
+    ::= { tcpMIBCompliances 2 }
+
+tcpMIBCompliance MODULE-COMPLIANCE
+    STATUS     deprecated
+    DESCRIPTION
+           "The compliance statement for IPv4-only systems that
+            implement TCP.  In order to be IP version independent, this
+            compliance statement is deprecated in favor of
+            tcpMIBCompliance2.  However, agents are still encouraged
+            to implement these objects in order to interoperate with
+            the deployed base of managers."
+
+    MODULE  -- this module
+        MANDATORY-GROUPS { tcpGroup }
+        OBJECT      tcpConnState
+        MIN-ACCESS  read-only
+        DESCRIPTION
+           "Write access is not required."
+    ::= { tcpMIBCompliances 1 }
+
+-- units of conformance
+
+tcpGroup OBJECT-GROUP
+    OBJECTS   { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
+                tcpMaxConn, tcpActiveOpens,
+                tcpPassiveOpens, tcpAttemptFails,
+                tcpEstabResets, tcpCurrEstab, tcpInSegs,
+                tcpOutSegs, tcpRetransSegs, tcpConnState,
+                tcpConnLocalAddress, tcpConnLocalPort,
+                tcpConnRemAddress, tcpConnRemPort,
+                tcpInErrs, tcpOutRsts }
+    STATUS     deprecated
+    DESCRIPTION
+           "The tcp group of objects providing for management of TCP
+            entities."
+    ::= { tcpMIBGroups 1 }
+
+tcpBaseGroup OBJECT-GROUP
+    OBJECTS   { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
+                tcpMaxConn, tcpActiveOpens,
+                tcpPassiveOpens, tcpAttemptFails,
+                tcpEstabResets, tcpCurrEstab, tcpInSegs,
+                tcpOutSegs, tcpRetransSegs,
+                tcpInErrs, tcpOutRsts }
+    STATUS     current
+    DESCRIPTION
+           "The group of counters common to TCP entities."
+    ::= { tcpMIBGroups 2 }
+
+tcpConnectionGroup OBJECT-GROUP
+    OBJECTS    { tcpConnectionState, tcpConnectionProcess }
+    STATUS     current
+    DESCRIPTION
+           "The group provides general information about TCP
+            connections."
+    ::= { tcpMIBGroups 3 }
+
+tcpListenerGroup OBJECT-GROUP
+    OBJECTS    { tcpListenerProcess }
+    STATUS     current
+    DESCRIPTION
+           "This group has objects providing general information about
+            TCP listeners."
+    ::= { tcpMIBGroups 4 }
+
+tcpHCGroup OBJECT-GROUP
+    OBJECTS    { tcpHCInSegs, tcpHCOutSegs }
+    STATUS     current
+    DESCRIPTION
+           "The group of objects providing for counters of high speed
+            TCP implementations."
+    ::= { tcpMIBGroups 5 }
+
+END

Added: trunk/mibs/TRANSPORT-ADDRESS-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/TRANSPORT-ADDRESS-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,417 @@
+TRANSPORT-ADDRESS-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-IDENTITY, mib-2     FROM SNMPv2-SMI
+    TEXTUAL-CONVENTION                          FROM SNMPv2-TC;
+
+transportAddressMIB MODULE-IDENTITY
+    LAST-UPDATED "200211010000Z"
+    ORGANIZATION
+        "IETF Operations and Management Area"
+    CONTACT-INFO
+        "Juergen Schoenwaelder (Editor)
+         TU Braunschweig
+         Bueltenweg 74/75
+         38106 Braunschweig, Germany
+         Phone: +49 531 391-3289
+         EMail: schoenw at ibr.cs.tu-bs.de
+
+         Send comments to <mibs at ops.ietf.org>."
+    DESCRIPTION
+        "This MIB module provides commonly used transport
+         address definitions.
+
+         Copyright (C) The Internet Society (2002). This version of
+         this MIB module is part of RFC 3419; see the RFC itself for
+         full legal notices."
+
+    -- Revision log
+
+    REVISION    "200211010000Z"
+    DESCRIPTION
+        "Initial version, published as RFC 3419."
+    ::= { mib-2 100 }
+
+
+transportDomains OBJECT IDENTIFIER ::= { transportAddressMIB 1 }
+
+transportDomainUdpIpv4 OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The UDP over IPv4 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv4 for
+         global IPv4 addresses."
+    ::= { transportDomains 1 }
+
+transportDomainUdpIpv6 OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The UDP over IPv6 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv6 for
+         global IPv6 addresses."
+    ::= { transportDomains 2 }
+
+transportDomainUdpIpv4z OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The UDP over IPv4 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv4z for
+         scoped IPv4 addresses with a zone index."
+    ::= { transportDomains 3 }
+
+transportDomainUdpIpv6z OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The UDP over IPv6 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv6z for
+         scoped IPv6 addresses with a zone index."
+    ::= { transportDomains 4 }
+
+transportDomainTcpIpv4 OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The TCP over IPv4 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv4 for
+         global IPv4 addresses."
+    ::= { transportDomains 5 }
+
+transportDomainTcpIpv6 OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The TCP over IPv6 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv6 for
+         global IPv6 addresses."
+    ::= { transportDomains 6 }
+
+transportDomainTcpIpv4z OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The TCP over IPv4 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv4z for
+         scoped IPv4 addresses with a zone index."
+    ::= { transportDomains 7 }
+
+transportDomainTcpIpv6z OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The TCP over IPv6 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv6z for
+         scoped IPv6 addresses with a zone index."
+    ::= { transportDomains 8 }
+
+transportDomainSctpIpv4 OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The SCTP over IPv4 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv4 for
+         global IPv4 addresses. This transport domain usually
+         represents the primary address on multihomed SCTP
+         endpoints."
+    ::= { transportDomains 9 }
+
+transportDomainSctpIpv6 OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The SCTP over IPv6 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv6 for
+         global IPv6 addresses. This transport domain usually
+         represents the primary address on multihomed SCTP
+         endpoints."
+    ::= { transportDomains 10 }
+
+transportDomainSctpIpv4z OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The SCTP over IPv4 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv4z for
+         scoped IPv4 addresses with a zone index. This transport
+         domain usually represents the primary address on
+         multihomed SCTP endpoints."
+    ::= { transportDomains 11 }
+
+transportDomainSctpIpv6z OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The SCTP over IPv6 transport domain.  The corresponding
+         transport address is of type TransportAddressIPv6z for
+         scoped IPv6 addresses with a zone index. This transport
+         domain usually represents the primary address on
+         multihomed SCTP endpoints."
+    ::= { transportDomains 12 }
+
+transportDomainLocal OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The Posix Local IPC transport domain. The corresponding
+         transport address is of type TransportAddressLocal.
+
+         The Posix Local IPC transport domain incorporates the
+         well-known UNIX domain sockets."
+    ::= { transportDomains 13 }
+
+transportDomainUdpDns OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The UDP transport domain using fully qualified domain
+         names. The corresponding transport address is of type
+         TransportAddressDns."
+    ::= { transportDomains 14 }
+
+transportDomainTcpDns OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The TCP transport domain using fully qualified domain
+         names. The corresponding transport address is of type
+         TransportAddressDns."
+    ::= { transportDomains 15 }
+
+transportDomainSctpDns OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The SCTP transport domain using fully qualified domain
+         names. The corresponding transport address is of type
+         TransportAddressDns."
+    ::= { transportDomains 16 }
+
+TransportDomain ::= TEXTUAL-CONVENTION
+    STATUS      current
+    DESCRIPTION
+        "A value that represents a transport domain.
+
+         Some possible values, such as transportDomainUdpIpv4, are
+         defined in this module.  Other possible values can be
+         defined in other MIB modules."
+    SYNTAX      OBJECT IDENTIFIER
+
+--
+-- The enumerated values of the textual convention below should
+-- be identical to the last sub-identifier of the OID registered
+-- for the same domain.
+--
+
+TransportAddressType ::= TEXTUAL-CONVENTION
+    STATUS      current
+    DESCRIPTION
+        "A value that represents a transport domain. This is the
+         enumerated version of the transport domain registrations
+         in this MIB module. The enumerated values have the
+         following meaning:
+
+         unknown(0)     unknown transport address type
+         udpIpv4(1)     transportDomainUdpIpv4
+         udpIpv6(2)     transportDomainUdpIpv6
+         udpIpv4z(3)    transportDomainUdpIpv4z
+         udpIpv6z(4)    transportDomainUdpIpv6z
+         tcpIpv4(5)     transportDomainTcpIpv4
+         tcpIpv6(6)     transportDomainTcpIpv6
+         tcpIpv4z(7)    transportDomainTcpIpv4z
+         tcpIpv6z(8)    transportDomainTcpIpv6z
+         sctpIpv4(9)    transportDomainSctpIpv4
+         sctpIpv6(10)   transportDomainSctpIpv6
+         sctpIpv4z(11)  transportDomainSctpIpv4z
+         sctpIpv6z(12)  transportDomainSctpIpv6z
+         local(13)      transportDomainLocal
+         udpDns(14)     transportDomainUdpDns
+         tcpDns(15)     transportDomainTcpDns
+         sctpDns(16)    transportDomainSctpDns
+
+         This textual convention can be used to represent transport
+         domains in situations where a syntax of TransportDomain is
+         unwieldy (for example, when used as an index).
+
+         The usage of this textual convention implies that additional
+         transport domains can only be supported by updating this MIB
+         module. This extensibility restriction does not apply for the
+         TransportDomain textual convention which allows MIB authors
+         to define additional transport domains independently in
+         other MIB modules."
+    SYNTAX      INTEGER {
+                    unknown(0),
+                    udpIpv4(1),
+                    udpIpv6(2),
+                    udpIpv4z(3),
+                    udpIpv6z(4),
+                    tcpIpv4(5),
+                    tcpIpv6(6),
+                    tcpIpv4z(7),
+                    tcpIpv6z(8),
+                    sctpIpv4(9),
+                    sctpIpv6(10),
+                    sctpIpv4z(11),
+                    sctpIpv6z(12),
+                    local(13),
+                    udpDns(14),
+                    tcpDns(15),
+                    sctpDns(16)
+                }
+
+TransportAddress ::= TEXTUAL-CONVENTION
+    STATUS      current
+    DESCRIPTION
+        "Denotes a generic transport address.
+
+         A TransportAddress value is always interpreted within the
+         context of a TransportAddressType or TransportDomain value.
+         Every usage of the TransportAddress textual convention MUST
+         specify the TransportAddressType or TransportDomain object
+         which provides the context. Furthermore, MIB authors SHOULD
+         define a separate TransportAddressType or TransportDomain
+         object for each TransportAddress object. It is suggested that
+         the TransportAddressType or TransportDomain is logically
+         registered before the object(s) which use the
+         TransportAddress textual convention if they appear in the
+         same logical row.
+
+         The value of a TransportAddress object must always be
+         consistent with the value of the associated
+         TransportAddressType or TransportDomain object. Attempts
+         to set a TransportAddress object to a value which is
+         inconsistent with the associated TransportAddressType or
+         TransportDomain must fail with an inconsistentValue error.
+
+         When this textual convention is used as a syntax of an
+         index object, there may be issues with the limit of 128
+         sub-identifiers specified in SMIv2, STD 58. In this case,
+         the OBJECT-TYPE declaration MUST include a 'SIZE' clause
+         to limit the number of potential instance sub-identifiers."
+    SYNTAX      OCTET STRING (SIZE (0..255))
+
+TransportAddressIPv4 ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "1d.1d.1d.1d:2d"
+    STATUS      current
+    DESCRIPTION
+        "Represents a transport address consisting of an IPv4
+         address and a port number (as used for example by UDP,
+         TCP and SCTP):
+
+          octets       contents         encoding
+           1-4         IPv4 address     network-byte order
+           5-6         port number      network-byte order
+
+         This textual convention SHOULD NOT be used directly in object
+         definitions since it restricts addresses to a specific format.
+         However, if it is used, it MAY be used either on its own or
+         in conjunction with TransportAddressType or TransportDomain
+         as a pair."
+    SYNTAX      OCTET STRING (SIZE (6))
+
+TransportAddressIPv6 ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "0a[2x:2x:2x:2x:2x:2x:2x:2x]0a:2d"
+    STATUS      current
+    DESCRIPTION
+        "Represents a transport address consisting of an IPv6
+         address and a port number (as used for example by UDP,
+         TCP and SCTP):
+
+          octets       contents         encoding
+           1-16        IPv6 address     network-byte order
+          17-18        port number      network-byte order
+
+         This textual convention SHOULD NOT be used directly in object
+         definitions since it restricts addresses to a specific format.
+         However, if it is used, it MAY be used either on its own or
+         in conjunction with TransportAddressType or TransportDomain
+         as a pair."
+    SYNTAX      OCTET STRING (SIZE (18))
+
+TransportAddressIPv4z ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "1d.1d.1d.1d%4d:2d"
+    STATUS      current
+    DESCRIPTION
+        "Represents a transport address consisting of an IPv4
+         address, a zone index and a port number (as used for
+         example by UDP, TCP and SCTP):
+
+          octets       contents         encoding
+           1-4         IPv4 address     network-byte order
+           5-8         zone index       network-byte order
+           9-10        port number      network-byte order
+
+         This textual convention SHOULD NOT be used directly in object
+         definitions since it restricts addresses to a specific format.
+         However, if it is used, it MAY be used either on its own or
+         in conjunction with TransportAddressType or TransportDomain
+         as a pair."
+    SYNTAX      OCTET STRING (SIZE (10))
+
+TransportAddressIPv6z ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "0a[2x:2x:2x:2x:2x:2x:2x:2x%4d]0a:2d"
+    STATUS      current
+    DESCRIPTION
+        "Represents a transport address consisting of an IPv6
+         address, a zone index and a port number (as used for
+         example by UDP, TCP and SCTP):
+
+          octets       contents         encoding
+           1-16        IPv6 address     network-byte order
+          17-20        zone index       network-byte order
+          21-22        port number      network-byte order
+
+         This textual convention SHOULD NOT be used directly in object
+         definitions since it restricts addresses to a specific format.
+         However, if it is used, it MAY be used either on its own or
+         in conjunction with TransportAddressType or TransportDomain
+         as a pair."
+    SYNTAX      OCTET STRING (SIZE (22))
+
+TransportAddressLocal ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "1a"
+    STATUS      current
+    DESCRIPTION
+        "Represents a POSIX Local IPC transport address:
+
+          octets       contents                   encoding
+           all         POSIX Local IPC address    string
+
+         The Posix Local IPC transport domain subsumes UNIX domain
+         sockets.
+
+         This textual convention SHOULD NOT be used directly in object
+         definitions since it restricts addresses to a specific format.
+         However, if it is used, it MAY be used either on its own or
+         in conjunction with TransportAddressType or TransportDomain
+         as a pair.
+
+         When this textual convention is used as a syntax of an
+         index object, there may be issues with the limit of 128
+         sub-identifiers specified in SMIv2, STD 58. In this case,
+         the OBJECT-TYPE declaration MUST include a 'SIZE' clause
+         to limit the number of potential instance sub-identifiers."
+    REFERENCE
+        "Protocol Independent Interfaces (IEEE POSIX 1003.1g)"
+    SYNTAX      OCTET STRING (SIZE (1..255))
+
+TransportAddressDns ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "1a"
+    STATUS      current
+    DESCRIPTION
+        "Represents a DNS domain name followed by a colon ':'
+         (ASCII character 0x3A) and a port number in ASCII.
+         The name SHOULD be fully qualified whenever possible.
+
+         Values of this textual convention are not directly useable as
+         transport-layer addressing information, and require runtime
+         resolution. As such, applications that write them must be
+         prepared for handling errors if such values are not
+         supported, or cannot be resolved (if resolution occurs at the
+         time of the management operation).
+
+         The DESCRIPTION clause of TransportAddress objects that may
+         have TransportAddressDns values must fully describe how (and
+         when) such names are to be resolved to IP addresses and vice
+         versa.
+
+         This textual convention SHOULD NOT be used directly in object
+         definitions since it restricts addresses to a specific format.
+         However, if it is used, it MAY be used either on its own or
+         in conjunction with TransportAddressType or TransportDomain
+         as a pair.
+
+         When this textual convention is used as a syntax of an
+         index object, there may be issues with the limit of 128
+         sub-identifiers specified in SMIv2, STD 58. In this case,
+         the OBJECT-TYPE declaration MUST include a 'SIZE' clause
+         to limit the number of potential instance sub-identifiers."
+    SYNTAX      OCTET STRING (SIZE (1..255))
+
+END

Added: trunk/mibs/UCD-DEMO-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/UCD-DEMO-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,74 @@
+UCD-DEMO-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, Integer32	FROM SNMPv2-SMI
+    ucdavis					FROM UCD-SNMP-MIB;
+
+ucdDemoMIB MODULE-IDENTITY
+    LAST-UPDATED "9912090000Z"
+    ORGANIZATION "University of California, Davis"
+    CONTACT-INFO
+	"This mib is no longer being maintained by the University of
+	 California and is now in life-support-mode and being
+	 maintained by the net-snmp project.  The best place to write
+	 for public questions about the net-snmp-coders mailing list
+	 at net-snmp-coders at lists.sourceforge.net.
+
+         postal:   Wes Hardaker
+                   P.O. Box 382
+                   Davis CA  95617
+
+         email:    net-snmp-coders at lists.sourceforge.net
+        "
+    DESCRIPTION
+	"The UCD-SNMP Demonstration MIB."
+    REVISION	 "9912090000Z"
+    DESCRIPTION
+	"SMIv2 version converted from older MIB definitions."
+    ::= { ucdavis 14 }
+
+ucdDemoMIBObjects OBJECT IDENTIFIER ::= { ucdDemoMIB 1 }
+
+ucdDemoPublic OBJECT IDENTIFIER ::= { ucdDemoMIBObjects 1 }
+
+ucdDemoResetKeys OBJECT-TYPE
+    SYNTAX	Integer32 (0..2147483647)
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION
+	"A set of value 1 to this object resets the
+	 demonstration user's auth and priv keys to the
+	 keys based on the P->Ku->Kul transformation of the
+	 value of the ucdDemoPasspharse object.
+
+	 Values other than 1 are ignored."
+    ::= { ucdDemoPublic 1 }
+
+ucdDemoPublicString OBJECT-TYPE
+    SYNTAX	OCTET STRING (SIZE(0..1024))
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION
+	"A publicly settable string that can be set for testing 
+	 snmpsets.  This value has no real usage other than
+	 testing purposes."
+    ::= { ucdDemoPublic 2 }
+
+ucdDemoUserList OBJECT-TYPE
+    SYNTAX	OCTET STRING
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The list of users affected by the ucdDemoResetKeys object."
+    ::= { ucdDemoPublic 3 }
+
+ucdDemoPassphrase  OBJECT-TYPE
+    SYNTAX	OCTET STRING
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The demo passphrase that ucdDemoResetKeys changes each 
+	 users localized key to based on the P->Ku->Kul transformation."
+    ::= { ucdDemoPublic 4 }
+
+END

Added: trunk/mibs/UCD-DISKIO-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/UCD-DISKIO-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,162 @@
+UCD-DISKIO-MIB DEFINITIONS ::= BEGIN
+
+--
+-- Derived from the original VEST-INTERNETT-MIB. Open issues:
+--
+-- (a) where to register this MIB?
+-- (b) use not-accessible for diskIOIndex?
+--
+
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter32, Counter64
+        FROM SNMPv2-SMI
+    DisplayString
+        FROM SNMPv2-TC
+    ucdExperimental
+        FROM UCD-SNMP-MIB;
+
+ucdDiskIOMIB MODULE-IDENTITY
+    LAST-UPDATED "200001260000Z"
+    ORGANIZATION "University of California, Davis"
+    CONTACT-INFO    
+	"This mib is no longer being maintained by the University of
+	 California and is now in life-support-mode and being
+	 maintained by the net-snmp project.  The best place to write
+	 for public questions about the net-snmp-coders mailing list
+	 at net-snmp-coders at lists.sourceforge.net.
+
+         postal:   Wes Hardaker
+                   P.O. Box 382
+                   Davis CA  95617
+
+         email:    net-snmp-coders at lists.sourceforge.net
+        "
+    DESCRIPTION
+        "This MIB module defines objects for disk IO statistics."
+    REVISION     "200001260000Z"
+    DESCRIPTION
+        "SMIv2 version derived from older definitions contained
+         in the VEST-INTERNETT-MIB module."
+    REVISION     "200504200000Z"
+    DESCRIPTION
+        "Add 64 bit counters. Patch from Dan Nelson."
+    ::= { ucdExperimental 15 }
+
+diskIOTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF DiskIOEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "Table of IO devices and how much data they have read/written."
+    ::= { ucdDiskIOMIB 1 }
+
+diskIOEntry OBJECT-TYPE
+    SYNTAX      DiskIOEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "An entry containing a device and its statistics."
+    INDEX       { diskIOIndex }
+    ::= { diskIOTable 1 }
+
+DiskIOEntry ::= SEQUENCE {
+    diskIOIndex         Integer32,
+    diskIODevice        DisplayString,
+    diskIONRead         Counter32,
+    diskIONWritten      Counter32,
+    diskIOReads         Counter32,
+    diskIOWrites        Counter32,
+    diskIONReadX        Counter64,
+    diskIONWrittenX     Counter64
+}
+
+diskIOIndex OBJECT-TYPE
+    SYNTAX      Integer32 (0..65535)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Reference index for each observed device."
+    ::= { diskIOEntry 1 }
+
+diskIODevice OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The name of the device we are counting/checking."
+    ::= { diskIOEntry 2 }
+
+diskIONRead OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of bytes read from this device since boot."
+    ::= { diskIOEntry 3 }
+
+diskIONWritten OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of bytes written to this device since boot."
+    ::= { diskIOEntry 4 }
+
+diskIOReads OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of read accesses from this device since boot."
+    ::= { diskIOEntry 5 }
+
+diskIOWrites OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of write accesses to this device since boot."
+    ::= { diskIOEntry 6 }
+
+diskIOLA1 OBJECT-TYPE
+    SYNTAX      Integer32 (0..100)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The 1 minute average load of disk (%)"
+    ::= { diskIOEntry 9 }
+
+diskIOLA5 OBJECT-TYPE
+    SYNTAX      Integer32 (0..100)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The 5 minute average load of disk (%)"
+    ::= { diskIOEntry 10 }
+
+diskIOLA15 OBJECT-TYPE
+    SYNTAX      Integer32 (0..100)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The 15 minute average load of disk (%)"
+    ::= { diskIOEntry 11 }
+
+diskIONReadX OBJECT-TYPE
+    SYNTAX      Counter64
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of bytes read from this device since boot."
+    ::= { diskIOEntry 12 }
+
+diskIONWrittenX OBJECT-TYPE
+    SYNTAX      Counter64
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of bytes written to this device since boot."
+    ::= { diskIOEntry 13 }
+
+END

Added: trunk/mibs/UCD-DLMOD-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/UCD-DLMOD-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,119 @@
+UCD-DLMOD-MIB DEFINITIONS ::= BEGIN
+
+-- Why do we have dlmodNextIndex if the dlmodTable is read-write?
+-- What exactly is the dlmodName and dlmodPath?
+-- Should there not be a timestamp associated with dlmodError?
+-- What exactly do the dlmodStatus enumerations mean?
+
+IMPORTS
+    OBJECT-TYPE, MODULE-IDENTITY, Integer32	FROM SNMPv2-SMI
+    DisplayString				FROM SNMPv2-TC
+    ucdExperimental				FROM UCD-SNMP-MIB;
+
+ucdDlmodMIB MODULE-IDENTITY
+    LAST-UPDATED "9912100000Z"
+    ORGANIZATION "University of California, Davis"
+    CONTACT-INFO    
+	"This mib is no longer being maintained by the University of
+	 California and is now in life-support-mode and being
+	 maintained by the net-snmp project.  The best place to write
+	 for public questions about the net-snmp-coders mailing list
+	 at net-snmp-coders at lists.sourceforge.net.
+
+         postal:   Wes Hardaker
+                   P.O. Box 382
+                   Davis CA  95617
+
+         email:    net-snmp-coders at lists.sourceforge.net
+        "
+    DESCRIPTION
+	"This file defines the MIB objects for dynamic 
+	 loadable MIB modules."
+    REVISION	 "9912100000Z"
+    DESCRIPTION
+	"SMIv2 version converted from older MIB definitions."
+    ::= { ucdExperimental 14 }
+
+dlmodNextIndex OBJECT-TYPE 
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The index number of next appropiate unassigned entry
+	 in the dlmodTable."
+    ::= { ucdDlmodMIB 1 }
+
+dlmodTable OBJECT-TYPE 
+    SYNTAX	SEQUENCE OF DlmodEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A table of dlmodEntry."
+    ::= { ucdDlmodMIB 2 }
+
+dlmodEntry OBJECT-TYPE
+    SYNTAX	DlmodEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"The parameters of dynamically loaded MIB module."
+    INDEX	{ dlmodIndex }
+    ::= { dlmodTable 1 }
+
+DlmodEntry ::= SEQUENCE {
+    dlmodIndex	Integer32,
+    dlmodName	DisplayString,
+    dlmodPath	DisplayString,
+    dlmodError	DisplayString,
+    dlmodStatus	INTEGER
+}
+
+dlmodIndex OBJECT-TYPE
+    SYNTAX	Integer32 (1..65535)
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"An index that uniqely identifies an entry in the dlmodTable."
+    ::= { dlmodEntry 1 }
+
+dlmodName OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION
+	"The module name."
+    ::= { dlmodEntry 2 }
+
+dlmodPath OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION
+	"The path of the module executable file."
+    ::= { dlmodEntry 3 } 
+
+dlmodError OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The last error from dlmod_load_module."
+    ::= { dlmodEntry 4 }
+
+dlmodStatus OBJECT-TYPE
+    SYNTAX	INTEGER {
+		    loaded(1),
+		    unloaded(2),
+		    error(3),
+		    load(4),
+		    unload(5),
+		    create(6),
+		    delete(7)
+		}
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION
+	"The current status of the loaded module."
+    ::= { dlmodEntry 5 }
+
+END

Added: trunk/mibs/UCD-IPFWACC-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/UCD-IPFWACC-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,327 @@
+UCD-IPFWACC-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    OBJECT-TYPE, MODULE-IDENTITY, IpAddress, Integer32, Counter32
+	FROM SNMPv2-SMI
+    DisplayString
+	FROM SNMPv2-TC
+    ucdExperimental
+	FROM UCD-SNMP-MIB;
+
+ucdIpFwAccMIB MODULE-IDENTITY
+    LAST-UPDATED "9912160000Z"
+    ORGANIZATION "University of California, Davis"
+    CONTACT-INFO    
+	"This mib is no longer being maintained by the University of
+	 California and is now in life-support-mode and being
+	 maintained by the net-snmp project.  The best place to write
+	 for public questions about the net-snmp-coders mailing list
+	 at net-snmp-coders at lists.sourceforge.net.
+
+         postal:   Wes Hardaker
+                   P.O. Box 382
+                   Davis CA  95617
+
+         email:    net-snmp-coders at lists.sourceforge.net
+        "
+    DESCRIPTION
+	"This module defines MIB components for reading information
+         from the accounting rules IP Firewall. This would typically
+         let you read the rules and the counters. I did not include
+         some flags and fields that I considered irrelevant for the
+         accounting rules. Resetting the counters of the rules by SNMP
+         would be simple, but I don't consider it so useful. I gave no
+         consideration to implementing write access for allowing
+         modification of the accounting rules.
+
+         Cristian.Estan at net.utcluj.ro "
+    REVISION	 "9912160000Z"
+    DESCRIPTION
+	"SMIv2 version converted from an older MIB definition."
+    ::= { ucdExperimental 1 }
+
+ipFwAccTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF IpFwAccEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A table with the accounting rules of the IP firewall"
+    ::= { ucdIpFwAccMIB 1 }
+
+ipFwAccEntry OBJECT-TYPE
+    SYNTAX	IpFwAccEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"An accounting rule of the IP firewall"
+    INDEX	{ ipFwAccIndex }
+    ::= { ipFwAccTable 1 }
+
+IpFwAccEntry ::= SEQUENCE {
+    ipFwAccIndex	Integer32,
+    ipFwAccSrcAddr	IpAddress,
+    ipFwAccSrcNetMask	IpAddress,
+    ipFwAccDstAddr	IpAddress,
+    ipFwAccDstNetMask	IpAddress,
+    ipFwAccViaName	DisplayString,
+    ipFwAccViaAddr	IpAddress,
+    ipFwAccProto	INTEGER,
+    ipFwAccBidir	INTEGER,
+    ipFwAccDir		INTEGER,
+    ipFwAccBytes	Counter32,
+    ipFwAccPackets	Counter32,
+    ipFwAccNrSrcPorts	Integer32,
+    ipFwAccNrDstPorts	Integer32,
+    ipFwAccSrcIsRange	INTEGER,
+    ipFwAccDstIsRange	INTEGER,
+    ipFwAccPort1	Integer32,
+    ipFwAccPort2	Integer32,
+    ipFwAccPort3	Integer32,
+    ipFwAccPort4	Integer32,
+    ipFwAccPort5	Integer32,
+    ipFwAccPort6	Integer32,
+    ipFwAccPort7	Integer32,
+    ipFwAccPort8	Integer32,
+    ipFwAccPort9	Integer32,
+    ipFwAccPort10	Integer32
+}
+
+ipFwAccIndex OBJECT-TYPE
+    SYNTAX	Integer32 (0..2147483647)
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Reference index for each firewall rule."
+    ::= { ipFwAccEntry 1 }
+
+ipFwAccSrcAddr OBJECT-TYPE
+    SYNTAX	IpAddress
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The source address in the firewall rule."
+    ::= { ipFwAccEntry 2 }
+
+ipFwAccSrcNetMask OBJECT-TYPE
+    SYNTAX	IpAddress
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The netmask of the source address in the firewall rule."
+    ::= { ipFwAccEntry 3 }
+
+ipFwAccDstAddr OBJECT-TYPE
+    SYNTAX	IpAddress
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The destination address in the firewall rule."
+    ::= { ipFwAccEntry 4 }
+
+ipFwAccDstNetMask OBJECT-TYPE
+    SYNTAX	IpAddress
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The netmask of the destination address in the firewall rule."
+    ::= { ipFwAccEntry 5 }
+
+ipFwAccViaName OBJECT-TYPE
+    SYNTAX	DisplayString (SIZE(1..64))
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The name of the interface to which the rule applies. If no
+	 interface is associated with the present rule, this should
+	 contain a dash (-)."
+    ::= { ipFwAccEntry 6 }
+
+ipFwAccViaAddr OBJECT-TYPE
+    SYNTAX	IpAddress
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The address of the interface to which the rule applies.
+	 Using this parameter makes sense when multiple addresses are
+	 associated to the same physical interface. If not defined
+	 for the current rule this should be set to 0."
+    ::= { ipFwAccEntry 7 }
+
+ipFwAccProto OBJECT-TYPE
+    SYNTAX	INTEGER {
+		    other(1),
+		    all(2),
+		    tcp(3),
+		    udp(4),
+		    icmp(5)
+		}
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The protocol(s) to which the rule applies."
+    ::= { ipFwAccEntry 8 }
+
+ipFwAccBidir OBJECT-TYPE
+    SYNTAX	INTEGER {
+		    unidirectional(1),
+		    bidirectional(2)
+		}
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Whether the rule works in both directions (i.e. with the
+	 source and destination parts swapped) or not."
+    ::= { ipFwAccEntry 9 }
+
+ipFwAccDir OBJECT-TYPE
+    SYNTAX	INTEGER {
+		    both(1),
+		    in(2),
+		    out(3)
+		}
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Whether the rule applies to packets entering or exiting the
+	 kernel."
+    ::= { ipFwAccEntry 10 }
+
+ipFwAccBytes OBJECT-TYPE
+    SYNTAX	Counter32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The number of bytes that matched this rule since the last
+	 reset of the counters."
+    ::= { ipFwAccEntry 11 }
+
+ipFwAccPackets OBJECT-TYPE
+    SYNTAX	Counter32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The number of packets that matched this rule since the last
+	 reset of the counters."
+    ::= { ipFwAccEntry 12 }
+
+ipFwAccNrSrcPorts OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The number of ports that refer to the source address."
+    ::= { ipFwAccEntry 13 }
+
+ipFwAccNrDstPorts OBJECT-TYPE
+    SYNTAX	Integer32 
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The number of ports that refer to the destination address."
+    ::= { ipFwAccEntry 14 }
+
+ipFwAccSrcIsRange OBJECT-TYPE
+    SYNTAX	INTEGER {
+		    srchasrange(1),
+		    srchasnorange(2)
+		}
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Interpret the first two ports of the source part as
+	 the upper and lower limit of an interval or not."
+    ::= { ipFwAccEntry 15 }
+
+ipFwAccDstIsRange OBJECT-TYPE
+    SYNTAX	INTEGER {
+		    dsthasrange(1),
+		    dsthasnorange(2)
+		}
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Interpret the first two ports of the destination part as
+	 the upper and lower limit of an interval or not."
+    ::= { ipFwAccEntry 16 }
+
+ipFwAccPort1 OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Port number 1."
+    ::= { ipFwAccEntry 17 }
+
+ipFwAccPort2 OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Port number 2."
+    ::= { ipFwAccEntry 18 }
+
+ipFwAccPort3 OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Port number 3."
+    ::= { ipFwAccEntry 19 }
+
+ipFwAccPort4 OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Port number 4."
+    ::= { ipFwAccEntry 20 }
+
+ipFwAccPort5 OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Port number 5."
+    ::= { ipFwAccEntry 21 }
+
+ipFwAccPort6 OBJECT-TYPE
+    SYNTAX	Integer32 
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Port number 6."
+    ::= { ipFwAccEntry 22 }
+
+ipFwAccPort7 OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Port number 7."
+    ::= { ipFwAccEntry 23 }
+
+ipFwAccPort8 OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Port number 8."
+    ::= { ipFwAccEntry 24 }
+
+ipFwAccPort9 OBJECT-TYPE
+     SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Port number 9."
+    ::= { ipFwAccEntry 25 }
+
+ipFwAccPort10 OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Port number 10."
+    ::= { ipFwAccEntry 26 }
+
+END

Added: trunk/mibs/UCD-SNMP-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/UCD-SNMP-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,1409 @@
+UCD-SNMP-MIB DEFINITIONS ::= BEGIN
+
+-- Design notes:
+--
+-- The design of this mib may seem unusual in parts, as it was
+-- designed for ease of numerical management routines.
+-- 
+-- In that light, most sub-sections of this mib have four common
+-- numerical oid consistencies:
+--
+-- 2021.ID.1   : an integer index value.  In scalers, this is always
+--               of value 1.  In tables it is a row index.
+-- 2021.ID.2   : a name of the script, process, etc. that this row represents.
+-- 2021.ID.100 : An error flag indicating if an error is present on
+--               that row (a threshold value was crossed, etc).
+-- 2021.ID.101 : An error string describing why the error flag is non-0.
+--
+-- These conventions enable managers to easy examine portions of the
+-- mib by setting the ID to the sub-section they are interested in
+-- monitoring, and then scanning the .100 value to check for an
+-- error(s), and get a more specific error message from .101 for the
+-- named check found in .2.
+--
+-- Row numbers between 2 and 100 are sub-section specific.
+--
+-- Mib sections utilizing the above conventions:
+--   Tables:  	procTable, execTable, diskTable, loadTable
+--   Scalers: 	memory, snmperrs
+
+
+IMPORTS
+    OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY,
+    Integer32, Opaque, enterprises, Counter32
+        FROM SNMPv2-SMI
+
+    TEXTUAL-CONVENTION, DisplayString, TruthValue
+	FROM SNMPv2-TC;
+
+ucdavis MODULE-IDENTITY
+    LAST-UPDATED "200209050000Z"
+    ORGANIZATION "University of California, Davis"
+    CONTACT-INFO    
+	"This mib is no longer being maintained by the University of
+	 California and is now in life-support-mode and being
+	 maintained by the net-snmp project.  The best place to write
+	 for public questions about the net-snmp-coders mailing list
+	 at net-snmp-coders at lists.sourceforge.net.
+
+         postal:   Wes Hardaker
+                   P.O. Box 382
+                   Davis CA  95617
+
+         email:    net-snmp-coders at lists.sourceforge.net
+        "
+    DESCRIPTION
+	"Added ssCpuRawSoftIRQ for Linux (2.6) and forgotten raw swap counters."
+    REVISION	 "200404070000Z"
+    DESCRIPTION
+	"Deprecate the non-raw objects."
+    REVISION	 "200209050000Z"
+    DESCRIPTION
+	"This file defines the private UCD SNMP MIB extensions."
+    REVISION	 "200101170000Z"
+    DESCRIPTION
+	"Added raw CPU and IO counters."
+    REVISION	 "9912090000Z"
+    DESCRIPTION
+	"SMIv2 version converted from older MIB definitions."
+    ::= { enterprises 2021 }
+
+-- Current UCD core mib table entries:
+--   prTable          OBJECT IDENTIFIER ::= { ucdavis   2 }
+--   memory           OBJECT IDENTIFIER ::= { ucdavis   4 }
+--   extTable         OBJECT IDENTIFIER ::= { ucdavis   8 }
+--   diskTable        OBJECT IDENTIFIER ::= { ucdavis   9 }
+--   loadTable        OBJECT IDENTIFIER ::= { ucdavis  10 }
+--   systemStats      OBJECT IDENTIFIER ::= { ucdavis  11 }
+--   ucdDemoMIB       OBJECT IDENTIFIER ::= { ucdavis  14 } - UCD-DEMO-MIB
+--   fileTable        OBJECT IDENTIFIER ::= { ucdavis  15 }
+--   logMatch         OBJECT IDENTIFIER ::= { ucdavis  16 }
+--   version          OBJECT IDENTIFIER ::= { ucdavis 100 }
+--   snmperrs         OBJECT IDENTIFIER ::= { ucdavis 101 }
+--   mibRegistryTable OBJECT IDENTIFIER ::= { ucdavis 102 }
+
+-- Older mib table entries that were changed to new locations above:
+--   processes        OBJECT IDENTIFIER ::= { ucdavis   1 }
+--   exec             OBJECT IDENTIFIER ::= { ucdavis   3 }
+--   disk             OBJECT IDENTIFIER ::= { ucdavis   6 }
+--   load             OBJECT IDENTIFIER ::= { ucdavis   7 }
+
+-- Never implemented and removed from the mib:
+--   lockd            OBJECT IDENTIFIER ::= { ucdavis   5 }
+
+-- Branches for registering other UCD MIB modules:
+ucdInternal           OBJECT IDENTIFIER ::= { ucdavis 12 }
+ucdExperimental       OBJECT IDENTIFIER ::= { ucdavis 13 }
+
+-- OID values assigned in the ucdExperimental branch:
+--   ucdIpFwAccMIB    OBJECT IDENTIFIER ::= { ucdExperimental  1 } - UCD-IPFWACC-MIB
+--   ucdIpFilter      OBJECT IDENTIFIER ::= { ucdExperimental  2 } - UCD-IPFILTER-MIB
+--   wavelan          OBJECT IDENTIFIER ::= { ucdExperimental  3 } - WL-MIB
+--   ucdDlmodMIB      OBJECT IDENTIFIER ::= { ucdExperimental 14 } - UCD-DLMOD-MIB
+--   ucdDiskIOMIB     OBJECT IDENTIFIER ::= { ucdExperimental 15 } - UCD-DISKIO-MIB
+--   lmSensors        OBJECT IDENTIFIER ::= { ucdExperimental 16 } - LM-SENSORS-MIB
+
+
+-- These are the returned values of the agent type.
+-- returned to:  .iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0 
+
+ucdSnmpAgent      OBJECT IDENTIFIER ::= { ucdavis 250 }
+hpux9             OBJECT IDENTIFIER ::= { ucdSnmpAgent 1 }
+sunos4            OBJECT IDENTIFIER ::= { ucdSnmpAgent 2 }
+solaris           OBJECT IDENTIFIER ::= { ucdSnmpAgent 3 }
+osf               OBJECT IDENTIFIER ::= { ucdSnmpAgent 4 }
+ultrix            OBJECT IDENTIFIER ::= { ucdSnmpAgent 5 }
+hpux10            OBJECT IDENTIFIER ::= { ucdSnmpAgent 6 }
+netbsd1           OBJECT IDENTIFIER ::= { ucdSnmpAgent 7 }
+freebsd           OBJECT IDENTIFIER ::= { ucdSnmpAgent 8 }
+irix              OBJECT IDENTIFIER ::= { ucdSnmpAgent 9 }
+linux             OBJECT IDENTIFIER ::= { ucdSnmpAgent 10 }
+bsdi              OBJECT IDENTIFIER ::= { ucdSnmpAgent 11 }
+openbsd           OBJECT IDENTIFIER ::= { ucdSnmpAgent 12 }
+win32		  OBJECT IDENTIFIER ::= { ucdSnmpAgent 13 } -- unlucky
+hpux11            OBJECT IDENTIFIER ::= { ucdSnmpAgent 14 }
+unknown           OBJECT IDENTIFIER ::= { ucdSnmpAgent 255 }
+
+
+--
+-- Define the Float Textual Convention
+--   This definition was written by David Perkins.
+--
+
+Float ::= TEXTUAL-CONVENTION
+    STATUS      current
+    DESCRIPTION
+        "A single precision floating-point number.  The semantics
+         and encoding are identical for type 'single' defined in
+         IEEE Standard for Binary Floating-Point,
+         ANSI/IEEE Std 754-1985.
+         The value is restricted to the BER serialization of
+         the following ASN.1 type:
+             FLOATTYPE ::= [120] IMPLICIT FloatType
+         (note: the value 120 is the sum of '30'h and '48'h)
+         The BER serialization of the length for values of
+         this type must use the definite length, short
+         encoding form.
+
+         For example, the BER serialization of value 123
+         of type FLOATTYPE is '9f780442f60000'h.  (The tag
+         is '9f78'h; the length is '04'h; and the value is
+         '42f60000'h.) The BER serialization of value
+         '9f780442f60000'h of data type Opaque is
+         '44079f780442f60000'h. (The tag is '44'h; the length
+         is '07'h; and the value is '9f780442f60000'h."
+    SYNTAX Opaque (SIZE (7))
+
+--
+-- Process table checks
+--
+
+prTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF PrEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A table containing information on running
+	 programs/daemons configured for monitoring in the
+	 snmpd.conf file of the agent.  Processes violating the
+	 number of running processes required by the agent's
+	 configuration file are flagged with numerical and
+	 textual errors."
+    ::= { ucdavis 2 }
+
+prEntry OBJECT-TYPE
+    SYNTAX	PrEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+        "An entry containing a process and its statistics."
+    INDEX	{ prIndex }
+    ::= { prTable  1 }
+
+PrEntry ::= SEQUENCE {
+    prIndex		Integer32,
+    prNames		DisplayString,
+    prMin		Integer32,
+    prMax		Integer32,
+    prCount		Integer32,
+    prErrorFlag		Integer32,
+    prErrMessage	DisplayString,
+    prErrFix		Integer32,
+    prErrFixCmd		DisplayString
+}
+
+prIndex OBJECT-TYPE
+    SYNTAX	Integer32 (0..65535)
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Reference Index for each observed process."
+    ::= { prEntry 1 }
+
+prNames OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The process name we're counting/checking on."
+    ::= { prEntry 2 }
+
+prMin OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The minimum number of processes that should be
+	 running.  An error flag is generated if the number of
+	 running processes is < the minimum."
+    ::= { prEntry 3 }
+
+prMax OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The maximum number of processes that should be
+	 running.  An error flag is generated if the number of
+	 running processes is > the maximum."
+    ::= { prEntry 4 }
+
+prCount OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The number of current processes running with the name
+	 in question."
+    ::= { prEntry 5 }
+
+prErrorFlag OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"A Error flag to indicate trouble with a process.  It
+	 goes to 1 if there is an error, 0 if no error."
+    ::= { prEntry 100 }
+
+prErrMessage OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"An error message describing the problem (if one exists)."
+    ::= { prEntry 101 }
+
+prErrFix OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION
+	"Setting this to one will try to fix the problem if
+	 the agent has been configured with a script to call
+	 to attempt to fix problems automatically using remote
+	 snmp operations."
+    ::= { prEntry 102 }
+
+prErrFixCmd OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The command that gets run when the prErrFix column is 
+	 set to 1."
+    ::= { prEntry 103 }
+
+
+
+extTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF ExtEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A table of extensible commands returning output and
+	 result codes.  These commands are configured via the
+	 agent's snmpd.conf file."
+    ::= { ucdavis 8 }
+
+extEntry OBJECT-TYPE
+    SYNTAX     ExtEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "An entry containing an extensible script/program and its output."
+    INDEX      { extIndex }
+    ::= { extTable  1 }
+
+ExtEntry ::= SEQUENCE {
+    extIndex		Integer32,
+    extNames		DisplayString,
+    extCommand		DisplayString,
+    extResult		Integer32,
+    extOutput		DisplayString,
+    extErrFix		Integer32,
+    extErrFixCmd	DisplayString
+}
+
+extIndex OBJECT-TYPE
+    SYNTAX	Integer32 (0..65535)
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Reference Index for extensible scripts.  Simply an
+	 integer row number."
+    ::= { extEntry 1 }
+
+extNames OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"A Short, one name description of the extensible command."
+    ::= { extEntry 2 }
+
+extCommand OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The command line to be executed."
+    ::= { extEntry 3 }
+
+extResult OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The result code (exit status) from the executed command."
+    ::= { extEntry 100 }
+
+extOutput OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The first line of output of the executed command."
+    ::= { extEntry 101 }
+
+extErrFix OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION
+	"Setting this to one will try to fix the problem if
+	 the agent has been configured with a script to call
+	 to attempt to fix problems automatically using remote
+	 snmp operations."
+    ::= { extEntry 102 }
+	
+extErrFixCmd OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The command that gets run when the extErrFix column is 
+	 set to 1."
+    ::= { extEntry 103 }
+
+--
+-- Memory usage/watch reporting.
+-- Not supported on all systems!
+-- See agent/mibgroup/ucd_snmp.h to see if its loaded for your architecture.
+--
+memory OBJECT IDENTIFIER ::= { ucdavis 4 }
+
+memIndex OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Bogus Index.  This should always return the integer 0."
+    ::= { memory 1 } 
+
+memErrorName OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Bogus Name. This should always return the string 'swap'."
+    ::= { memory 2 } 
+
+memTotalSwap OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Total Swap Size configured for the host."
+    ::= { memory 3 }
+
+memAvailSwap OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Available Swap Space on the host."
+    ::= { memory 4 }
+
+memTotalReal OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Total Real/Physical Memory Size on the host."
+    ::= { memory 5 }
+
+memAvailReal OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Available Real/Physical Memory Space on the host."
+    ::= { memory 6 }
+
+memTotalSwapTXT OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Total virtual memory used by text."
+    ::= { memory 7 }
+
+memAvailSwapTXT OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION	
+	"Active virtual memory used by text."
+    ::= { memory 8 }
+
+memTotalRealTXT OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Total Real/Physical Memory Size used by text."
+    ::= { memory 9 }
+
+memAvailRealTXT OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Active Real/Physical Memory Space used by text."
+    ::= { memory 10 }
+
+memTotalFree OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Total Available Memory on the host"
+    ::= { memory 11 }
+
+memMinimumSwap OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Minimum amount of free swap required to be free
+	 or else memErrorSwap is set to 1 and an error string is
+	 returned memSwapErrorMsg."
+    ::= { memory 12 }
+
+memShared OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Total Shared Memory"
+    ::= { memory 13 }
+
+memBuffer OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Total Buffered Memory"
+    ::= { memory 14 }
+
+memCached OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Total Cached Memory"
+    ::= { memory 15 }
+
+memSwapError OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Error flag.  1 indicates very little swap space left"
+    ::= { memory 100 }
+	
+memSwapErrorMsg OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Error message describing the Error Flag condition"
+    ::= { memory 101 } 
+
+
+dskTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF DskEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"Disk watching information.  Partions to be watched
+	 are configured by the snmpd.conf file of the agent."
+    ::= { ucdavis 9 }
+
+dskEntry OBJECT-TYPE
+    SYNTAX     DskEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+        "An entry containing a disk and its statistics."
+    INDEX      { dskIndex }
+    ::= { dskTable  1 }
+
+DskEntry ::= SEQUENCE {
+    dskIndex		Integer32,
+    dskPath		DisplayString,
+    dskDevice		DisplayString,
+    dskMinimum		Integer32,
+    dskMinPercent	Integer32,
+    dskTotal		Integer32,
+    dskAvail		Integer32,
+    dskUsed		Integer32,
+    dskPercent		Integer32,
+    dskPercentNode	Integer32,
+    dskErrorFlag	Integer32,
+    dskErrorMsg		DisplayString
+}
+
+dskIndex OBJECT-TYPE
+    SYNTAX	Integer32 (0..65535)
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Integer reference number (row number) for the disk mib."
+    ::= { dskEntry 1 }
+	
+dskPath OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Path where the disk is mounted."
+    ::= { dskEntry 2 } 
+
+dskDevice OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Path of the device for the partition"
+    ::= { dskEntry 3 } 
+
+dskMinimum OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Minimum space required on the disk (in kBytes) before the
+         errors are triggered.  Either this or dskMinPercent is
+         configured via the agent's snmpd.conf file."
+    ::= { dskEntry 4 } 
+
+dskMinPercent OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Percentage of minimum space required on the disk before the
+         errors are triggered.  Either this or dskMinimum is
+         configured via the agent's snmpd.conf file."
+    ::= { dskEntry 5 } 
+
+dskTotal OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Total size of the disk/partion (kBytes)"
+    ::= { dskEntry 6 } 
+
+dskAvail OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Available space on the disk"
+    ::= { dskEntry 7 } 
+
+dskUsed OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Used space on the disk"
+    ::= { dskEntry 8 } 
+
+dskPercent OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Percentage of space used on disk"
+    ::= { dskEntry 9 } 
+
+dskPercentNode OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Percentage of inodes used on disk"
+    ::= { dskEntry 10 } 
+
+dskErrorFlag OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Error flag signaling that the disk or partition is under
+	 the minimum required space configured for it."
+    ::= { dskEntry 100 } 
+     
+dskErrorMsg OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"A text description providing a warning and the space left
+	 on the disk."
+    ::= { dskEntry 101 } 
+     
+laTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF LaEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"Load average information."
+    ::= { ucdavis 10 }
+
+laEntry OBJECT-TYPE
+    SYNTAX	LaEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"An entry containing a load average and its values."
+    INDEX	{ laIndex }
+    ::= { laTable  1 }
+
+LaEntry ::= SEQUENCE {
+    laIndex		Integer32,
+    laNames		DisplayString,
+    laLoad		DisplayString,
+    laConfig		DisplayString,
+    laLoadInt		Integer32,
+    laLoadFloat		Float,
+    laErrorFlag		Integer32,
+    laErrMessage	DisplayString
+}
+
+laIndex OBJECT-TYPE
+    SYNTAX	Integer32 (0..3)
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"reference index/row number for each observed loadave."
+    ::= { laEntry 1 }
+
+laNames OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The list of loadave names we're watching."
+    ::= { laEntry 2 }
+
+laLoad OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The 1,5 and 10 minute load averages (one per row)."
+    ::= { laEntry 3 }
+
+laConfig OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The watch point for load-averages to signal an
+	 error.  If the load averages rises above this value,
+	 the laErrorFlag below is set."
+    ::= { laEntry 4 }
+
+laLoadInt OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The 1,5 and 10 minute load averages as an integer.
+	 This is computed by taking the floating point
+	 loadaverage value and multiplying by 100, then
+	 converting the value to an integer."
+    ::= { laEntry 5 }
+
+laLoadFloat OBJECT-TYPE
+    SYNTAX	Float
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The 1,5 and 10 minute load averages as an opaquely
+	 wrapped floating point number."
+    ::= { laEntry 6 }
+
+laErrorFlag OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"A Error flag to indicate the load-average has crossed
+	 its threshold value defined in the snmpd.conf file.
+	 It is set to 1 if the threshold is crossed, 0 otherwise."
+    ::= { laEntry 100 }
+
+laErrMessage OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"An error message describing the load-average and its
+	 surpased watch-point value."
+    ::= { laEntry 101 }
+
+
+version	OBJECT IDENTIFIER ::= { ucdavis 100 }
+
+versionIndex OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Index to mib (always 0)"
+    ::= { version 1 } 
+
+versionTag OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"CVS tag keyword"
+    ::= { version 2 } 
+     
+versionDate OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Date string from RCS keyword"
+    ::= { version 3 } 
+
+versionCDate OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Date string from ctime() "
+    ::= { version 4 } 
+
+versionIdent OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Id string from RCS keyword"
+    ::= { version 5 } 
+
+versionConfigureOptions OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION  
+	"Options passed to the configure script when this agent was built."
+    ::= { version 6 } 
+
+versionClearCache OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION  
+	"Set to 1 to clear the exec cache, if enabled"
+    ::= { version 10 } 
+
+versionUpdateConfig OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION  
+	"Set to 1 to read-read the config file(s)."
+    ::= { version 11 } 
+
+versionRestartAgent OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION  
+	"Set to 1 to restart the agent."
+    ::= { version 12 } 
+
+versionSavePersistentData OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION  
+	"Set to 1 to force the agent to save it's persistent data immediately."
+    ::= { version 13 } 
+
+versionDoDebugging OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-write
+    STATUS	current
+    DESCRIPTION  
+	"Set to 1 to turn debugging statements on in the agent or 0
+	 to turn it off."
+    ::= { version 20 } 
+
+
+snmperrs OBJECT IDENTIFIER ::= { ucdavis 101 }
+
+snmperrIndex OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Bogus Index for snmperrs (always 0)."
+    ::= { snmperrs 1 }
+
+snmperrNames OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"snmp"
+    ::= { snmperrs 2 }
+
+snmperrErrorFlag OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"A Error flag to indicate trouble with the agent.  It
+	 goes to 1 if there is an error, 0 if no error."
+    ::= { snmperrs 100 }
+
+snmperrErrMessage OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"An error message describing the problem (if one exists)."
+    ::= { snmperrs 101 }
+
+
+mrTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF MrEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"A table displaying all the oid's registered by mib modules in
+	 the agent.  Since the agent is modular in nature, this lists
+	 each module's OID it is responsible for and the name of the module"
+    ::= { ucdavis 102 }
+
+mrEntry OBJECT-TYPE
+    SYNTAX	MrEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"An entry containing a registered mib oid."
+    INDEX	{ IMPLIED mrIndex }
+    ::= { mrTable 1 }
+
+MrEntry ::= SEQUENCE {
+    mrIndex		OBJECT IDENTIFIER,
+    mrModuleName	DisplayString
+}
+
+mrIndex OBJECT-TYPE
+    SYNTAX	OBJECT IDENTIFIER
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The registry slot of a mibmodule."
+    ::= { mrEntry  1 }
+
+mrModuleName OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The module name that registered this OID."
+    ::= { mrEntry  2 }
+
+systemStats OBJECT IDENTIFIER ::= { ucdavis 11 }
+
+ssIndex OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Reference Index for each observed systemStat (1)."
+    ::= { systemStats 1 }
+
+ssErrorName OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"The list of systemStats names (vmstat) we're Counting."
+    ::= { systemStats 2 }
+
+ssSwapIn OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Amount of memory swapped in from disk (kB/s)."
+    ::= { systemStats 3 }
+
+ssSwapOut OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Amount of memory swapped to disk (kB/s)."
+    ::= { systemStats 4 }
+
+ssIOSent OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	deprecated
+    DESCRIPTION
+	"Blocks sent to a block device (blocks/s). Deprecated, replaced by
+	the ssIORawSent object"
+    ::= { systemStats 5 }
+
+ssIOReceive OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	deprecated
+    DESCRIPTION
+	"Blocks received from a block device (blocks/s). Deprecated, replaced by
+	the ssIORawReceived object"
+    ::= { systemStats 6 }
+
+ssSysInterrupts OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	deprecated
+    DESCRIPTION
+	"The number of interrupts per second, including the clock.
+	Deprecated, replaced by ssRawInterrupts"
+    ::= { systemStats 7 }
+
+ssSysContext OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	deprecated
+    DESCRIPTION
+	"The number of context switches per second.
+	Deprecated, replaced by ssRawContext"
+    ::= { systemStats 8 }
+
+ssCpuUser OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	deprecated
+    DESCRIPTION
+	"percentages of user CPU time. Deprecated, replaced by the ssCpuRawUser
+	object"
+    ::= { systemStats 9 }
+
+ssCpuSystem OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	deprecated
+    DESCRIPTION
+	"percentages of system CPU time. Deprecated, replaced by of the
+	ssCpuRawSystem object"
+    ::= { systemStats 10 }
+
+ssCpuIdle OBJECT-TYPE
+    SYNTAX	Integer32
+    MAX-ACCESS	read-only
+    STATUS	deprecated
+    DESCRIPTION
+	"percentages of idle CPU time. Deprecated, replaced by of the
+	ssCpuRawIdle object"
+    ::= { systemStats 11 }
+
+-- The agent only implements those of the following counters that the
+-- kernel supports! Don't expect all to be present.
+
+ssCpuRawUser OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "user CPU time."
+    ::= { systemStats 50 }
+
+ssCpuRawNice OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "nice CPU time."
+    ::= { systemStats 51 }
+
+ssCpuRawSystem OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "system CPU time."
+    ::= { systemStats 52 }
+
+ssCpuRawIdle OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "idle CPU time."
+    ::= { systemStats 53 }
+
+ssCpuRawWait OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "iowait CPU time. This is primarily a SysV thingie"
+    ::= { systemStats 54 }
+
+ssCpuRawKernel OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "kernel CPU time."
+    ::= { systemStats 55 }
+
+ssCpuRawInterrupt OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "interruptlevel CPU time. This is primarily a BSD thingie"
+    ::= { systemStats 56 }
+
+ssIORawSent OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Number of blocks sent to a block device"
+    ::= { systemStats 57 }
+
+ssIORawReceived OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Number of blocks received from a block device"
+    ::= { systemStats 58 }
+
+ssRawInterrupts OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Number of interrupts processed"
+    ::= { systemStats 59 }
+
+ssRawContexts OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Number of context switches"
+    ::= { systemStats 60 }
+
+ssCpuRawSoftIRQ OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Soft IRQ CPU time. This is for Linux 2.6"
+    ::= { systemStats 61 }
+
+ssRawSwapIn OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Number of blocks swapped in"
+    ::= { systemStats 62 }
+
+ssRawSwapOut OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Number of blocks swapped out"
+    ::= { systemStats 63 }
+
+-- possibly used in the future:
+--
+-- ssErrorFlag OBJECT-TYPE
+--     SYNTAX	   Integer32
+--     MAX-ACCESS  read-only
+--     STATUS      current
+--     DESCRIPTION
+--         "Error flag."
+--     ::= { systemStats 100 }
+-- 
+-- ssErrMessage OBJECT-TYPE
+--     SYNTAX      DisplayString
+--     MAX-ACCESS  read-only
+--     STATUS      current
+--     DESCRIPTION  
+--         "Error message describing the errorflag condition."
+--     ::= { systemStats 101 } 
+
+
+ucdTraps OBJECT IDENTIFIER ::= { ucdavis 251 }
+
+ucdStart NOTIFICATION-TYPE
+    STATUS	current
+    DESCRIPTION
+	""
+    ::= { ucdTraps 1 }
+    
+ucdShutdown	NOTIFICATION-TYPE
+    STATUS current
+    DESCRIPTION
+	"This trap is sent when the agent terminates"
+    ::= { ucdTraps 2 }
+
+--
+-- File Table:  monitor a list of files to check for a maximum size.
+-- 
+
+fileTable OBJECT-TYPE
+    SYNTAX	SEQUENCE OF FileEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"Table of monitored files."
+    ::= { ucdavis 15 }
+    
+fileEntry OBJECT-TYPE
+    SYNTAX	FileEntry
+    MAX-ACCESS	not-accessible
+    STATUS	current
+    DESCRIPTION
+	"Entry of file"
+    INDEX	{ fileIndex }
+    ::= { fileTable 1 }
+
+FileEntry ::= SEQUENCE {
+    fileIndex		Integer32,
+    fileName		DisplayString,
+    fileSize		Integer32,
+    fileMax		Integer32,
+    fileErrorFlag	TruthValue,
+    fileErrorMsg	DisplayString
+}
+
+fileIndex OBJECT-TYPE
+    SYNTAX	Integer32 (0..2147483647)
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Index of file"
+    ::= { fileEntry 1 }
+
+fileName OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Filename"
+    ::= { fileEntry 2 }
+
+fileSize OBJECT-TYPE
+    SYNTAX	Integer32
+    UNITS       "kB"
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Size of file (kB)"
+    ::= { fileEntry 3 }
+
+fileMax	OBJECT-TYPE
+    SYNTAX	Integer32
+    UNITS       "kB"
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Limit of filesize (kB)"
+    ::= { fileEntry 4 }
+
+fileErrorFlag OBJECT-TYPE
+    SYNTAX	TruthValue
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Limit exceeded flag"
+    ::= { fileEntry 100 }
+
+fileErrorMsg OBJECT-TYPE
+    SYNTAX	DisplayString
+    MAX-ACCESS	read-only
+    STATUS	current
+    DESCRIPTION
+	"Filesize error message"
+    ::= { fileEntry 101 }
+
+logMatch OBJECT IDENTIFIER ::= { ucdavis 16 }
+
+logMatchMaxEntries OBJECT-TYPE
+	SYNTAX Integer32
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"The maximum number of logmatch entries
+		this snmpd daemon can support."
+	::= { logMatch 1 }
+
+logMatchTable OBJECT-TYPE
+	SYNTAX SEQUENCE OF LogMatchEntry
+	MAX-ACCESS not-accessible
+	STATUS current
+	DESCRIPTION
+		"Table of monitored files."
+	::= { logMatch 2 }
+
+logMatchEntry OBJECT-TYPE
+	SYNTAX LogMatchEntry
+	MAX-ACCESS not-accessible
+	STATUS current
+	DESCRIPTION
+		"Entry of file"
+	INDEX { logMatchIndex }
+	::= { logMatchTable 1 }
+
+LogMatchEntry ::=
+	SEQUENCE { 
+		logMatchIndex
+			Integer32,
+		logMatchName
+			DisplayString,
+		logMatchFilename
+			DisplayString,
+		logMatchRegEx
+			DisplayString,
+		logMatchGlobalCounter
+			Counter32,
+		logMatchGlobalCount
+			Integer32,
+		logMatchCurrentCounter
+			Counter32,
+		logMatchCurrentCount
+			Integer32,
+		logMatchCounter
+			Counter32,
+		logMatchCount
+			Integer32,
+		logMatchCycle
+			Integer32,
+		logMatchErrorFlag
+			TruthValue,
+		logMatchRegExCompilation
+			DisplayString
+	 }
+
+logMatchIndex OBJECT-TYPE
+	SYNTAX Integer32 (1..2147483647)
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"Index of logmatch"
+	::= { logMatchEntry 1 }
+
+logMatchName OBJECT-TYPE
+	SYNTAX DisplayString
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"logmatch instance name"
+	::= { logMatchEntry 2 }
+
+logMatchFilename OBJECT-TYPE
+	SYNTAX DisplayString
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"filename to be logmatched"
+	::= { logMatchEntry 3 }
+
+logMatchRegEx OBJECT-TYPE
+	SYNTAX DisplayString
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"regular expression"
+	::= { logMatchEntry 4 }
+
+logMatchGlobalCounter OBJECT-TYPE
+	SYNTAX Counter32
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"global count of matches"
+	::= { logMatchEntry 5 }
+
+logMatchGlobalCount OBJECT-TYPE
+	SYNTAX Integer32
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"Description."
+	::= { logMatchEntry 6 }
+
+logMatchCurrentCounter OBJECT-TYPE
+	SYNTAX Counter32
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"Regex match counter. This counter will
+		be reset with each logfile rotation."
+	::= { logMatchEntry 7 }
+
+logMatchCurrentCount OBJECT-TYPE
+	SYNTAX Integer32
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"Description."
+	::= { logMatchEntry 8 }
+
+logMatchCounter OBJECT-TYPE
+	SYNTAX Counter32
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"Regex match counter. This counter will
+		be reset with each read"
+	::= { logMatchEntry 9 }
+
+logMatchCount OBJECT-TYPE
+	SYNTAX Integer32
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"Description."
+	::= { logMatchEntry 10 }
+
+logMatchCycle OBJECT-TYPE
+	SYNTAX Integer32
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"time between updates (if not queried) in seconds"
+	::= { logMatchEntry 11 }
+
+logMatchErrorFlag OBJECT-TYPE
+	SYNTAX TruthValue
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"errorflag: is this line configured correctly?"
+	::= { logMatchEntry 100 }
+
+logMatchRegExCompilation OBJECT-TYPE
+	SYNTAX DisplayString
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"message of regex precompilation"
+	::= { logMatchEntry 101 }
+
+END

Added: trunk/mibs/UDP-MIB.txt
==============================================================================
--- (empty file)
+++ trunk/mibs/UDP-MIB.txt	Tue Sep 25 05:08:03 2007
@@ -0,0 +1,549 @@
+UDP-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter32, Counter64,
+    Unsigned32, IpAddress, mib-2       FROM SNMPv2-SMI
+    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
+    InetAddress, InetAddressType,
+    InetPortNumber                     FROM INET-ADDRESS-MIB;
+
+udpMIB MODULE-IDENTITY
+    LAST-UPDATED "200505200000Z"  -- May 20, 2005
+    ORGANIZATION
+           "IETF IPv6 Working Group
+            http://www.ietf.org/html.charters/ipv6-charter.html"
+    CONTACT-INFO
+           "Bill Fenner (editor)
+
+            AT&T Labs -- Research
+            75 Willow Rd.
+            Menlo Park, CA 94025
+
+            Phone: +1 650 330-7893
+            Email: <fenner at research.att.com>
+
+            John Flick (editor)
+
+            Hewlett-Packard Company
+            8000 Foothills Blvd. M/S 5557
+            Roseville, CA 95747
+
+            Phone: +1 916 785 4018
+            Email: <john.flick at hp.com>
+
+            Send comments to <ipv6 at ietf.org>"
+    DESCRIPTION
+           "The MIB module for managing UDP implementations.
+            Copyright (C) The Internet Society (2005).  This
+            version of this MIB module is part of RFC 4113;
+            see the RFC itself for full legal notices."
+    REVISION      "200505200000Z"  -- May 20, 2005
+    DESCRIPTION
+           "IP version neutral revision, incorporating the
+            following revisions:
+
+            - Added udpHCInDatagrams and udpHCOutDatagrams in order
+              to provide high-capacity counters for fast networks.
+            - Added text to the descriptions of all counter objects
+              to indicate how discontinuities are detected.
+            - Deprecated the IPv4-specific udpTable and replaced it
+              with the version neutral udpEndpointTable.  This
+              table includes support for connected UDP endpoints
+              and support for identification of the operating
+              system process associated with a UDP endpoint.
+            - Deprecated the udpGroup and replaced it with object
+              groups representing the current set of objects.
+            - Deprecated udpMIBCompliance and replaced it with
+              udpMIBCompliance2, which includes the compliance
+              information for the new object groups.
+
+            This version published as RFC 4113."
+    REVISION      "199411010000Z"    -- November 1, 1994
+    DESCRIPTION
+           "Initial SMIv2 version, published as RFC 2013."
+    REVISION      "199103310000Z"    -- March 31, 1991
+    DESCRIPTION
+           "The initial revision of this MIB module was part of
+            MIB-II, published as RFC 1213."
+    ::= { mib-2 50 }
+
+-- the UDP group
+
+udp      OBJECT IDENTIFIER ::= { mib-2 7 }
+
+udpInDatagrams OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of UDP datagrams delivered to UDP
+            users.
+
+            Discontinuities in the value of this counter can occur
+            at re-initialization of the management system, and at
+            other times as indicated by discontinuities in the
+            value of sysUpTime."
+    ::= { udp 1 }
+
+udpNoPorts OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of received UDP datagrams for which
+            there was no application at the destination port.
+
+            Discontinuities in the value of this counter can occur
+            at re-initialization of the management system, and at
+            other times as indicated by discontinuities in the
+            value of sysUpTime."
+    ::= { udp 2 }
+
+udpInErrors OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The number of received UDP datagrams that could not be
+            delivered for reasons other than the lack of an
+            application at the destination port.
+
+            Discontinuities in the value of this counter can occur
+            at re-initialization of the management system, and at
+            other times as indicated by discontinuities in the
+            value of sysUpTime."
+    ::= { udp 3 }
+
+udpOutDatagrams OBJECT-TYPE
+    SYNTAX     Counter32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of UDP datagrams sent from this
+            entity.
+
+            Discontinuities in the value of this counter can occur
+            at re-initialization of the management system, and at
+            other times as indicated by discontinuities in the
+            value of sysUpTime."
+    ::= { udp 4 }
+
+udpHCInDatagrams OBJECT-TYPE
+    SYNTAX     Counter64
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of UDP datagrams delivered to UDP
+            users, for devices that can receive more than 1
+            million UDP datagrams per second.
+
+            Discontinuities in the value of this counter can occur
+            at re-initialization of the management system, and at
+            other times as indicated by discontinuities in the
+            value of sysUpTime."
+    ::= { udp 8 }
+
+udpHCOutDatagrams OBJECT-TYPE
+    SYNTAX     Counter64
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The total number of UDP datagrams sent from this
+            entity, for devices that can transmit more than 1
+            million UDP datagrams per second.
+
+            Discontinuities in the value of this counter can occur
+            at re-initialization of the management system, and at
+            other times as indicated by discontinuities in the
+            value of sysUpTime."
+    ::= { udp 9 }
+
+--
+-- { udp 6 } was defined as the ipv6UdpTable in RFC2454's
+-- IPV6-UDP-MIB.  This RFC obsoletes RFC 2454, so { udp 6 } is
+-- obsoleted.
+--
+
+-- The UDP "Endpoint" table.
+
+udpEndpointTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF UdpEndpointEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "A table containing information about this entity's UDP
+            endpoints on which a local application is currently
+            accepting or sending datagrams.
+
+            The address type in this table represents the address
+            type used for the communication, irrespective of the
+            higher-layer abstraction.  For example, an application
+            using IPv6 'sockets' to communicate via IPv4 between
+            ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would use
+            InetAddressType ipv4(1).
+
+            Unlike the udpTable in RFC 2013, this table also allows
+            the representation of an application that completely
+            specifies both local and remote addresses and ports.  A
+            listening application is represented in three possible
+            ways:
+
+            1) An application that is willing to accept both IPv4
+               and IPv6 datagrams is represented by a
+               udpEndpointLocalAddressType of unknown(0) and a
+               udpEndpointLocalAddress of ''h (a zero-length
+               octet-string).
+
+            2) An application that is willing to accept only IPv4
+               or only IPv6 datagrams is represented by a
+               udpEndpointLocalAddressType of the appropriate
+               address type and a udpEndpointLocalAddress of
+               '0.0.0.0' or '::' respectively.
+
+            3) An application that is listening for datagrams only
+               for a specific IP address but from any remote
+               system is represented by a
+               udpEndpointLocalAddressType of the appropriate
+               address type, with udpEndpointLocalAddress
+               specifying the local address.
+
+            In all cases where the remote is a wildcard, the
+            udpEndpointRemoteAddressType is unknown(0), the
+            udpEndpointRemoteAddress is ''h (a zero-length
+            octet-string), and the udpEndpointRemotePort is 0.
+
+            If the operating system is demultiplexing UDP packets
+            by remote address and port, or if the application has
+            'connected' the socket specifying a default remote
+            address and port, the udpEndpointRemote* values should
+            be used to reflect this."
+    ::= { udp 7 }
+
+udpEndpointEntry OBJECT-TYPE
+    SYNTAX     UdpEndpointEntry
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "Information about a particular current UDP endpoint.
+
+            Implementers need to be aware that if the total number
+            of elements (octets or sub-identifiers) in
+            udpEndpointLocalAddress and udpEndpointRemoteAddress
+            exceeds 111, then OIDs of column instances in this table
+            will have more than 128 sub-identifiers and cannot be
+            accessed using SNMPv1, SNMPv2c, or SNMPv3."
+    INDEX   { udpEndpointLocalAddressType,
+              udpEndpointLocalAddress,
+              udpEndpointLocalPort,
+              udpEndpointRemoteAddressType,
+              udpEndpointRemoteAddress,
+              udpEndpointRemotePort,
+              udpEndpointInstance }
+    ::= { udpEndpointTable 1 }
+
+UdpEndpointEntry ::= SEQUENCE {
+        udpEndpointLocalAddressType   InetAddressType,
+        udpEndpointLocalAddress       InetAddress,
+        udpEndpointLocalPort          InetPortNumber,
+        udpEndpointRemoteAddressType  InetAddressType,
+        udpEndpointRemoteAddress      InetAddress,
+        udpEndpointRemotePort         InetPortNumber,
+        udpEndpointInstance           Unsigned32,
+        udpEndpointProcess            Unsigned32
+    }
+
+udpEndpointLocalAddressType OBJECT-TYPE
+    SYNTAX     InetAddressType
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The address type of udpEndpointLocalAddress.  Only
+            IPv4, IPv4z, IPv6, and IPv6z addresses are expected, or
+            unknown(0) if datagrams for all local IP addresses are
+            accepted."
+    ::= { udpEndpointEntry 1 }
+
+udpEndpointLocalAddress OBJECT-TYPE
+    SYNTAX     InetAddress
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The local IP address for this UDP endpoint.
+
+            The value of this object can be represented in three
+
+            possible ways, depending on the characteristics of the
+            listening application:
+
+            1. For an application that is willing to accept both
+               IPv4 and IPv6 datagrams, the value of this object
+               must be ''h (a zero-length octet-string), with
+               the value of the corresponding instance of the
+               udpEndpointLocalAddressType object being unknown(0).
+
+            2. For an application that is willing to accept only IPv4
+               or only IPv6 datagrams, the value of this object
+               must be '0.0.0.0' or '::', respectively, while the
+               corresponding instance of the
+               udpEndpointLocalAddressType object represents the
+               appropriate address type.
+
+            3. For an application that is listening for data
+               destined only to a specific IP address, the value
+               of this object is the specific IP address for which
+               this node is receiving packets, with the
+               corresponding instance of the
+               udpEndpointLocalAddressType object representing the
+               appropriate address type.
+
+            As this object is used in the index for the
+            udpEndpointTable, implementors of this table should be
+            careful not to create entries that would result in OIDs
+            with more than 128 subidentifiers; else the information
+            cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3."
+    ::= { udpEndpointEntry 2 }
+
+udpEndpointLocalPort OBJECT-TYPE
+    SYNTAX     InetPortNumber
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The local port number for this UDP endpoint."
+    ::= { udpEndpointEntry 3 }
+
+udpEndpointRemoteAddressType OBJECT-TYPE
+    SYNTAX     InetAddressType
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The address type of udpEndpointRemoteAddress.  Only
+            IPv4, IPv4z, IPv6, and IPv6z addresses are expected, or
+            unknown(0) if datagrams for all remote IP addresses are
+            accepted.  Also, note that some combinations of
+
+            udpEndpointLocalAdressType and
+            udpEndpointRemoteAddressType are not supported.  In
+            particular, if the value of this object is not
+            unknown(0), it is expected to always refer to the
+            same IP version as udpEndpointLocalAddressType."
+    ::= { udpEndpointEntry 4 }
+
+udpEndpointRemoteAddress OBJECT-TYPE
+    SYNTAX     InetAddress
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The remote IP address for this UDP endpoint.  If
+            datagrams from any remote system are to be accepted,
+            this value is ''h (a zero-length octet-string).
+            Otherwise, it has the type described by
+            udpEndpointRemoteAddressType and is the address of the
+            remote system from which datagrams are to be accepted
+            (or to which all datagrams will be sent).
+
+            As this object is used in the index for the
+            udpEndpointTable, implementors of this table should be
+            careful not to create entries that would result in OIDs
+            with more than 128 subidentifiers; else the information
+            cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3."
+    ::= { udpEndpointEntry 5 }
+
+udpEndpointRemotePort OBJECT-TYPE
+    SYNTAX     InetPortNumber
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The remote port number for this UDP endpoint.  If
+            datagrams from any remote system are to be accepted,
+            this value is zero."
+    ::= { udpEndpointEntry 6 }
+
+udpEndpointInstance OBJECT-TYPE
+    SYNTAX     Unsigned32 (1..'ffffffff'h)
+    MAX-ACCESS not-accessible
+    STATUS     current
+    DESCRIPTION
+           "The instance of this tuple.  This object is used to
+            distinguish among multiple processes 'connected' to
+            the same UDP endpoint.  For example, on a system
+            implementing the BSD sockets interface, this would be
+            used to support the SO_REUSEADDR and SO_REUSEPORT
+            socket options."
+    ::= { udpEndpointEntry 7 }
+
+udpEndpointProcess OBJECT-TYPE
+    SYNTAX     Unsigned32
+    MAX-ACCESS read-only
+    STATUS     current
+    DESCRIPTION
+           "The system's process ID for the process associated with
+            this endpoint, or zero if there is no such process.
+            This value is expected to be the same as
+            HOST-RESOURCES-MIB::hrSWRunIndex or SYSAPPL-MIB::
+            sysApplElmtRunIndex for some row in the appropriate
+            tables."
+    ::= { udpEndpointEntry 8 }
+
+-- The deprecated UDP Listener table
+
+-- The deprecated UDP listener table only contains information
+-- about this entity's IPv4 UDP end-points on which a local
+-- application is currently accepting datagrams.  It does not
+-- provide more detailed connection information, or information
+-- about IPv6 endpoints.
+
+udpTable OBJECT-TYPE
+    SYNTAX     SEQUENCE OF UdpEntry
+    MAX-ACCESS not-accessible
+    STATUS     deprecated
+    DESCRIPTION
+           "A table containing IPv4-specific UDP listener
+            information.  It contains information about all local
+            IPv4 UDP end-points on which an application is
+            currently accepting datagrams.  This table has been
+            deprecated in favor of the version neutral
+            udpEndpointTable."
+    ::= { udp 5 }
+
+udpEntry OBJECT-TYPE
+    SYNTAX     UdpEntry
+    MAX-ACCESS not-accessible
+    STATUS     deprecated
+    DESCRIPTION
+           "Information about a particular current UDP listener."
+    INDEX   { udpLocalAddress, udpLocalPort }
+    ::= { udpTable 1 }
+
+UdpEntry ::= SEQUENCE {
+    udpLocalAddress   IpAddress,
+    udpLocalPort      Integer32
+
+}
+
+udpLocalAddress OBJECT-TYPE
+    SYNTAX     IpAddress
+    MAX-ACCESS read-only
+    STATUS     deprecated
+    DESCRIPTION
+           "The local IP address for this UDP listener.  In the
+            case of a UDP listener that is willing to accept
+            datagrams for any IP interface associated with the
+            node, the value 0.0.0.0 is used."
+    ::= { udpEntry 1 }
+
+udpLocalPort OBJECT-TYPE
+    SYNTAX     Integer32 (0..65535)
+    MAX-ACCESS read-only
+    STATUS     deprecated
+    DESCRIPTION
+           "The local port number for this UDP listener."
+    ::= { udpEntry 2 }
+
+-- conformance information
+
+udpMIBConformance OBJECT IDENTIFIER ::= { udpMIB 2 }
+udpMIBCompliances OBJECT IDENTIFIER ::= { udpMIBConformance 1 }
+udpMIBGroups      OBJECT IDENTIFIER ::= { udpMIBConformance 2 }
+
+-- compliance statements
+
+udpMIBCompliance2 MODULE-COMPLIANCE
+    STATUS     current
+    DESCRIPTION
+           "The compliance statement for systems that implement
+            UDP.
+
+            There are a number of INDEX objects that cannot be
+            represented in the form of OBJECT clauses in SMIv2, but
+            for which we have the following compliance
+            requirements, expressed in OBJECT clause form in this
+            description clause:
+
+            -- OBJECT      udpEndpointLocalAddressType
+            -- SYNTAX      InetAddressType { unknown(0), ipv4(1),
+            --                               ipv6(2), ipv4z(3),
+            --                               ipv6z(4) }
+            -- DESCRIPTION
+            --     Support for dns(5) is not required.
+            -- OBJECT      udpEndpointLocalAddress
+
+            -- SYNTAX      InetAddress (SIZE(0|4|8|16|20))
+            -- DESCRIPTION
+            --     Support is only required for zero-length
+            --     octet-strings, and for scoped and unscoped
+            --     IPv4 and IPv6 addresses.
+            -- OBJECT      udpEndpointRemoteAddressType
+            -- SYNTAX      InetAddressType { unknown(0), ipv4(1),
+            --                               ipv6(2), ipv4z(3),
+            --                               ipv6z(4) }
+            -- DESCRIPTION
+            --     Support for dns(5) is not required.
+            -- OBJECT      udpEndpointRemoteAddress
+            -- SYNTAX      InetAddress (SIZE(0|4|8|16|20))
+            -- DESCRIPTION
+            --     Support is only required for zero-length
+            --     octet-strings, and for scoped and unscoped
+            --     IPv4 and IPv6 addresses.
+           "
+    MODULE  -- this module
+         MANDATORY-GROUPS { udpBaseGroup, udpEndpointGroup }
+         GROUP       udpHCGroup
+         DESCRIPTION
+                "This group is mandatory for systems that
+                 are capable of receiving or transmitting more than
+                 1 million UDP datagrams per second.  1 million
+                 datagrams per second will cause a Counter32 to
+                 wrap in just over an hour."
+    ::= { udpMIBCompliances 2 }
+
+udpMIBCompliance MODULE-COMPLIANCE
+    STATUS     deprecated
+    DESCRIPTION
+           "The compliance statement for IPv4-only systems that
+            implement UDP.  For IP version independence, this
+            compliance statement is deprecated in favor of
+            udpMIBCompliance2.  However, agents are still
+            encouraged to implement these objects in order to
+            interoperate with the deployed base of managers."
+    MODULE  -- this module
+        MANDATORY-GROUPS { udpGroup }
+    ::= { udpMIBCompliances 1 }
+
+-- units of conformance
+
+udpGroup OBJECT-GROUP
+    OBJECTS   { udpInDatagrams, udpNoPorts,
+                udpInErrors, udpOutDatagrams,
+                udpLocalAddress, udpLocalPort }
+    STATUS     deprecated
+    DESCRIPTION
+           "The deprecated group of objects providing for
+            management of UDP over IPv4."
+    ::= { udpMIBGroups 1 }
+
+udpBaseGroup OBJECT-GROUP
+    OBJECTS   { udpInDatagrams, udpNoPorts, udpInErrors,
+                udpOutDatagrams }
+    STATUS     current
+    DESCRIPTION
+           "The group of objects providing for counters of UDP
+            statistics."
+    ::= { udpMIBGroups 2 }
+
+udpHCGroup OBJECT-GROUP
+    OBJECTS   { udpHCInDatagrams, udpHCOutDatagrams }
+    STATUS     current
+    DESCRIPTION
+           "The group of objects providing for counters of high
+            speed UDP implementations."
+    ::= { udpMIBGroups 3 }
+
+udpEndpointGroup OBJECT-GROUP
+    OBJECTS    { udpEndpointProcess }
+    STATUS     current
+    DESCRIPTION
+           "The group of objects providing for the IP version
+            independent management of UDP 'endpoints'."
+    ::= { udpMIBGroups 4 }
+
+END



More information about the Cl-net-snmp-cvs mailing list