From 0f0ab5180877559e92b71daacb8a106a815a5ade Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Tue, 22 May 2012 13:34:24 +0200 Subject: snmp: fix OSPFV3-MIB implementation Use the real MIB from RFC 5643. Fix used ASN1 types. Indexes are not exported any more (they are "no access"). Fix some endian issues. Also, ID are just integers, not IPv4 addresses. No additional OID are supported in this commit. --- ospf6d/OSPFv3-MIB.txt | 6709 +++++++++++++++++++++++++++++-------------------- ospf6d/ospf6_snmp.c | 410 +-- 2 files changed, 4188 insertions(+), 2931 deletions(-) (limited to 'ospf6d') diff --git a/ospf6d/OSPFv3-MIB.txt b/ospf6d/OSPFv3-MIB.txt index 80e6cb2d..258f533e 100644 --- a/ospf6d/OSPFv3-MIB.txt +++ b/ospf6d/OSPFv3-MIB.txt @@ -1,2758 +1,3951 @@ -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 + OSPFV3-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, mib-2, + Counter32, Gauge32, Integer32, Unsigned32 + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, TruthValue, RowStatus, TimeStamp + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP + FROM SNMPv2-CONF + InterfaceIndex + FROM IF-MIB + InetAddressType, InetAddress, InetAddressPrefixLength, + InetAddressIPv6 + FROM INET-ADDRESS-MIB + Metric, BigMetric, Status, + HelloRange, DesignatedRouterPriority + FROM OSPF-MIB; + + ospfv3MIB MODULE-IDENTITY + LAST-UPDATED "200908130000Z" + ORGANIZATION "IETF OSPF Working Group" + CONTACT-INFO + "WG E-Mail: ospf@ietf.org + WG Chairs: Acee Lindem + acee@redback.com + + Abhay Roy + akr@cisco.com + + Editors: Dan Joyal + Nortel + 600 Technology Park Drive + Billerica, MA 01821, USA + djoyal@nortel.com + + Vishwas Manral + IP Infusion + Almora, Uttarakhand + India + vishwas@ipinfusion.com" + DESCRIPTION + "The MIB module for OSPF version 3. + + Copyright (c) 2009 IETF Trust and the persons + identified as authors of the code. All rights + reserved. + + Redistribution and use in source and binary forms, with + or without modification, are permitted provided that + the following conditions are met: + + - Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + - Redistributions in binary form must reproduce the + above copyright notice, this list of conditions and + the following disclaimer in the documentation and/or + other materials provided with the distribution. + + - Neither the name of Internet Society, IETF or IETF + Trust, nor the names of specific contributors, may be + used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + This version of this MIB module is part of RFC 5643; + see the RFC itself for full legal notices." + + REVISION "200908130000Z" + DESCRIPTION + "Initial version, published as RFC 5643" + ::= { mib-2 191 } + + -- Textual conventions + + Ospfv3UpToRefreshIntervalTC ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "The values one might be able to configure for + variables bounded by the Refresh Interval." + REFERENCE + "OSPF Version 2, Appendix B, Architectural Constants" + SYNTAX Unsigned32 (1..1800) + + Ospfv3DeadIntervalRangeTC ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "The range, in seconds, of dead interval value." + REFERENCE + "OSPF for IPv6, Appendix C.3, Router Interface + Parameters" + SYNTAX Unsigned32 (1..'FFFF'h) + + Ospfv3RouterIdTC ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "A 32-bit, unsigned 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 host addresses if IPv4 is + configured on the router." + REFERENCE + "OSPF for IPv6, Appendix C.1, Global Parameters" + SYNTAX Unsigned32 (1..'FFFFFFFF'h) + + Ospfv3LsIdTC ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "A unique 32-bit identifier of the piece of the + routing domain that is being described by a link + state advertisement. In contrast to OSPFv2, the + Link State ID (LSID) has no addressing semantics." + REFERENCE + "OSPF Version 2, Section 12.1.4, Link State ID" + SYNTAX Unsigned32 (1..'FFFFFFFF'h) + + Ospfv3AreaIdTC ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "An OSPFv3 Area Identifier. A value of zero + identifies the backbone area." + REFERENCE + "OSPF for IPv6, Appendix C.3 Router Interface + Parameters" + SYNTAX Unsigned32 (0..'FFFFFFFF'h) + + Ospfv3IfInstIdTC ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "An OSPFv3 Interface Instance ID." + REFERENCE + "OSPF for IPv6, Appendix C.3, Router Interface + Parameters" + SYNTAX Unsigned32 (0..255) + + Ospfv3LsaSequenceTC ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "The sequence number field is a signed 32-bit + integer. It is used to detect old and duplicate + 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" + SYNTAX Integer32 + + Ospfv3LsaAgeTC ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "The age of the link state advertisement in + seconds. The high-order bit of the LS age + field is considered the DoNotAge bit for + support of on-demand circuits." + REFERENCE + "OSPF Version 2, Section 12.1.1, LS age; + Extending OSPF to Support Demand Circuits, + Section 2.2, The LS age field" + SYNTAX Unsigned32 (0..3600 | 32768..36368) + + -- Top-level structure of MIB + ospfv3Notifications OBJECT IDENTIFIER ::= { ospfv3MIB 0 } + 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 Ospfv3RouterIdTC + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A 32-bit unsigned integer uniquely identifying + the router in the Autonomous System. To ensure + uniqueness, this may default to the 32-bit + unsigned integer representation of one of + the router's IPv4 interface addresses (if IPv4 + is configured on the router). + + This object is persistent, and when written, the + entity SHOULD save the change to non-volatile + storage." + REFERENCE + "OSPF for IPv6, Appendix C.1, Global Parameters" + ::= { ospfv3GeneralGroup 1 } + + ospfv3AdminStatus 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 + interface; 'disabled' disables it on all + interfaces. + + This object is persistent, and when written, the + entity SHOULD save the change to non-volatile + storage." + ::= { 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 denote whether this router is an area + border router. The value of this object is true (1) + when the 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 + configured as an Autonomous System border router. + + This object is persistent, and when written, the + entity SHOULD save the change to non-volatile + storage." + 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 Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The 32-bit unsigned sum of the LS checksums of + the AS-scoped link state advertisements + contained 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 or + 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 + incremented each time the router originates a new + LSA. + + Discontinuities in the value of this counter + can occur at re-initialization of the management + system and at other times as indicated by the + value of ospfv3DiscontinuityTime." + ::= { ospfv3GeneralGroup 8 } + + ospfv3RxNewLsas OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of link state advertisements + received that are determined to be new + instantiations. This number does not include + newer instantiations of self-originated link state + advertisements. + + Discontinuities in the value of this counter + can occur at re-initialization of the management + system and at other times as indicated by the + value of ospfv3DiscontinuityTime." + ::= { 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-LSA 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. ospfv3ExtAreaLsdbLimit MUST be set + identically in all routers attached to the OSPFv3 + backbone and/or any regular OSPFv3 area (i.e., + OSPFv3 stub areas and not-so-stubby-areas (NSSAs) + are excluded). + + This object is persistent, and when written, the + entity SHOULD save the change to non-volatile + storage." + ::= { ospfv3GeneralGroup 11 } + + ospfv3ExitOverflowInterval OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The number of seconds that, after entering + Overflow state, a router will attempt to leave + Overflow state. 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. + + This object is persistent, and when written, the + entity SHOULD save the change to non-volatile + storage." + ::= { ospfv3GeneralGroup 12 } + + ospfv3DemandExtensions OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The router's support for demand circuits. + The value of this object is true (1) when + demand circuits are supported. + + This object is persistent, and when written, the + entity SHOULD save the change to non-volatile + storage." + REFERENCE + "OSPF Version 2; Extending OSPF to Support Demand + Circuits" + ::= { ospfv3GeneralGroup 13 } + + ospfv3ReferenceBandwidth OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "kilobits per second" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reference bandwidth in kilobits per second for + calculating default interface metrics. The + default value is 100,000 KBPS (100 MBPS). + + This object is persistent, and when written, the + entity SHOULD save the change to non-volatile + storage." + REFERENCE + "OSPF Version 2, Appendix C.3, Router interface + parameters" + DEFVAL { 100000 } + ::= { ospfv3GeneralGroup 14 } + + ospfv3RestartSupport OBJECT-TYPE + SYNTAX INTEGER { none(1), + plannedOnly(2), + plannedAndUnplanned(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The router's support for OSPF graceful restart. + Options include no restart support, only planned + + restarts, or both planned and unplanned restarts. + + This object is persistent, and when written, the + entity SHOULD save the change to non-volatile + storage." + REFERENCE "Graceful OSPF Restart, Appendix B.1, Global + Parameters (Minimum subset)" + ::= { ospfv3GeneralGroup 15 } + + ospfv3RestartInterval OBJECT-TYPE + SYNTAX Ospfv3UpToRefreshIntervalTC + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Configured OSPF graceful restart timeout interval. + + This object is persistent, and when written, the + entity SHOULD save the change to non-volatile + storage." + REFERENCE "Graceful OSPF Restart, Appendix B.1, Global + Parameters (Minimum subset)" + DEFVAL { 120 } + ::= { ospfv3GeneralGroup 16 } + + ospfv3RestartStrictLsaChecking OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates if strict LSA checking is enabled for + graceful restart. A value of true (1) indicates that + strict LSA checking is enabled. + + This object is persistent, and when written, + the entity SHOULD save the change to non-volatile + storage." + REFERENCE "Graceful OSPF Restart, Appendix B.2, Global + Parameters (Optional)" + DEFVAL { true } + ::= { ospfv3GeneralGroup 17 } + + ospfv3RestartStatus OBJECT-TYPE + SYNTAX INTEGER { notRestarting(1), + plannedRestart(2), + unplannedRestart(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of OSPF graceful restart capability." + ::= { ospfv3GeneralGroup 18 } + + ospfv3RestartAge OBJECT-TYPE + SYNTAX Ospfv3UpToRefreshIntervalTC + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Remaining time in the current OSPF graceful restart + interval." + ::= { ospfv3GeneralGroup 19 } + + ospfv3RestartExitReason OBJECT-TYPE + SYNTAX INTEGER { none(1), + inProgress(2), + completed(3), + timedOut(4), + topologyChanged(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Describes the outcome of the last attempt at a + graceful restart. + + none: no restart has yet been attempted. + inProgress: a restart attempt is currently underway. + completed: the last restart completed successfully. + timedOut: the last restart timed out. + topologyChanged: the last restart was aborted due to + a topology change." + ::= { ospfv3GeneralGroup 20 } + + ospfv3NotificationEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object provides a coarse level of control + over the generation of OSPFv3 notifications. + + If this object is set to true (1), then it enables + the generation of OSPFv3 notifications. If it is + set to false (2), these notifications are not + generated. + + This object is persistent, and when written, the + entity SHOULD save the change to non-volatile + storage." + ::= { ospfv3GeneralGroup 21 } + +ospfv3StubRouterSupport OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The router's support for stub router functionality. An + object value of true (1) indicates that stub router + functionality is supported." + REFERENCE + "OSPF Stub Router Advertisement" + ::= { ospfv3GeneralGroup 22 } + + ospfv3StubRouterAdvertisement OBJECT-TYPE + SYNTAX INTEGER { + doNotAdvertise(1), + advertise(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object controls the advertisement of + stub LSAs by the router. The value + doNotAdvertise (1) will result in the advertisement + of standard LSAs and is the default value. + + This object is persistent, and when written, + the entity SHOULD save the change to non-volatile + storage." + REFERENCE + "OSPF Stub Router Advertisement, Section 2, Proposed + Solution" + DEFVAL { doNotAdvertise } + ::= { ospfv3GeneralGroup 23 } + +ospfv3DiscontinuityTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime on the most recent occasion + at which any one of this MIB's counters suffered + a discontinuity. + + If no such discontinuities have occurred since the last + re-initialization of the local management subsystem, + then this object contains a zero value." + ::= { ospfv3GeneralGroup 24 } + + ospfv3RestartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime on the most recent occasion + at which the ospfv3RestartExitReason was updated." + ::= { ospfv3GeneralGroup 25 } + + -- 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, by definition, is the backbone area. + + ospfv3AreaTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3AreaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information describing the configured + parameters and cumulative statistics of the router's + attached areas. The interfaces and + virtual links are configured as part of these areas. + Area 0, by definition, is the backbone area." + REFERENCE + "OSPF Version 2, Section 6, The Area Data + Structure" + ::= { ospfv3Objects 2 } + + ospfv3AreaEntry OBJECT-TYPE + SYNTAX Ospfv3AreaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information describing the configured + parameters and cumulative statistics of one of the + router's attached areas. + + The information in this table is persistent, + and when written, the entity SHOULD save the a + change to non-volatile storage." + INDEX { ospfv3AreaId } + ::= { ospfv3AreaTable 1 } + + Ospfv3AreaEntry ::= SEQUENCE { + ospfv3AreaId + Ospfv3AreaIdTC, + ospfv3AreaImportAsExtern + INTEGER, + ospfv3AreaSpfRuns + Counter32, + ospfv3AreaBdrRtrCount + Gauge32, + ospfv3AreaAsBdrRtrCount + Gauge32, + ospfv3AreaScopeLsaCount + Gauge32, + ospfv3AreaScopeLsaCksumSum + Unsigned32, + ospfv3AreaSummary + INTEGER, + ospfv3AreaRowStatus + RowStatus, + ospfv3AreaStubMetric + BigMetric, + ospfv3AreaNssaTranslatorRole + INTEGER, + ospfv3AreaNssaTranslatorState + INTEGER, + ospfv3AreaNssaTranslatorStabInterval + Unsigned32, + ospfv3AreaNssaTranslatorEvents + Counter32, + ospfv3AreaStubMetricType + INTEGER, + ospfv3AreaTEEnabled + TruthValue + } + + ospfv3AreaId OBJECT-TYPE + SYNTAX Ospfv3AreaIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A 32-bit unsigned integer uniquely identifying an area. + Area ID 0 is used for the OSPFv3 backbone." + REFERENCE + "OSPF Version 2, Appendix C.2, Area parameters" + ::= { ospfv3AreaEntry 1 } + + ospfv3AreaImportAsExtern 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 NSSA + LSAs that 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. + + Discontinuities in the value of this counter + can occur at re-initialization of the management + system and at other times as indicated by the + value of ospfv3DiscontinuityTime." + ::= { ospfv3AreaEntry 3 } + + ospfv3AreaBdrRtrCount OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of area border routers + reachable within this area. This is initially zero, + and is calculated in each Shortest Path First (SPF) + pass." + DEFVAL { 0 } + ::= { 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." + DEFVAL { 0 } + ::= { 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." + DEFVAL { 0 } + ::= { ospfv3AreaEntry 6 } + + ospfv3AreaScopeLsaCksumSum OBJECT-TYPE + SYNTAX Unsigned32 + 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 or 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 + import of Inter-Area LSAs into stub and + NSSA 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 or NSSA area. It will only advertise a + default route. + + If it is sendAreaSummary, the router will both + summarize and propagate Inter-Area LSAs." + DEFVAL { sendAreaSummary } + ::= { ospfv3AreaEntry 8 } + + ospfv3AreaRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object permits management of the table by + facilitating actions such as row creation, + construction, and destruction. + + The value of this object has no effect on + whether other objects in this conceptual row can be + modified." + ::= { ospfv3AreaEntry 9 } + + ospfv3AreaStubMetric OBJECT-TYPE + SYNTAX BigMetric + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The metric value advertised for the default route + into stub and NSSA areas. By default, this equals the + least metric among the interfaces to other 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 policy to + perform NSSA translation of NSSA-LSAs into + AS-External-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 NSSA-LSAs into + AS-External-LSAs. When this object is set to + 'enabled', the NSSA border router's + ospfv3AreaNssaTranslatorRole has been set to 'always'. + When this object is set to 'elected', a candidate + NSSA border router is translating NSSA-LSAs into + AS-External-LSAs. When this object is set to + 'disabled', a candidate NSSA Border router is NOT + translating NSSA-LSAs into AS-External-LSAs." + ::= { ospfv3AreaEntry 12 } + + ospfv3AreaNssaTranslatorStabInterval OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The stability interval defined as 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 start-up of the + OSPFv3 routing process. + + Discontinuities in the value of this counter + can occur at re-initialization of the management + system and at other times as indicated by the + value of ospfv3DiscontinuityTime." + ::= { 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 assigns the type of metric + advertised as a default route." + DEFVAL { ospfv3Metric } + ::= { ospfv3AreaEntry 15 } + + ospfv3AreaTEEnabled OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Indicates whether or not traffic engineering + is enabled in the area. The object is set + to the value true (1) to enable traffic engineering. + Traffic engineering is disabled by default." + DEFVAL { false } + ::= { ospfv3AreaEntry 16 } + + -- OSPFv3 AS-Scope Link State Database + + ospfv3AsLsdbTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3AsLsdbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The OSPFv3 Process's AS-scope link state database + (LSDB). The LSDB contains the AS-scope link state + advertisements from throughout the areas that the + device is attached to." + ::= { 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 + Ospfv3RouterIdTC, + ospfv3AsLsdbLsid + Ospfv3LsIdTC, + ospfv3AsLsdbSequence + Ospfv3LsaSequenceTC, + ospfv3AsLsdbAge + Ospfv3LsaAgeTC, + ospfv3AsLsdbChecksum + Integer32, + ospfv3AsLsdbAdvertisement + OCTET STRING, + ospfv3AsLsdbTypeKnown + TruthValue + } + + ospfv3AsLsdbType OBJECT-TYPE + SYNTAX Unsigned32(0..'FFFFFFFF'h) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The type of the link state advertisement. + Each link state type has a separate + advertisement format. AS-scope LSAs not recognized + by the router may be stored in the database." + ::= { ospfv3AsLsdbEntry 1 } + + ospfv3AsLsdbRouterId OBJECT-TYPE + SYNTAX Ospfv3RouterIdTC + MAX-ACCESS not-accessible + 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 Ospfv3LsIdTC + MAX-ACCESS not-accessible + 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 Ospfv3LsaSequenceTC + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sequence number field is a signed 32-bit + integer. It is used to detect old and duplicate + 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 Ospfv3LsaAgeTC + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This field is the age of the link state + advertisement in seconds. The high-order bit + of the LS age field is considered the DoNotAge + bit for support of on-demand circuits." + REFERENCE + "OSPF Version 2, Section 12.1.1, LS age; + Extending OSPF to Support Demand Circuits, + Section 2.2, The LS age field." + ::= { 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 + connectionless 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 + "The value true (1) indicates that the LSA type + is recognized by this router." + ::= { ospfv3AsLsdbEntry 8 } + + -- OSPFv3 Area-Scope Link State Database + + ospfv3AreaLsdbTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3AreaLsdbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The OSPFv3 Process's Area-scope LSDB. + The LSDB contains the Area-scope link state + advertisements from throughout the area that the + device is attached to." + ::= { 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 + Ospfv3AreaIdTC, + ospfv3AreaLsdbType + Unsigned32, + ospfv3AreaLsdbRouterId + Ospfv3RouterIdTC, + ospfv3AreaLsdbLsid + Ospfv3LsIdTC, + ospfv3AreaLsdbSequence + Ospfv3LsaSequenceTC, + ospfv3AreaLsdbAge + Ospfv3LsaAgeTC, + ospfv3AreaLsdbChecksum + Integer32, + ospfv3AreaLsdbAdvertisement + OCTET STRING, + ospfv3AreaLsdbTypeKnown + TruthValue + } + + ospfv3AreaLsdbAreaId OBJECT-TYPE + SYNTAX Ospfv3AreaIdTC + MAX-ACCESS not-accessible + 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..'FFFFFFFF'h) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The type of the link state advertisement. + Each link state type has a separate + advertisement format. Area-scope LSAs unrecognized + by the router are also stored in this database." + ::= { ospfv3AreaLsdbEntry 2 } + + ospfv3AreaLsdbRouterId OBJECT-TYPE + SYNTAX Ospfv3RouterIdTC + MAX-ACCESS not-accessible + 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 Ospfv3LsIdTC + MAX-ACCESS not-accessible + 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 Ospfv3LsaSequenceTC + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sequence number field is a signed 32-bit + integer. It is used to detect old and + duplicate 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 Ospfv3LsaAgeTC + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This field is the age of the link state + advertisement in seconds. The high-order bit + of the LS age field is considered the DoNotAge + bit for support of on-demand circuits." + REFERENCE + "OSPF Version 2, Section 12.1.1, LS age; + Extending OSPF to Support Demand Circuits, + Section 2.2, The LS age field." + ::= { 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 + connectionless 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 + "The value true (1) indicates that the LSA type is + recognized by this router." + ::= { ospfv3AreaLsdbEntry 9 } + + -- OSPFv3 Link-Scope Link State Database, for non-virtual interfaces + + ospfv3LinkLsdbTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3LinkLsdbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The OSPFv3 Process's Link-scope LSDB for non-virtual + interfaces. The LSDB contains the Link-scope link + state advertisements from the interfaces that the + device is attached to." + ::= { ospfv3Objects 5 } + + ospfv3LinkLsdbEntry OBJECT-TYPE + SYNTAX Ospfv3LinkLsdbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A single Link-scope link state advertisement." + INDEX { ospfv3LinkLsdbIfIndex, + ospfv3LinkLsdbIfInstId, + ospfv3LinkLsdbType, + ospfv3LinkLsdbRouterId, + ospfv3LinkLsdbLsid } + ::= { ospfv3LinkLsdbTable 1 } + + Ospfv3LinkLsdbEntry ::= SEQUENCE { + ospfv3LinkLsdbIfIndex + InterfaceIndex, + ospfv3LinkLsdbIfInstId + Ospfv3IfInstIdTC, + ospfv3LinkLsdbType + Unsigned32, + ospfv3LinkLsdbRouterId + Ospfv3RouterIdTC, + ospfv3LinkLsdbLsid + Ospfv3LsIdTC, + ospfv3LinkLsdbSequence + Ospfv3LsaSequenceTC, + ospfv3LinkLsdbAge + Ospfv3LsaAgeTC, + ospfv3LinkLsdbChecksum + Integer32, + ospfv3LinkLsdbAdvertisement + OCTET STRING, + ospfv3LinkLsdbTypeKnown + TruthValue + } + + ospfv3LinkLsdbIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The identifier of the link from which the LSA + was received." + ::= { ospfv3LinkLsdbEntry 1 } + + ospfv3LinkLsdbIfInstId OBJECT-TYPE + SYNTAX Ospfv3IfInstIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The identifier of the interface instance from + which the LSA was received." + ::= { ospfv3LinkLsdbEntry 2 } + + ospfv3LinkLsdbType OBJECT-TYPE + SYNTAX Unsigned32(0..'FFFFFFFF'h) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The type of the link state advertisement. + Each link state type has a separate + advertisement format. Link-scope LSAs unrecognized + by the router are also stored in this database." + ::= { ospfv3LinkLsdbEntry 3 } + + ospfv3LinkLsdbRouterId OBJECT-TYPE + SYNTAX Ospfv3RouterIdTC + MAX-ACCESS not-accessible + 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 4 } + + ospfv3LinkLsdbLsid OBJECT-TYPE + SYNTAX Ospfv3LsIdTC + MAX-ACCESS not-accessible + 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. However, in OSPFv3 + the Link State ID always contains the flooding + scope of the LSA." + ::= { ospfv3LinkLsdbEntry 5 } + + -- 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 Ospfv3LsaSequenceTC + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sequence number field is a signed 32-bit + integer. It is used to detect old and duplicate + 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 6 } + + ospfv3LinkLsdbAge OBJECT-TYPE + SYNTAX Ospfv3LsaAgeTC + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This field is the age of the link state + advertisement in seconds. The high-order bit + of the LS age field is considered the DoNotAge + bit for support of on-demand circuits." + REFERENCE + "OSPF Version 2, Section 12.1.1, LS age; + Extending OSPF to Support Demand Circuits, + Section 2.2, The LS age field." + ::= { ospfv3LinkLsdbEntry 7 } + + 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 + connectionless datagrams; it is commonly + referred to as the Fletcher checksum." + REFERENCE + "OSPF Version 2, Section 12.1.7, LS checksum" + ::= { ospfv3LinkLsdbEntry 8 } + + 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 9 } + + ospfv3LinkLsdbTypeKnown OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value true (1) indicates that the LSA type is + recognized by this router." + ::= { ospfv3LinkLsdbEntry 10 } + + -- OSPF Host Table + + ospfv3HostTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3HostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Host/Metric Table indicates what hosts are + directly attached to the router and their + corresponding metrics." + REFERENCE + "OSPF Version 2, Appendix C.7, Host route + parameters" + ::= { 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. + + The information in this table is persistent, and + when written, the entity SHOULD save the change + to non-volatile storage." + INDEX { ospfv3HostAddressType, + ospfv3HostAddress } + ::= { ospfv3HostTable 1 } + + Ospfv3HostEntry ::= SEQUENCE { + ospfv3HostAddressType + InetAddressType, + ospfv3HostAddress + InetAddress, + ospfv3HostMetric + Metric, + ospfv3HostRowStatus + RowStatus, + ospfv3HostAreaID + Ospfv3AreaIdTC + } + + ospfv3HostAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The address type of ospfv3HostAddress. Only IPv6 + global address type is expected." + REFERENCE + "OSPF Version 2, Appendix C.7, Host route + parameters" + ::= { ospfv3HostEntry 1 } + + ospfv3HostAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The IPv6 address of the host. Must be an + IPv6 global address." + REFERENCE + "OSPF Version 2, Appendix C.7, Host route + parameters" + ::= { 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.7, Host route + parameters" + ::= { ospfv3HostEntry 3 } + + ospfv3HostRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object permits management of the table by + facilitating actions such as row creation, + construction, and destruction. + + The value of this object has no effect on + whether other objects in this conceptual row can be + modified." + ::= { ospfv3HostEntry 4 } + + ospfv3HostAreaID OBJECT-TYPE + SYNTAX Ospfv3AreaIdTC + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The Area the host entry is to be found within. + By default, the area for the subsuming OSPFv3 + interface, or Area 0 if there is no subsuming + interface." + 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 + interfaces from the viewpoint of OSPFv3." + REFERENCE + "OSPF for IPv6, 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 + interface from the viewpoint of OSPFv3. + + The information in this table is persistent, + and when written, the entity SHOULD save the + change to non-volatile storage." + INDEX { ospfv3IfIndex, + ospfv3IfInstId } + ::= { ospfv3IfTable 1 } + + Ospfv3IfEntry ::= SEQUENCE { + ospfv3IfIndex + InterfaceIndex, + ospfv3IfInstId + Ospfv3IfInstIdTC, + ospfv3IfAreaId + Ospfv3AreaIdTC, + ospfv3IfType + INTEGER, + ospfv3IfAdminStatus + Status, + ospfv3IfRtrPriority + DesignatedRouterPriority, + ospfv3IfTransitDelay + Ospfv3UpToRefreshIntervalTC, + ospfv3IfRetransInterval + Ospfv3UpToRefreshIntervalTC, + ospfv3IfHelloInterval + HelloRange, + ospfv3IfRtrDeadInterval + Ospfv3DeadIntervalRangeTC, + ospfv3IfPollInterval + Unsigned32, + ospfv3IfState + INTEGER, + ospfv3IfDesignatedRouter + Ospfv3RouterIdTC, + ospfv3IfBackupDesignatedRouter + Ospfv3RouterIdTC, + ospfv3IfEvents + Counter32, + ospfv3IfRowStatus + RowStatus, + ospfv3IfDemand + TruthValue, + ospfv3IfMetricValue + Metric, + ospfv3IfLinkScopeLsaCount + Gauge32, + ospfv3IfLinkLsaCksumSum + Unsigned32, + ospfv3IfDemandNbrProbe + TruthValue, + ospfv3IfDemandNbrProbeRetransLimit + Unsigned32, + ospfv3IfDemandNbrProbeInterval + Unsigned32, + ospfv3IfTEDisabled + TruthValue, + ospfv3IfLinkLSASuppression + TruthValue + } + + ospfv3IfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS not-accessible + 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 } + + ospfv3IfInstId OBJECT-TYPE + SYNTAX Ospfv3IfInstIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Enables multiple interface instances of OSPFv3 + to be run over a single link. Each interface + instance would be assigned a separate ID. This ID + has local link significance only." + ::= { ospfv3IfEntry 2 } + + ospfv3IfAreaId OBJECT-TYPE + SYNTAX Ospfv3AreaIdTC + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A 32-bit integer uniquely identifying the area + to which the interface connects. Area ID + 0 is used for the OSPFv3 backbone." + DEFVAL { 0 } + ::= { ospfv3IfEntry 3 } + + 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 4 } + + ospfv3IfAdminStatus OBJECT-TYPE + SYNTAX Status + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The OSPFv3 interface's administrative status. + The value formed on the interface; the interface + will be advertised as an internal route to some + area. The value 'disabled' denotes that the + interface is external to OSPFv3. + + Note that a value of 'disabled' for the object + ospfv3AdminStatus will override a value of + 'enabled' for the interface." + DEFVAL { enabled } + ::= { ospfv3IfEntry 5 } + + 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 + eligible 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 6 } + + ospfv3IfTransitDelay OBJECT-TYPE + SYNTAX Ospfv3UpToRefreshIntervalTC + 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. LSAs + contained in the update packet must have their age + incremented by this amount before transmission. This + value should take into account the transmission and + propagation delays of the interface." + REFERENCE + "OSPF for IPv6, Appendix C.3, Router Interface + Parameters." + DEFVAL { 1 } + ::= { ospfv3IfEntry 7 } + + ospfv3IfRetransInterval OBJECT-TYPE + SYNTAX Ospfv3UpToRefreshIntervalTC + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of seconds between link state + advertisement retransmissions for adjacencies + + belonging to this interface. This value is + also used when retransmitting database + description and Link State Request packets." + DEFVAL { 5 } + ::= { ospfv3IfEntry 8 } + + 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 + interface. This value must be the same for all + routers attached to a common network." + DEFVAL { 10 } + ::= { ospfv3IfEntry 9 } + + ospfv3IfRtrDeadInterval OBJECT-TYPE + SYNTAX Ospfv3DeadIntervalRangeTC + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of seconds that a router's Hello + packets have not been seen before its + neighbors declare the router down on the interface. + 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 10 } + + 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 11 } + + ospfv3IfState OBJECT-TYPE + SYNTAX INTEGER { + down(1), + loopback(2), + waiting(3), + pointToPoint(4), + designatedRouter(5), + backupDesignatedRouter(6), + otherDesignatedRouter(7), + standby(8) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The OSPFv3 interface state. An interface may be + in standby state if there are multiple interfaces + on the link and another interface is active. The + interface may be in Down state if the underlying + IPv6 interface is down or if the admin status is + 'disabled' either globally or for the interface." + ::= { ospfv3IfEntry 12 } + + ospfv3IfDesignatedRouter OBJECT-TYPE + SYNTAX Ospfv3RouterIdTC + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Router ID of the Designated Router." + ::= { ospfv3IfEntry 13 } + + ospfv3IfBackupDesignatedRouter OBJECT-TYPE + SYNTAX Ospfv3RouterIdTC + 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 OSPFv3 interface has + changed its state or an error has occurred. + + Discontinuities in the value of this counter + can occur at re-initialization of the management + system and at other times as indicated by the + value of ospfv3DiscontinuityTime." + ::= { ospfv3IfEntry 15 } + + ospfv3IfRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object permits management of the table by + facilitating actions such as row creation, + construction, and destruction. + + The value of this object has no effect on + whether other objects in this conceptual row can be + modified." + ::= { ospfv3IfEntry 16 } + + ospfv3IfDemand OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Indicates whether Demand OSPFv3 procedures + (Hello suppression to FULL neighbors and + setting the DoNotAge flag on propagated LSAs) + should be performed on this interface." + DEFVAL { false } + ::= { ospfv3IfEntry 17 } + + 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 can be set + in the ospfv3ReferenceBandwidth object." + ::= { ospfv3IfEntry 18 } + + 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 19 } + + ospfv3IfLinkLsaCksumSum OBJECT-TYPE + SYNTAX Unsigned32 + 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 or to compare the + link state database of two routers." + ::= { ospfv3IfEntry 20 } + + 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 21 } + +ospfv3IfDemandNbrProbeRetransLimit OBJECT-TYPE + SYNTAX Unsigned32 + 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 22} + +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 23 } + + ospfv3IfTEDisabled OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Indicates whether or not traffic engineering + is disabled on the interface when traffic + engineering is enabled in the area where the + interface is attached. The object is set + to the value true (1) to disable traffic engineering + on the interface. Traffic engineering is enabled + by default on the interface when traffic engineering + is enabled in the area where the interface is + attached." + DEFVAL { false } + ::= { ospfv3IfEntry 24 } + + ospfv3IfLinkLSASuppression OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies whether or not link LSA origination is + suppressed for broadcast or NBMA interface types. + The object is set to value true (1) to suppress + the origination." + REFERENCE + "OSPF for IPv6, Appendix C.3, Router Interface + Parameters" + DEFVAL { false } + ::= { ospfv3IfEntry 25 } + + -- OSPFv3 Virtual Interface Table + + ospfv3VirtIfTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3VirtIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about this router's virtual + interfaces that the OSPFv3 Process is configured + to carry on." + REFERENCE + "OSPF for IPv6, 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. + + The information in this table is persistent, + and when written, the entity SHOULD save the + change to non-volatile storage." + INDEX { ospfv3VirtIfAreaId, + ospfv3VirtIfNeighbor } + ::= { ospfv3VirtIfTable 1 } + + Ospfv3VirtIfEntry ::= SEQUENCE { + ospfv3VirtIfAreaId + Ospfv3AreaIdTC, + ospfv3VirtIfNeighbor + Ospfv3RouterIdTC, + ospfv3VirtIfIndex + InterfaceIndex, + ospfv3VirtIfInstId + Ospfv3IfInstIdTC, + ospfv3VirtIfTransitDelay + Ospfv3UpToRefreshIntervalTC, + ospfv3VirtIfRetransInterval + Ospfv3UpToRefreshIntervalTC, + ospfv3VirtIfHelloInterval + HelloRange, + ospfv3VirtIfRtrDeadInterval + Ospfv3DeadIntervalRangeTC, + ospfv3VirtIfState + INTEGER, + ospfv3VirtIfEvents + Counter32, + ospfv3VirtIfRowStatus + RowStatus, + ospfv3VirtIfLinkScopeLsaCount + Gauge32, + ospfv3VirtIfLinkLsaCksumSum + Unsigned32 + } + + ospfv3VirtIfAreaId OBJECT-TYPE + SYNTAX Ospfv3AreaIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The transit area that the virtual link + traverses. By definition, this is not + Area 0." + ::= { ospfv3VirtIfEntry 1 } + + ospfv3VirtIfNeighbor OBJECT-TYPE + SYNTAX Ospfv3RouterIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Router ID of the virtual neighbor." + ::= { ospfv3VirtIfEntry 2 } + + ospfv3VirtIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local interface index assigned by the + OSPFv3 Process to this OSPFv3 virtual interface. + It is advertised in Hellos sent over the virtual + link and in the router's router-LSAs." + ::= { ospfv3VirtIfEntry 3 } + + ospfv3VirtIfInstId OBJECT-TYPE + SYNTAX Ospfv3IfInstIdTC + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local Interface Instance ID assigned by the + OSPFv3 Process to this OSPFv3 virtual interface." + ::= { ospfv3VirtIfEntry 4 } + + ospfv3VirtIfTransitDelay OBJECT-TYPE + SYNTAX Ospfv3UpToRefreshIntervalTC + 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 5 } + + ospfv3VirtIfRetransInterval OBJECT-TYPE + SYNTAX Ospfv3UpToRefreshIntervalTC + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of seconds between link state + advertisement retransmissions for adjacencies + belonging to this interface. This value is + also used when retransmitting database + description and Link State Request packets. This + value should be well over the expected + round-trip time." + DEFVAL { 5 } + ::= { ospfv3VirtIfEntry 6 } + + 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 + interface. This value must be the same for the + virtual neighbor." + DEFVAL { 10 } + ::= { ospfv3VirtIfEntry 7 } + + ospfv3VirtIfRtrDeadInterval OBJECT-TYPE + SYNTAX Ospfv3DeadIntervalRangeTC + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of seconds that a router's Hello + packets have not been seen before its + neighbors declare the router down. This should + be some multiple of the Hello interval. This + value must be the same for the virtual + neighbor." + DEFVAL { 60 } + ::= { ospfv3VirtIfEntry 8 } + + ospfv3VirtIfState OBJECT-TYPE + SYNTAX INTEGER { + down(1), + pointToPoint(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OSPF virtual interface states. The same encoding + as the ospfV3IfTable is used." + ::= { ospfv3VirtIfEntry 9 } + + ospfv3VirtIfEvents OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of state changes or error events on + this virtual link. + + Discontinuities in the value of this counter + can occur at re-initialization of the management + system and at other times as indicated by the + value of ospfv3DiscontinuityTime." + ::= { ospfv3VirtIfEntry 10 } + + ospfv3VirtIfRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object permits management of the table by + facilitating actions such as row creation, + construction, and destruction. + + The value of this object has no effect on + whether other objects in this conceptual row can be + modified." + ::= { ospfv3VirtIfEntry 11 } + + 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 12 } + + ospfv3VirtIfLinkLsaCksumSum OBJECT-TYPE + SYNTAX Unsigned32 + 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 or to compare the + link state database of two routers." + ::= { ospfv3VirtIfEntry 13 } + + -- OSPFv3 Neighbor Table + + ospfv3NbrTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3NbrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table describing all neighbors in the + locality of the OSPFv3 router." + 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, + ospfv3NbrIfInstId, + ospfv3NbrRtrId } + ::= { ospfv3NbrTable 1 } + + Ospfv3NbrEntry ::= SEQUENCE { + ospfv3NbrIfIndex + InterfaceIndex, + ospfv3NbrIfInstId + Ospfv3IfInstIdTC, + ospfv3NbrRtrId + Ospfv3RouterIdTC, + ospfv3NbrAddressType + InetAddressType, + ospfv3NbrAddress + InetAddress, + ospfv3NbrOptions + Integer32, + ospfv3NbrPriority + DesignatedRouterPriority, + ospfv3NbrState + INTEGER, + ospfv3NbrEvents + Counter32, + ospfv3NbrLsRetransQLen + Gauge32, + ospfv3NbrHelloSuppressed + TruthValue, + ospfv3NbrIfId + InterfaceIndex, + ospfv3NbrRestartHelperStatus + INTEGER, + ospfv3NbrRestartHelperAge + Ospfv3UpToRefreshIntervalTC, + ospfv3NbrRestartHelperExitReason + INTEGER + } + + ospfv3NbrIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Local Link ID of the link over which the + neighbor can be reached." + ::= { ospfv3NbrEntry 1 } + + ospfv3NbrIfInstId OBJECT-TYPE + SYNTAX Ospfv3IfInstIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Interface instance over which the neighbor + can be reached. This ID has local link + significance only." + ::= { ospfv3NbrEntry 2 } + + ospfv3NbrRtrId OBJECT-TYPE + SYNTAX Ospfv3RouterIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A 32-bit unsigned integer uniquely identifying the + neighboring router in the Autonomous System." + ::= { ospfv3NbrEntry 3 } + + 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 4 } + + ospfv3NbrAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IPv6 address of the neighbor associated with + the local link." + ::= { ospfv3NbrEntry 5 } + + ospfv3NbrOptions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A bit mask corresponding to the neighbor's + options field." + REFERENCE + "OSPF for IPv6, Appendix A.2, The Options Field" + ::= { ospfv3NbrEntry 6 } + + ospfv3NbrPriority OBJECT-TYPE + SYNTAX DesignatedRouterPriority + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The priority of this neighbor in the designated- + router election algorithm. The value 0 signifies + that the neighbor is not eligible to become the + Designated Router on this particular network." + ::= { ospfv3NbrEntry 7 } + + 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 + neighbor." + REFERENCE + "OSPF Version 2, Section 10.1, Neighbor states" + ::= { ospfv3NbrEntry 8 } + + 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. + + Discontinuities in the value of this counter + can occur at re-initialization of the management + system and at other times as indicated by the + value of ospfv3DiscontinuityTime." + ::= { ospfv3NbrEntry 9 } + + ospfv3NbrLsRetransQLen OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current length of the retransmission + queue." + ::= { ospfv3NbrEntry 10 } + + ospfv3NbrHelloSuppressed OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether Hellos are being suppressed + to the neighbor." + ::= { ospfv3NbrEntry 11 } + + 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 12 } + + ospfv3NbrRestartHelperStatus OBJECT-TYPE + SYNTAX INTEGER { notHelping(1), + helping(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether the router is acting + as a graceful restart helper for the neighbor." + ::= { ospfv3NbrEntry 13 } + + ospfv3NbrRestartHelperAge OBJECT-TYPE + SYNTAX Ospfv3UpToRefreshIntervalTC + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Remaining time in current OSPF graceful restart + interval, if the router is acting as a restart + helper for the neighbor." + ::= { ospfv3NbrEntry 14 } + + ospfv3NbrRestartHelperExitReason OBJECT-TYPE + SYNTAX INTEGER { none(1), + inProgress(2), + completed(3), + timedOut(4), + topologyChanged(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Describes the outcome of the last attempt at acting + as a graceful restart helper for the neighbor. + + none: no restart has yet been attempted. + inProgress: a restart attempt is currently underway. + completed: the last restart completed successfully. + timedOut: the last restart timed out. + topologyChanged: the last restart was aborted due to + a topology change." + ::= { ospfv3NbrEntry 15 } + + -- OSPFv3 Configured Neighbor Table + + ospfv3CfgNbrTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3CfgNbrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table describing all configured neighbors. + + The Configured Neighbors table just gives + OSPFv3 information for sending OSPFv3 packets + to potential neighbors and is typically used + on NBMA and Point-to-Multipoint networks. + Once a Hello is received from a neighbor in + the Configured Neighbor table, an entry for + that neighbor is created in the Neighbor table + and adjacency state is maintained there. + Neighbors on multi-access or Point-to-Point + networks can use multicast addressing, so only + Neighbor table entries are created for them." + REFERENCE + "OSPF Version 2, Section 10, The Neighbor Data + Structure" + ::= { ospfv3Objects 10 } + + ospfv3CfgNbrEntry OBJECT-TYPE + SYNTAX Ospfv3CfgNbrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The information regarding a single configured + neighbor. + + The information in this table is persistent, + and when written, the entity SHOULD save the + change to non-volatile storage." + REFERENCE + "OSPF Version 2, Section 10, The Neighbor Data + Structure" + INDEX { ospfv3CfgNbrIfIndex, + ospfv3CfgNbrIfInstId, + ospfv3CfgNbrAddressType, + ospfv3CfgNbrAddress } + ::= { ospfv3CfgNbrTable 1 } + + Ospfv3CfgNbrEntry ::= SEQUENCE { + ospfv3CfgNbrIfIndex + InterfaceIndex, + ospfv3CfgNbrIfInstId + Ospfv3IfInstIdTC, + ospfv3CfgNbrAddressType + InetAddressType, + ospfv3CfgNbrAddress + InetAddress, + ospfv3CfgNbrPriority + DesignatedRouterPriority, + ospfv3CfgNbrRowStatus + RowStatus + } + + ospfv3CfgNbrIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Local Link ID of the link over which the + neighbor can be reached." + ::= { ospfv3CfgNbrEntry 1 } + + ospfv3CfgNbrIfInstId OBJECT-TYPE + SYNTAX Ospfv3IfInstIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Interface instance over which the neighbor + can be reached. This ID has local link + significance only." + ::= { ospfv3CfgNbrEntry 2 } + + ospfv3CfgNbrAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The address type of ospfv3NbrAddress. Only IPv6 + addresses without zone index are expected." + ::= { ospfv3CfgNbrEntry 3 } + + ospfv3CfgNbrAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The IPv6 address of the neighbor associated with + the local link." + ::= { ospfv3CfgNbrEntry 4 } + + ospfv3CfgNbrPriority OBJECT-TYPE + SYNTAX DesignatedRouterPriority + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The priority of this neighbor in the designated- + router election algorithm. The value 0 signifies + that the neighbor is not eligible to become the + Designated Router on this particular network." + DEFVAL { 1 } + ::= { ospfv3CfgNbrEntry 5 } + + ospfv3CfgNbrRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object permits management of the table by + facilitating actions such as row creation, + construction, and destruction. + + The value of this object has no effect on + whether other objects in this conceptual row can be + modified." + ::= { ospfv3CfgNbrEntry 6 } + + -- OSPFv3 Virtual Neighbor Table + + ospfv3VirtNbrTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3VirtNbrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table describing all virtual neighbors." + 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 + Ospfv3AreaIdTC, + ospfv3VirtNbrRtrId + Ospfv3RouterIdTC, + ospfv3VirtNbrIfIndex + InterfaceIndex, + ospfv3VirtNbrIfInstId + Ospfv3IfInstIdTC, + ospfv3VirtNbrAddressType + InetAddressType, + ospfv3VirtNbrAddress + InetAddress, + ospfv3VirtNbrOptions + Integer32, + ospfv3VirtNbrState + INTEGER, + ospfv3VirtNbrEvents + Counter32, + ospfv3VirtNbrLsRetransQLen + Gauge32, + ospfv3VirtNbrHelloSuppressed + TruthValue, + ospfv3VirtNbrIfId + InterfaceIndex, + ospfv3VirtNbrRestartHelperStatus + INTEGER, + ospfv3VirtNbrRestartHelperAge + Ospfv3UpToRefreshIntervalTC, + ospfv3VirtNbrRestartHelperExitReason + INTEGER + } + + ospfv3VirtNbrArea OBJECT-TYPE + SYNTAX Ospfv3AreaIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The transit area Identifier." + ::= { ospfv3VirtNbrEntry 1 } + + ospfv3VirtNbrRtrId OBJECT-TYPE + SYNTAX Ospfv3RouterIdTC + MAX-ACCESS not-accessible + 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 } + + ospfv3VirtNbrIfInstId OBJECT-TYPE + SYNTAX Ospfv3IfInstIdTC + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The interface instance for the virtual link over + which the neighbor can be reached." + ::= { ospfv3VirtNbrEntry 4 } + + 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 5 } + + ospfv3VirtNbrAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IPv6 address advertised by this virtual neighbor. + It must be a global scope address." + ::= { ospfv3VirtNbrEntry 6 } + + ospfv3VirtNbrOptions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A bit mask corresponding to the neighbor's options + field." + REFERENCE + "OSPF for IPv6, Appendix A.2, The Options Field" + ::= { ospfv3VirtNbrEntry 7 } + + 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 relationship." + ::= { ospfv3VirtNbrEntry 8 } + + 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. + + Discontinuities in the value of this counter + can occur at re-initialization of the management + system and at other times as indicated by the + value of ospfv3DiscontinuityTime." + ::= { ospfv3VirtNbrEntry 9 } + + ospfv3VirtNbrLsRetransQLen OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current length of the retransmission + queue." + ::= { ospfv3VirtNbrEntry 10 } + + ospfv3VirtNbrHelloSuppressed OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether Hellos are being suppressed + to the neighbor." + ::= { ospfv3VirtNbrEntry 11 } + + 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 12 } + +ospfv3VirtNbrRestartHelperStatus OBJECT-TYPE + SYNTAX INTEGER { notHelping(1), + helping(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether the router is acting + as a graceful restart helper for the neighbor." + ::= { ospfv3VirtNbrEntry 13 } + + ospfv3VirtNbrRestartHelperAge OBJECT-TYPE + SYNTAX Ospfv3UpToRefreshIntervalTC + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Remaining time in the current OSPF graceful restart + interval, if the router is acting as a restart + helper for the neighbor." + ::= { ospfv3VirtNbrEntry 14 } + + ospfv3VirtNbrRestartHelperExitReason OBJECT-TYPE + SYNTAX INTEGER { none(1), + inProgress(2), + completed(3), + timedOut(4), + topologyChanged(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Describes the outcome of the last attempt at acting + as a graceful restart helper for the neighbor. + + none: no restart has yet been attempted. + inProgress: a restart attempt is currently underway. + completed: the last restart completed successfully. + timedOut: the last restart timed out. + topologyChanged: the last restart was aborted due to + a topology change." + ::= { ospfv3VirtNbrEntry 15 } + + -- + -- The OSPFv3 Area Aggregate Table + -- + + ospfv3AreaAggregateTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3AreaAggregateEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Area Aggregate Table acts as an adjunct + to the Area Table. It describes those address + aggregates that are configured to be propagated + from an area. Its purpose is to reduce the amount + of information that is known beyond an area's + borders. + + A range of IPv6 prefixes specified by a + prefix / prefix length pair. Note that if + ranges are configured such that one range + subsumes 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 single area aggregate entry. + + Information in this table is persistent, and + when this object is written, the entity SHOULD + save the change to non-volatile storage." + REFERENCE + "OSPF Version 2, Appendix C.2, Area parameters" + INDEX { ospfv3AreaAggregateAreaID, + ospfv3AreaAggregateAreaLsdbType, + ospfv3AreaAggregatePrefixType, + ospfv3AreaAggregatePrefix, + ospfv3AreaAggregatePrefixLength } + ::= { ospfv3AreaAggregateTable 1 } + + Ospfv3AreaAggregateEntry ::= SEQUENCE { + ospfv3AreaAggregateAreaID + Ospfv3AreaIdTC, + ospfv3AreaAggregateAreaLsdbType + INTEGER, + ospfv3AreaAggregatePrefixType + InetAddressType, + ospfv3AreaAggregatePrefix + InetAddress, + ospfv3AreaAggregatePrefixLength + InetAddressPrefixLength, + ospfv3AreaAggregateRowStatus + RowStatus, + ospfv3AreaAggregateEffect + INTEGER, + ospfv3AreaAggregateRouteTag + Unsigned32 + } + + ospfv3AreaAggregateAreaID OBJECT-TYPE + SYNTAX Ospfv3AreaIdTC + MAX-ACCESS not-accessible + 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 not-accessible + STATUS current + DESCRIPTION + "The type of the Address Aggregate. This field + specifies the Area LSDB type that this Address + Aggregate applies to." + REFERENCE + "OSPF Version 2, Appendix A.4.1, The LSA header" + ::= { ospfv3AreaAggregateEntry 2 } + + ospfv3AreaAggregatePrefixType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The prefix type of ospfv3AreaAggregatePrefix. Only + IPv6 addresses are expected." + ::= { ospfv3AreaAggregateEntry 3 } + + ospfv3AreaAggregatePrefix OBJECT-TYPE + SYNTAX InetAddress (SIZE (0..16)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The IPv6 prefix." + REFERENCE + "OSPF Version 2, Appendix C.2, Area parameters" + ::= { ospfv3AreaAggregateEntry 4 } + + ospfv3AreaAggregatePrefixLength OBJECT-TYPE + SYNTAX InetAddressPrefixLength (3..128) + UNITS "bits" + MAX-ACCESS not-accessible + 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 5 } + + ospfv3AreaAggregateRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object permits management of the table by + facilitating actions such as row creation, + construction, and destruction. + + The value of this object has no effect on + whether other objects in this conceptual row can be + modified." + ::= { ospfv3AreaAggregateEntry 6 } + + ospfv3AreaAggregateEffect OBJECT-TYPE + SYNTAX INTEGER { + advertiseMatching(1), + doNotAdvertiseMatching(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Prefixes subsumed by ranges will either trigger the + advertisement of the indicated aggregate + (advertiseMatching) or result in the prefix not + being advertised at all outside the area." + DEFVAL { advertiseMatching } + ::= { ospfv3AreaAggregateEntry 7 } + + ospfv3AreaAggregateRouteTag OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This tag is advertised only in the summarized + As-External LSA when summarizing from NSSA-LSAs to + AS-External-LSAs." + DEFVAL { 0 } + ::= { ospfv3AreaAggregateEntry 8 } + + -- OSPFv3 Link-Scope Link State Database, for virtual interfaces + + ospfv3VirtLinkLsdbTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ospfv3VirtLinkLsdbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The OSPFv3 Process's Link-scope LSDB for virtual + interfaces. The LSDB contains the Link-scope link + state advertisements from virtual interfaces." + ::= { ospfv3Objects 13 } + + ospfv3VirtLinkLsdbEntry OBJECT-TYPE + SYNTAX Ospfv3VirtLinkLsdbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A single Link-scope link state advertisement + for a virtual interface." + INDEX { ospfv3VirtLinkLsdbIfAreaId, + ospfv3VirtLinkLsdbIfNeighbor, + ospfv3VirtLinkLsdbType, + ospfv3VirtLinkLsdbRouterId, + ospfv3VirtLinkLsdbLsid } + ::= { ospfv3VirtLinkLsdbTable 1 } + + Ospfv3VirtLinkLsdbEntry ::= SEQUENCE { + ospfv3VirtLinkLsdbIfAreaId + Ospfv3AreaIdTC, + ospfv3VirtLinkLsdbIfNeighbor + Ospfv3RouterIdTC, + ospfv3VirtLinkLsdbType + Unsigned32, + ospfv3VirtLinkLsdbRouterId + Ospfv3RouterIdTC, + ospfv3VirtLinkLsdbLsid + Ospfv3LsIdTC, + ospfv3VirtLinkLsdbSequence + Ospfv3LsaSequenceTC, + ospfv3VirtLinkLsdbAge + Ospfv3LsaAgeTC, + ospfv3VirtLinkLsdbChecksum + Integer32, + ospfv3VirtLinkLsdbAdvertisement + OCTET STRING, + ospfv3VirtLinkLsdbTypeKnown + TruthValue + } + + ospfv3VirtLinkLsdbIfAreaId OBJECT-TYPE + SYNTAX Ospfv3AreaIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The transit area that the virtual link + traverses. By definition, this is not + Area 0." + ::= { ospfv3VirtLinkLsdbEntry 1 } + + ospfv3VirtLinkLsdbIfNeighbor OBJECT-TYPE + SYNTAX Ospfv3RouterIdTC + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Router ID of the virtual neighbor." + ::= { ospfv3VirtLinkLsdbEntry 2 } + + ospfv3VirtLinkLsdbType OBJECT-TYPE + SYNTAX Unsigned32(0..'FFFFFFFF'h) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The type of the link state advertisement. + Each link state type has a separate + advertisement format. Link-scope LSAs unrecognized + by the router are also stored in this database." + ::= { ospfv3VirtLinkLsdbEntry 3 } + + ospfv3VirtLinkLsdbRouterId OBJECT-TYPE + SYNTAX Ospfv3RouterIdTC + MAX-ACCESS not-accessible + 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" + ::= { ospfv3VirtLinkLsdbEntry 4 } + + ospfv3VirtLinkLsdbLsid OBJECT-TYPE + SYNTAX Ospfv3LsIdTC + MAX-ACCESS not-accessible + 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." + ::= { ospfv3VirtLinkLsdbEntry 5 } + + -- 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. + + ospfv3VirtLinkLsdbSequence OBJECT-TYPE + SYNTAX Ospfv3LsaSequenceTC + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sequence number field is a signed 32-bit + integer. It is used to detect old and duplicate + 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" + ::= { ospfv3VirtLinkLsdbEntry 6 } + + ospfv3VirtLinkLsdbAge OBJECT-TYPE + SYNTAX Ospfv3LsaAgeTC + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This field is the age of the link state + advertisement in seconds. The high-order bit + of the LS age field is considered the DoNotAge + bit for support of on-demand circuits." + REFERENCE + "OSPF Version 2, Section 12.1.1, LS age; + Extending OSPF to Support Demand Circuits, + Section 2.2, The LS age field." + ::= { ospfv3VirtLinkLsdbEntry 7 } + + ospfv3VirtLinkLsdbChecksum 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 + connectionless datagrams; it is commonly + referred to as the Fletcher checksum." + REFERENCE + "OSPF Version 2, Section 12.1.7, LS checksum" + ::= { ospfv3VirtLinkLsdbEntry 8 } + + ospfv3VirtLinkLsdbAdvertisement OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (1..65535)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The entire link state advertisement, including + its header." + ::= { ospfv3VirtLinkLsdbEntry 9 } + + ospfv3VirtLinkLsdbTypeKnown OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value true (1) indicates that the LSA type is + recognized by this router." + ::= { ospfv3VirtLinkLsdbEntry 10 } + + -- The Ospfv3 Notification Table + + -- The Ospfv3 Notification Table records fields that are + -- required for notifications. + + ospfv3NotificationEntry OBJECT IDENTIFIER + ::= { ospfv3Objects 14 } + + ospfv3ConfigErrorType OBJECT-TYPE + SYNTAX INTEGER { + badVersion(1), + areaMismatch(2), + unknownNbmaNbr(3), -- Router is DR eligible + unknownVirtualNbr(4), + helloIntervalMismatch(5), + deadIntervalMismatch(6), + optionMismatch(7), + mtuMismatch(8), + duplicateRouterId(9), + noError(10) } + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "Potential types of configuration conflicts. + Used by the ospfv3ConfigError and + ospfv3ConfigVirtError notifications." + ::= { ospfv3NotificationEntry 1 } + + ospfv3PacketType OBJECT-TYPE + SYNTAX INTEGER { + hello(1), + dbDescript(2), + lsReq(3), + lsUpdate(4), + lsAck(5), + nullPacket(6) } + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "OSPFv3 packet types." + ::= { ospfv3NotificationEntry 2 } + + ospfv3PacketSrc OBJECT-TYPE + SYNTAX InetAddressIPv6 + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "The IPv6 address of an inbound packet that cannot + be identified by a neighbor instance. + + Only IPv6 addresses without zone index are expected." + ::= { ospfv3NotificationEntry 3 } + + -- Notification Definitions + + -- The notifications need to be throttled so as to not overwhelm the + -- management agent in case of rapid changes to the OSPFv3 module. + +ospfv3VirtIfStateChange NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3VirtIfState -- The new state + } + STATUS current + DESCRIPTION + "An ospfv3VirtIfStateChange notification signifies that + there has been a change in the state of an OSPFv3 virtual + interface. + + This notification should be generated when the interface + state regresses (e.g., goes from Point-to-Point to Down) + or progresses to a terminal state (i.e., Point-to-Point)." + ::= { ospfv3Notifications 1 } + +ospfv3NbrStateChange NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3NbrState -- The new state + + } + STATUS current + DESCRIPTION + "An ospfv3NbrStateChange notification signifies that + there has been a change in the state of a + non-virtual OSPFv3 neighbor. This notification should be + generated when the neighbor state regresses + (e.g., goes from Attempt or Full to 1-Way or + Down) or progresses to a terminal state (e.g., + 2-Way or Full). When a neighbor transitions + from or to Full on non-broadcast multi-access + and broadcast networks, the notification should be + generated by the Designated Router. A Designated + Router transitioning to Down will be noted by + ospfIfStateChange." + ::= { ospfv3Notifications 2 } + +ospfv3VirtNbrStateChange NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3VirtNbrState -- The new state + } + STATUS current + DESCRIPTION + "An ospfv3VirtNbrStateChange notification signifies + that there has been a change in the state of an OSPFv3 + virtual neighbor. This notification should be generated + when the neighbor state regresses (e.g., goes + from Attempt or Full to 1-Way or Down) or + progresses to a terminal state (e.g., Full)." + ::= { ospfv3Notifications 3 } + +ospfv3IfConfigError NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3IfState, -- State of the interface + ospfv3PacketSrc, -- IPv6 address of source + ospfv3ConfigErrorType, -- Type of error + ospfv3PacketType -- Type of packet + } + STATUS current + DESCRIPTION + "An ospfv3IfConfigError notification signifies that a + packet has been received on a non-virtual + interface from a router whose configuration + parameters conflict with this router's + configuration parameters. Note that the event + optionMismatch should cause a notification only if it + prevents an adjacency from forming." + ::= { ospfv3Notifications 4 } + +ospfv3VirtIfConfigError NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3VirtIfState, -- State of the interface + ospfv3ConfigErrorType, -- Type of error + ospfv3PacketType + } + STATUS current + DESCRIPTION + "An ospfv3VirtIfConfigError notification signifies that a + packet has been received on a virtual interface + from a router whose configuration parameters + conflict with this router's configuration + parameters. Note that the event optionMismatch + should cause a notification only if it prevents an + adjacency from forming." + ::= { ospfv3Notifications 5 } + +ospfv3IfRxBadPacket NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3IfState, -- State of the interface + ospfv3PacketSrc, -- The source IPv6 address + ospfv3PacketType -- Type of packet + } + STATUS current + DESCRIPTION + "An ospfv3IfRxBadPacket notification signifies that an + OSPFv3 packet that cannot be parsed has been received on a + non-virtual interface." + ::= { ospfv3Notifications 6 } + +ospfv3VirtIfRxBadPacket NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3VirtIfState, -- State of the interface + ospfv3PacketType -- Type of packet + } + STATUS current + DESCRIPTION + "An ospfv3VirtIfRxBadPacket notification signifies + that an OSPFv3 packet that cannot be parsed has been + received on a virtual interface." + ::= { ospfv3Notifications 7 } + +ospfv3LsdbOverflow NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3ExtAreaLsdbLimit -- Limit on External LSAs + } + STATUS current + DESCRIPTION + "An ospfv3LsdbOverflow notification signifies that the + number of LSAs in the router's link state + database has exceeded ospfv3ExtAreaLsdbLimit." + ::= { ospfv3Notifications 8 } + +ospfv3LsdbApproachingOverflow NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3ExtAreaLsdbLimit + } + STATUS current + DESCRIPTION + "An ospfv3LsdbApproachingOverflow notification signifies + that the number of LSAs in the router's + link state database has exceeded ninety percent of + ospfv3ExtAreaLsdbLimit." + ::= { ospfv3Notifications 9 } + +ospfv3IfStateChange NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3IfState -- The new state + } + STATUS current + DESCRIPTION + "An ospfv3IfStateChange notification signifies that there + has been a change in the state of a non-virtual + OSPFv3 interface. This notification should be generated + when the interface state regresses (e.g., goes + from DR to Down) or progresses to a terminal + state (i.e., Point-to-Point, DR Other, DR, or + Backup)." + ::= { ospfv3Notifications 10 } + +ospfv3NssaTranslatorStatusChange NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3AreaNssaTranslatorState -- new state + } + STATUS current + DESCRIPTION + "An ospfv3NssaTranslatorStatusChange notification + indicates that there has been a change in the router's + ability to translate OSPFv3 NSSA LSAs into OSPFv3 External + LSAs. This notification should be generated when the + Translator Status transitions from or to any defined + status on a per-area basis." + ::= { ospfv3Notifications 11 } + +ospfv3RestartStatusChange NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3RestartStatus, -- new status + ospfv3RestartInterval, + ospfv3RestartExitReason + } + STATUS current + DESCRIPTION + "An ospfv3RestartStatusChange notification signifies that + there has been a change in the graceful restart + state for the router. This notification should be + generated when the router restart status + changes." + ::= { ospfv3Notifications 12 } + +ospfv3NbrRestartHelperStatusChange NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3NbrRestartHelperStatus, -- new status + ospfv3NbrRestartHelperAge, + ospfv3NbrRestartHelperExitReason + } + STATUS current + DESCRIPTION + "An ospfv3NbrRestartHelperStatusChange notification + signifies that there has been a change in the + graceful restart helper state for the neighbor. + This notification should be generated when the + neighbor restart helper status transitions for a neighbor." + ::= { ospfv3Notifications 13 } + +ospfv3VirtNbrRestartHelperStatusChange NOTIFICATION-TYPE + OBJECTS { ospfv3RouterId, -- The originator of the notification + ospfv3VirtNbrRestartHelperStatus, -- new status + ospfv3VirtNbrRestartHelperAge, + ospfv3VirtNbrRestartHelperExitReason + } + STATUS current + DESCRIPTION + "An ospfv3VirtNbrRestartHelperStatusChange + notification signifies that there has been a + change in the graceful restart helper state for + the virtual neighbor. This notification should be + generated when the virtual neighbor restart helper status + transitions for a virtual neighbor." + ::= { ospfv3Notifications 14 } + + -- Conformance Information + + ospfv3Groups OBJECT IDENTIFIER ::= { ospfv3Conformance 1 } + ospfv3Compliances OBJECT IDENTIFIER ::= { ospfv3Conformance 2 } + + -- Compliance Statements + + ospfv3FullCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION "The compliance statement" + MODULE -- this module + MANDATORY-GROUPS { + ospfv3BasicGroup, + ospfv3AreaGroup, + ospfv3IfGroup, + ospfv3VirtIfGroup, + ospfv3NbrGroup, + ospfv3CfgNbrGroup, + 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 + for non-virtual interfaces." + + GROUP ospfv3VirtLinkLsdbGroup + DESCRIPTION + "This group is required for OSPFv3 systems that + display their Link-scope link state database + for virtual interfaces." + + GROUP ospfv3HostGroup + DESCRIPTION + "This group is required for OSPFv3 systems that + support attached hosts." + + GROUP ospfv3NotificationObjectGroup + DESCRIPTION + "This group is required for OSPFv3 systems that + support OSPFv3 notifications." + + GROUP ospfv3NotificationGroup + DESCRIPTION + "This group is required for OSPFv3 systems that + support OSPFv3 notifications." + + OBJECT ospfv3NbrAddressType + SYNTAX InetAddressType { ipv6(2) } + DESCRIPTION + "An implementation is only required to support IPv6 + address without zone index." + + OBJECT ospfv3NbrAddress + SYNTAX InetAddress (SIZE (16)) + 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." + + OBJECT ospfv3VirtNbrAddress + SYNTAX InetAddress (SIZE (16)) + DESCRIPTION + "An implementation is only required to support IPv6 + address without zone index." + ::= { ospfv3Compliances 1 } + + ospfv3ReadOnlyCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "When this MIB module is implemented without + support for read-create (i.e., in read-only + mode), the implementation can claim read-only + compliance. Such a device can then be monitored, + but cannot be configured with this MIB." + + MODULE -- this module + MANDATORY-GROUPS { + ospfv3BasicGroup, + ospfv3AreaGroup, + ospfv3IfGroup, + ospfv3VirtIfGroup, + ospfv3NbrGroup, + ospfv3CfgNbrGroup, + 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 + for non-virtual interfaces." + + GROUP ospfv3VirtLinkLsdbGroup + DESCRIPTION + "This group is required for OSPFv3 systems that + display their Link-scope link state database + for virtual interfaces." + + GROUP ospfv3HostGroup + DESCRIPTION + "This group is required for OSPFv3 systems that + support attached hosts." + + GROUP ospfv3NotificationObjectGroup + DESCRIPTION + "This group is required for OSPFv3 systems that + support OSPFv3 notifications." + + GROUP ospfv3NotificationGroup + DESCRIPTION + "This group is required for OSPFv3 systems that + support OSPFv3 notifications." + + OBJECT ospfv3RouterId + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AdminStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3ExtAreaLsdbLimit + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3ExitOverflowInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3DemandExtensions + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3ReferenceBandwidth + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3RestartSupport + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3RestartInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3RestartStrictLsaChecking + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3NotificationEnable + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3StubRouterAdvertisement + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaImportAsExtern + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaSummary + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaRowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaStubMetric + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaNssaTranslatorRole + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaNssaTranslatorStabInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaStubMetricType + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaTEEnabled + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3HostMetric + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3HostRowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3HostAreaID + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfAreaId + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfType + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfAdminStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfRtrPriority + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfTransitDelay + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfRetransInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfHelloInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfRtrDeadInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfPollInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfRowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfDemand + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfMetricValue + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfDemandNbrProbe + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfDemandNbrProbeRetransLimit + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfDemandNbrProbeInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfTEDisabled + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3IfLinkLSASuppression + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3VirtIfTransitDelay + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3VirtIfRetransInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3VirtIfHelloInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3VirtIfRtrDeadInterval + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3VirtIfRowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3CfgNbrPriority + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3CfgNbrRowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaAggregateRowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaAggregateEffect + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ospfv3AreaAggregateRouteTag + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + ::= { ospfv3Compliances 2 } + + -- units of conformance + + ospfv3BasicGroup OBJECT-GROUP + OBJECTS { + ospfv3RouterId, + ospfv3AdminStatus, + ospfv3VersionNumber, + ospfv3AreaBdrRtrStatus, + ospfv3ASBdrRtrStatus, + ospfv3AsScopeLsaCount, + ospfv3AsScopeLsaCksumSum, + ospfv3OriginateNewLsas, + ospfv3RxNewLsas, + ospfv3ExtLsaCount, + ospfv3ExtAreaLsdbLimit, + ospfv3ExitOverflowInterval, + ospfv3DemandExtensions, + ospfv3ReferenceBandwidth, + ospfv3RestartSupport, + ospfv3RestartInterval, + ospfv3RestartStrictLsaChecking, + ospfv3RestartStatus, + ospfv3RestartAge, + ospfv3RestartExitReason, + ospfv3NotificationEnable, + ospfv3StubRouterSupport, + ospfv3StubRouterAdvertisement, + ospfv3DiscontinuityTime, + ospfv3RestartTime + } + STATUS current + DESCRIPTION + "These objects are used for managing/monitoring + OSPFv3 global parameters." + ::= { ospfv3Groups 1 } + + ospfv3AreaGroup OBJECT-GROUP + OBJECTS { + ospfv3AreaImportAsExtern, + ospfv3AreaSpfRuns, + ospfv3AreaBdrRtrCount, + ospfv3AreaAsBdrRtrCount, + ospfv3AreaScopeLsaCount, + ospfv3AreaScopeLsaCksumSum, + ospfv3AreaSummary, + ospfv3AreaRowStatus, + ospfv3AreaStubMetric, + ospfv3AreaNssaTranslatorRole, + ospfv3AreaNssaTranslatorState, + ospfv3AreaNssaTranslatorStabInterval, + ospfv3AreaNssaTranslatorEvents, + ospfv3AreaStubMetricType, + ospfv3AreaTEEnabled + } + STATUS current + DESCRIPTION + "These objects are used for OSPFv3 systems + supporting areas." + ::= { ospfv3Groups 2 } + + ospfv3AsLsdbGroup OBJECT-GROUP + OBJECTS { + ospfv3AsLsdbSequence, + ospfv3AsLsdbAge, + ospfv3AsLsdbChecksum, + ospfv3AsLsdbAdvertisement, + ospfv3AsLsdbTypeKnown + } + STATUS current + DESCRIPTION + "These objects are used 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 used 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 used for OSPFv3 systems + that display their Link-scope link state database + for non-virtual interfaces." + ::= { ospfv3Groups 5 } + + ospfv3HostGroup OBJECT-GROUP + OBJECTS { + ospfv3HostMetric, + ospfv3HostRowStatus, + ospfv3HostAreaID + } + STATUS current + DESCRIPTION + "These objects are used for OSPFv3 systems + that support attached hosts." + ::= { ospfv3Groups 6 } + + ospfv3IfGroup OBJECT-GROUP + OBJECTS { + ospfv3IfAreaId, + ospfv3IfType, + ospfv3IfAdminStatus, + ospfv3IfRtrPriority, + ospfv3IfTransitDelay, + ospfv3IfRetransInterval, + ospfv3IfHelloInterval, + ospfv3IfRtrDeadInterval, + ospfv3IfPollInterval, + ospfv3IfState, + ospfv3IfDesignatedRouter, + ospfv3IfBackupDesignatedRouter, + ospfv3IfEvents, + ospfv3IfRowStatus, + ospfv3IfDemand, + ospfv3IfMetricValue, + ospfv3IfLinkScopeLsaCount, + ospfv3IfLinkLsaCksumSum, + ospfv3IfDemandNbrProbe, + ospfv3IfDemandNbrProbeRetransLimit, + ospfv3IfDemandNbrProbeInterval, + ospfv3IfTEDisabled, + ospfv3IfLinkLSASuppression + } + STATUS current + DESCRIPTION + "These interface objects are used for + managing/monitoring OSPFv3 interfaces." + ::= { ospfv3Groups 7 } + + ospfv3VirtIfGroup OBJECT-GROUP + OBJECTS { + ospfv3VirtIfIndex, + ospfv3VirtIfInstId, + ospfv3VirtIfTransitDelay, + ospfv3VirtIfRetransInterval, + ospfv3VirtIfHelloInterval, + ospfv3VirtIfRtrDeadInterval, + ospfv3VirtIfState, + ospfv3VirtIfEvents, + ospfv3VirtIfRowStatus, + ospfv3VirtIfLinkScopeLsaCount, + ospfv3VirtIfLinkLsaCksumSum + } + STATUS current + DESCRIPTION + "These virtual interface objects are used for + managing/monitoring OSPFv3 virtual interfaces." + ::= { 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 used for + managing/monitoring OSPFv3 neighbors." + ::= { ospfv3Groups 9 } + + ospfv3CfgNbrGroup OBJECT-GROUP + OBJECTS { + ospfv3CfgNbrPriority, + ospfv3CfgNbrRowStatus + } + STATUS current + DESCRIPTION + "These configured neighbor objects are used for + managing/monitoring OSPFv3-configured neighbors." + ::= { ospfv3Groups 10 } + + ospfv3VirtNbrGroup OBJECT-GROUP + OBJECTS { + ospfv3VirtNbrIfIndex, + ospfv3VirtNbrIfInstId, + ospfv3VirtNbrAddressType, + ospfv3VirtNbrAddress, + ospfv3VirtNbrOptions, + ospfv3VirtNbrState, + ospfv3VirtNbrEvents, + ospfv3VirtNbrLsRetransQLen, + ospfv3VirtNbrHelloSuppressed, + ospfv3VirtNbrIfId, + ospfv3VirtNbrRestartHelperStatus, + ospfv3VirtNbrRestartHelperAge, + ospfv3VirtNbrRestartHelperExitReason + } + STATUS current + DESCRIPTION + "These virtual neighbor objects are used for + managing/monitoring OSPFv3 virtual neighbors." + ::= { ospfv3Groups 11 } + + ospfv3AreaAggregateGroup OBJECT-GROUP + OBJECTS { + ospfv3AreaAggregateRowStatus, + ospfv3AreaAggregateEffect, + ospfv3AreaAggregateRouteTag + } + STATUS current + DESCRIPTION + "These area aggregate objects are required for + aggregating OSPFv3 prefixes for summarization + across areas." + ::= { ospfv3Groups 12 } + + ospfv3VirtLinkLsdbGroup OBJECT-GROUP + OBJECTS { + ospfv3VirtLinkLsdbSequence, + ospfv3VirtLinkLsdbAge, + ospfv3VirtLinkLsdbChecksum, + ospfv3VirtLinkLsdbAdvertisement, + ospfv3VirtLinkLsdbTypeKnown + } + STATUS current + DESCRIPTION + "These objects are used for OSPFv3 systems + that display their Link-scope link state database + for virtual interfaces." + ::= { ospfv3Groups 13 } + + ospfv3NotificationObjectGroup OBJECT-GROUP + OBJECTS { + ospfv3ConfigErrorType, + ospfv3PacketType, + ospfv3PacketSrc + } + STATUS current + DESCRIPTION + "These objects are used to record notification + parameters." + ::= { ospfv3Groups 14 } + + ospfv3NotificationGroup NOTIFICATION-GROUP + NOTIFICATIONS { + ospfv3VirtIfStateChange, + ospfv3NbrStateChange, + ospfv3VirtNbrStateChange, + ospfv3IfConfigError, + ospfv3VirtIfConfigError, + ospfv3IfRxBadPacket, + ospfv3VirtIfRxBadPacket, + ospfv3LsdbOverflow, + ospfv3LsdbApproachingOverflow, + ospfv3IfStateChange, + ospfv3NssaTranslatorStatusChange, + ospfv3RestartStatusChange, + ospfv3NbrRestartHelperStatusChange, + ospfv3VirtNbrRestartHelperStatusChange + } + STATUS current + DESCRIPTION + "This group is used for OSPFv3 notifications." + ::= { ospfv3Groups 15 } + + END diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c index d252f549..95b4fc08 100644 --- a/ospf6d/ospf6_snmp.c +++ b/ospf6d/ospf6_snmp.c @@ -44,7 +44,7 @@ #include "ospf6_snmp.h" /* OSPFv3-MIB */ -#define OSPFv3MIB 1,3,6,1,3,102 +#define OSPFv3MIB 1,3,6,1,2,1,191 /* OSPFv3 MIB General Group values. */ #define OSPFv3ROUTERID 1 @@ -58,19 +58,22 @@ #define OSPFv3RXNEWLSAS 9 #define OSPFv3EXTLSACOUNT 10 #define OSPFv3EXTAREALSDBLIMIT 11 -#define OSPFv3MULTICASTEXTENSIONS 12 -#define OSPFv3EXITOVERFLOWINTERVAL 13 -#define OSPFv3DEMANDEXTENSIONS 14 -#define OSPFv3TRAFFICENGINEERINGSUPPORT 15 -#define OSPFv3REFERENCEBANDWIDTH 16 -#define OSPFv3RESTARTSUPPORT 17 -#define OSPFv3RESTARTINTERVAL 18 -#define OSPFv3RESTARTSTATUS 19 -#define OSPFv3RESTARTAGE 20 -#define OSPFv3RESTARTEXITREASON 21 - -/* OSPFv3 MIB Area Table values. */ -#define OSPFv3AREAID 1 +#define OSPFv3EXITOVERFLOWINTERVAL 12 +#define OSPFv3DEMANDEXTENSIONS 13 +#define OSPFv3REFERENCEBANDWIDTH 14 +#define OSPFv3RESTARTSUPPORT 15 +#define OSPFv3RESTARTINTERVAL 16 +#define OSPFv3RESTARTSTRICTLSACHECKING 17 +#define OSPFv3RESTARTSTATUS 18 +#define OSPFv3RESTARTAGE 19 +#define OSPFv3RESTARTEXITREASON 20 +#define OSPFv3NOTIFICATIONENABLE 21 +#define OSPFv3STUBROUTERSUPPORT 22 +#define OSPFv3STUBROUTERADVERTISEMENT 23 +#define OSPFv3DISCONTINUITYTIME 24 +#define OSPFv3RESTARTTIME 25 + +/* OSPFv3 MIB Area Table values: ospfv3AreaTable */ #define OSPFv3IMPORTASEXTERN 2 #define OSPFv3AREASPFRUNS 3 #define OSPFv3AREABDRRTRCOUNT 4 @@ -78,25 +81,124 @@ #define OSPFv3AREASCOPELSACOUNT 6 #define OSPFv3AREASCOPELSACKSUMSUM 7 #define OSPFv3AREASUMMARY 8 -#define OSPFv3AREASTATUS 9 -#define OSPFv3STUBMETRIC 10 +#define OSPFv3AREAROWSTATUS 9 +#define OSPFv3AREASTUBMETRIC 10 #define OSPFv3AREANSSATRANSLATORROLE 11 #define OSPFv3AREANSSATRANSLATORSTATE 12 -#define OSPFv3AREANSSATRANSLATORSTABILITYINTERVAL 13 +#define OSPFv3AREANSSATRANSLATORSTABINTERVAL 13 #define OSPFv3AREANSSATRANSLATOREVENTS 14 #define OSPFv3AREASTUBMETRICTYPE 15 +#define OSPFv3AREATEENABLED 16 -/* OSPFv3 MIB Area Lsdb Table values. */ -#define OSPFv3AREALSDBAREAID 1 -#define OSPFv3AREALSDBTYPE 2 -#define OSPFv3AREALSDBROUTERID 3 -#define OSPFv3AREALSDBLSID 4 +/* OSPFv3 MIB AS Lsdb Table values: ospfv3AsLsdbTable */ +#define OSPFv3ASLSDBSEQUENCE 4 +#define OSPFv3ASLSDBAGE 5 +#define OSPFv3ASLSDBCHECKSUM 6 +#define OSPFv3ASLSDBADVERTISEMENT 7 +#define OSPFv3ASLSDBTYPEKNOWN 8 + +/* OSPFv3 MIB Area Lsdb Table values: ospfv3AreaLsdbTable */ #define OSPFv3AREALSDBSEQUENCE 5 #define OSPFv3AREALSDBAGE 6 #define OSPFv3AREALSDBCHECKSUM 7 #define OSPFv3AREALSDBADVERTISEMENT 8 #define OSPFv3AREALSDBTYPEKNOWN 9 +/* OSPFv3 MIB Link Lsdb Table values: ospfv3LinkLsdbTable */ +#define OSPFv3LINKLSDBSEQUENCE 6 +#define OSPFv3LINKLSDBAGE 7 +#define OSPFv3LINKLSDBCHECKSUM 8 +#define OSPFv3LINKLSDBADVERTISEMENT 9 +#define OSPFv3LINKLSDBTYPEKNOWN 10 + +/* OSPFv3 MIB Host Table values: ospfv3HostTable */ +#define OSPFv3HOSTMETRIC 3 +#define OSPFv3HOSTROWSTATUS 4 +#define OSPFv3HOSTAREAID 5 + +/* OSPFv3 MIB Interface Table values: ospfv3IfTable */ +#define OSPFv3IFAREAID 3 +#define OSPFv3IFTYPE 4 +#define OSPFv3IFADMINSTATUS 5 +#define OSPFv3IFRTRPRIORITY 6 +#define OSPFv3IFTRANSITDELAY 7 +#define OSPFv3IFRETRANSINTERVAL 8 +#define OSPFv3IFHELLOINTERVAL 9 +#define OSPFv3IFRTRDEADINTERVAL 10 +#define OSPFv3IFPOLLINTERVAL 11 +#define OSPFv3IFSTATE 12 +#define OSPFv3IFDESIGNATEDROUTER 13 +#define OSPFv3IFBACKUPDESIGNATEDROUTER 14 +#define OSPFv3IFEVENTS 15 +#define OSPFv3IFROWSTATUS 16 +#define OSPFv3IFDEMAND 17 +#define OSPFv3IFMETRICVALUE 18 +#define OSPFv3IFLINKSCOPELSACOUNT 19 +#define OSPFv3IFLINKLSACKSUMSUM 20 +#define OSPFv3IFDEMANDNBRPROBE 21 +#define OSPFv3IFDEMANDNBRPROBERETRANSLIMIT 22 +#define OSPFv3IFDEMANDNBRPROBEINTERVAL 23 +#define OSPFv3IFTEDISABLED 24 +#define OSPFv3IFLINKLSASUPPRESSION 25 + +/* OSPFv3 MIB Virtual Interface Table values: ospfv3VirtIfTable */ +#define OSPFv3VIRTIFINDEX 3 +#define OSPFv3VIRTIFINSTID 4 +#define OSPFv3VIRTIFTRANSITDELAY 5 +#define OSPFv3VIRTIFRETRANSINTERVAL 6 +#define OSPFv3VIRTIFHELLOINTERVAL 7 +#define OSPFv3VIRTIFRTRDEADINTERVAL 8 +#define OSPFv3VIRTIFSTATE 9 +#define OSPFv3VIRTIFEVENTS 10 +#define OSPFv3VIRTIFROWSTATUS 11 +#define OSPFv3VIRTIFLINKSCOPELSACOUNT 12 +#define OSPFv3VIRTIFLINKLSACKSUMSUM 13 + +/* OSPFv3 MIB Neighbors Table values: ospfv3NbrTable */ +#define OSPFv3NBRADDRESSTYPE 4 +#define OSPFv3NBRADDRESS 5 +#define OSPFv3NBROPTIONS 6 +#define OSPFv3NBRPRIORITY 7 +#define OSPFv3NBRSTATE 8 +#define OSPFv3NBREVENTS 9 +#define OSPFv3NBRLSRETRANSQLEN 10 +#define OSPFv3NBRHELLOSUPPRESSED 11 +#define OSPFv3NBRIFID 12 +#define OSPFv3NBRRESTARTHELPERSTATUS 13 +#define OSPFv3NBRRESTARTHELPERAGE 14 +#define OSPFv3NBRRESTARTHELPEREXITREASON 15 + +/* OSPFv3 MIB Configured Neighbors Table values: ospfv3CfgNbrTable */ +#define OSPFv3CFGNBRPRIORITY 5 +#define OSPFv3CFGNBRROWSTATUS 6 + +/* OSPFv3 MIB Virtual Neighbors Table values: ospfv3VirtNbrTable */ +#define OSPFv3VIRTNBRIFINDEX 3 +#define OSPFv3VIRTNBRIFINSTID 4 +#define OSPFv3VIRTNBRADDRESSTYPE 5 +#define OSPFv3VIRTNBRADDRESS 6 +#define OSPFv3VIRTNBROPTIONS 7 +#define OSPFv3VIRTNBRSTATE 8 +#define OSPFv3VIRTNBREVENTS 9 +#define OSPFv3VIRTNBRLSRETRANSQLEN 10 +#define OSPFv3VIRTNBRHELLOSUPPRESSED 11 +#define OSPFv3VIRTNBRIFID 12 +#define OSPFv3VIRTNBRRESTARTHELPERSTATUS 13 +#define OSPFv3VIRTNBRRESTARTHELPERAGE 14 +#define OSPFv3VIRTNBRRESTARTHELPEREXITREASON 15 + +/* OSPFv3 MIB Area Aggregate Table values: ospfv3AreaAggregateTable */ +#define OSPFv3AREAAGGREGATEROWSTATUS 6 +#define OSPFv3AREAAGGREGATEEFFECT 7 +#define OSPFv3AREAAGGREGATEROUTETAG 8 + +/* OSPFv3 MIB Virtual Link Lsdb Table values: ospfv3VirtLinkLsdbTable */ +#define OSPFv3VIRTLINKLSDBSEQUENCE 6 +#define OSPFv3VIRTLINKLSDBAGE 7 +#define OSPFv3VIRTLINKLSDBCHECKSUM 8 +#define OSPFv3VIRTLINKLSDBADVERTISEMENT 9 +#define OSPFv3VIRTLINKLSDBTYPEKNOWN 10 + /* SYNTAX Status from OSPF-MIB. */ #define OSPF_STATUS_ENABLED 1 #define OSPF_STATUS_DISABLED 2 @@ -105,6 +207,7 @@ #define COUNTER ASN_COUNTER #define INTEGER ASN_INTEGER #define GAUGE ASN_GAUGE +#define UNSIGNED ASN_UNSIGNED #define TIMETICKS ASN_TIMETICKS #define IPADDRESS ASN_IPADDRESS #define STRING ASN_OCTET_STR @@ -112,16 +215,9 @@ /* For return values e.g. SNMP_INTEGER macro */ SNMP_LOCAL_VARIABLES -static struct in_addr tmp; -#define INT32_INADDR(x) \ - (tmp.s_addr = (x), tmp) - /* OSPFv3-MIB instances. */ oid ospfv3_oid [] = { OSPFv3MIB }; -/* empty ID 0.0.0.0 e.g. empty router-id */ -static struct in_addr ospf6_empty_id = {0}; - /* Hook functions. */ static u_char *ospfv3GeneralGroup (struct variable *, oid *, size_t *, int, size_t *, WriteMethod **); @@ -133,7 +229,7 @@ static u_char *ospfv3AreaLsdbEntry (struct variable *, oid *, size_t *, struct variable ospfv3_variables[] = { /* OSPF general variables */ - {OSPFv3ROUTERID, IPADDRESS, RWRITE, ospfv3GeneralGroup, + {OSPFv3ROUTERID, UNSIGNED, RWRITE, ospfv3GeneralGroup, 3, {1, 1, 1}}, {OSPFv3ADMINSTAT, INTEGER, RWRITE, ospfv3GeneralGroup, 3, {1, 1, 2}}, @@ -145,7 +241,7 @@ struct variable ospfv3_variables[] = 3, {1, 1, 5}}, {OSPFv3ASSCOPELSACOUNT, GAUGE, RONLY, ospfv3GeneralGroup, 3, {1, 1, 6}}, - {OSPFv3ASSCOPELSACHECKSUMSUM, INTEGER, RONLY, ospfv3GeneralGroup, + {OSPFv3ASSCOPELSACHECKSUMSUM,UNSIGNED, RONLY, ospfv3GeneralGroup, 3, {1, 1, 7}}, {OSPFv3ORIGINATENEWLSAS, COUNTER, RONLY, ospfv3GeneralGroup, 3, {1, 1, 8}}, @@ -155,30 +251,36 @@ struct variable ospfv3_variables[] = 3, {1, 1, 10}}, {OSPFv3EXTAREALSDBLIMIT, INTEGER, RWRITE, ospfv3GeneralGroup, 3, {1, 1, 11}}, - {OSPFv3MULTICASTEXTENSIONS, INTEGER, RWRITE, ospfv3GeneralGroup, + {OSPFv3EXITOVERFLOWINTERVAL, UNSIGNED, RWRITE, ospfv3GeneralGroup, 3, {1, 1, 12}}, - {OSPFv3EXITOVERFLOWINTERVAL, INTEGER, RWRITE, ospfv3GeneralGroup, - 3, {1, 1, 13}}, {OSPFv3DEMANDEXTENSIONS, INTEGER, RWRITE, ospfv3GeneralGroup, + 3, {1, 1, 13}}, + {OSPFv3REFERENCEBANDWIDTH, UNSIGNED, RWRITE, ospfv3GeneralGroup, 3, {1, 1, 14}}, - {OSPFv3TRAFFICENGINEERINGSUPPORT, INTEGER, RWRITE, ospfv3GeneralGroup, + {OSPFv3RESTARTSUPPORT, INTEGER, RWRITE, ospfv3GeneralGroup, 3, {1, 1, 15}}, - {OSPFv3REFERENCEBANDWIDTH, INTEGER, RWRITE, ospfv3GeneralGroup, + {OSPFv3RESTARTINTERVAL, UNSIGNED, RWRITE, ospfv3GeneralGroup, 3, {1, 1, 16}}, - {OSPFv3RESTARTSUPPORT, INTEGER, RWRITE, ospfv3GeneralGroup, + {OSPFv3RESTARTSTRICTLSACHECKING, INTEGER, RWRITE, ospfv3GeneralGroup, 3, {1, 1, 17}}, - {OSPFv3RESTARTINTERVAL, INTEGER, RWRITE, ospfv3GeneralGroup, - 3, {1, 1, 18}}, {OSPFv3RESTARTSTATUS, INTEGER, RONLY, ospfv3GeneralGroup, + 3, {1, 1, 18}}, + {OSPFv3RESTARTAGE, UNSIGNED, RONLY, ospfv3GeneralGroup, 3, {1, 1, 19}}, - {OSPFv3RESTARTAGE, INTEGER, RONLY, ospfv3GeneralGroup, - 3, {1, 1, 20}}, {OSPFv3RESTARTEXITREASON, INTEGER, RONLY, ospfv3GeneralGroup, + 3, {1, 1, 20}}, + {OSPFv3NOTIFICATIONENABLE, INTEGER, RWRITE, ospfv3GeneralGroup, 3, {1, 1, 21}}, + {OSPFv3STUBROUTERSUPPORT, INTEGER, RONLY, ospfv3GeneralGroup, + 3, {1, 1, 22}}, + {OSPFv3STUBROUTERADVERTISEMENT, INTEGER, RWRITE, ospfv3GeneralGroup, + 3, {1, 1, 23}}, + {OSPFv3DISCONTINUITYTIME, TIMETICKS, RONLY, ospfv3GeneralGroup, + 3, {1, 1, 24}}, + {OSPFv3RESTARTTIME, TIMETICKS, RONLY, ospfv3GeneralGroup, + 3, {1, 1, 25}}, /* OSPFv3 Area Data Structure */ - {OSPFv3AREAID, IPADDRESS, RONLY, ospfv3AreaEntry, - 4, {1, 2, 1, 1}}, {OSPFv3IMPORTASEXTERN, INTEGER, RWRITE, ospfv3AreaEntry, 4, {1, 2, 1, 2}}, {OSPFv3AREASPFRUNS, COUNTER, RONLY, ospfv3AreaEntry, @@ -189,36 +291,31 @@ struct variable ospfv3_variables[] = 4, {1, 2, 1, 5}}, {OSPFv3AREASCOPELSACOUNT, GAUGE, RONLY, ospfv3AreaEntry, 4, {1, 2, 1, 6}}, - {OSPFv3AREASCOPELSACKSUMSUM, INTEGER, RONLY, ospfv3AreaEntry, + {OSPFv3AREASCOPELSACKSUMSUM, UNSIGNED, RONLY, ospfv3AreaEntry, 4, {1, 2, 1, 7}}, {OSPFv3AREASUMMARY, INTEGER, RWRITE, ospfv3AreaEntry, 4, {1, 2, 1, 8}}, - {OSPFv3AREASTATUS, INTEGER, RWRITE, ospfv3AreaEntry, + {OSPFv3AREAROWSTATUS, INTEGER, RWRITE, ospfv3AreaEntry, 4, {1, 2, 1, 9}}, - {OSPFv3STUBMETRIC, INTEGER, RWRITE, ospfv3AreaEntry, + {OSPFv3AREASTUBMETRIC, INTEGER, RWRITE, ospfv3AreaEntry, 4, {1, 2, 1, 10}}, {OSPFv3AREANSSATRANSLATORROLE, INTEGER, RWRITE, ospfv3AreaEntry, 4, {1, 2, 1, 11}}, {OSPFv3AREANSSATRANSLATORSTATE, INTEGER, RONLY, ospfv3AreaEntry, 4, {1, 2, 1, 12}}, - {OSPFv3AREANSSATRANSLATORSTABILITYINTERVAL, INTEGER, RWRITE, ospfv3AreaEntry, + {OSPFv3AREANSSATRANSLATORSTABINTERVAL, UNSIGNED, RWRITE, ospfv3AreaEntry, 4, {1, 2, 1, 13}}, {OSPFv3AREANSSATRANSLATOREVENTS, COUNTER, RONLY, ospfv3AreaEntry, 4, {1, 2, 1, 14}}, {OSPFv3AREASTUBMETRICTYPE, INTEGER, RWRITE, ospfv3AreaEntry, 4, {1, 2, 1, 15}}, + {OSPFv3AREATEENABLED, INTEGER, RWRITE, ospfv3AreaEntry, + 4, {1, 2, 1, 16}}, - {OSPFv3AREALSDBAREAID, IPADDRESS, RONLY, ospfv3AreaLsdbEntry, - 4, {1, 4, 1, 1}}, - {OSPFv3AREALSDBTYPE, GAUGE, RONLY, ospfv3AreaLsdbEntry, - 4, {1, 4, 1, 2}}, - {OSPFv3AREALSDBROUTERID, IPADDRESS, RONLY, ospfv3AreaLsdbEntry, - 4, {1, 4, 1, 3}}, - {OSPFv3AREALSDBLSID, IPADDRESS, RONLY, ospfv3AreaLsdbEntry, - 4, {1, 4, 1, 4}}, + /* OSPFv3 Area LSDB */ {OSPFv3AREALSDBSEQUENCE, INTEGER, RONLY, ospfv3AreaLsdbEntry, 4, {1, 4, 1, 5}}, - {OSPFv3AREALSDBAGE, INTEGER, RONLY, ospfv3AreaLsdbEntry, + {OSPFv3AREALSDBAGE, UNSIGNED, RONLY, ospfv3AreaLsdbEntry, 4, {1, 4, 1, 6}}, {OSPFv3AREALSDBCHECKSUM, INTEGER, RONLY, ospfv3AreaLsdbEntry, 4, {1, 4, 1, 7}}, @@ -241,54 +338,36 @@ ospfv3GeneralGroup (struct variable *v, oid *name, size_t *length, /* Return the current value of the variable */ switch (v->magic) { - case OSPFv3ROUTERID: /* 1*/ + case OSPFv3ROUTERID: /* Router-ID of this OSPF instance. */ if (ospf6) - return SNMP_IPADDRESS (INT32_INADDR (ospf6->router_id)); - else - return SNMP_IPADDRESS (ospf6_empty_id); - break; - case OSPFv3ADMINSTAT: /* 2*/ - break; - case OSPFv3VERSIONNUMBER: /* 3*/ - break; - case OSPFv3AREABDRRTRSTATUS: /* 4*/ - break; - case OSPFv3ASBDRRTRSTATUS: /* 5*/ - break; - case OSPFv3ASSCOPELSACOUNT: /* 6*/ - break; - case OSPFv3ASSCOPELSACHECKSUMSUM: /* 7*/ - break; - case OSPFv3ORIGINATENEWLSAS: /* 8*/ - break; - case OSPFv3RXNEWLSAS: /* 9*/ - break; - case OSPFv3EXTLSACOUNT: /*10*/ - break; - case OSPFv3EXTAREALSDBLIMIT: /*11*/ - break; - case OSPFv3MULTICASTEXTENSIONS: /*12*/ - break; - case OSPFv3EXITOVERFLOWINTERVAL: /*13*/ - break; - case OSPFv3DEMANDEXTENSIONS: /*14*/ - break; - case OSPFv3TRAFFICENGINEERINGSUPPORT: /*15*/ - break; - case OSPFv3REFERENCEBANDWIDTH: /*16*/ - break; - case OSPFv3RESTARTSUPPORT: /*17*/ - break; - case OSPFv3RESTARTINTERVAL: /*18*/ - break; - case OSPFv3RESTARTSTATUS: /*19*/ - break; - case OSPFv3RESTARTAGE: /*20*/ - break; - case OSPFv3RESTARTEXITREASON: /*21*/ - break; - default: + return SNMP_INTEGER (ntohl (ospf6->router_id)); + return SNMP_INTEGER (0); + case OSPFv3ADMINSTAT: + case OSPFv3VERSIONNUMBER: + case OSPFv3AREABDRRTRSTATUS: + case OSPFv3ASBDRRTRSTATUS: + case OSPFv3ASSCOPELSACOUNT: + case OSPFv3ASSCOPELSACHECKSUMSUM: + case OSPFv3ORIGINATENEWLSAS: + case OSPFv3RXNEWLSAS: + case OSPFv3EXTLSACOUNT: + case OSPFv3EXTAREALSDBLIMIT: + case OSPFv3EXITOVERFLOWINTERVAL: + case OSPFv3DEMANDEXTENSIONS: + case OSPFv3REFERENCEBANDWIDTH: + case OSPFv3RESTARTSUPPORT: + case OSPFv3RESTARTINTERVAL: + case OSPFv3RESTARTSTRICTLSACHECKING: + case OSPFv3RESTARTSTATUS: + case OSPFv3RESTARTAGE: + case OSPFv3RESTARTEXITREASON: + case OSPFv3NOTIFICATIONENABLE: + case OSPFv3STUBROUTERSUPPORT: + case OSPFv3STUBROUTERADVERTISEMENT: + case OSPFv3DISCONTINUITYTIME: + case OSPFv3RESTARTTIME: + /* TODO: Not implemented */ return NULL; } return NULL; @@ -302,6 +381,7 @@ ospfv3AreaEntry (struct variable *v, oid *name, size_t *length, u_int32_t area_id = 0; struct listnode *node; unsigned int len; + char a[16]; if (ospf6 == NULL) return NULL; @@ -311,15 +391,15 @@ ospfv3AreaEntry (struct variable *v, oid *name, size_t *length, return NULL; len = *length - v->namelen; - len = (len >= sizeof (u_int32_t) ? sizeof (u_int32_t) : 0); - if (exact && len != sizeof (u_int32_t)) + len = (len >= 1 ? sizeof 1 : 0); + if (exact && len != 1) return NULL; if (len) - oid2in_addr (name + v->namelen, len, (struct in_addr *) &area_id); + area_id = htonl (name[v->namelen]); + inet_ntop (AF_INET, &area_id, a, sizeof (a)); zlog_debug ("SNMP access by area: %s, exact=%d len=%d length=%lu", - inet_ntoa (* (struct in_addr *) &area_id), - exact, len, (u_long)*length); + a, exact, len, (u_long)*length); for (ALL_LIST_ELEMENTS_RO (ospf6->area_list, node, oa)) { @@ -337,25 +417,34 @@ ospfv3AreaEntry (struct variable *v, oid *name, size_t *length, if (area == NULL) return NULL; - *length = v->namelen + sizeof (u_int32_t); - oid_copy_addr (name + v->namelen, (struct in_addr *) &area->area_id, - sizeof (u_int32_t)); + *length = v->namelen + 1; + name[v->namelen] = ntohl (area->area_id); + inet_ntop (AF_INET, &area->area_id, a, sizeof (a)); zlog_debug ("SNMP found area: %s, exact=%d len=%d length=%lu", - inet_ntoa (* (struct in_addr *) &area->area_id), - exact, len, (u_long)*length); + a, exact, len, (u_long)*length); switch (v->magic) { - case OSPFv3AREAID: /* 1*/ - return SNMP_IPADDRESS (INT32_INADDR (area->area_id)); - break; - case OSPFv3IMPORTASEXTERN: /* 2*/ + case OSPFv3IMPORTASEXTERN: return SNMP_INTEGER (ospf6->external_table->count); break; - default: + case OSPFv3AREASPFRUNS: + case OSPFv3AREABDRRTRCOUNT: + case OSPFv3AREAASBDRRTRCOUNT: + case OSPFv3AREASCOPELSACOUNT: + case OSPFv3AREASCOPELSACKSUMSUM: + case OSPFv3AREASUMMARY: + case OSPFv3AREAROWSTATUS: + case OSPFv3AREASTUBMETRIC: + case OSPFv3AREANSSATRANSLATORROLE: + case OSPFv3AREANSSATRANSLATORSTATE: + case OSPFv3AREANSSATRANSLATORSTABINTERVAL: + case OSPFv3AREANSSATRANSLATOREVENTS: + case OSPFv3AREASTUBMETRICTYPE: + case OSPFv3AREATEENABLED: + /* Not implemented. */ return NULL; - break; } return NULL; } @@ -365,10 +454,8 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) { struct ospf6_lsa *lsa = NULL; - struct in_addr area_id; + u_int32_t area_id, id, adv_router; u_int16_t type; - struct in_addr id; - struct in_addr adv_router; int len; oid *offset; int offsetlen; @@ -380,10 +467,7 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, == MATCH_FAILED) return NULL; - memset (&area_id, 0, sizeof (struct in_addr)); - type = 0; - memset (&id, 0, sizeof (struct in_addr)); - memset (&adv_router, 0, sizeof (struct in_addr)); + area_id = type = id = adv_router = 0; /* Check OSPFv3 instance. */ if (ospf6 == NULL) @@ -393,37 +477,36 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, offset = name + v->namelen; offsetlen = *length - v->namelen; -#define OSPFV3_AREA_LSDB_ENTRY_EXACT_OFFSET \ - (IN_ADDR_SIZE + 1 + IN_ADDR_SIZE + IN_ADDR_SIZE) +#define OSPFV3_AREA_LSDB_ENTRY_EXACT_OFFSET 4 if (exact && offsetlen != OSPFV3_AREA_LSDB_ENTRY_EXACT_OFFSET) return NULL; /* Parse area-id */ - len = (offsetlen < IN_ADDR_SIZE ? offsetlen : IN_ADDR_SIZE); + len = (offsetlen < 1 ? 0 : 1); if (len) - oid2in_addr (offset, len, &area_id); + area_id = htonl (*offset); offset += len; offsetlen -= len; /* Parse type */ - len = (offsetlen < 1 ? offsetlen : 1); + len = (offsetlen < 1 ? 0 : 1); if (len) type = htons (*offset); offset += len; offsetlen -= len; /* Parse Router-ID */ - len = (offsetlen < IN_ADDR_SIZE ? offsetlen : IN_ADDR_SIZE); + len = (offsetlen < 1 ? 0 : 1); if (len) - oid2in_addr (offset, len, &adv_router); + adv_router = htonl (*offset); offset += len; offsetlen -= len; /* Parse LS-ID */ - len = (offsetlen < IN_ADDR_SIZE ? offsetlen : IN_ADDR_SIZE); + len = (offsetlen < 1 ? 0 : 1); if (len) - oid2in_addr (offset, len, &id); + id = htonl (*offset); offset += len; offsetlen -= len; @@ -436,8 +519,8 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, if (exact) { - oa = ospf6_area_lookup (area_id.s_addr, ospf6); - lsa = ospf6_lsdb_lookup (type, id.s_addr, adv_router.s_addr, oa->lsdb); + oa = ospf6_area_lookup (area_id, ospf6); + lsa = ospf6_lsdb_lookup (type, id, adv_router, oa->lsdb); } else { @@ -445,16 +528,16 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, { if (lsa) continue; - if (ntohl (oa->area_id) < ntohl (area_id.s_addr)) + if (oa->area_id < area_id) continue; - lsa = ospf6_lsdb_lookup_next (type, id.s_addr, adv_router.s_addr, + lsa = ospf6_lsdb_lookup_next (type, id, adv_router, oa->lsdb); if (! lsa) { type = 0; - memset (&id, 0, sizeof (struct in_addr)); - memset (&adv_router, 0, sizeof (struct in_addr)); + id = 0; + adv_router = 0; } } } @@ -471,55 +554,36 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, /* Add Index (AreaId, Type, RouterId, Lsid) */ *length = v->namelen + OSPFV3_AREA_LSDB_ENTRY_EXACT_OFFSET; offset = name + v->namelen; - oid_copy_addr (offset, (struct in_addr *) &oa->area_id, IN_ADDR_SIZE); - offset += IN_ADDR_SIZE; + *offset = ntohl (oa->area_id); + offset++; *offset = ntohs (lsa->header->type); offset++; - oid_copy_addr (offset, (struct in_addr *) &lsa->header->adv_router, - IN_ADDR_SIZE); - offset += IN_ADDR_SIZE; - oid_copy_addr (offset, (struct in_addr *) &lsa->header->id, IN_ADDR_SIZE); - offset += IN_ADDR_SIZE; + *offset = ntohl (lsa->header->adv_router); + offset++; + *offset = ntohl (lsa->header->id); + offset++; /* Return the current value of the variable */ switch (v->magic) { - case OSPFv3AREALSDBAREAID: /* 1 */ - area_id.s_addr = OSPF6_AREA (lsa->lsdb->data)->area_id; - return SNMP_IPADDRESS (area_id); - break; - case OSPFv3AREALSDBTYPE: /* 2 */ - return SNMP_INTEGER (ntohs (lsa->header->type)); + case OSPFv3AREALSDBSEQUENCE: + return SNMP_INTEGER (ntohl (lsa->header->seqnum)); break; - case OSPFv3AREALSDBROUTERID: /* 3 */ - adv_router.s_addr = lsa->header->adv_router; - return SNMP_IPADDRESS (adv_router); - break; - case OSPFv3AREALSDBLSID: /* 4 */ - id.s_addr = lsa->header->id; - return SNMP_IPADDRESS (id); - break; - case OSPFv3AREALSDBSEQUENCE: /* 5 */ - return SNMP_INTEGER (lsa->header->seqnum); - break; - case OSPFv3AREALSDBAGE: /* 6 */ + case OSPFv3AREALSDBAGE: ospf6_lsa_age_current (lsa); - return SNMP_INTEGER (lsa->header->age); + return SNMP_INTEGER (ntohs (lsa->header->age)); break; - case OSPFv3AREALSDBCHECKSUM: /* 7 */ - return SNMP_INTEGER (lsa->header->checksum); + case OSPFv3AREALSDBCHECKSUM: + return SNMP_INTEGER (ntohs (lsa->header->checksum)); break; - case OSPFv3AREALSDBADVERTISEMENT: /* 8 */ + case OSPFv3AREALSDBADVERTISEMENT: *var_len = ntohs (lsa->header->length); return (u_char *) lsa->header; break; - case OSPFv3AREALSDBTYPEKNOWN: /* 9 */ + case OSPFv3AREALSDBTYPEKNOWN: return SNMP_INTEGER (OSPF6_LSA_IS_KNOWN (lsa->header->type) ? SNMP_TRUE : SNMP_FALSE); break; - default: - return NULL; - break; } return NULL; } -- cgit v1.2.1 From 061bc735b4fb3b8768fa5f52295d85838ed55770 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Thu, 31 May 2012 20:21:15 +0200 Subject: ospf6d: add SNMP support for ospfv3NbrTable --- ospf6d/ospf6_neighbor.c | 2 + ospf6d/ospf6_neighbor.h | 1 + ospf6d/ospf6_snmp.c | 164 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 167 insertions(+) (limited to 'ospf6d') diff --git a/ospf6d/ospf6_neighbor.c b/ospf6d/ospf6_neighbor.c index f6c3aeac..ab157ca8 100644 --- a/ospf6d/ospf6_neighbor.c +++ b/ospf6d/ospf6_neighbor.c @@ -89,6 +89,7 @@ ospf6_neighbor_create (u_int32_t router_id, struct ospf6_interface *oi) buf, oi->interface->name); on->ospf6_if = oi; on->state = OSPF6_NEIGHBOR_DOWN; + on->state_change = 0; quagga_gettime (QUAGGA_CLK_MONOTONIC, &on->last_changed); on->router_id = router_id; @@ -154,6 +155,7 @@ ospf6_neighbor_state_change (u_char next_state, struct ospf6_neighbor *on) if (prev_state == next_state) return; + on->state_change++; quagga_gettime (QUAGGA_CLK_MONOTONIC, &on->last_changed); /* log */ diff --git a/ospf6d/ospf6_neighbor.h b/ospf6d/ospf6_neighbor.h index b3bd173f..5f46c6f3 100644 --- a/ospf6d/ospf6_neighbor.h +++ b/ospf6d/ospf6_neighbor.h @@ -46,6 +46,7 @@ struct ospf6_neighbor u_char state; /* timestamp of last changing state */ + u_int32_t state_change; struct timeval last_changed; /* Neighbor Router ID */ diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c index 95b4fc08..5e4ca0f6 100644 --- a/ospf6d/ospf6_snmp.c +++ b/ospf6d/ospf6_snmp.c @@ -225,6 +225,8 @@ static u_char *ospfv3AreaEntry (struct variable *, oid *, size_t *, int, size_t *, WriteMethod **); static u_char *ospfv3AreaLsdbEntry (struct variable *, oid *, size_t *, int, size_t *, WriteMethod **); +static u_char *ospfv3NbrEntry (struct variable *, oid *, size_t *, + int, size_t *, WriteMethod **); struct variable ospfv3_variables[] = { @@ -324,6 +326,31 @@ struct variable ospfv3_variables[] = {OSPFv3AREALSDBTYPEKNOWN, INTEGER, RONLY, ospfv3AreaLsdbEntry, 4, {1, 4, 1, 9}}, + /* OSPFv3 neighbors */ + {OSPFv3NBRADDRESSTYPE, INTEGER, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 4}}, + {OSPFv3NBRADDRESS, STRING, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 5}}, + {OSPFv3NBROPTIONS, INTEGER, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 6}}, + {OSPFv3NBRPRIORITY, INTEGER, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 7}}, + {OSPFv3NBRSTATE, INTEGER, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 8}}, + {OSPFv3NBREVENTS, COUNTER, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 9}}, + {OSPFv3NBRLSRETRANSQLEN, GAUGE, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 10}}, + {OSPFv3NBRHELLOSUPPRESSED, INTEGER, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 11}}, + {OSPFv3NBRIFID, INTEGER, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 12}}, + {OSPFv3NBRRESTARTHELPERSTATUS, INTEGER, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 13}}, + {OSPFv3NBRRESTARTHELPERAGE, UNSIGNED, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 14}}, + {OSPFv3NBRRESTARTHELPEREXITREASON, INTEGER, RONLY, ospfv3NbrEntry, + 4, {1, 9, 1, 15}}, }; static u_char * @@ -588,6 +615,143 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, return NULL; } +static int +if_icmp_func (struct interface *ifp1, struct interface *ifp2) +{ + return (ifp1->ifindex - ifp2->ifindex); +} + +static u_char * +ospfv3NbrEntry (struct variable *v, oid *name, size_t *length, + int exact, size_t *var_len, WriteMethod **write_method) +{ + unsigned int ifindex, instid, rtrid; + struct ospf6_interface *oi = NULL; + struct ospf6_neighbor *on = NULL; + struct interface *iif; + struct listnode *i, *j; + struct list *ifslist; + oid *offset; + int offsetlen, len; + + if (smux_header_table (v, name, length, exact, var_len, write_method) + == MATCH_FAILED) + return NULL; + + ifindex = instid = rtrid = 0; + + /* Check OSPFv3 instance. */ + if (ospf6 == NULL) + return NULL; + + /* Get variable length. */ + offset = name + v->namelen; + offsetlen = *length - v->namelen; + + if (exact && offsetlen != 3) + return NULL; + + /* Parse if index */ + len = (offsetlen < 1 ? 0 : 1); + if (len) + ifindex = *offset; + offset += len; + offsetlen -= len; + + /* Parse instance ID */ + len = (offsetlen < 1 ? 0 : 1); + if (len) + instid = *offset; + offset += len; + offsetlen -= len; + + /* Parse router ID */ + len = (offsetlen < 1 ? 0 : 1); + if (len) + rtrid = htonl (*offset); + offset += len; + offsetlen -= len; + + if (exact) + { + oi = ospf6_interface_lookup_by_ifindex (ifindex); + on = ospf6_neighbor_lookup (rtrid, oi); + if (oi->instance_id != instid) return NULL; + } + else + { + /* We build a sorted list of interfaces */ + ifslist = list_new (); + if (!ifslist) return NULL; + ifslist->cmp = (int (*)(void *, void *))if_icmp_func; + for (ALL_LIST_ELEMENTS_RO (iflist, i, iif)) + listnode_add_sort (ifslist, iif); + + for (ALL_LIST_ELEMENTS_RO (ifslist, i, iif)) + { + if (!iif->ifindex) continue; + oi = ospf6_interface_lookup_by_ifindex (iif->ifindex); + if (!oi) continue; + for (ALL_LIST_ELEMENTS_RO (oi->neighbor_list, j, on)) { + if (iif->ifindex > ifindex || + (iif->ifindex == ifindex && + (oi->instance_id > instid || + (oi->instance_id == instid && + ntohl (on->router_id) > ntohl (rtrid))))) + break; + } + if (on) break; + oi = on = NULL; + } + + list_delete_all_node (ifslist); + } + + if (!oi || !on) return NULL; + + /* Add Index (IfIndex, IfInstId, RtrId) */ + *length = v->namelen + 3; + offset = name + v->namelen; + *offset = oi->interface->ifindex; + offset++; + *offset = oi->instance_id; + offset++; + *offset = ntohl (on->router_id); + offset++; + + /* Return the current value of the variable */ + switch (v->magic) + { + case OSPFv3NBRADDRESSTYPE: + return SNMP_INTEGER (2); /* IPv6 only */ + case OSPFv3NBRADDRESS: + *var_len = sizeof (struct in6_addr); + return (u_char *) &on->linklocal_addr; + case OSPFv3NBROPTIONS: + return SNMP_INTEGER (on->options[2]); + case OSPFv3NBRPRIORITY: + return SNMP_INTEGER (on->priority); + case OSPFv3NBRSTATE: + return SNMP_INTEGER (on->state); + case OSPFv3NBREVENTS: + return SNMP_INTEGER (on->state_change); + case OSPFv3NBRLSRETRANSQLEN: + return SNMP_INTEGER (on->retrans_list->count); + case OSPFv3NBRHELLOSUPPRESSED: + return SNMP_INTEGER (SNMP_FALSE); + case OSPFv3NBRIFID: + return SNMP_INTEGER (on->ifindex); + case OSPFv3NBRRESTARTHELPERSTATUS: + case OSPFv3NBRRESTARTHELPERAGE: + case OSPFv3NBRRESTARTHELPEREXITREASON: + /* Not implemented. Only works if all the last ones are not + implemented! */ + return NULL; + } + + return NULL; +} + /* Register OSPFv3-MIB. */ void -- cgit v1.2.1 From 2c5f148065c074d51ff10808a2b6ac2b3296a828 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Fri, 1 Jun 2012 11:38:34 +0200 Subject: ospf6d: complete SNMP implementation for scalar objects --- ospf6d/ospf6_snmp.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'ospf6d') diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c index 5e4ca0f6..9f333a81 100644 --- a/ospf6d/ospf6_snmp.c +++ b/ospf6d/ospf6_snmp.c @@ -357,6 +357,10 @@ static u_char * ospfv3GeneralGroup (struct variable *v, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) { + u_int16_t sum; + u_int32_t count; + struct ospf6_lsa *lsa = NULL; + /* Check whether the instance identifier is valid */ if (smux_header_generic (v, name, length, exact, var_len, write_method) == MATCH_FAILED) @@ -371,18 +375,58 @@ ospfv3GeneralGroup (struct variable *v, oid *name, size_t *length, return SNMP_INTEGER (ntohl (ospf6->router_id)); return SNMP_INTEGER (0); case OSPFv3ADMINSTAT: + if (ospf6) + return SNMP_INTEGER (CHECK_FLAG (ospf6->flag, OSPF6_DISABLED)? + OSPF_STATUS_DISABLED:OSPF_STATUS_ENABLED); + return SNMP_INTEGER (OSPF_STATUS_DISABLED); case OSPFv3VERSIONNUMBER: + return SNMP_INTEGER (3); case OSPFv3AREABDRRTRSTATUS: + if (ospf6) + return SNMP_INTEGER (ospf6_is_router_abr (ospf6)?SNMP_TRUE:SNMP_FALSE); + return SNMP_INTEGER (SNMP_FALSE); case OSPFv3ASBDRRTRSTATUS: + if (ospf6) + return SNMP_INTEGER (ospf6_asbr_is_asbr (ospf6)?SNMP_TRUE:SNMP_FALSE); + return SNMP_INTEGER (SNMP_FALSE); case OSPFv3ASSCOPELSACOUNT: + if (ospf6) + return SNMP_INTEGER (ospf6->lsdb->count); + return SNMP_INTEGER (0); case OSPFv3ASSCOPELSACHECKSUMSUM: + if (ospf6) + { + for (sum = 0, lsa = ospf6_lsdb_head (ospf6->lsdb); + lsa; + lsa = ospf6_lsdb_next (lsa)) + sum += ntohs (lsa->header->checksum); + return SNMP_INTEGER (sum); + } + return SNMP_INTEGER (0); case OSPFv3ORIGINATENEWLSAS: + return SNMP_INTEGER (0); /* Don't know where to get this value... */ case OSPFv3RXNEWLSAS: + return SNMP_INTEGER (0); /* Don't know where to get this value... */ case OSPFv3EXTLSACOUNT: + if (ospf6) + { + for (count = 0, lsa = ospf6_lsdb_type_head (htons (OSPF6_LSTYPE_AS_EXTERNAL), + ospf6->lsdb); + lsa; + lsa = ospf6_lsdb_type_next (htons (OSPF6_LSTYPE_AS_EXTERNAL), + lsa)) + count += 1; + return SNMP_INTEGER (count); + } + return SNMP_INTEGER (0); case OSPFv3EXTAREALSDBLIMIT: + return SNMP_INTEGER (-1); case OSPFv3EXITOVERFLOWINTERVAL: + return SNMP_INTEGER (0); /* Not supported */ case OSPFv3DEMANDEXTENSIONS: + return SNMP_INTEGER (0); /* Not supported */ case OSPFv3REFERENCEBANDWIDTH: + return SNMP_INTEGER (100000); case OSPFv3RESTARTSUPPORT: case OSPFv3RESTARTINTERVAL: case OSPFv3RESTARTSTRICTLSACHECKING: -- cgit v1.2.1 From ea86e4042b7459fbf5d96835c509cb743bf013c0 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Mon, 4 Jun 2012 10:29:49 +0200 Subject: ospf6d: complete SNMP implementation of ospfv3AreaTable --- ospf6d/ospf6_area.h | 1 + ospf6d/ospf6_snmp.c | 30 ++++++++++++++++++++++++++++-- ospf6d/ospf6_spf.c | 2 ++ 3 files changed, 31 insertions(+), 2 deletions(-) (limited to 'ospf6d') diff --git a/ospf6d/ospf6_area.h b/ospf6d/ospf6_area.h index c7c5ee35..e8a4fbd8 100644 --- a/ospf6d/ospf6_area.h +++ b/ospf6d/ospf6_area.h @@ -57,6 +57,7 @@ struct ospf6_area struct thread *thread_spf_calculation; struct thread *thread_route_calculation; + u_int32_t spf_calculation; /* SPF calculation count */ struct thread *thread_router_lsa; struct thread *thread_intra_prefix_lsa; diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c index 9f333a81..293d66a1 100644 --- a/ospf6d/ospf6_snmp.c +++ b/ospf6d/ospf6_snmp.c @@ -449,10 +449,14 @@ ospfv3AreaEntry (struct variable *v, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) { struct ospf6_area *oa, *area = NULL; + struct ospf6_lsa *lsa = NULL; u_int32_t area_id = 0; + u_int32_t count; + u_int16_t sum; struct listnode *node; unsigned int len; char a[16]; + struct ospf6_route *ro; if (ospf6 == NULL) return NULL; @@ -498,15 +502,37 @@ ospfv3AreaEntry (struct variable *v, oid *name, size_t *length, switch (v->magic) { case OSPFv3IMPORTASEXTERN: - return SNMP_INTEGER (ospf6->external_table->count); - break; + /* No NSSA support */ + return SNMP_INTEGER (IS_AREA_STUB(area)?2:1); case OSPFv3AREASPFRUNS: + return SNMP_INTEGER (area->spf_calculation); case OSPFv3AREABDRRTRCOUNT: case OSPFv3AREAASBDRRTRCOUNT: + count = 0; + for (ro = ospf6_route_head (ospf6->brouter_table); ro; + ro = ospf6_route_next (ro)) + { + if (ntohl (ro->path.area_id) != ntohl (area->area_id)) continue; + if (v->magic == OSPFv3AREABDRRTRCOUNT && + CHECK_FLAG (ro->path.router_bits, OSPF6_ROUTER_BIT_B)) + count++; + if (v->magic == OSPFv3AREAASBDRRTRCOUNT && + CHECK_FLAG (ro->path.router_bits, OSPF6_ROUTER_BIT_E)) + count++; + } + return SNMP_INTEGER (count); case OSPFv3AREASCOPELSACOUNT: + return SNMP_INTEGER (area->lsdb->count); case OSPFv3AREASCOPELSACKSUMSUM: + for (sum = 0, lsa = ospf6_lsdb_head (area->lsdb); + lsa; + lsa = ospf6_lsdb_next (lsa)) + sum += ntohs (lsa->header->checksum); + return SNMP_INTEGER (sum); case OSPFv3AREASUMMARY: + return SNMP_INTEGER (2); /* sendAreaSummary */ case OSPFv3AREAROWSTATUS: + return SNMP_INTEGER (1); /* Active */ case OSPFv3AREASTUBMETRIC: case OSPFv3AREANSSATRANSLATORROLE: case OSPFv3AREANSSATRANSLATORSTATE: diff --git a/ospf6d/ospf6_spf.c b/ospf6d/ospf6_spf.c index a4a5b721..da0ee131 100644 --- a/ospf6d/ospf6_spf.c +++ b/ospf6d/ospf6_spf.c @@ -473,6 +473,8 @@ ospf6_spf_calculation (u_int32_t router_id, } pqueue_delete (candidate_list); + + oa->spf_calculation++; } static void -- cgit v1.2.1 From 3bc4f84efe147ebc65fccbe898b81d78341c542b Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Mon, 4 Jun 2012 11:40:04 +0200 Subject: ospf6d: add SNMP implementation of ospfv3IfTable --- ospf6d/ospf6_interface.c | 1 + ospf6d/ospf6_interface.h | 2 + ospf6d/ospf6_snmp.c | 204 ++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 206 insertions(+), 1 deletion(-) (limited to 'ospf6d') diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c index 71aa6859..6f7aaa8a 100644 --- a/ospf6d/ospf6_interface.c +++ b/ospf6d/ospf6_interface.c @@ -394,6 +394,7 @@ ospf6_interface_state_change (u_char next_state, struct ospf6_interface *oi) ospf6_interface_state_str[prev_state], ospf6_interface_state_str[next_state]); } + oi->state_change++; if ((prev_state == OSPF6_INTERFACE_DR || prev_state == OSPF6_INTERFACE_BDR) && diff --git a/ospf6d/ospf6_interface.h b/ospf6d/ospf6_interface.h index 2d1ff34d..d80b0730 100644 --- a/ospf6d/ospf6_interface.h +++ b/ospf6d/ospf6_interface.h @@ -64,6 +64,8 @@ struct ospf6_interface u_int16_t dead_interval; u_int32_t rxmt_interval; + u_int32_t state_change; + /* Cost */ u_int32_t cost; diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c index 293d66a1..1880fc0a 100644 --- a/ospf6d/ospf6_snmp.c +++ b/ospf6d/ospf6_snmp.c @@ -227,6 +227,8 @@ static u_char *ospfv3AreaLsdbEntry (struct variable *, oid *, size_t *, int, size_t *, WriteMethod **); static u_char *ospfv3NbrEntry (struct variable *, oid *, size_t *, int, size_t *, WriteMethod **); +static u_char *ospfv3IfEntry (struct variable *, oid *, size_t *, + int, size_t *, WriteMethod **); struct variable ospfv3_variables[] = { @@ -326,6 +328,54 @@ struct variable ospfv3_variables[] = {OSPFv3AREALSDBTYPEKNOWN, INTEGER, RONLY, ospfv3AreaLsdbEntry, 4, {1, 4, 1, 9}}, + /* OSPFv3 interfaces */ + {OSPFv3IFAREAID, UNSIGNED, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 3}}, + {OSPFv3IFTYPE, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 4}}, + {OSPFv3IFADMINSTATUS, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 5}}, + {OSPFv3IFRTRPRIORITY, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 6}}, + {OSPFv3IFTRANSITDELAY, UNSIGNED, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 7}}, + {OSPFv3IFRETRANSINTERVAL, UNSIGNED, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 8}}, + {OSPFv3IFHELLOINTERVAL, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 9}}, + {OSPFv3IFRTRDEADINTERVAL, UNSIGNED, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 10}}, + {OSPFv3IFPOLLINTERVAL, UNSIGNED, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 11}}, + {OSPFv3IFSTATE, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 12}}, + {OSPFv3IFDESIGNATEDROUTER, UNSIGNED, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 13}}, + {OSPFv3IFBACKUPDESIGNATEDROUTER, UNSIGNED, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 14}}, + {OSPFv3IFEVENTS, COUNTER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 15}}, + {OSPFv3IFROWSTATUS, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 16}}, + {OSPFv3IFDEMAND, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 17}}, + {OSPFv3IFMETRICVALUE, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 18}}, + {OSPFv3IFLINKSCOPELSACOUNT, GAUGE, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 19}}, + {OSPFv3IFLINKLSACKSUMSUM, UNSIGNED, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 20}}, + {OSPFv3IFDEMANDNBRPROBE, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 21}}, + {OSPFv3IFDEMANDNBRPROBERETRANSLIMIT, UNSIGNED, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 22}}, + {OSPFv3IFDEMANDNBRPROBEINTERVAL, UNSIGNED, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 23}}, + {OSPFv3IFTEDISABLED, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 24}}, + {OSPFv3IFLINKLSASUPPRESSION, INTEGER, RONLY, ospfv3IfEntry, + 4, {1, 7, 1, 25}}, + /* OSPFv3 neighbors */ {OSPFv3NBRADDRESSTYPE, INTEGER, RONLY, ospfv3NbrEntry, 4, {1, 9, 1, 4}}, @@ -691,6 +741,159 @@ if_icmp_func (struct interface *ifp1, struct interface *ifp2) return (ifp1->ifindex - ifp2->ifindex); } +static u_char * +ospfv3IfEntry (struct variable *v, oid *name, size_t *length, + int exact, size_t *var_len, WriteMethod **write_method) +{ + unsigned int ifindex, instid; + struct ospf6_interface *oi = NULL; + struct ospf6_lsa *lsa = NULL; + struct interface *iif; + struct listnode *i; + struct list *ifslist; + oid *offset; + int offsetlen, len; + u_int32_t sum; + + if (smux_header_table (v, name, length, exact, var_len, write_method) + == MATCH_FAILED) + return NULL; + + ifindex = instid = 0; + + /* Check OSPFv3 instance. */ + if (ospf6 == NULL) + return NULL; + + /* Get variable length. */ + offset = name + v->namelen; + offsetlen = *length - v->namelen; + + if (exact && offsetlen != 2) + return NULL; + + /* Parse if index */ + len = (offsetlen < 1 ? 0 : 1); + if (len) + ifindex = *offset; + offset += len; + offsetlen -= len; + + /* Parse instance ID */ + len = (offsetlen < 1 ? 0 : 1); + if (len) + instid = *offset; + offset += len; + offsetlen -= len; + + if (exact) + { + oi = ospf6_interface_lookup_by_ifindex (ifindex); + if (oi->instance_id != instid) return NULL; + } + else + { + /* We build a sorted list of interfaces */ + ifslist = list_new (); + if (!ifslist) return NULL; + ifslist->cmp = (int (*)(void *, void *))if_icmp_func; + for (ALL_LIST_ELEMENTS_RO (iflist, i, iif)) + listnode_add_sort (ifslist, iif); + + for (ALL_LIST_ELEMENTS_RO (ifslist, i, iif)) + { + if (!iif->ifindex) continue; + oi = ospf6_interface_lookup_by_ifindex (iif->ifindex); + if (!oi) continue; + if (iif->ifindex > ifindex || + (iif->ifindex == ifindex && + (oi->instance_id > instid))) + break; + oi = NULL; + } + + list_delete_all_node (ifslist); + } + + if (!oi) return NULL; + + /* Add Index (IfIndex, IfInstId) */ + *length = v->namelen + 2; + offset = name + v->namelen; + *offset = oi->interface->ifindex; + offset++; + *offset = oi->instance_id; + offset++; + + /* Return the current value of the variable */ + switch (v->magic) + { + case OSPFv3IFAREAID: + if (oi->area) + return SNMP_INTEGER (ntohl (oi->area->area_id)); + break; + case OSPFv3IFTYPE: + if (if_is_broadcast (oi->interface)) + return SNMP_INTEGER (1); + else if (if_is_pointopoint (oi->interface)) + return SNMP_INTEGER (3); + else break; /* Unknown, don't put anything */ + case OSPFv3IFADMINSTATUS: + if (oi->area) + return SNMP_INTEGER (OSPF_STATUS_ENABLED); + return SNMP_INTEGER (OSPF_STATUS_DISABLED); + case OSPFv3IFRTRPRIORITY: + return SNMP_INTEGER (oi->priority); + case OSPFv3IFTRANSITDELAY: + return SNMP_INTEGER (oi->transdelay); + case OSPFv3IFRETRANSINTERVAL: + return SNMP_INTEGER (oi->rxmt_interval); + case OSPFv3IFHELLOINTERVAL: + return SNMP_INTEGER (oi->hello_interval); + case OSPFv3IFRTRDEADINTERVAL: + return SNMP_INTEGER (oi->dead_interval); + case OSPFv3IFPOLLINTERVAL: + /* No support for NBMA */ + break; + case OSPFv3IFSTATE: + return SNMP_INTEGER (oi->state); + case OSPFv3IFDESIGNATEDROUTER: + return SNMP_INTEGER (ntohl (oi->drouter)); + case OSPFv3IFBACKUPDESIGNATEDROUTER: + return SNMP_INTEGER (ntohl (oi->bdrouter)); + case OSPFv3IFEVENTS: + return SNMP_INTEGER (oi->state_change); + case OSPFv3IFROWSTATUS: + return SNMP_INTEGER (1); + case OSPFv3IFDEMAND: + return SNMP_INTEGER (SNMP_FALSE); + case OSPFv3IFMETRICVALUE: + return SNMP_INTEGER (oi->cost); + case OSPFv3IFLINKSCOPELSACOUNT: + return SNMP_INTEGER (oi->lsdb->count); + case OSPFv3IFLINKLSACKSUMSUM: + for (sum = 0, lsa = ospf6_lsdb_head (oi->lsdb); + lsa; + lsa = ospf6_lsdb_next (lsa)) + sum += ntohs (lsa->header->checksum); + return SNMP_INTEGER (sum); + case OSPFv3IFDEMANDNBRPROBE: + case OSPFv3IFDEMANDNBRPROBERETRANSLIMIT: + case OSPFv3IFDEMANDNBRPROBEINTERVAL: + case OSPFv3IFTEDISABLED: + case OSPFv3IFLINKLSASUPPRESSION: + /* Not implemented. Only works if all the last ones are not + implemented! */ + return NULL; + } + + /* Try an internal getnext. Some columns are missing in this table. */ + if (!exact && (name[*length-1] < MAX_SUBID)) + return ospfv3IfEntry(v, name, length, + exact, var_len, write_method); + return NULL; +} + static u_char * ospfv3NbrEntry (struct variable *v, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) @@ -822,7 +1025,6 @@ ospfv3NbrEntry (struct variable *v, oid *name, size_t *length, return NULL; } - /* Register OSPFv3-MIB. */ void ospf6_snmp_init (struct thread_master *master) -- cgit v1.2.1 From c349bb86927d1f5fc8aa8ebc6f553786f8e70634 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Mon, 4 Jun 2012 12:59:20 +0200 Subject: ospf6d: add SNMP support for ospfv3*LsdbTable This includes: - ospfv3AsLsdbTable - ospfv3AreaLsdbTable - ospfv3LinkLsdbTable --- ospf6d/ospf6_snmp.c | 263 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 174 insertions(+), 89 deletions(-) (limited to 'ospf6d') diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c index 1880fc0a..ce49331c 100644 --- a/ospf6d/ospf6_snmp.c +++ b/ospf6d/ospf6_snmp.c @@ -90,26 +90,20 @@ #define OSPFv3AREASTUBMETRICTYPE 15 #define OSPFv3AREATEENABLED 16 -/* OSPFv3 MIB AS Lsdb Table values: ospfv3AsLsdbTable */ -#define OSPFv3ASLSDBSEQUENCE 4 -#define OSPFv3ASLSDBAGE 5 -#define OSPFv3ASLSDBCHECKSUM 6 -#define OSPFv3ASLSDBADVERTISEMENT 7 -#define OSPFv3ASLSDBTYPEKNOWN 8 - -/* OSPFv3 MIB Area Lsdb Table values: ospfv3AreaLsdbTable */ -#define OSPFv3AREALSDBSEQUENCE 5 -#define OSPFv3AREALSDBAGE 6 -#define OSPFv3AREALSDBCHECKSUM 7 -#define OSPFv3AREALSDBADVERTISEMENT 8 -#define OSPFv3AREALSDBTYPEKNOWN 9 - -/* OSPFv3 MIB Link Lsdb Table values: ospfv3LinkLsdbTable */ -#define OSPFv3LINKLSDBSEQUENCE 6 -#define OSPFv3LINKLSDBAGE 7 -#define OSPFv3LINKLSDBCHECKSUM 8 -#define OSPFv3LINKLSDBADVERTISEMENT 9 -#define OSPFv3LINKLSDBTYPEKNOWN 10 +/* OSPFv3 MIB * Lsdb Table values: ospfv3*LsdbTable */ +#define OSPFv3WWLSDBSEQUENCE 1 +#define OSPFv3WWLSDBAGE 2 +#define OSPFv3WWLSDBCHECKSUM 3 +#define OSPFv3WWLSDBADVERTISEMENT 4 +#define OSPFv3WWLSDBTYPEKNOWN 5 + +/* Three first bits are to identify column */ +#define OSPFv3WWCOLUMN 0x7 +/* Then we use other bits to identify table */ +#define OSPFv3WWASTABLE (1 << 3) +#define OSPFv3WWAREATABLE (1 << 4) +#define OSPFv3WWLINKTABLE (1 << 5) +#define OSPFv3WWVIRTLINKTABLE (1 << 6) /* OSPFv3 MIB Host Table values: ospfv3HostTable */ #define OSPFv3HOSTMETRIC 3 @@ -192,13 +186,6 @@ #define OSPFv3AREAAGGREGATEEFFECT 7 #define OSPFv3AREAAGGREGATEROUTETAG 8 -/* OSPFv3 MIB Virtual Link Lsdb Table values: ospfv3VirtLinkLsdbTable */ -#define OSPFv3VIRTLINKLSDBSEQUENCE 6 -#define OSPFv3VIRTLINKLSDBAGE 7 -#define OSPFv3VIRTLINKLSDBCHECKSUM 8 -#define OSPFv3VIRTLINKLSDBADVERTISEMENT 9 -#define OSPFv3VIRTLINKLSDBTYPEKNOWN 10 - /* SYNTAX Status from OSPF-MIB. */ #define OSPF_STATUS_ENABLED 1 #define OSPF_STATUS_DISABLED 2 @@ -223,8 +210,8 @@ static u_char *ospfv3GeneralGroup (struct variable *, oid *, size_t *, int, size_t *, WriteMethod **); static u_char *ospfv3AreaEntry (struct variable *, oid *, size_t *, int, size_t *, WriteMethod **); -static u_char *ospfv3AreaLsdbEntry (struct variable *, oid *, size_t *, - int, size_t *, WriteMethod **); +static u_char *ospfv3WwLsdbEntry (struct variable *, oid *, size_t *, + int, size_t *, WriteMethod **); static u_char *ospfv3NbrEntry (struct variable *, oid *, size_t *, int, size_t *, WriteMethod **); static u_char *ospfv3IfEntry (struct variable *, oid *, size_t *, @@ -316,18 +303,42 @@ struct variable ospfv3_variables[] = {OSPFv3AREATEENABLED, INTEGER, RWRITE, ospfv3AreaEntry, 4, {1, 2, 1, 16}}, + /* OSPFv3 AS LSDB */ + {OSPFv3WWLSDBSEQUENCE | OSPFv3WWASTABLE, INTEGER, RONLY, ospfv3WwLsdbEntry, + 4, {1, 3, 1, 4}}, + {OSPFv3WWLSDBAGE | OSPFv3WWASTABLE, UNSIGNED, RONLY, ospfv3WwLsdbEntry, + 4, {1, 3, 1, 5}}, + {OSPFv3WWLSDBCHECKSUM | OSPFv3WWASTABLE, INTEGER, RONLY, ospfv3WwLsdbEntry, + 4, {1, 3, 1, 6}}, + {OSPFv3WWLSDBADVERTISEMENT | OSPFv3WWASTABLE, STRING, RONLY, ospfv3WwLsdbEntry, + 4, {1, 3, 1, 7}}, + {OSPFv3WWLSDBTYPEKNOWN | OSPFv3WWASTABLE, INTEGER, RONLY, ospfv3WwLsdbEntry, + 4, {1, 3, 1, 8}}, + /* OSPFv3 Area LSDB */ - {OSPFv3AREALSDBSEQUENCE, INTEGER, RONLY, ospfv3AreaLsdbEntry, + {OSPFv3WWLSDBSEQUENCE | OSPFv3WWAREATABLE, INTEGER, RONLY, ospfv3WwLsdbEntry, 4, {1, 4, 1, 5}}, - {OSPFv3AREALSDBAGE, UNSIGNED, RONLY, ospfv3AreaLsdbEntry, + {OSPFv3WWLSDBAGE | OSPFv3WWAREATABLE, UNSIGNED, RONLY, ospfv3WwLsdbEntry, 4, {1, 4, 1, 6}}, - {OSPFv3AREALSDBCHECKSUM, INTEGER, RONLY, ospfv3AreaLsdbEntry, + {OSPFv3WWLSDBCHECKSUM | OSPFv3WWAREATABLE, INTEGER, RONLY, ospfv3WwLsdbEntry, 4, {1, 4, 1, 7}}, - {OSPFv3AREALSDBADVERTISEMENT, STRING, RONLY, ospfv3AreaLsdbEntry, + {OSPFv3WWLSDBADVERTISEMENT | OSPFv3WWAREATABLE, STRING, RONLY, ospfv3WwLsdbEntry, 4, {1, 4, 1, 8}}, - {OSPFv3AREALSDBTYPEKNOWN, INTEGER, RONLY, ospfv3AreaLsdbEntry, + {OSPFv3WWLSDBTYPEKNOWN | OSPFv3WWAREATABLE, INTEGER, RONLY, ospfv3WwLsdbEntry, 4, {1, 4, 1, 9}}, + /* OSPFv3 Link LSDB */ + {OSPFv3WWLSDBSEQUENCE | OSPFv3WWLINKTABLE, INTEGER, RONLY, ospfv3WwLsdbEntry, + 4, {1, 5, 1, 6}}, + {OSPFv3WWLSDBAGE | OSPFv3WWLINKTABLE, UNSIGNED, RONLY, ospfv3WwLsdbEntry, + 4, {1, 5, 1, 7}}, + {OSPFv3WWLSDBCHECKSUM | OSPFv3WWLINKTABLE, INTEGER, RONLY, ospfv3WwLsdbEntry, + 4, {1, 5, 1, 8}}, + {OSPFv3WWLSDBADVERTISEMENT | OSPFv3WWLINKTABLE, STRING, RONLY, ospfv3WwLsdbEntry, + 4, {1, 5, 1, 9}}, + {OSPFv3WWLSDBTYPEKNOWN | OSPFv3WWLINKTABLE, INTEGER, RONLY, ospfv3WwLsdbEntry, + 4, {1, 5, 1, 10}}, + /* OSPFv3 interfaces */ {OSPFv3IFAREAID, UNSIGNED, RONLY, ospfv3IfEntry, 4, {1, 7, 1, 3}}, @@ -596,12 +607,18 @@ ospfv3AreaEntry (struct variable *v, oid *name, size_t *length, return NULL; } +static int +if_icmp_func (struct interface *ifp1, struct interface *ifp2) +{ + return (ifp1->ifindex - ifp2->ifindex); +} + static u_char * -ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, +ospfv3WwLsdbEntry (struct variable *v, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) { struct ospf6_lsa *lsa = NULL; - u_int32_t area_id, id, adv_router; + u_int32_t ifindex, area_id, id, instid, adv_router; u_int16_t type; int len; oid *offset; @@ -609,12 +626,15 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, char a[16], b[16], c[16]; struct ospf6_area *oa; struct listnode *node; + struct interface *iif; + struct ospf6_interface *oi = NULL; + struct list *ifslist; if (smux_header_table(v, name, length, exact, var_len, write_method) == MATCH_FAILED) return NULL; - area_id = type = id = adv_router = 0; + instid = ifindex = area_id = type = id = adv_router = 0; /* Check OSPFv3 instance. */ if (ospf6 == NULL) @@ -624,17 +644,38 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, offset = name + v->namelen; offsetlen = *length - v->namelen; -#define OSPFV3_AREA_LSDB_ENTRY_EXACT_OFFSET 4 - - if (exact && offsetlen != OSPFV3_AREA_LSDB_ENTRY_EXACT_OFFSET) + if (exact && (v->magic & OSPFv3WWASTABLE) && offsetlen != 3) + return NULL; + if (exact && (v->magic & OSPFv3WWAREATABLE) && offsetlen != 4) + return NULL; + if (exact && (v->magic & OSPFv3WWLINKTABLE) && offsetlen != 5) return NULL; - /* Parse area-id */ - len = (offsetlen < 1 ? 0 : 1); - if (len) - area_id = htonl (*offset); - offset += len; - offsetlen -= len; + if (v->magic & OSPFv3WWLINKTABLE) + { + /* Parse ifindex */ + len = (offsetlen < 1 ? 0 : 1); + if (len) + ifindex = *offset; + offset += len; + offsetlen -= len; + + /* Parse instance ID */ + len = (offsetlen < 1 ? 0 : 1); + if (len) + instid = *offset; + offset += len; + offsetlen -= len; + } + else if (v->magic & OSPFv3WWAREATABLE) + { + /* Parse area-id */ + len = (offsetlen < 1 ? 0 : 1); + if (len) + area_id = htonl (*offset); + offset += len; + offsetlen -= len; + } /* Parse type */ len = (offsetlen < 1 ? 0 : 1); @@ -657,52 +698,102 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, offset += len; offsetlen -= len; - inet_ntop (AF_INET, &area_id, a, sizeof (a)); - inet_ntop (AF_INET, &adv_router, b, sizeof (b)); - inet_ntop (AF_INET, &id, c, sizeof (c)); - zlog_debug ("SNMP access by lsdb: area=%s exact=%d length=%lu magic=%d" - " type=%#x adv_router=%s id=%s", - a, exact, (u_long)*length, v->magic, ntohs (type), b, c); - if (exact) { - oa = ospf6_area_lookup (area_id, ospf6); - lsa = ospf6_lsdb_lookup (type, id, adv_router, oa->lsdb); + if (v->magic & OSPFv3WWASTABLE) + { + lsa = ospf6_lsdb_lookup (type, id, adv_router, ospf6->lsdb); + } + else if (v->magic & OSPFv3WWAREATABLE) + { + oa = ospf6_area_lookup (area_id, ospf6); + lsa = ospf6_lsdb_lookup (type, id, adv_router, oa->lsdb); + } + else if (v->magic & OSPFv3WWLINKTABLE) + { + oi = ospf6_interface_lookup_by_ifindex (ifindex); + if (oi->instance_id != instid) return NULL; + lsa = ospf6_lsdb_lookup (type, id, adv_router, oi->lsdb); + } } else { - for (ALL_LIST_ELEMENTS_RO (ospf6->area_list, node, oa)) + if (v->magic & OSPFv3WWASTABLE) + { + if (ospf6->lsdb->count) + lsa = ospf6_lsdb_lookup_next (type, id, adv_router, + ospf6->lsdb); + } + else if (v->magic & OSPFv3WWAREATABLE) + for (ALL_LIST_ELEMENTS_RO (ospf6->area_list, node, oa)) + { + if (oa->area_id < area_id) + continue; + + if (oa->lsdb->count) + lsa = ospf6_lsdb_lookup_next (type, id, adv_router, + oa->lsdb); + if (lsa) break; + type = 0; + id = 0; + adv_router = 0; + } + else if (v->magic & OSPFv3WWLINKTABLE) { - if (lsa) - continue; - if (oa->area_id < area_id) - continue; - - lsa = ospf6_lsdb_lookup_next (type, id, adv_router, - oa->lsdb); - if (! lsa) + /* We build a sorted list of interfaces */ + ifslist = list_new (); + if (!ifslist) return NULL; + ifslist->cmp = (int (*)(void *, void *))if_icmp_func; + for (ALL_LIST_ELEMENTS_RO (iflist, node, iif)) + listnode_add_sort (ifslist, iif); + + for (ALL_LIST_ELEMENTS_RO (ifslist, node, iif)) { + if (!iif->ifindex) continue; + oi = ospf6_interface_lookup_by_ifindex (iif->ifindex); + if (!oi) continue; + if (iif->ifindex < ifindex) continue; + if (oi->instance_id < instid) continue; + + if (oi->lsdb->count) + lsa = ospf6_lsdb_lookup_next (type, id, adv_router, + oi->lsdb); + if (lsa) break; type = 0; - id = 0; - adv_router = 0; + id = 0; + adv_router = 0; + oi = NULL; } + + list_delete_all_node (ifslist); } } if (! lsa) - { - zlog_debug ("SNMP respond: No LSA to return"); return NULL; - } - oa = OSPF6_AREA (lsa->lsdb->data); - - zlog_debug ("SNMP respond: area: %s lsa: %s", oa->name, lsa->name); - /* Add Index (AreaId, Type, RouterId, Lsid) */ - *length = v->namelen + OSPFV3_AREA_LSDB_ENTRY_EXACT_OFFSET; - offset = name + v->namelen; - *offset = ntohl (oa->area_id); - offset++; + /* Add indexes */ + if (v->magic & OSPFv3WWASTABLE) + { + *length = v->namelen + 3; + offset = name + v->namelen; + } + else if (v->magic & OSPFv3WWAREATABLE) + { + *length = v->namelen + 4; + offset = name + v->namelen; + *offset = ntohl (oa->area_id); + offset++; + } + else if (v->magic & OSPFv3WWLINKTABLE) + { + *length = v->namelen + 5; + offset = name + v->namelen; + *offset = oi->interface->ifindex; + offset++; + *offset = oi->instance_id; + offset++; + } *offset = ntohs (lsa->header->type); offset++; *offset = ntohl (lsa->header->adv_router); @@ -711,23 +802,23 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, offset++; /* Return the current value of the variable */ - switch (v->magic) + switch (v->magic & OSPFv3WWCOLUMN) { - case OSPFv3AREALSDBSEQUENCE: + case OSPFv3WWLSDBSEQUENCE: return SNMP_INTEGER (ntohl (lsa->header->seqnum)); break; - case OSPFv3AREALSDBAGE: + case OSPFv3WWLSDBAGE: ospf6_lsa_age_current (lsa); return SNMP_INTEGER (ntohs (lsa->header->age)); break; - case OSPFv3AREALSDBCHECKSUM: + case OSPFv3WWLSDBCHECKSUM: return SNMP_INTEGER (ntohs (lsa->header->checksum)); break; - case OSPFv3AREALSDBADVERTISEMENT: + case OSPFv3WWLSDBADVERTISEMENT: *var_len = ntohs (lsa->header->length); return (u_char *) lsa->header; break; - case OSPFv3AREALSDBTYPEKNOWN: + case OSPFv3WWLSDBTYPEKNOWN: return SNMP_INTEGER (OSPF6_LSA_IS_KNOWN (lsa->header->type) ? SNMP_TRUE : SNMP_FALSE); break; @@ -735,12 +826,6 @@ ospfv3AreaLsdbEntry (struct variable *v, oid *name, size_t *length, return NULL; } -static int -if_icmp_func (struct interface *ifp1, struct interface *ifp2) -{ - return (ifp1->ifindex - ifp2->ifindex); -} - static u_char * ospfv3IfEntry (struct variable *v, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) -- cgit v1.2.1 From bf836661ef8ef880350bc41f0a82566ed5075066 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Mon, 4 Jun 2012 14:36:12 +0200 Subject: ospf6d: add SNMP notifications/traps support Only implement ospfv3NbrStateChange and ospfv3IfStateChange. --- ospf6d/ospf6_interface.c | 11 ++++++++++ ospf6d/ospf6_neighbor.c | 9 ++++++++ ospf6d/ospf6_snmp.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ ospf6d/ospf6_snmp.h | 2 ++ 4 files changed, 78 insertions(+) (limited to 'ospf6d') diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c index 6f7aaa8a..40cda246 100644 --- a/ospf6d/ospf6_interface.c +++ b/ospf6d/ospf6_interface.c @@ -421,6 +421,17 @@ ospf6_interface_state_change (u_char next_state, struct ospf6_interface *oi) OSPF6_INTRA_PREFIX_LSA_SCHEDULE_TRANSIT (oi); OSPF6_INTRA_PREFIX_LSA_SCHEDULE_STUB (oi->area); } + +#ifdef HAVE_SNMP + /* Terminal state or regression */ + if ((next_state == OSPF6_INTERFACE_POINTTOPOINT) || + (next_state == OSPF6_INTERFACE_DROTHER) || + (next_state == OSPF6_INTERFACE_BDR) || + (next_state == OSPF6_INTERFACE_DR) || + (next_state < prev_state)) + ospf6TrapIfStateChange (oi); +#endif + } diff --git a/ospf6d/ospf6_neighbor.c b/ospf6d/ospf6_neighbor.c index ab157ca8..806767dd 100644 --- a/ospf6d/ospf6_neighbor.c +++ b/ospf6d/ospf6_neighbor.c @@ -182,6 +182,15 @@ ospf6_neighbor_state_change (u_char next_state, struct ospf6_neighbor *on) (next_state != OSPF6_NEIGHBOR_EXCHANGE && next_state != OSPF6_NEIGHBOR_LOADING)) ospf6_maxage_remove (on->ospf6_if->area->ospf6); + +#ifdef HAVE_SNMP + /* Terminal state or regression */ + if ((next_state == OSPF6_NEIGHBOR_FULL) || + (next_state == OSPF6_NEIGHBOR_TWOWAY) || + (next_state < prev_state)) + ospf6TrapNbrStateChange (on); +#endif + } /* RFC2328 section 10.4 */ diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c index ce49331c..a42e57ac 100644 --- a/ospf6d/ospf6_snmp.c +++ b/ospf6d/ospf6_snmp.c @@ -204,6 +204,7 @@ SNMP_LOCAL_VARIABLES /* OSPFv3-MIB instances. */ oid ospfv3_oid [] = { OSPFv3MIB }; +oid ospfv3_trap_oid [] = { OSPFv3MIB, 0 }; /* Hook functions. */ static u_char *ospfv3GeneralGroup (struct variable *, oid *, size_t *, @@ -1110,6 +1111,61 @@ ospfv3NbrEntry (struct variable *v, oid *name, size_t *length, return NULL; } +/* OSPF Traps. */ +#define NBRSTATECHANGE 2 +#define IFSTATECHANGE 10 + +static struct trap_object ospf6NbrTrapList[] = +{ + {-3, {1, 1, OSPFv3ROUTERID}}, + {4, {1, 9, 1, OSPFv3NBRADDRESSTYPE}}, + {4, {1, 9, 1, OSPFv3NBRADDRESS}}, + {4, {1, 9, 1, OSPFv3NBRSTATE}} +}; + +static struct trap_object ospf6IfTrapList[] = +{ + {-3, {1, 1, OSPFv3ROUTERID}}, + {4, {1, 7, 1, OSPFv3IFSTATE}}, + {4, {1, 7, 1, OSPFv3IFADMINSTATUS}}, + {4, {1, 7, 1, OSPFv3IFAREAID}} +}; + +void +ospf6TrapNbrStateChange (struct ospf6_neighbor *on) +{ + oid index[3]; + + index[0] = on->ospf6_if->interface->ifindex; + index[1] = on->ospf6_if->instance_id; + index[2] = ntohl (on->router_id); + + smux_trap (ospfv3_variables, sizeof ospfv3_variables / sizeof (struct variable), + ospfv3_trap_oid, sizeof ospfv3_trap_oid / sizeof (oid), + ospfv3_oid, sizeof ospfv3_oid / sizeof (oid), + index, 3, + ospf6NbrTrapList, + sizeof ospf6NbrTrapList / sizeof (struct trap_object), + NBRSTATECHANGE); +} + +void +ospf6TrapIfStateChange (struct ospf6_interface *oi) +{ + oid index[2]; + + index[0] = oi->interface->ifindex; + index[1] = oi->instance_id; + + smux_trap (ospfv3_variables, sizeof ospfv3_variables / sizeof (struct variable), + ospfv3_trap_oid, sizeof ospfv3_trap_oid / sizeof (oid), + ospfv3_oid, sizeof ospfv3_oid / sizeof (oid), + index, 2, + ospf6IfTrapList, + sizeof ospf6IfTrapList / sizeof (struct trap_object), + IFSTATECHANGE); +} + /* Register OSPFv3-MIB. */ void ospf6_snmp_init (struct thread_master *master) diff --git a/ospf6d/ospf6_snmp.h b/ospf6d/ospf6_snmp.h index 5c67893c..fa1b0c37 100644 --- a/ospf6d/ospf6_snmp.h +++ b/ospf6d/ospf6_snmp.h @@ -22,6 +22,8 @@ #ifndef OSPF6_SNMP_H #define OSPF6_SNMP_H +extern void ospf6TrapNbrStateChange (struct ospf6_neighbor *); +extern void ospf6TrapIfStateChange (struct ospf6_interface *); extern void ospf6_snmp_init (struct thread_master *); #endif /*OSPF6_SNMP_H*/ -- cgit v1.2.1 From 0402ca4e92fa0904d5ee0926482ebca08ffd5c81 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Tue, 10 Jul 2012 09:27:57 +0200 Subject: ospf6d: fix segfault when requesting inexistant interfaces or areas --- ospf6d/ospf6_snmp.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'ospf6d') diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c index a42e57ac..f8a3b920 100644 --- a/ospf6d/ospf6_snmp.c +++ b/ospf6d/ospf6_snmp.c @@ -708,12 +708,13 @@ ospfv3WwLsdbEntry (struct variable *v, oid *name, size_t *length, else if (v->magic & OSPFv3WWAREATABLE) { oa = ospf6_area_lookup (area_id, ospf6); + if (!oa) return NULL; lsa = ospf6_lsdb_lookup (type, id, adv_router, oa->lsdb); } else if (v->magic & OSPFv3WWLINKTABLE) { oi = ospf6_interface_lookup_by_ifindex (ifindex); - if (oi->instance_id != instid) return NULL; + if (!oi || oi->instance_id != instid) return NULL; lsa = ospf6_lsdb_lookup (type, id, adv_router, oi->lsdb); } } @@ -875,7 +876,7 @@ ospfv3IfEntry (struct variable *v, oid *name, size_t *length, if (exact) { oi = ospf6_interface_lookup_by_ifindex (ifindex); - if (oi->instance_id != instid) return NULL; + if (!oi || oi->instance_id != instid) return NULL; } else { @@ -1034,8 +1035,8 @@ ospfv3NbrEntry (struct variable *v, oid *name, size_t *length, if (exact) { oi = ospf6_interface_lookup_by_ifindex (ifindex); + if (!oi || oi->instance_id != instid) return NULL; on = ospf6_neighbor_lookup (rtrid, oi); - if (oi->instance_id != instid) return NULL; } else { @@ -1060,7 +1061,8 @@ ospfv3NbrEntry (struct variable *v, oid *name, size_t *length, break; } if (on) break; - oi = on = NULL; + oi = NULL; + on = NULL; } list_delete_all_node (ifslist); -- cgit v1.2.1