diff --git a/ospf6d/OSPFv3-MIB.txt b/ospf6d/OSPFv3-MIB.txt
new file mode 100644
index 0000000..80e6cb2
--- /dev/null
+++ b/ospf6d/OSPFv3-MIB.txt
@@ -0,0 +1,2758 @@
+OSPFV3-MIB DEFINITIONS ::= BEGIN 
+ 
+IMPORTS 
+        MODULE-IDENTITY, OBJECT-TYPE, mib-2, experimental,
+        Counter32, Gauge32, Integer32, IpAddress, 
+        Unsigned32 
+                FROM SNMPv2-SMI 
+        TEXTUAL-CONVENTION, TruthValue, StorageType, RowStatus 
+                FROM SNMPv2-TC 
+        MODULE-COMPLIANCE, OBJECT-GROUP 
+                FROM SNMPv2-CONF 
+        InterfaceIndex 
+                FROM IF-MIB 
+        InetAddressType, InetAddress, InetAddressPrefixLength 
+                FROM INET-ADDRESS-MIB 
+        AreaID, RouterID, Metric, BigMetric, Status,  
+        HelloRange, DesignatedRouterPriority 
+                FROM OSPF-MIB; 
+
+ospfv3MIB MODULE-IDENTITY 
+        LAST-UPDATED "200404081200Z" 
+        ORGANIZATION "IETF OSPF Working Group" 
+        CONTACT-INFO 
+            "WG E-Mail: ospf@peach.ease.lsoft.com 
+             WG Chairs: John.Moy@sycamorenet.com   
+                        acee@redback.com 
+                        rohit@xebeo.com 
+ 
+             Dan Joyal 
+             Nortel Networks 
+             600 Technology Park Drive 
+             Billerica, MA  01821, USA 
+             djoyal@nortelnetworks.com 
+ 
+             Vishwas Manral 
+             SiNett Corporation 
+             2/1, First Floor 
+             Embassy Icon Annex 
+             Infantry Road 
+             Bangalore 560001 
+             vishwas@sinett.com" 
+ 
+         DESCRIPTION 
+             "The MIB module to describe OSPF version 3" 
+         REVISION "200404081200Z" 
+         DESCRIPTION -- RFC Editor assigns RFC xxxx 
+             "Initial version, published as RFC xxxx" 
+         ::= { experimental 102 } -- IANA assigns xx 
+ 
+-- Texual conventions 
+ 
+UpToRefreshInterval ::= TEXTUAL-CONVENTION 
+         STATUS        current 
+         DESCRIPTION 
+            "The values one might be able to configure for                  
+            variables bounded by the Refresh Interval" 
+         SYNTAX        Integer32 (1..1800) 
+ 
+RouterDeadRange ::= TEXTUAL-CONVENTION 
+         STATUS        current 
+         DESCRIPTION 
+            "The range of intervals in seconds that a routers hello 
+            must have not been seen before a neighbor declares the 
+            router down" 
+         SYNTAX        Integer32 (1..'FFFF'h) 
+
+ 
+-- Top-level structure of MIB 
+ospfv3Objects        OBJECT IDENTIFIER ::= { ospfv3MIB 1 } 
+ospfv3Conformance    OBJECT IDENTIFIER ::= { ospfv3MIB 2 } 
+ 
+-- OSPFv3 General Variables 
+ 
+-- These parameters apply globally to the Router's 
+-- OSPFv3 Process. 
+ 
+ospfv3GeneralGroup OBJECT IDENTIFIER ::= { ospfv3Objects 1 } 
+ 
+ospfv3RouterId OBJECT-TYPE 
+        SYNTAX         RouterID 
+        MAX-ACCESS     read-write 
+        STATUS         current 
+        DESCRIPTION 
+            "A  32-bit  integer  uniquely  identifying  the 
+            router in the Autonomous System. 
+            To  ensure  uniqueness, this may 
+            default  to  the  value  of  one of the 
+            router's IPv4 interface addresses if IPv4 is 
+            configured on the router." 
+        ::= { ospfv3GeneralGroup 1 } 
+ 
+ospfv3AdminStat OBJECT-TYPE 
+        SYNTAX          Status 
+        MAX-ACCESS      read-write 
+        STATUS          current 
+        DESCRIPTION 
+            "The  administrative  status  of  OSPFv3  in  the 
+            router.   The  value 'enabled' denotes that the 
+            OSPFv3 Process is active on at least  one  inter- 
+            face;  'disabled'  disables  it  on  all inter- 
+            faces." 
+        ::= { ospfv3GeneralGroup 2 } 
+ 
+ospfv3VersionNumber OBJECT-TYPE 
+        SYNTAX          INTEGER { version3(3) } 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The version number of OSPF for IPv6 is 3." 
+        ::= { ospfv3GeneralGroup 3 } 
+ 
+ospfv3AreaBdrRtrStatus OBJECT-TYPE 
+        SYNTAX          TruthValue 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "A flag to note whether this router is an  area 
+            border router." 
+        REFERENCE 
+            "OSPF Version 2, Section 3 Splitting the AS into 
+            Areas" 
+        ::= { ospfv3GeneralGroup 4 } 
+ 
+ospfv3ASBdrRtrStatus OBJECT-TYPE 
+        SYNTAX          TruthValue 
+        MAX-ACCESS      read-write 
+        STATUS          current 
+        DESCRIPTION 
+            "A flag to note whether this router is  config- 
+            ured as an Autonomous System border router." 
+        REFERENCE 
+            "OSPF Version 2, Section 3.3  Classification  of 
+            routers" 
+        ::= { ospfv3GeneralGroup 5 } 
+ 
+ospfv3AsScopeLsaCount OBJECT-TYPE 
+        SYNTAX          Gauge32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of AS-Scope (e.g. AS-External) link-state 
+            advertisements in the link-state database." 
+        ::= { ospfv3GeneralGroup 6 } 
+ 
+ospfv3AsScopeLsaCksumSum OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The 32-bit unsigned sum of the LS checksums of 
+            the  AS-scoped link-state advertisements  con- 
+            tained in the link-state database. This sum 
+            can  be  used  to determine if there has been a 
+            change in a router's link state  database,  and 
+            to  compare  the  link-state  database  of  two 
+            routers." 
+        ::= { ospfv3GeneralGroup 7 } 
+ 
+ospfv3OriginateNewLsas OBJECT-TYPE 
+        SYNTAX          Counter32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of  new  link-state  advertisements 
+            that  have been originated.  This number is in- 
+            cremented each time the router originates a new 
+            LSA." 
+        ::= { ospfv3GeneralGroup 8 } 
+ 
+ospfv3RxNewLsas OBJECT-TYPE 
+        SYNTAX          Counter32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of  link-state  advertisements  re- 
+            ceived  determined  to  be  new instantiations. 
+            This number does not include  newer  instantia- 
+            tions  of self-originated link-state advertise- 
+            ments." 
+        ::= { ospfv3GeneralGroup 9 } 
+ 
+ospfv3ExtLsaCount OBJECT-TYPE 
+        SYNTAX          Gauge32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of External(LS type 0x4005) in the link-
+            state database" 
+        ::= { ospfv3GeneralGroup 10 } 
+ 
+ 
+ospfv3ExtAreaLsdbLimit OBJECT-TYPE 
+        SYNTAX          Integer32 (-1..'7FFFFFFF'h) 
+        MAX-ACCESS      read-write 
+        STATUS          current 
+        DESCRIPTION 
+            "The  maximum   number   of   non-default   AS- 
+            external-LSAs entries that can be stored in the 
+            link-state database.  If the value is -1, then 
+            there is no limit. 
+ 
+            When the number of non-default AS-external-LSAs 
+            in   a  router's  link-state  database  reaches 
+            ospfv3ExtAreaLsdbLimit, the router  enters  Overflow- 
+            State.   The   router  never  holds  more  than 
+            ospfv3ExtAreaLsdbLimit  non-default  AS-external-LSAs 
+            in  its  database. OspfExtAreaLsdbLimit MUST be set 
+            identically in all routers attached to the OSPFv3 
+            backbone  and/or  any regular OSPFv3 area. (i.e., 
+            OSPFv3 stub areas and NSSAs are excluded)." 
+        ::= { ospfv3GeneralGroup 11 } 
+ 
+ospfv3MulticastExtensions OBJECT-TYPE 
+        SYNTAX          BITS { 
+                                 intraAreaMulticast(0), 
+                                 interAreaMulticast(1), 
+                                 interAsMulticast(2) 
+                             } 
+                                     
+        MAX-ACCESS      read-write 
+        STATUS          current 
+        DESCRIPTION 
+            "A Bit Mask indicating whether the router is 
+            forwarding IPv6 multicast datagrams 
+            based on the algorithms defined in the  Multi- 
+            cast Extensions to OSPF. 
+ 
+            If intraAreaMulticast set, indicates that the router 
+            can forward  IPv6 multicast datagrams in the router's 
+            directly attached areas (called intra-area mul- 
+            ticast routing). 
+ 
+            If interAreaMulticast set, indicates that the router 
+            can forward IPv6 multicast datagrams between OSPFv3 
+            areas (called inter-area multicast routing). 
+ 
+            If interAsMulticast set, indicates that the router can 
+            forward  IPv6  multicast datagrams between Auto- 
+            nomous Systems (called inter-AS multicast rout- 
+            ing). 
+ 
+            Only certain combinations of bit settings are 
+            allowed, namely: 
+                    - All bits cleared (no multicasting) 
+                    - intraAreaMulticast only, 
+                    - intraAreaMulticast and interAreaMulticast, 
+                    - intraAreaMulticast and interAsMulticast 
+                    - intraAreaMulticast, interAreaMulticast and 
+                            interAsMulticast 
+            By default, all bits are cleared." 
+        ::= { ospfv3GeneralGroup 12 } 
+ 
+ospfv3ExitOverflowInterval OBJECT-TYPE 
+        SYNTAX          Unsigned32 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-write 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of  seconds  that,  after  entering 
+            OverflowState,  a  router will attempt to leave 
+            OverflowState. This allows the router to  again 
+            originate  non-default  AS-External-LSAs.  When 
+            set to 0, the router will not  leave  Overflow- 
+            State until restarted." 
+        ::= { ospfv3GeneralGroup 13 } 
+ 
+ospfv3DemandExtensions OBJECT-TYPE 
+        SYNTAX         TruthValue 
+        MAX-ACCESS     read-write 
+        STATUS         current 
+        DESCRIPTION 
+            "The router's support for demand routing." 
+        REFERENCE 
+            "OSPF Version 2, Appendix on Demand Routing" 
+        ::= { ospfv3GeneralGroup 14 } 
+ 
+ospfv3TrafficEngineeringSupport OBJECT-TYPE 
+        SYNTAX          TruthValue 
+        MAX-ACCESS      read-write 
+        STATUS          current 
+        DESCRIPTION 
+            "The router's support for traffic engineering 
+            extensions." 
+        ::= { ospfv3GeneralGroup 15 } 
+ 
+ospfv3ReferenceBandwidth OBJECT-TYPE  
+       SYNTAX       Unsigned32  
+       MAX-ACCESS   read-write  
+       STATUS       current  
+       DESCRIPTION  
+          "Reference bandwidth in kilobits/second for  
+          calculating default interface metrics. The  
+          default value is 100,000 KBPS (100 MBPS)"  
+    ::= { ospfv3GeneralGroup 16 } 
+ 
+ospfv3RestartSupport OBJECT-TYPE  
+       SYNTAX       INTEGER { none (1),  
+                              plannedOnly (2),  
+                              plannedAndUnplanned (3)  
+                         } 
+       MAX-ACCESS   read-write  
+       STATUS       current  
+       DESCRIPTION  
+          "The router's support for OSPF hitless restart.  
+          Options include: no restart support, only planned  
+          restarts or both planned and unplanned restarts."  
+       ::= { ospfv3GeneralGroup 17 }  
+    
+ospfv3RestartInterval OBJECT-TYPE  
+       SYNTAX       UpToRefreshInterval 
+       UNITS        "seconds"  
+       MAX-ACCESS   read-write  
+       STATUS       current  
+       DESCRIPTION  
+          "Configured OSPF hitless restart timeout interval."  
+       ::= { ospfv3GeneralGroup 18 }  
+    
+ospfv3RestartStatus OBJECT-TYPE  
+       SYNTAX       INTEGER { notRestarting (1),  
+                              plannedRestart (2),  
+                              unplannedRestart (3)  
+                            }  
+       MAX-ACCESS   read-only  
+       STATUS       current  
+       DESCRIPTION  
+          "Current status of OSPF hitless restart."  
+       ::= { ospfv3GeneralGroup 19 }  
+    
+ospfv3RestartAge OBJECT-TYPE  
+       SYNTAX       UpToRefreshInterval 
+       UNITS        "seconds"  
+       MAX-ACCESS   read-only  
+       STATUS       current  
+       DESCRIPTION  
+          "Remaining time in current OSPF hitless restart  
+          interval."  
+       ::= { ospfv3GeneralGroup 20 }  
+    
+ospfv3RestartExitReason OBJECT-TYPE  
+       SYNTAX       INTEGER { none (1),           -- none attempted  
+                              inProgress (2),     -- restart in  
+                                                  -- progress  
+                              completed (3),      -- successfully  
+                                                  -- completed  
+                              timedOut (4),       -- timed out  
+                              topologyChanged (5) -- aborted due to  
+                                                  -- topologychange.  
+                            }  
+       MAX-ACCESS   read-only  
+       STATUS       current  
+       DESCRIPTION  
+          "Describes the outcome of the last attempt at a  
+          hitless restart. If the value is 'none', no restart  
+           has yet been attempted. If the value is 'inProgress',  
+          a restart attempt is currently underway."  
+    ::= { ospfv3GeneralGroup 21 } 
+ 
+ 
+-- The OSPFv3 Area Data Structure contains information 
+-- regarding the various areas. The interfaces and 
+-- virtual links are configured as part of these areas. 
+-- Area 0.0.0.0, by definition, is the Backbone Area 
+ 
+ospfv3AreaTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3AreaEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "Information describing the configured  parame- 
+            ters  and cumulative statistics of the router's 
+            attached areas." 
+        REFERENCE 
+            "OSPF Version 2, Section 6 The Area Data Struc- 
+            ture" 
+        ::= { ospfv3Objects 2 } 
+ 
+ospfv3AreaEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3AreaEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "Information describing the configured parame- 
+            ters and cumulative statistics of one of the 
+            router's attached areas." 
+        INDEX           { ospfv3AreaId } 
+        ::= { ospfv3AreaTable 1 } 
+ 
+Ospfv3AreaEntry ::= SEQUENCE { 
+        ospfv3AreaId 
+                AreaID, 
+        ospfv3ImportAsExtern 
+                INTEGER, 
+        ospfv3AreaSpfRuns 
+                Counter32, 
+        ospfv3AreaBdrRtrCount 
+                Gauge32, 
+        ospfv3AreaAsBdrRtrCount 
+                Gauge32, 
+        ospfv3AreaScopeLsaCount 
+                Gauge32, 
+        ospfv3AreaScopeLsaCksumSum 
+                Integer32, 
+        ospfv3AreaSummary 
+                INTEGER, 
+        ospfv3AreaStatus 
+                RowStatus, 
+        ospfv3StubMetric 
+                BigMetric, 
+        ospfv3AreaNssaTranslatorRole 
+                INTEGER, 
+        ospfv3AreaNssaTranslatorState 
+                INTEGER, 
+        ospfv3AreaNssaTranslatorStabilityInterval 
+                Unsigned32, 
+        ospfv3AreaNssaTranslatorEvents 
+                Counter32, 
+        ospfv3AreaStubMetricType 
+                INTEGER 
+        } 
+ 
+ospfv3AreaId OBJECT-TYPE 
+        SYNTAX          AreaID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "A 32-bit integer uniquely identifying an area. 
+            Area ID 0.0.0.0 is used for the OSPFv3 backbone." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.2 Area parameters" 
+        ::= { ospfv3AreaEntry 1 } 
+ 
+ospfv3ImportAsExtern OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        importExternal(1),   -- normal area 
+                        importNoExternal(2), -- stub area 
+                        importNssa(3)        -- not-so-stubby-area 
+                        } 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "Indicates whether an area is a Stub area, NSSA, or 
+            standard area. AS-scope LSAs are not imported into Stub 
+            Areas or NSSAs. NSSAs import AS-External data as Type-7 
+            LSAs which have Area-scope" 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.2 Area parameters" 
+        DEFVAL { importExternal } 
+        ::= { ospfv3AreaEntry 2 } 
+ 
+ospfv3AreaSpfRuns OBJECT-TYPE 
+        SYNTAX          Counter32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of times that the intra-area  route 
+            table  has  been  calculated  using this area's 
+            link-state database.  This  is  typically  done 
+            using Dijkstra's algorithm." 
+        ::= { ospfv3AreaEntry 3 } 
+ 
+ospfv3AreaBdrRtrCount OBJECT-TYPE 
+        SYNTAX          Gauge32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The total number of area border routers reach- 
+            able within this area.  This is initially zero, 
+            and is calculated in each SPF Pass." 
+        ::= { ospfv3AreaEntry 4 } 
+ 
+ospfv3AreaAsBdrRtrCount OBJECT-TYPE 
+        SYNTAX          Gauge32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The total number of Autonomous  System  border 
+            routers  reachable  within  this area.  This is 
+            initially zero, and is calculated in  each  SPF 
+            Pass." 
+        ::= { ospfv3AreaEntry 5 } 
+ 
+ospfv3AreaScopeLsaCount OBJECT-TYPE 
+        SYNTAX          Gauge32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The total number of Area-Scope link-state  
+            advertisements in  this  area's link-state  
+            database." 
+        ::= { ospfv3AreaEntry 6 } 
+ 
+ospfv3AreaScopeLsaCksumSum OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The 32-bit unsigned sum of the Area-Scope link-state 
+            advertisements'  LS  checksums  contained in this 
+            area's link-state database.  The sum can be used 
+            to determine if  there  has been  a  change  in a 
+            router's link state database, and to compare the 
+            link-state database of two routers." 
+        ::= { ospfv3AreaEntry 7 } 
+ 
+ospfv3AreaSummary OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        noAreaSummary(1), 
+                        sendAreaSummary(2) 
+                        } 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The variable ospfv3AreaSummary controls the  im- 
+            port  of  Inter-Area LSAs into stub areas.  It has 
+            no effect on other areas. 
+ 
+            If it is noAreaSummary, the router will neither 
+            originate  nor  propagate Inter-Area LSAs into the 
+            stub area.  It will rely entirely  on  its  de- 
+            fault route. 
+ 
+            If it is sendAreaSummary, the router will  both 
+            summarize and propagate Inter-Area LSAs." 
+        DEFVAL   { sendAreaSummary } 
+        ::= { ospfv3AreaEntry 8 } 
+ 
+ospfv3AreaStatus OBJECT-TYPE 
+        SYNTAX          RowStatus 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "This variable controls the status of  the  en- 
+            try. The use of RowStatus is covered in more detail 
+            in [6]." 
+        ::= { ospfv3AreaEntry 9 } 
+ 
+ospfv3StubMetric OBJECT-TYPE 
+        SYNTAX          BigMetric 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The metric value advertised for the default route 
+             into Stub and NSSA areas." 
+        ::= { ospfv3AreaEntry 10 } 
+ 
+ospfv3AreaNssaTranslatorRole OBJECT-TYPE 
+        SYNTAX          INTEGER { always(1), candidate(2) } 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "Indicates an NSSA Border router's ability to 
+            perform NSSA translation of type-7 LSAs into 
+            type-5 LSAs." 
+        DEFVAL { candidate } 
+        ::= { ospfv3AreaEntry 11 } 
+ 
+ospfv3AreaNssaTranslatorState OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        enabled(1), 
+                        elected(2), 
+                        disabled(3) 
+                        } 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "Indicates if and how an NSSA Border router is 
+             performing NSSA translation of type-7 LSAs into type-5 
+             LSAs. When this object is set to enabled, the NSSA 
+             Border router's ospfv3AreaNssTranslatorRole 
+             has been set to always. When this object is set to 
+             elected, a candidate NSSA Border router is translating 
+             type-7 LSAs into type-5. When this object is set to 
+             disabled, a candidate NSSA Border router is NOT 
+             translating type-7 LSAs into type-5." 
+        ::= { ospfv3AreaEntry 12 } 
+ 
+ospfv3AreaNssaTranslatorStabilityInterval OBJECT-TYPE 
+        SYNTAX          Unsigned32 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of seconds after an elected translator 
+            determines its services are no longer required, that 
+            it should continue to perform its translation duties." 
+        DEFVAL { 40 } 
+        ::= { ospfv3AreaEntry 13 } 
+ 
+ospfv3AreaNssaTranslatorEvents OBJECT-TYPE 
+        SYNTAX          Counter32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "Indicates the number of Translator State changes 
+            that have occurred since the last boot-up." 
+        ::= { ospfv3AreaEntry 14 } 
+
+ospfv3AreaStubMetricType OBJECT-TYPE 
+        SYNTAX       INTEGER { 
+                        ospfv3Metric (1),  -- OSPF Metric 
+                        comparableCost (2), -- external type 1 
+                        nonComparable  (3) -- external type 2 
+                        } 
+        MAX-ACCESS   read-create 
+        STATUS       current 
+        DESCRIPTION 
+           "This variable displays the type of metric ad- 
+           vertised as a default route." 
+        DEFVAL { ospfv3Metric } 
+        ::= { ospfv3AreaEntry 15 } 
+
+-- OSPFv3 AS-Scope Link State Database 
+ 
+-- The Link State Database contains the AS-Scope Link State 
+-- Advertisements from throughout the areas that the 
+-- device is attached to. 
+ 
+ospfv3AsLsdbTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3AsLsdbEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "The OSPFv3 Process's AS-Scope Link State Database." 
+        ::= { ospfv3Objects 3 } 
+ 
+ospfv3AsLsdbEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3AsLsdbEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "A single AS-Scope Link State Advertisement." 
+        INDEX           { ospfv3AsLsdbType, 
+                          ospfv3AsLsdbRouterId, 
+                          ospfv3AsLsdbLsid } 
+        ::= { ospfv3AsLsdbTable 1 } 
+ 
+Ospfv3AsLsdbEntry ::= SEQUENCE { 
+        ospfv3AsLsdbType 
+                Unsigned32, 
+        ospfv3AsLsdbRouterId 
+                RouterID, 
+        ospfv3AsLsdbLsid 
+                IpAddress, 
+        ospfv3AsLsdbSequence 
+                Integer32, 
+        ospfv3AsLsdbAge 
+                Integer32, 
+        ospfv3AsLsdbChecksum 
+                Integer32, 
+        ospfv3AsLsdbAdvertisement 
+                OCTET STRING, 
+        ospfv3AsLsdbTypeKnown 
+                TruthValue 
+        } 
+ 
+ospfv3AsLsdbType OBJECT-TYPE 
+        SYNTAX          Unsigned32 (0..4294967295)
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The type of the link state advertisement. 
+            Each link state type has a separate advertise- 
+            ment format. AS-Scope LSAs not recognized by 
+            the router may be stored in the database." 
+        ::= { ospfv3AsLsdbEntry 1 } 
+ 
+ospfv3AsLsdbRouterId OBJECT-TYPE 
+        SYNTAX          RouterID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The 32 bit number that uniquely identifies the 
+            originating router in the Autonomous System." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.1 Global parameters" 
+        ::= { ospfv3AsLsdbEntry 2 } 
+ 
+ospfv3AsLsdbLsid OBJECT-TYPE 
+        SYNTAX          IpAddress 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The Link State ID is an LS Type Specific field 
+            containing a unique identifier; 
+            it identifies the piece of the  routing  domain 
+            that is being described by the advertisement. 
+            In contrast to OSPFv2, the LSID has no 
+            addressing semantics." 
+        ::= { ospfv3AsLsdbEntry 3 } 
+ 
+-- Note that the OSPF Sequence Number is a 32 bit signed 
+-- integer.  It starts with the value '80000001'h, 
+-- or -'7FFFFFFF'h, and increments until '7FFFFFFF'h 
+-- Thus, a typical sequence number will be very negative. 
+ 
+ospfv3AsLsdbSequence OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The sequence number field is a  signed  32-bit 
+            integer.   It  is used to detect old and dupli- 
+            cate link state advertisements.  The  space  of 
+            sequence  numbers  is  linearly  ordered.   The 
+            larger the sequence number the more recent  the 
+            advertisement." 
+        REFERENCE 
+            "OSPF Version  2,  Section  12.1.6  LS  sequence 
+            number" 
+        ::= { ospfv3AsLsdbEntry 4 } 
+ 
+ospfv3AsLsdbAge OBJECT-TYPE 
+        SYNTAX          Integer32 -- Should be 0..MaxAge 
+                                  -- unless DoNotAge bit is set 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "This field is the age of the link state adver- 
+            tisement in seconds." 
+        REFERENCE 
+            "OSPF Version 2, Section 12.1.1 LS age" 
+        ::= { ospfv3AsLsdbEntry 5 } 
+ 
+ospfv3AsLsdbChecksum OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "This field is the  checksum  of  the  complete 
+            contents  of  the  advertisement, excepting the 
+            age field.  The age field is excepted  so  that 
+            an   advertisement's  age  can  be  incremented 
+            without updating the  checksum.   The  checksum 
+            used  is  the same that is used for ISO connec- 
+            tionless datagrams; it is commonly referred  to 
+            as the Fletcher checksum." 
+        REFERENCE 
+            "OSPF Version 2, Section 12.1.7 LS checksum" 
+        ::= { ospfv3AsLsdbEntry 6 } 
+ 
+ospfv3AsLsdbAdvertisement OBJECT-TYPE 
+        SYNTAX          OCTET STRING (SIZE (1..65535)) 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The entire Link State Advertisement, including 
+            its header." 
+        ::= { ospfv3AsLsdbEntry 7 } 
+ 
+ospfv3AsLsdbTypeKnown OBJECT-TYPE 
+        SYNTAX          TruthValue 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "Is the LSA type recognized by this Router?" 
+        ::= { ospfv3AsLsdbEntry 8 } 
+ 
+ 
+-- OSPFv3 Area-Scope Link State Database 
+ 
+-- The Link State Database contains the Area-Scope Link State 
+-- Advertisements from throughout the area that the 
+-- device is attached to. 
+ 
+ospfv3AreaLsdbTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3AreaLsdbEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "The OSPFv3 Process's Area-Scope Link State Database." 
+        ::= { ospfv3Objects 4 } 
+ 
+ospfv3AreaLsdbEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3AreaLsdbEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "A single Area-Scope Link State Advertisement." 
+        INDEX           { ospfv3AreaLsdbAreaId, 
+                          ospfv3AreaLsdbType, 
+                          ospfv3AreaLsdbRouterId, 
+                          ospfv3AreaLsdbLsid } 
+        ::= { ospfv3AreaLsdbTable 1 } 
+ 
+Ospfv3AreaLsdbEntry ::= SEQUENCE { 
+        ospfv3AreaLsdbAreaId 
+                AreaID, 
+        ospfv3AreaLsdbType 
+                Unsigned32, 
+        ospfv3AreaLsdbRouterId 
+                RouterID, 
+        ospfv3AreaLsdbLsid 
+                IpAddress, 
+        ospfv3AreaLsdbSequence 
+                Integer32, 
+        ospfv3AreaLsdbAge 
+                Integer32, 
+        ospfv3AreaLsdbChecksum 
+                Integer32, 
+        ospfv3AreaLsdbAdvertisement 
+                OCTET STRING, 
+        ospfv3AreaLsdbTypeKnown 
+                TruthValue 
+        } 
+ 
+ospfv3AreaLsdbAreaId OBJECT-TYPE 
+        SYNTAX          AreaID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The 32 bit identifier of the Area from which the 
+            LSA was received." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.2 Area parameters" 
+        ::= { ospfv3AreaLsdbEntry 1 } 
+ 
+ospfv3AreaLsdbType OBJECT-TYPE 
+        SYNTAX          Unsigned32 (0..4294967295)
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The type  of  the  link  state  advertisement. 
+            Each  link state type has a separate advertise- 
+            ment format. Area-Scope LSAs unrecognized by the 
+            router are also stored in this database." 
+        ::= { ospfv3AreaLsdbEntry 2 } 
+ 
+ospfv3AreaLsdbRouterId OBJECT-TYPE 
+        SYNTAX          RouterID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The 32 bit number that uniquely identifies the 
+            originating router in the Autonomous System." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.1 Global parameters" 
+        ::= { ospfv3AreaLsdbEntry 3 } 
+ 
+ospfv3AreaLsdbLsid OBJECT-TYPE 
+        SYNTAX          IpAddress 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The Link State ID is an LS Type Specific field 
+            containing a unique identifier; 
+            it identifies the piece of the  routing  domain 
+            that is being described by the advertisement. 
+            In contrast to OSPFv2, the LSID has no 
+            addressing semantics." 
+        ::= { ospfv3AreaLsdbEntry 4 } 
+ 
+-- Note that the OSPF Sequence Number is a 32 bit signed 
+-- integer.  It starts with the value '80000001'h, 
+-- or -'7FFFFFFF'h, and increments until '7FFFFFFF'h 
+-- Thus, a typical sequence number will be very negative. 
+ 
+ospfv3AreaLsdbSequence OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The sequence number field is a  signed  32-bit 
+            integer.   It  is used to detect old and dupli- 
+            cate link state advertisements.  The  space  of 
+            sequence  numbers  is  linearly  ordered.   The 
+            larger the sequence number the more recent  the 
+            advertisement." 
+        REFERENCE 
+            "OSPF Version  2,  Section  12.1.6  LS  sequence 
+            number" 
+        ::= { ospfv3AreaLsdbEntry 5 } 
+ 
+ospfv3AreaLsdbAge OBJECT-TYPE 
+        SYNTAX          Integer32 -- Should be 0..MaxAge 
+                                  -- unless DoNotAge bit is set 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "This field is the age of the link state adver- 
+            tisement in seconds." 
+        REFERENCE 
+            "OSPF Version 2, Section 12.1.1 LS age" 
+        ::= { ospfv3AreaLsdbEntry 6 } 
+ 
+ospfv3AreaLsdbChecksum OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "This field is the  checksum  of  the  complete 
+            contents  of  the  advertisement, excepting the 
+            age field.  The age field is excepted  so  that 
+            an   advertisement's  age  can  be  incremented 
+            without updating the  checksum.   The  checksum 
+            used  is  the same that is used for ISO connec- 
+            tionless datagrams; it is commonly referred  to 
+            as the Fletcher checksum." 
+        REFERENCE 
+            "OSPF Version 2, Section 12.1.7 LS checksum" 
+        ::= { ospfv3AreaLsdbEntry 7 } 
+ 
+ospfv3AreaLsdbAdvertisement OBJECT-TYPE 
+        SYNTAX          OCTET STRING (SIZE (1..65535)) 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The entire Link State Advertisement, including 
+            its header." 
+        ::= { ospfv3AreaLsdbEntry 8 } 
+ 
+ospfv3AreaLsdbTypeKnown OBJECT-TYPE 
+        SYNTAX          TruthValue 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "Is the LSA type recognized by this Router?" 
+        ::= { ospfv3AreaLsdbEntry 9 } 
+ 
+-- OSPFv3 Link-Scope Link State Database 
+ 
+-- The Link State Database contains the Link-Scope Link State 
+-- Advertisements from the links that the 
+-- device is attached to. 
+ 
+ospfv3LinkLsdbTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3LinkLsdbEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "The OSPFv3 Process's Link-Scope Link State Database." 
+        ::= { ospfv3Objects 5 } 
+ 
+ospfv3LinkLsdbEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3LinkLsdbEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "A single Link-Scope Link State Advertisement." 
+        INDEX           { ospfv3LinkLsdbIfIndex, 
+                          ospfv3LinkLsdbType, 
+                          ospfv3LinkLsdbRouterId, 
+                          ospfv3LinkLsdbLsid } 
+        ::= { ospfv3LinkLsdbTable 1 } 
+ 
+Ospfv3LinkLsdbEntry ::= SEQUENCE { 
+        ospfv3LinkLsdbIfIndex 
+                InterfaceIndex, 
+        ospfv3LinkLsdbType 
+                Unsigned32, 
+        ospfv3LinkLsdbRouterId 
+                RouterID, 
+        ospfv3LinkLsdbLsid 
+                IpAddress, 
+        ospfv3LinkLsdbSequence 
+                Integer32, 
+        ospfv3LinkLsdbAge 
+                Integer32, 
+        ospfv3LinkLsdbChecksum 
+                Integer32, 
+        ospfv3LinkLsdbAdvertisement 
+                OCTET STRING, 
+        ospfv3LinkLsdbTypeKnown 
+                TruthValue 
+        } 
+ 
+ospfv3LinkLsdbIfIndex OBJECT-TYPE 
+        SYNTAX         InterfaceIndex 
+        MAX-ACCESS     read-only 
+        STATUS         current 
+        DESCRIPTION 
+            "The identifier of the link from which the LSA 
+            was received." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.2 Area parameters" 
+        ::= { ospfv3LinkLsdbEntry 1 } 
+ 
+ospfv3LinkLsdbType OBJECT-TYPE 
+        SYNTAX          Unsigned32 (0..4294967295)
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The type of the link state advertisement. 
+            Each link state type has a separate advertise- 
+            ment format. Link-Scope LSAs unrecognized by the 
+            router are also stored in this database." 
+        ::= { ospfv3LinkLsdbEntry 2 } 
+ 
+ospfv3LinkLsdbRouterId OBJECT-TYPE 
+        SYNTAX          RouterID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The 32 bit number that uniquely identifies the 
+            originating router in the Autonomous System." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.1 Global parameters" 
+        ::= { ospfv3LinkLsdbEntry 3 } 
+ 
+ospfv3LinkLsdbLsid OBJECT-TYPE 
+        SYNTAX        IpAddress 
+        MAX-ACCESS    read-only 
+        STATUS        current 
+        DESCRIPTION 
+            "The Link State ID is an LS Type Specific field 
+            containing a unique identifier; 
+            it identifies the piece of the  routing  domain 
+            that is being described by the advertisement. 
+            In contrast to OSPFv2, the LSID has no 
+            addressing semantics." 
+        ::= { ospfv3LinkLsdbEntry 4 } 
+ 
+-- Note that the OSPF Sequence Number is a 32 bit signed 
+-- integer.  It starts with the value '80000001'h, 
+-- or -'7FFFFFFF'h, and increments until '7FFFFFFF'h 
+-- Thus, a typical sequence number will be very negative. 
+ 
+ospfv3LinkLsdbSequence OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The sequence number field is a  signed  32-bit 
+            integer.   It  is used to detect old and dupli- 
+            cate link state advertisements.  The  space  of 
+            sequence  numbers  is  linearly  ordered.   The 
+            larger the sequence number the more recent  the 
+            advertisement." 
+        REFERENCE 
+            "OSPF Version  2,  Section  12.1.6  LS  sequence 
+            number" 
+        ::= { ospfv3LinkLsdbEntry 5 } 
+ 
+ospfv3LinkLsdbAge OBJECT-TYPE 
+        SYNTAX          Integer32 -- Should be 0..MaxAge 
+                                  -- unless DoNotAge bit is set 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "This field is the age of the link state 
+            advertisement in seconds." 
+        REFERENCE 
+            "OSPF Version 2, Section 12.1.1 LS age" 
+        ::= { ospfv3LinkLsdbEntry 6 } 
+ 
+ospfv3LinkLsdbChecksum OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "This field is the  checksum  of  the  complete 
+            contents  of  the  advertisement, excepting the 
+            age field.  The age field is excepted  so  that 
+            an   advertisement's  age  can  be  incremented 
+            without updating the  checksum.   The  checksum 
+            used  is  the same that is used for ISO connec- 
+            tionless datagrams; it is commonly referred  to 
+            as the Fletcher checksum." 
+        REFERENCE 
+            "OSPF Version 2, Section 12.1.7 LS checksum" 
+        ::= { ospfv3LinkLsdbEntry 7 } 
+ 
+ospfv3LinkLsdbAdvertisement OBJECT-TYPE 
+        SYNTAX          OCTET STRING (SIZE (1..65535)) 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The entire Link State Advertisement, including 
+            its header." 
+        ::= { ospfv3LinkLsdbEntry 8 } 
+ 
+ospfv3LinkLsdbTypeKnown OBJECT-TYPE 
+        SYNTAX          TruthValue 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "Indicates whether the LSA type is recognized by this 
+             Router." 
+        ::= { ospfv3LinkLsdbEntry 9 } 
+ 
+ 
+-- OSPF Host Table 
+ 
+-- The Host/Metric Table indicates what hosts are directly 
+-- attached to the Router, and what metrics and types of 
+-- service should be advertised for them. 
+ 
+ospfv3HostTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3HostEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "The list of Hosts, and their metrics, that the 
+            router will advertise as host routes." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.6  Host route param- 
+            eters" 
+        ::= { ospfv3Objects 6 } 
+ 
+ospfv3HostEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3HostEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "A metric to be advertised when a given host is 
+            reachable." 
+        INDEX           { ospfv3HostAddressType, 
+                          ospfv3HostAddress } 
+        ::= { ospfv3HostTable 1 } 
+ 
+Ospfv3HostEntry ::= SEQUENCE { 
+        ospfv3HostAddressType 
+                InetAddressType, 
+        ospfv3HostAddress 
+                InetAddress, 
+        ospfv3HostMetric 
+                Metric, 
+        ospfv3HostStatus 
+                RowStatus, 
+        ospfv3HostAreaID 
+                AreaID 
+        } 
+ 
+ospfv3HostAddressType OBJECT-TYPE 
+        SYNTAX          InetAddressType 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The address type of ospfv3HostAddress. Only IPv6 
+            addresses without zone index are expected." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.6 Host route parame- 
+            ters" 
+        ::= { ospfv3HostEntry 1 } 
+ 
+ 
+ospfv3HostAddress OBJECT-TYPE 
+        SYNTAX          InetAddress (SIZE (16)) 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The IPv6 Address of the Host. Must be a Global 
+             or Site-local address." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.6 Host route parame- 
+            ters" 
+        ::= { ospfv3HostEntry 2 } 
+ 
+ospfv3HostMetric OBJECT-TYPE 
+        SYNTAX          Metric 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The Metric to be advertised." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.6 Host route parame- 
+            ters" 
+        ::= { ospfv3HostEntry 3 } 
+ 
+ospfv3HostStatus OBJECT-TYPE 
+        SYNTAX          RowStatus 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "This variable controls the status of  the  en- 
+            try. The use of RowStatus is covered in more detail 
+            in [6]." 
+        ::= { ospfv3HostEntry 4 } 
+ 
+ospfv3HostAreaID OBJECT-TYPE 
+        SYNTAX          AreaID 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The Area the Host Entry is to be found within. 
+            By  default, the area that a subsuming OSPFv3 in- 
+            terface is in, or 0.0.0.0" 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.2 Area parameters" 
+        ::= { ospfv3HostEntry 5 } 
+ 
+-- OSPFv3 Interface Table 
+ 
+ospfv3IfTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3IfEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "The OSPFv3 Interface Table describes the  inter- 
+            faces from the viewpoint of OSPFv3." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.3  Router  interface 
+            parameters" 
+        ::= { ospfv3Objects 7 } 
+ 
+ospfv3IfEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3IfEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "The OSPFv3 Interface Entry describes one  inter- 
+            face from the viewpoint of OSPFv3." 
+        INDEX           { ospfv3IfIndex } 
+        ::= { ospfv3IfTable 1 } 
+ 
+ 
+Ospfv3IfEntry ::= SEQUENCE { 
+        ospfv3IfIndex 
+                InterfaceIndex, 
+        ospfv3IfAreaId 
+                AreaID, 
+        ospfv3IfType 
+                INTEGER, 
+        ospfv3IfAdminStat 
+                Status, 
+        ospfv3IfRtrPriority 
+                DesignatedRouterPriority, 
+        ospfv3IfTransitDelay 
+                UpToRefreshInterval, 
+        ospfv3IfRetransInterval 
+                UpToRefreshInterval, 
+        ospfv3IfHelloInterval 
+                HelloRange, 
+        ospfv3IfRtrDeadInterval 
+                 RouterDeadRange, 
+        ospfv3IfPollInterval 
+                Unsigned32, 
+        ospfv3IfState 
+                INTEGER, 
+        ospfv3IfDesignatedRouter 
+                RouterID, 
+        ospfv3IfBackupDesignatedRouter 
+                RouterID, 
+        ospfv3IfEvents 
+                Counter32, 
+        ospfv3IfStatus 
+                RowStatus, 
+        ospfv3IfMulticastForwarding 
+                INTEGER, 
+        ospfv3IfDemand 
+                TruthValue, 
+        ospfv3IfMetricValue 
+                Metric, 
+        ospfv3IfLinkScopeLsaCount 
+                Gauge32, 
+        ospfv3IfLinkLsaCksumSum 
+                Integer32, 
+        ospfv3IfInstId 
+                Integer32, 
+        ospfv3IfDemandNbrProbe 
+                TruthValue, 
+        ospfv3IfDemandNbrProbeRetxLimit  
+                Unsigned32, 
+        ospfv3IfDemandNbrProbeInterval  
+                Unsigned32 
+        } 
+ 
+ospfv3IfIndex OBJECT-TYPE 
+        SYNTAX          InterfaceIndex 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The interface index of this OSPFv3 interface. 
+             It corresponds to the interface index of the 
+             IPv6 interface on which OSPFv3 is configured." 
+        ::= { ospfv3IfEntry 1 } 
+ 
+ospfv3IfAreaId OBJECT-TYPE 
+        SYNTAX          AreaID 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "A 32-bit integer uniquely identifying the area 
+            to  which  the  interface  connects.   Area  ID 
+            0.0.0.0 is used for the OSPFv3 backbone." 
+        DEFVAL          { '00000000'H } -- 0.0.0.0 
+        ::= { ospfv3IfEntry 2 } 
+ 
+ospfv3IfType OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        broadcast(1), 
+                        nbma(2), 
+                        pointToPoint(3), 
+                        pointToMultipoint(5) 
+                        } 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The OSPFv3 interface type." 
+        ::= { ospfv3IfEntry 3 } 
+ 
+ospfv3IfAdminStat OBJECT-TYPE 
+        SYNTAX          Status 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The OSPFv3 interface's  administrative  status. 
+            The  value formed on the interface, and the in- 
+            terface will be advertised as an internal route 
+            to  some  area.   The  value 'disabled' denotes 
+            that the interface is external to OSPFv3." 
+        DEFVAL          { enabled } 
+        ::= { ospfv3IfEntry 4 } 
+ 
+ospfv3IfRtrPriority OBJECT-TYPE 
+        SYNTAX          DesignatedRouterPriority 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The  priority  of  this  interface.   Used  in 
+            multi-access  networks,  this  field is used in 
+            the designated router election algorithm.   The 
+            value 0 signifies that the router is not eligi- 
+            ble to become the  designated  router  on  this 
+            particular  network.   In the event of a tie in 
+            this value, routers will use their Router ID as 
+            a tie breaker." 
+        DEFVAL          { 1 } 
+        ::= { ospfv3IfEntry 5 } 
+ 
+ospfv3IfTransitDelay OBJECT-TYPE 
+        SYNTAX          UpToRefreshInterval 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The estimated number of seconds  it  takes  to 
+            transmit  a  link state update packet over this 
+            interface." 
+        DEFVAL          { 1 } 
+        ::= { ospfv3IfEntry 6 } 
+ 
+ospfv3IfRetransInterval OBJECT-TYPE 
+        SYNTAX          UpToRefreshInterval 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of seconds between  link-state  ad- 
+            vertisement  retransmissions,  for  adjacencies 
+            belonging to this  interface.   This  value  is 
+            also used when retransmitting database descrip- 
+            tion and link-state request packets." 
+        DEFVAL          { 5 } 
+        ::= { ospfv3IfEntry 7 } 
+ 
+ospfv3IfHelloInterval OBJECT-TYPE 
+        SYNTAX          HelloRange 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The length of time, in  seconds,  between  the 
+            Hello  packets that the router sends on the in- 
+            terface.  This value must be the same  for  all 
+            routers attached to a common network." 
+        DEFVAL          { 10 } 
+        ::= { ospfv3IfEntry 8 } 
+ 
+ospfv3IfRtrDeadInterval OBJECT-TYPE 
+        SYNTAX          RouterDeadRange 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of seconds that  a  router's  Hello 
+            packets  have  not been seen before it's neigh- 
+            bors declare the router down.  This  should  be 
+            some  multiple  of  the  Hello  interval.  This 
+            value must be the same for all routers attached 
+            to a common network." 
+        DEFVAL          { 40 } 
+        ::= { ospfv3IfEntry 9 } 
+ 
+ospfv3IfPollInterval OBJECT-TYPE 
+        SYNTAX          Unsigned32 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The larger time interval, in seconds,  between 
+            the  Hello  packets  sent  to  an inactive non- 
+            broadcast multi- access neighbor." 
+        DEFVAL          { 120 } 
+        ::= { ospfv3IfEntry 10 } 
+ 
+ospfv3IfState OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        down(1), 
+                        loopback(2), 
+                        waiting(3), 
+                        pointToPoint(4), 
+                        designatedRouter(5), 
+                        backupDesignatedRouter(6), 
+                        otherDesignatedRouter(7) 
+                        } 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The OSPFv3 Interface State." 
+        ::= { ospfv3IfEntry 11 } 
+ 
+ospfv3IfDesignatedRouter OBJECT-TYPE 
+        SYNTAX          RouterID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The Router ID of the Designated Router." 
+        ::= { ospfv3IfEntry 12 } 
+ 
+ospfv3IfBackupDesignatedRouter OBJECT-TYPE 
+        SYNTAX          RouterID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The  Router ID of  the  Backup   Designated 
+            Router." 
+        ::= { ospfv3IfEntry 14 } 
+ 
+ospfv3IfEvents OBJECT-TYPE 
+        SYNTAX          Counter32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of times this  OSPF  interface  has 
+            changed its state, or an error has occurred." 
+        ::= { ospfv3IfEntry 15 } 
+ 
+ ospfv3IfStatus OBJECT-TYPE 
+        SYNTAX          RowStatus 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "This variable controls the status of  the  en- 
+            try. The use of RowStatus is covered in more detail in 
+            [6]." 
+        ::= { ospfv3IfEntry 17 } 
+ 
+ospfv3IfMulticastForwarding OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        blocked(1),   -- no multicast forwarding 
+                        multicast(2), -- using multicast address 
+                        unicast(3)    -- to each OSPFv3 neighbor 
+                        } 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The way multicasts should  forwarded  on  this 
+            interface;  not  forwarded,  forwarded  as data 
+            link multicasts, or forwarded as data link uni- 
+            casts.   Data link multicasting is not meaning- 
+            ful on point to point and NBMA interfaces,  and 
+            setting ospfv3MulticastForwarding to 0 effective- 
+            ly disables all multicast forwarding." 
+        DEFVAL { blocked } 
+        ::= { ospfv3IfEntry 18 } 
+ 
+ospfv3IfDemand OBJECT-TYPE 
+        SYNTAX          TruthValue 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "Indicates whether Demand OSPFv3 procedures (hel- 
+            lo suppression to FULL neighbors and setting the 
+            DoNotAge flag on propagated LSAs) should be per- 
+            formed on this interface." 
+        DEFVAL { false } 
+        ::= { ospfv3IfEntry 19 } 
+ 
+ospfv3IfMetricValue OBJECT-TYPE 
+        SYNTAX          Metric 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The metric assigned to this interface. 
+             The default value of the Metric is 
+            Reference Bandwidth / ifSpeed. The value of the   
+            reference bandwidth is configured by the 
+            ospfv3ReferenceBandwidth object." 
+        ::= { ospfv3IfEntry 20 } 
+ 
+ ospfv3IfLinkScopeLsaCount OBJECT-TYPE 
+        SYNTAX          Gauge32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The total number of Link-Scope link-state 
+            advertisements in  this  link's link-state database." 
+        ::= { ospfv3IfEntry 21 } 
+ 
+ ospfv3IfLinkLsaCksumSum OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The 32-bit unsigned sum of the Link-Scope link-state 
+            advertisements'  LS  checksums  contained in this 
+            link's link-state database.  The sum can be used 
+            to determine if  there  has been  a  change  in a 
+            router's link state database, and to compare the 
+            link-state database of two routers." 
+        ::= { ospfv3IfEntry 22 } 
+ 
+ospfv3IfInstId OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "Enables multiple instances of OSPFv3 to be run over 
+            a single link. Each protocol instance would be assigned 
+            a separate ID. This ID has local link significance 
+            only." 
+        DEFVAL          { 0 } 
+        ::= { ospfv3IfEntry 23 } 
+ 
+ospfv3IfDemandNbrProbe OBJECT-TYPE 
+        SYNTAX          TruthValue 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+               " Indicates whether or not neighbor probing is 
+                 enabled to determine whether or not the neighbor  
+                 is inactive. Neighbor probing is disabled by  
+                 default." 
+        DEFVAL { false } 
+        ::= { ospfv3IfEntry 24 } 
+ 
+   ospfv3IfDemandNbrProbeRetxLimit OBJECT-TYPE  
+       SYNTAX       Unsigned32  
+       UNITS        "seconds"  
+       MAX-ACCESS   read-create 
+       STATUS       current  
+       DESCRIPTION  
+          " The number of consecutive LSA retransmissions before 
+            the neighbor is deemed inactive and the neighbor  
+            adjacency is brought down."  
+       DEFVAL          { 10 } 
+       ::= { ospfv3IfEntry 25 }  
+ 
+ 
+   ospfv3IfDemandNbrProbeInterval OBJECT-TYPE  
+       SYNTAX       Unsigned32  
+       UNITS        "seconds"  
+       MAX-ACCESS   read-create 
+       STATUS       current  
+       DESCRIPTION  
+          " Defines how often the neighbor will be probed."  
+       DEFVAL          { 120 } 
+       ::= { ospfv3IfEntry 26 }  
+ 
+ 
+-- OSPFv3 Virtual Interface Table 
+ 
+-- The Virtual Interface Table describes the virtual 
+-- links that the OSPFv3 Process is configured to 
+-- carry on. 
+ 
+ospfv3VirtIfTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3VirtIfEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "Information about this router's virtual inter- 
+            faces." 
+        REFERENCE 
+            "OSPF Version  2,  Appendix  C.4   Virtual  link 
+            parameters" 
+        ::= { ospfv3Objects 8 } 
+ 
+ospfv3VirtIfEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3VirtIfEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "Information about a single Virtual Interface." 
+        INDEX           { ospfv3VirtIfAreaId, 
+                          ospfv3VirtIfNeighbor } 
+        ::= { ospfv3VirtIfTable 1 } 
+ 
+Ospfv3VirtIfEntry ::= SEQUENCE { 
+        ospfv3VirtIfAreaId 
+                AreaID, 
+        ospfv3VirtIfNeighbor 
+                RouterID, 
+        ospfv3VirtIfIndex 
+                InterfaceIndex, 
+        ospfv3VirtIfTransitDelay 
+                UpToRefreshInterval, 
+        ospfv3VirtIfRetransInterval 
+                UpToRefreshInterval, 
+        ospfv3VirtIfHelloInterval 
+                HelloRange, 
+        ospfv3VirtIfRtrDeadInterval 
+                 RouterDeadRange, 
+        ospfv3VirtIfState 
+                INTEGER, 
+        ospfv3VirtIfEvents 
+                Counter32, 
+        ospfv3VirtIfStatus 
+                RowStatus, 
+        ospfv3VirtIfLinkScopeLsaCount 
+                Gauge32, 
+        ospfv3VirtIfLinkLsaCksumSum 
+                   Integer32 
+        } 
+ 
+ospfv3VirtIfAreaId OBJECT-TYPE 
+        SYNTAX          AreaID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The  Transit  Area  that  the   Virtual   Link 
+            traverses.  By definition, this is not 0.0.0.0" 
+        ::= { ospfv3VirtIfEntry 1 } 
+ 
+ospfv3VirtIfNeighbor OBJECT-TYPE 
+        SYNTAX          RouterID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The Router ID of the Virtual Neighbor." 
+        ::= { ospfv3VirtIfEntry 2 } 
+ 
+ospfv3VirtIfIndex OBJECT-TYPE 
+        SYNTAX          InterfaceIndex 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The interface ID assigned to this OSPFv3 virtual 
+            interface. It is advertised in Hello's sent over 
+            the virtal link and in the router's router-LSAs." 
+        ::= { ospfv3VirtIfEntry 3 } 
+ 
+ospfv3VirtIfTransitDelay OBJECT-TYPE 
+        SYNTAX          UpToRefreshInterval 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The estimated number of seconds  it  takes  to 
+            transmit  a link- state update packet over this 
+            interface." 
+        DEFVAL          { 1 } 
+        ::= { ospfv3VirtIfEntry 4 } 
+ 
+ospfv3VirtIfRetransInterval OBJECT-TYPE 
+        SYNTAX          UpToRefreshInterval 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of seconds between  link-state  ad- 
+            vertisement  retransmissions,  for  adjacencies 
+            belonging to this  interface.   This  value  is 
+            also used when retransmitting database descrip- 
+            tion  and  link-state  request  packets.   This 
+            value  should  be well over the expected round- 
+            trip time." 
+        DEFVAL          { 5 } 
+        ::= { ospfv3VirtIfEntry 5 } 
+ 
+ospfv3VirtIfHelloInterval OBJECT-TYPE 
+        SYNTAX          HelloRange 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The length of time, in  seconds,  between  the 
+            Hello  packets that the router sends on the in- 
+            terface.  This value must be the same  for  the 
+            virtual neighbor." 
+        DEFVAL          { 10 } 
+        ::= { ospfv3VirtIfEntry 6 } 
+ 
+ospfv3VirtIfRtrDeadInterval OBJECT-TYPE 
+        SYNTAX          RouterDeadRange 
+        UNITS           "seconds" 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of seconds that  a  router's  Hello 
+            packets  have  not been seen before it's neigh- 
+            bors declare the router down.  This  should  be 
+            some  multiple  of  the  Hello  interval.  This 
+            value must be the same for the  virtual  neigh- 
+            bor." 
+        DEFVAL          { 60 } 
+        ::= { ospfv3VirtIfEntry 7 } 
+ 
+ospfv3VirtIfState OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        down(1), -- these use the same encoding 
+                        pointToPoint(4) -- as the ospfv3IfTable 
+                        } 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "OSPF virtual interface states." 
+        ::= { ospfv3VirtIfEntry 8 } 
+ 
+ospfv3VirtIfEvents OBJECT-TYPE 
+        SYNTAX          Counter32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of state changes or error events on 
+            this Virtual Link" 
+        ::= { ospfv3VirtIfEntry 9 } 
+ 
+ospfv3VirtIfStatus OBJECT-TYPE 
+        SYNTAX          RowStatus 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "This variable controls the status of  the  en- 
+            try. The use of RowStatus is covered in more detail 
+            in [6]." 
+        ::= { ospfv3VirtIfEntry 10 } 
+ 
+ospfv3VirtIfLinkScopeLsaCount OBJECT-TYPE 
+        SYNTAX          Gauge32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The total number of Link-Scope link-state 
+            advertisements in  this  virtual link's link-state 
+            database." 
+        ::= { ospfv3VirtIfEntry 11 } 
+ 
+ospfv3VirtIfLinkLsaCksumSum OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The 32-bit unsigned sum of the Link-Scope link-state 
+            advertisements'  LS  checksums  contained in this 
+            virtual link's link-state database.  The sum can be used 
+            to determine if  there  has been  a  change  in a 
+            router's link state database, and to compare the 
+            link-state database of two routers." 
+        ::= { ospfv3VirtIfEntry 12 } 
+ 
+ 
+-- OSPFv3 Neighbor Table 
+ 
+-- The OSPFv3 Neighbor Table describes all neighbors in 
+-- the locality of the subject router. 
+ 
+ospfv3NbrTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3NbrEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "A table of non-virtual neighbor information." 
+        REFERENCE 
+            "OSPF Version 2, Section 10  The  Neighbor  Data 
+            Structure" 
+        ::= { ospfv3Objects 9 } 
+ 
+ospfv3NbrEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3NbrEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "The information regarding a single neighbor." 
+        REFERENCE 
+            "OSPF Version 2, Section 10  The  Neighbor  Data 
+            Structure" 
+        INDEX           { ospfv3NbrIfIndex, 
+                          ospfv3NbrRtrId } 
+        ::= { ospfv3NbrTable 1 } 
+ 
+Ospfv3NbrEntry ::= SEQUENCE { 
+        ospfv3NbrIfIndex 
+                InterfaceIndex, 
+        ospfv3NbrRtrId 
+                RouterID, 
+        ospfv3NbrAddressType 
+                InetAddressType, 
+        ospfv3NbrAddress 
+                InetAddress,             
+        ospfv3NbrOptions 
+                Integer32, 
+        ospfv3NbrPriority 
+                DesignatedRouterPriority, 
+        ospfv3NbrState 
+                INTEGER, 
+        ospfv3NbrEvents 
+                Counter32, 
+        ospfv3NbrLsRetransQLen 
+                Gauge32, 
+        ospfv3NbrHelloSuppressed 
+                TruthValue, 
+        ospfv3NbrIfId 
+                InterfaceIndex, 
+        ospfv3NbrRestartHelperStatus  
+                INTEGER,  
+        ospfv3NbrRestartHelperAge  
+                UpToRefreshInterval,  
+        ospfv3NbrRestartHelperExitReason  
+                INTEGER 
+        } 
+ 
+ospfv3NbrIfIndex OBJECT-TYPE 
+        SYNTAX          InterfaceIndex 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The local link ID of the link over which the 
+             neighbor can be reached." 
+        ::= { ospfv3NbrEntry 1 } 
+ 
+ospfv3NbrRtrId OBJECT-TYPE 
+        SYNTAX          RouterID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "A 32-bit integer (represented as a type  IpAd- 
+            dress)  uniquely  identifying  the  neighboring 
+            router in the Autonomous System." 
+        ::= { ospfv3NbrEntry 2 } 
+ 
+ospfv3NbrAddressType OBJECT-TYPE 
+        SYNTAX          InetAddressType 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The address type of ospfv3NbrAddress. Only IPv6 
+            addresses without zone index are expected." 
+        ::= { ospfv3NbrEntry 3 } 
+ 
+ospfv3NbrAddress OBJECT-TYPE 
+        SYNTAX          InetAddress (SIZE (16)) 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The IPv6 address of the neighbor associated with 
+            the local link." 
+        ::= { ospfv3NbrEntry 4 } 
+ 
+ospfv3NbrOptions OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "A Bit Mask corresponding to the neighbor's op- 
+            tions field." 
+        REFERENCE 
+            "OSPF Version 3, Appendix A.2 the Options field" 
+        ::= { ospfv3NbrEntry 5 } 
+ 
+ospfv3NbrPriority OBJECT-TYPE 
+        SYNTAX          DesignatedRouterPriority 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The priority of this neighbor in the designat- 
+            ed router election algorithm.  The value 0 sig- 
+            nifies that the neighbor is not eligible to be- 
+            come  the  designated router on this particular 
+            network." 
+        ::= { ospfv3NbrEntry 6 } 
+ 
+ospfv3NbrState OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        down(1), 
+                        attempt(2), 
+                        init(3), 
+                        twoWay(4), 
+                        exchangeStart(5), 
+                        exchange(6), 
+                        loading(7), 
+                        full(8) 
+                        } 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The State of the relationship with this Neigh- 
+            bor." 
+        REFERENCE 
+            "OSPF Version 2, Section 10.1 Neighbor States" 
+        ::= { ospfv3NbrEntry 7 } 
+ 
+ospfv3NbrEvents OBJECT-TYPE 
+        SYNTAX          Counter32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of times this neighbor relationship 
+            has changed state, or an error has occurred." 
+        ::= { ospfv3NbrEntry 8 } 
+ 
+ospfv3NbrLsRetransQLen OBJECT-TYPE 
+        SYNTAX          Gauge32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The  current  length  of  the   retransmission 
+            queue." 
+        ::= { ospfv3NbrEntry 9 } 
+ 
+ospfv3NbrHelloSuppressed OBJECT-TYPE 
+        SYNTAX          TruthValue 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "Indicates whether Hellos are being  suppressed 
+            to the neighbor" 
+        ::= { ospfv3NbrEntry 10 } 
+ 
+ospfv3NbrIfId OBJECT-TYPE 
+        SYNTAX          InterfaceIndex 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The interface ID that the neighbor advertises 
+            in its Hello Packets on this link, that is, the 
+            neighbor's local interface index." 
+        ::= { ospfv3NbrEntry 11 } 
+ 
+ospfv3NbrRestartHelperStatus OBJECT-TYPE  
+       SYNTAX       INTEGER { notHelping (1),  
+                              helping (2)  
+                            }  
+       MAX-ACCESS   read-only  
+       STATUS       current  
+       DESCRIPTION  
+          "Indicates whether the router is acting  
+          as a hitless restart helper for the neighbor."  
+          ::= { ospfv3NbrEntry 12 }  
+    
+ospfv3NbrRestartHelperAge OBJECT-TYPE  
+       SYNTAX       UpToRefreshInterval 
+       UNITS        "seconds"  
+       MAX-ACCESS   read-only  
+       STATUS       current  
+       DESCRIPTION  
+          "Remaining time in current OSPF hitless restart  
+          interval, if the router is acting as a restart  
+          helper for the neighbor."  
+       ::= { ospfv3NbrEntry 13 }  
+    
+ospfv3NbrRestartHelperExitReason OBJECT-TYPE  
+       SYNTAX       INTEGER { none (1),           -- not attempted  
+                              inProgress (2),     -- restart in  
+                                                  -- progress  
+                              completed (3),      -- successfully  
+                                                  -- completed  
+                              timedOut (4),       -- timed out  
+                              topologyChanged (5) -- aborted due to  
+                                                  -- topology  
+                                                  -- change.  
+                            }  
+       MAX-ACCESS   read-only  
+       STATUS       current  
+       DESCRIPTION  
+          "Describes the outcome of the last attempt at acting  
+           as a hitless restart helper for the neighbor."  
+    ::= { ospfv3NbrEntry 14 } 
+ 
+ 
+-- OSPFv3 NBMA Neighbor Table 
+ 
+-- The OSPFv3 NBMA Neighbor Table describes all configured 
+-- NBMA neighbors and neighbors dynamically discovered by 
+-- lower-level protocols such as Inverse Neighbor Discovery. 
+ 
+ospfv3NbmaNbrTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3NbmaNbrEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "A table of configured non-virtual neighbor 
+            information and neighbors dynamically discovered 
+            by lower-level protocols such as Inverse Neighbor 
+            Discovery." 
+        REFERENCE 
+            "OSPF Version 2, Section 10  The  Neighbor  Data 
+            Structure" 
+        ::= { ospfv3Objects 10 } 
+ 
+ospfv3NbmaNbrEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3NbmaNbrEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "The information regarding a single configured 
+            neighbor or neighbor discovered by lower-level 
+            protocols such as Inverse Neighbor Discovery." 
+        REFERENCE 
+            "OSPF Version 2, Section 10  The  Neighbor  Data 
+            Structure" 
+        INDEX           { ospfv3NbmaNbrIfIndex, 
+                          ospfv3NbmaNbrAddressType, 
+                          ospfv3NbmaNbrAddress } 
+        ::= { ospfv3NbmaNbrTable 1 } 
+ 
+Ospfv3NbmaNbrEntry ::= SEQUENCE { 
+        ospfv3NbmaNbrIfIndex 
+                InterfaceIndex, 
+        ospfv3NbmaNbrAddressType 
+                InetAddressType, 
+        ospfv3NbmaNbrAddress 
+                InetAddress, 
+        ospfv3NbmaNbrPriority 
+                DesignatedRouterPriority, 
+        ospfv3NbmaNbrRtrId 
+                RouterID, 
+        ospfv3NbmaNbrState 
+                INTEGER, 
+        ospfv3NbmaNbrStorageType 
+                StorageType, 
+        ospfv3NbmaNbrStatus 
+                RowStatus 
+        } 
+ 
+ospfv3NbmaNbrIfIndex OBJECT-TYPE 
+        SYNTAX          InterfaceIndex 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The local link ID of the link over which the 
+             neighbor can be reached." 
+        ::= { ospfv3NbmaNbrEntry 1 } 
+ 
+ospfv3NbmaNbrAddressType OBJECT-TYPE 
+        SYNTAX          InetAddressType 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The address type of ospfv3NbrAddress. Only IPv6 
+            addresses without zone index are expected." 
+        ::= { ospfv3NbmaNbrEntry 2 } 
+ 
+ospfv3NbmaNbrAddress OBJECT-TYPE 
+        SYNTAX          InetAddress (SIZE (16)) 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The IPv6 address of the neighbor associated with 
+            the local link." 
+        ::= { ospfv3NbmaNbrEntry 3 } 
+ 
+ospfv3NbmaNbrPriority OBJECT-TYPE 
+        SYNTAX          DesignatedRouterPriority 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "The priority of this neighbor in the designat- 
+            ed router election algorithm. The value 0 sig- 
+            nifies that the neighbor is not eligible to be- 
+            come  the  designated router on this particular 
+            network." 
+        DEFVAL          { 1 } 
+        ::= { ospfv3NbmaNbrEntry 4 } 
+ 
+ospfv3NbmaNbrRtrId OBJECT-TYPE 
+        SYNTAX          RouterID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "A 32-bit integer (represented as a type IpAd- 
+            dress) uniquely identifying the neighboring 
+            router in the Autonomous System. A value of 
+            0.0.0.0 is returned until a Hello is received 
+            from the configured neighbor." 
+        ::= { ospfv3NbmaNbrEntry 5 } 
+ 
+ospfv3NbmaNbrState OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        down(1), 
+                        attempt(2), 
+                        init(3), 
+                        twoWay(4), 
+                        exchangeStart(5), 
+                        exchange(6), 
+                        loading(7), 
+                        full(8) 
+                        } 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The State of the relationship with this Neigh- 
+            bor." 
+        REFERENCE 
+            "OSPF Version 2, Section 10.1 Neighbor States" 
+        ::= { ospfv3NbmaNbrEntry 6 } 
+ 
+ospfv3NbmaNbrStorageType 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. 
+            Manually configured entries will have a storage type 
+            of nonVolatile while entries dynamically created as a 
+            result of a lower-level protocol such as Inverse 
+            Neighbor Discovery will have a storage type of 
+            volatile." 
+        DEFVAL          { nonVolatile } 
+        ::= { ospfv3NbmaNbrEntry 7 } 
+ 
+ospfv3NbmaNbrStatus OBJECT-TYPE 
+        SYNTAX          RowStatus 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "This variable controls the status of the en- 
+            try. The use of RowStatus is covered in more detail 
+            in [6]." 
+        ::= { ospfv3NbmaNbrEntry 8 } 
+ 
+-- OSPFv3 Virtual Neighbor Table 
+ 
+-- This table describes all virtual neighbors. 
+-- Since Virtual Links are configured in the 
+-- virtual interface table, this table is read-only. 
+ 
+ospfv3VirtNbrTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3VirtNbrEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "A table of virtual neighbor information." 
+        REFERENCE 
+            "OSPF Version 2, Section 15 Virtual Links" 
+        ::= { ospfv3Objects 11 } 
+ 
+ospfv3VirtNbrEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3VirtNbrEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "Virtual neighbor information." 
+        INDEX           { ospfv3VirtNbrArea, 
+                          ospfv3VirtNbrRtrId } 
+        ::= { ospfv3VirtNbrTable 1 } 
+ 
+Ospfv3VirtNbrEntry ::= SEQUENCE { 
+        ospfv3VirtNbrArea 
+                AreaID, 
+        ospfv3VirtNbrRtrId 
+                RouterID, 
+        ospfv3VirtNbrIfIndex 
+                InterfaceIndex, 
+        ospfv3VirtNbrAddressType 
+                InetAddressType, 
+        ospfv3VirtNbrAddress 
+                InetAddress, 
+        ospfv3VirtNbrOptions 
+                Integer32, 
+        ospfv3VirtNbrState 
+                INTEGER, 
+        ospfv3VirtNbrEvents 
+                Counter32, 
+        ospfv3VirtNbrLsRetransQLen 
+                Gauge32, 
+        ospfv3VirtNbrHelloSuppressed 
+                TruthValue, 
+        ospfv3VirtNbrIfId 
+                InterfaceIndex, 
+        ospfv3VirtNbrRestartHelperStatus  
+                INTEGER,  
+        ospfv3VirtNbrRestartHelperAge  
+                UpToRefreshInterval,  
+        ospfv3VirtNbrRestartHelperExitReason  
+                INTEGER 
+        } 
+ 
+ospfv3VirtNbrArea OBJECT-TYPE 
+        SYNTAX          AreaID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The Transit Area Identifier." 
+        ::= { ospfv3VirtNbrEntry 1 } 
+ 
+ospfv3VirtNbrRtrId OBJECT-TYPE 
+        SYNTAX          RouterID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "A  32-bit  integer  uniquely  identifying  the 
+            neighboring router in the Autonomous System." 
+        ::= { ospfv3VirtNbrEntry 2 } 
+ 
+ospfv3VirtNbrIfIndex OBJECT-TYPE 
+        SYNTAX          InterfaceIndex 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The local interface ID for the virtual link over 
+            which the neighbor can be reached." 
+        ::= { ospfv3VirtNbrEntry 3 } 
+ 
+ospfv3VirtNbrAddressType OBJECT-TYPE 
+        SYNTAX          InetAddressType 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The address type of ospfv3VirtNbrAddress. Only IPv6 
+            addresses without zone index are expected." 
+        ::= { ospfv3VirtNbrEntry 4 } 
+ 
+ospfv3VirtNbrAddress OBJECT-TYPE 
+        SYNTAX          InetAddress (SIZE (16)) 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The IPv6 address advertised by this Virtual Neighbor. 
+            It must be a Site-Local or Global scope address." 
+        ::= { ospfv3VirtNbrEntry 5 } 
+ 
+ospfv3VirtNbrOptions OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "A Bit Mask corresponding to the neighbor's op- 
+            tions field." 
+        REFERENCE 
+            "OSPF Version 3, Appendix A.2 the Options field" 
+        ::= { ospfv3VirtNbrEntry 6 } 
+ 
+ospfv3VirtNbrState OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        down(1), 
+                        attempt(2), 
+                        init(3), 
+                        twoWay(4), 
+                        exchangeStart(5), 
+                        exchange(6), 
+                        loading(7), 
+                        full(8) 
+                        } 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The state of the Virtual Neighbor Relation- 
+            ship." 
+        ::= { ospfv3VirtNbrEntry 7 } 
+ 
+ospfv3VirtNbrEvents OBJECT-TYPE 
+        SYNTAX          Counter32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The number of  times  this  virtual  link  has 
+            changed its state, or an error has occurred." 
+        ::= { ospfv3VirtNbrEntry 8 } 
+ 
+ospfv3VirtNbrLsRetransQLen OBJECT-TYPE 
+        SYNTAX          Gauge32 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The  current  length  of  the   retransmission 
+            queue." 
+        ::= { ospfv3VirtNbrEntry 9 } 
+ 
+ospfv3VirtNbrHelloSuppressed OBJECT-TYPE 
+        SYNTAX          TruthValue 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "Indicates whether Hellos are being  suppressed 
+            to the neighbor" 
+        ::= { ospfv3VirtNbrEntry 10 } 
+ 
+ospfv3VirtNbrIfId OBJECT-TYPE 
+        SYNTAX          InterfaceIndex 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The interface ID that the neighbor advertises 
+            in its Hello Packets on this virtual link, that is, 
+            the neighbor's local interface ID." 
+        ::= { ospfv3VirtNbrEntry 11 } 
+ 
+   ospfv3VirtNbrRestartHelperStatus OBJECT-TYPE  
+       SYNTAX       INTEGER { notHelping (1),  
+                              helping (2)  
+                            }  
+       MAX-ACCESS   read-only  
+       STATUS       current  
+       DESCRIPTION  
+          "Indicates whether the router is acting  
+          as a hitless restart helper for the neighbor."  
+          ::= { ospfv3VirtNbrEntry 12 }  
+    
+ospfv3VirtNbrRestartHelperAge OBJECT-TYPE  
+       SYNTAX       UpToRefreshInterval 
+       UNITS        "seconds"  
+       MAX-ACCESS   read-only  
+       STATUS       current  
+       DESCRIPTION  
+          "Remaining time in current OSPF hitless restart  
+          interval, if the router is acting as a restart  
+          helper for the neighbor."  
+       ::= { ospfv3VirtNbrEntry 13 }  
+    
+ospfv3VirtNbrRestartHelperExitReason OBJECT-TYPE  
+       SYNTAX       INTEGER { none (1),           -- not attempted  
+                              inProgress (2),     -- restart in  
+                                                  -- progress  
+                              completed (3),      -- successfully  
+                                                  -- completed  
+                              timedOut (4),       -- timed out  
+                              topologyChanged (5) -- aborted due to  
+                                                  -- topology  
+                                                  -- change.  
+                            }  
+       MAX-ACCESS   read-only  
+       STATUS       current  
+       DESCRIPTION  
+          "Describes the outcome of the last attempt at acting  
+           as a hitless restart helper for the neighbor."  
+    ::= { ospfv3VirtNbrEntry 14 } 
+ 
+ 
+-- 
+-- The OSPFv3 Area Aggregate Table 
+-- 
+ 
+ospfv3AreaAggregateTable OBJECT-TYPE 
+        SYNTAX          SEQUENCE OF Ospfv3AreaAggregateEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "A range of IPv6 prefixes specified by a 
+            prefix/prefix length  pair. Note that if 
+            ranges are configured such that one range sub- 
+            sumes  another range the most specific match is 
+            the preferred one." 
+        ::= { ospfv3Objects 12 } 
+ 
+ospfv3AreaAggregateEntry OBJECT-TYPE 
+        SYNTAX          Ospfv3AreaAggregateEntry 
+        MAX-ACCESS      not-accessible 
+        STATUS          current 
+        DESCRIPTION 
+            "A range of IPv6 prefixes specified by a 
+            prefix/prefix length  pair. Note that if 
+            ranges are configured such that one range sub- 
+            sumes  another range the most specific match is 
+            the preferred one." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.2  Area parameters" 
+        INDEX           { ospfv3AreaAggregateAreaID,  
+                          ospfv3AreaAggregateAreaLsdbType, 
+                          ospfv3AreaAggregatePrefixType, 
+                          ospfv3AreaAggregatePrefix, 
+                          ospfv3AreaAggregatePrefixLength } 
+        ::= { ospfv3AreaAggregateTable 1 } 
+ 
+Ospfv3AreaAggregateEntry ::= SEQUENCE { 
+        ospfv3AreaAggregateAreaID 
+                AreaID, 
+        ospfv3AreaAggregateAreaLsdbType 
+                INTEGER, 
+        ospfv3AreaAggregatePrefixType 
+                InetAddressType, 
+        ospfv3AreaAggregatePrefix 
+                InetAddress, 
+        ospfv3AreaAggregatePrefixLength 
+                InetAddressPrefixLength, 
+        ospfv3AreaAggregateStatus 
+                RowStatus, 
+        ospfv3AreaAggregateEffect 
+                INTEGER, 
+        ospfv3AreaAggregateRouteTag 
+                INTEGER 
+        } 
+ 
+ospfv3AreaAggregateAreaID OBJECT-TYPE 
+        SYNTAX          AreaID 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The Area the Address Aggregate is to be  found 
+            within." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.2 Area parameters" 
+        ::= { ospfv3AreaAggregateEntry 1 } 
+ 
+ospfv3AreaAggregateAreaLsdbType OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        interAreaPrefixLsa(8195), -- 0x2003 
+                        nssaExternalLsa(8199)     -- 0x2007 
+                        } 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The type of the Address Aggregate.  This field 
+            specifies  the  Area Lsdb type that this Address Ag- 
+            gregate applies to." 
+        REFERENCE 
+            "OSPF Version 2, Appendix A.4.1 The  Link  State 
+            Advertisement header" 
+        ::= { ospfv3AreaAggregateEntry 2 } 
+ 
+ospfv3AreaAggregatePrefixType OBJECT-TYPE 
+        SYNTAX          InetAddressType 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The prefix type of ospfv3AreaAggregatePrefix. Only 
+            IPv6 addresses are expected." 
+        ::= { ospfv3AreaAggregateEntry 4 } 
+ 
+ospfv3AreaAggregatePrefix OBJECT-TYPE 
+        SYNTAX          InetAddress (SIZE (0..16)) 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The IPv6 Prefix." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.2 Area parameters" 
+        ::= { ospfv3AreaAggregateEntry 5 } 
+ 
+ospfv3AreaAggregatePrefixLength OBJECT-TYPE 
+        SYNTAX          InetAddressPrefixLength (3..128) 
+        UNITS           "bits" 
+        MAX-ACCESS      read-only 
+        STATUS          current 
+        DESCRIPTION 
+            "The length of the prefix (in bits). A prefix can 
+            not be shorter than 3 bits." 
+        REFERENCE 
+            "OSPF Version 2, Appendix C.2 Area parameters" 
+        ::= { ospfv3AreaAggregateEntry 6 } 
+ 
+ospfv3AreaAggregateStatus OBJECT-TYPE 
+        SYNTAX          RowStatus 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "This variable controls the status of  the  en- 
+            try. The use of RowStatus is covered in more detail 
+            in [6]." 
+        ::= { ospfv3AreaAggregateEntry 7 } 
+ 
+ospfv3AreaAggregateEffect OBJECT-TYPE 
+        SYNTAX          INTEGER { 
+                        advertiseMatching(1), 
+                        doNotAdvertiseMatching(2) 
+                        } 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "Prefixes subsumed by ranges either trigger  the 
+            advertisement  of  the indicated aggregate (ad- 
+            vertiseMatching), or result in the prefix not 
+            being advertised at all outside the area." 
+        DEFVAL          { advertiseMatching } 
+        ::= { ospfv3AreaAggregateEntry 8 } 
+ 
+ospfv3AreaAggregateRouteTag OBJECT-TYPE 
+        SYNTAX          Integer32 
+        MAX-ACCESS      read-create 
+        STATUS          current 
+        DESCRIPTION 
+            "This tag is advertised only in the summarized 
+             As-External LSA when summarizing from type-7 to  
+             type-5." 
+        DEFVAL         { 0 } 
+        ::= { ospfv3AreaAggregateEntry 9 } 
+         
+
+-- conformance information 
+ 
+ospfv3Groups      OBJECT IDENTIFIER ::= { ospfv3Conformance 1 } 
+ospfv3Compliances OBJECT IDENTIFIER ::= { ospfv3Conformance 2 } 
+ 
+-- compliance statements 
+ 
+ospfv3Compliance MODULE-COMPLIANCE 
+        STATUS          current 
+        DESCRIPTION     "The compliance statement " 
+        MODULE          -- this module 
+        MANDATORY-GROUPS { 
+                        ospfv3BasicGroup, 
+                        ospfv3AreaGroup, 
+                        ospfv3IfGroup, 
+                        ospfv3VirtIfGroup, 
+                        ospfv3NbrGroup, 
+                        ospfv3NbmaNbrGroup, 
+                        ospfv3VirtNbrGroup, 
+                        ospfv3AreaAggregateGroup 
+                        } 
+ 
+        GROUP           ospfv3AsLsdbGroup 
+        DESCRIPTION 
+            "This group is required for OSPFv3 systems that 
+            display their AS-scope link state database." 
+ 
+        GROUP           ospfv3AreaLsdbGroup 
+        DESCRIPTION 
+            "This group is required for OSPFv3 systems that 
+            display their Area-scope link state database." 
+ 
+        GROUP           ospfv3LinkLsdbGroup 
+        DESCRIPTION 
+            "This group is required for OSPFv3 systems that 
+            display their Link-scope link state database." 
+ 
+        GROUP           ospfv3HostGroup 
+        DESCRIPTION 
+            "This group is required for OSPFv3 systems that 
+            support attached hosts." 
+ 
+        OBJECT          ospfv3NbrAddressType 
+        SYNTAX          InetAddressType { ipv6(2) } 
+        DESCRIPTION 
+            "An implementation is only required to support IPv6 
+            address without zone index." 
+ 
+        OBJECT          ospfv3VirtNbrAddressType 
+        SYNTAX          InetAddressType { ipv6(2) } 
+        DESCRIPTION 
+            "An implementation is only required to support IPv6 
+            address without zone index." 
+ 
+        ::= { ospfv3Compliances 1 } 
+ 
+-- units of conformance 
+ 
+ospfv3BasicGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3RouterId, 
+                        ospfv3AdminStat, 
+                        ospfv3VersionNumber, 
+                        ospfv3AreaBdrRtrStatus, 
+                        ospfv3ASBdrRtrStatus, 
+                        ospfv3AsScopeLsaCount, 
+                        ospfv3AsScopeLsaCksumSum, 
+                        ospfv3OriginateNewLsas, 
+                        ospfv3RxNewLsas, 
+                        ospfv3ExtLsaCount, 
+                        ospfv3ExtAreaLsdbLimit, 
+                        ospfv3MulticastExtensions, 
+                        ospfv3ExitOverflowInterval, 
+                        ospfv3DemandExtensions, 
+                        ospfv3TrafficEngineeringSupport, 
+                        ospfv3ReferenceBandwidth, 
+                        ospfv3RestartSupport, 
+                        ospfv3RestartInterval, 
+                        ospfv3RestartStatus, 
+                        ospfv3RestartAge, 
+                        ospfv3RestartExitReason 
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These objects are required for OSPFv3 systems." 
+        ::= { ospfv3Groups 1 } 
+ 
+ 
+ospfv3AreaGroup OBJECT-GROUP 
+        OBJECTS         {                       
+                        ospfv3ImportAsExtern, 
+                        ospfv3AreaSpfRuns, 
+                        ospfv3AreaBdrRtrCount, 
+                        ospfv3AreaAsBdrRtrCount, 
+                        ospfv3AreaScopeLsaCount, 
+                        ospfv3AreaScopeLsaCksumSum, 
+                        ospfv3AreaSummary, 
+                        ospfv3AreaStatus, 
+                        ospfv3StubMetric, 
+                        ospfv3AreaNssaTranslatorRole, 
+                        ospfv3AreaNssaTranslatorState, 
+                        ospfv3AreaNssaTranslatorStabilityInterval, 
+                        ospfv3AreaNssaTranslatorEvents, 
+                        ospfv3AreaStubMetricType 
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These objects are required for OSPFv3 systems 
+            supporting areas." 
+        ::= { ospfv3Groups 2 } 
+ 
+ospfv3AsLsdbGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3AsLsdbSequence, 
+                        ospfv3AsLsdbAge, 
+                        ospfv3AsLsdbChecksum, 
+                        ospfv3AsLsdbAdvertisement, 
+                        ospfv3AsLsdbTypeKnown 
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These objects are required for OSPFv3 systems 
+            that display their AS-scope link state database." 
+        ::= { ospfv3Groups 3 } 
+ 
+ospfv3AreaLsdbGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3AreaLsdbSequence, 
+                        ospfv3AreaLsdbAge, 
+                        ospfv3AreaLsdbChecksum, 
+                        ospfv3AreaLsdbAdvertisement, 
+                        ospfv3AreaLsdbTypeKnown 
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These objects are required for OSPFv3 systems 
+            that display their Area-scope link state database." 
+        ::= { ospfv3Groups 4 } 
+ 
+ospfv3LinkLsdbGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3LinkLsdbSequence, 
+                        ospfv3LinkLsdbAge, 
+                        ospfv3LinkLsdbChecksum, 
+                        ospfv3LinkLsdbAdvertisement, 
+                        ospfv3LinkLsdbTypeKnown 
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These objects are required for OSPFv3  systems 
+            that display their Link-scope link state database." 
+        ::= { ospfv3Groups 5 } 
+ 
+ospfv3HostGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3HostMetric, 
+                        ospfv3HostStatus, 
+                        ospfv3HostAreaID 
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These objects are required  for  OSPFv3  systems 
+            that support attached hosts." 
+        ::= { ospfv3Groups 6 } 
+ 
+ospfv3IfGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3IfAreaId, 
+                        ospfv3IfType, 
+                        ospfv3IfAdminStat, 
+                        ospfv3IfRtrPriority, 
+                        ospfv3IfTransitDelay, 
+                        ospfv3IfRetransInterval, 
+                        ospfv3IfHelloInterval, 
+                        ospfv3IfRtrDeadInterval, 
+                        ospfv3IfPollInterval, 
+                        ospfv3IfState, 
+                        ospfv3IfDesignatedRouter, 
+                        ospfv3IfBackupDesignatedRouter, 
+                        ospfv3IfEvents, 
+                        ospfv3IfStatus, 
+                        ospfv3IfMulticastForwarding, 
+                        ospfv3IfDemand, 
+                        ospfv3IfMetricValue, 
+                        ospfv3IfLinkScopeLsaCount, 
+                        ospfv3IfLinkLsaCksumSum, 
+                        ospfv3IfInstId, 
+                        ospfv3IfDemandNbrProbe, 
+                        ospfv3IfDemandNbrProbeRetxLimit,  
+                        ospfv3IfDemandNbrProbeInterval  
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These interface objects are required for  
+            OSPFv3 systems." 
+        ::= { ospfv3Groups 7 } 
+ 
+ospfv3VirtIfGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3VirtIfIndex, 
+                        ospfv3VirtIfTransitDelay, 
+                        ospfv3VirtIfRetransInterval, 
+                        ospfv3VirtIfHelloInterval, 
+                        ospfv3VirtIfRtrDeadInterval, 
+                        ospfv3VirtIfState, 
+                        ospfv3VirtIfEvents, 
+                        ospfv3VirtIfStatus, 
+                        ospfv3VirtIfLinkScopeLsaCount, 
+                        ospfv3VirtIfLinkLsaCksumSum  
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These virtual interface objects are required for  
+            OSPFv3 systems." 
+        ::= { ospfv3Groups 8 } 
+ 
+ospfv3NbrGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3NbrAddressType, 
+                        ospfv3NbrAddress, 
+                        ospfv3NbrOptions, 
+                        ospfv3NbrPriority, 
+                        ospfv3NbrState, 
+                        ospfv3NbrEvents, 
+                        ospfv3NbrLsRetransQLen, 
+                        ospfv3NbrHelloSuppressed, 
+                        ospfv3NbrIfId, 
+                        ospfv3NbrRestartHelperStatus,  
+                        ospfv3NbrRestartHelperAge,  
+                        ospfv3NbrRestartHelperExitReason 
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These neighbor objects are required for 
+            OSPFv3 systems." 
+        ::= { ospfv3Groups 9 } 
+ 
+ospfv3NbmaNbrGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3NbmaNbrPriority, 
+                        ospfv3NbmaNbrRtrId, 
+                        ospfv3NbmaNbrState, 
+                        ospfv3NbmaNbrStorageType, 
+                        ospfv3NbmaNbrStatus 
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These NBMA neighbor objects are required for 
+            OSPFv3 systems." 
+        ::= { ospfv3Groups 10 } 
+ 
+ospfv3VirtNbrGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3VirtNbrIfIndex, 
+                        ospfv3VirtNbrAddressType,  
+                        ospfv3VirtNbrAddress, 
+                        ospfv3VirtNbrOptions, 
+                        ospfv3VirtNbrState, 
+                        ospfv3VirtNbrEvents, 
+                        ospfv3VirtNbrLsRetransQLen, 
+                        ospfv3VirtNbrHelloSuppressed, 
+                        ospfv3VirtNbrIfId, 
+                        ospfv3VirtNbrRestartHelperStatus,  
+                        ospfv3VirtNbrRestartHelperAge,  
+                        ospfv3VirtNbrRestartHelperExitReason 
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These virtual neighbor objects are required for 
+            OSPFv3 systems." 
+        ::= { ospfv3Groups 11 } 
+ 
+ospfv3AreaAggregateGroup OBJECT-GROUP 
+        OBJECTS         { 
+                        ospfv3AreaAggregateStatus, 
+                        ospfv3AreaAggregateEffect, 
+                        ospfv3AreaAggregateRouteTag 
+                        } 
+        STATUS          current 
+        DESCRIPTION 
+            "These area aggregate objects are required for 
+            OSPFv3 systems." 
+        ::= { ospfv3Groups 12 } 
+ 
+END 
