From 3f691e9d27c2a3697b08782452da7d18fdc36c32 Mon Sep 17 00:00:00 2001 From: Adam Amstrong Date: Mon, 2 Aug 2010 19:52:28 +0000 Subject: [PATCH] improve poller (refresh $device array when we start a new device, so we don't get issues with overlap) remove old crap from catos poller, add CISCO-CEF mibs git-svn-id: http://www.observium.org/svn/observer/trunk@1619 61d68cd4-352d-0410-923a-c4978735b2b8 --- includes/defaults.inc.php | 2 +- includes/polling/os/catos.inc.php | 38 - mibs/CISCO-CEF-MIB | 2965 +++++++++++++++++++++++++++++ mibs/CISCO-CEF-TC | 453 +++++ poller.php | 5 +- 5 files changed, 3422 insertions(+), 41 deletions(-) create mode 100644 mibs/CISCO-CEF-MIB create mode 100644 mibs/CISCO-CEF-TC diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php index 8526d39a33..b84be71840 100644 --- a/includes/defaults.inc.php +++ b/includes/defaults.inc.php @@ -147,7 +147,7 @@ $config['rancid_ignorecomments'] = 0; # Ignore lines starting with # ### Ignores & Allows $config['bad_if'] = array("voip-null", "virtual-", "unrouted", "eobc", "mpls", "sl0", "lp0", "faith0", - "-atm layer", "-atm subif", "-shdsl", "-adsl", "-aal5", "-atm", "container", + "-atm layer", "-atm subif", "-shdsl", "-aal5", "-atm", "container", "async", "plip", "-physical", "-signalling", "control", "container", "unrouted", "bri", "-bearer", "bluetooth", "isatap", "ras", "qos", "miniport", "sonet/sdh", "span rp", "span sp", "sslvpn"); diff --git a/includes/polling/os/catos.inc.php b/includes/polling/os/catos.inc.php index ee55322220..c82a353f16 100755 --- a/includes/polling/os/catos.inc.php +++ b/includes/polling/os/catos.inc.php @@ -1,15 +1,5 @@ = '3') { $hardware = $ciscomodel; @@ -23,32 +13,4 @@ list(,$features) = explode("-", $features); - - - list ($cpu5m, $cpu5s) = explode("\n", shell_exec($config['snmpget'] . " -M ".$config['mibdir'] . " -m OLD-CISCO-CPU-MIB -O qv -$snmpver -c $community $hostname:$port 1.3.6.1.4.1.9.2.1.58.0 1.3.6.1.4.1.9.2.1.56.0")); - $cpu5m = $cpu5m + 0; - $cpu5s = $cpu5s + 0; - - echo("$hostname\n"); - - if (!is_file($cpurrd)) { - $rrdcreate = `rrdtool create $cpurrd --step 300 \ - DS:LOAD5S:GAUGE:600:-1:100 \ - DS:LOAD5M:GAUGE:600:-1:100 \ - RRA:AVERAGE:0.5:1:2000 \ - RRA:AVERAGE:0.5:6:2000 \ - RRA:AVERAGE:0.5:24:2000 \ - RRA:AVERAGE:0.5:288:2000 \ - RRA:MAX:0.5:1:2000 \ - RRA:MAX:0.5:6:2000 \ - RRA:MAX:0.5:24:2000 \ - RRA:MAX:0.5:288:2000`; - } - - rrdtool_update($cpurrd, "N:$cpu5s:$cpu5m"); - - include("includes/polling/cisco-processors.inc.php"); - include("includes/polling/cisco-mempool.inc.php"); - include("includes/polling/cisco-entity-sensors.inc.php"); - ?> diff --git a/mibs/CISCO-CEF-MIB b/mibs/CISCO-CEF-MIB new file mode 100644 index 0000000000..e9e3f4ddae --- /dev/null +++ b/mibs/CISCO-CEF-MIB @@ -0,0 +1,2965 @@ +-- *------------------------------------------------------------------ +-- * CISCO-CEF-MIB.my: Cisco CEF MIB. +-- * +-- * Jan 2006, Rohit Mendiratta +-- * +-- * This MIB module is used to manage CISCO Express Forwarding +-- * (CEF). +-- * +-- * Copyright (c) 2006 by Cisco Systems, Inc. +-- * All rights reserved. +-- * +-- *------------------------------------------------------------------ + +CISCO-CEF-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, + OBJECT-TYPE, + NOTIFICATION-TYPE, + Counter64, + Counter32, + Integer32, + Gauge32, + Unsigned32 + FROM SNMPv2-SMI + MODULE-COMPLIANCE, + OBJECT-GROUP, + NOTIFICATION-GROUP + FROM SNMPv2-CONF + TimeStamp, + RowStatus, + TruthValue, + TestAndIncr + FROM SNMPv2-TC + CounterBasedGauge64 + FROM HCNUM-TC + ifIndex, + InterfaceIndexOrZero + FROM IF-MIB + entPhysicalIndex, + PhysicalIndex + FROM ENTITY-MIB + InetAddressType, + InetAddress, + InetAddressPrefixLength + FROM INET-ADDRESS-MIB + SnmpAdminString + FROM SNMP-FRAMEWORK-MIB + MplsVpnId + FROM MPLS-VPN-MIB + EntPhysicalIndexOrZero + FROM CISCO-TC + CefIpVersion, + CefAdjLinkType, + CefAdjacencySource, + CefPathType, + CefPrefixSearchState, + CefForwardingElementSpecialType, + CefMplsLabelList, + CefAdminStatus, + CefOperStatus, + CefFailureReason, + CefCCType, + CefCCAction, + CefCCStatus + FROM CISCO-CEF-TC + ciscoMgmt + FROM CISCO-SMI; + + + ciscoCefMIB MODULE-IDENTITY + LAST-UPDATED "200601300000Z" + ORGANIZATION "Cisco System, Inc." + CONTACT-INFO + "Postal: Cisco Systems, Inc. + 170 West Tasman Drive + San Jose, CA 95134-1706 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-cef@cisco.com" + + DESCRIPTION + "Cisco Express Forwarding (CEF) describes a high speed + switching mechanism that a router uses to forward packets + from the inbound to the outbound interface. + + CEF uses two sets of data structures + or tables, which it stores in router memory: + + Forwarding information base (FIB) - Describes a database + of information used to make forwarding decisions. It is + conceptually similar to a routing table or route-cache, + although its implementation is different. + + Adjacency - Two nodes in the network are said to be + adjacent if they can reach each other via a single hop + across a link layer. + + CEF path is a valid route to reach to a destination + IP prefix. Multiple paths may exist out of a router to the + same destination prefix. CEF Load balancing capability + share the traffic to the destination IP prefix over all + the active paths. + + After obtaining the prefix in the CEF table with the + longest match, output forwarding follows the chain of + forwarding elements. + + Forwarding element (FE) may process the packet, forward + the packet, drop or punt the packet or it may also + pass the packet to the next forwarding element in the + chain for further processing. + + Forwarding Elements are of various types + but this MIB only represents the forwarding elements of + adjacency and label types. Hence a forwarding element + chain will be represented as a list of labels and + adjacency. The adjacency may point to a forwarding element + list again, if it is not the last forwarding element in this + chain. + + For the simplest IP forwarding case, the prefix entry will + point at an adjacency forwarding element. + The IP adjacency processing function will apply the output + features, add the encapsulation (performing any required + fixups), and may send the packet out. + + If loadbalancing is configured, the prefix entry will point + to lists of forwarding elements. One of these lists will be + selected to forward the packet. + + Each forwarding element list dictates which of a set of + possible packet transformations to apply on the way to + the same neighbour. + + The following diagram represents relationship + between three of the core tables in this MIB module. + + cefPrefixTable cefFESelectionTable + + +---------------+ points +--------------+ + | | | | a set +----> | | | | | + |---------------| of FE | |--------------| + | | | | Selection | | | | | | + |---------------| Entries | |--------------| + | | | |------------+ | |<----+ + |---------------| |--------------| | + | | +--------------| | | | | | + +---------------+ | +--------------+ | + | | + points to an | + adjacency entry | + | | + | cefAdjTable | + | +---------------+ may point | + +->| | | | to a set | + |---------------| of FE | + | | | | Selection | + |---------------| Entries | + | | | |----------------+ + |---------------| + | | + +---------------+ + + Some of the Cisco series routers (e.g. 7500 & 12000) + support distributed CEF (dCEF), in which the line cards + (LCs) make the packet forwarding decisions using locally + stored copies of the same Forwarding information base (FIB) + and adjacency tables as the Routing Processor (RP). + + Inter-Process Communication (IPC) is the protocol used + by routers that support distributed packet forwarding. + CEF updates are encoded as external Data Representation + (XDR) information elements inside IPC messages. + + This MIB reflects the distributed nature of CEF, e.g. CEF + has different instances running on the RP and the line cards. + + There may be instances of inconsistency between the + CEF forwarding databases(i.e between CEF forwarding + database on line cards and the CEF forwarding database + on the RP). CEF consistency checkers (CC) detects + this inconsistency. + + When two databases are compared by a consistency checker, + a set of records from the first (master) database is + looked up in the second (slave). + + There are two types of consistency checkers, + active and passive. Active consistency checkers + are invoked in response to some stimulus, i.e. + when a packet cannot be forwarded because the + prefix is not in the forwarding table or + in response to a Management Station request. + + Passive consistency checkers operate in the background, + scanning portions of the databases on a periodic basis. + + The full-scan checkers are active consistency checkers + which are invoked in response to a Management Station + Request. + + If 64-bit counter objects in this MIB are supported, + then their associated 32-bit counter objects + must also be supported. The 32-bit counters will + report the low 32-bits of the associated 64-bit + counter count (e.g., cefPrefixPkts will report the + least significant 32 bits of cefPrefixHCPkts). + The same rule should be applied for the 64-bit gauge + objects and their assocaited 32-bit gauge objects. + + If 64-bit counters in this MIB are not supported, + then an agent MUST NOT instantiate the corresponding + objects with an incorrect value; rather, it MUST + respond with the appropriate error/exception + condition (e.g., noSuchInstance or noSuchName). + + Counters related to CEF accounting (e.g., + cefPrefixPkts) MUST NOT be instantiated if the + corresponding accounting method has been disabled. + + This MIB allows configuration and monitoring of CEF + related objects." + + REVISION "200601300000Z" + DESCRIPTION + "Initial version of this MIB module." + ::= { ciscoMgmt 492 } + + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- CISCO CEF MIB Object Groups +-- +-- This MIB module contains the following groups: +-- CEF FIB Group +-- CEF Adjacency Group +-- CEF Forwarding Element Group +-- CEF Cfg Group +-- CEF Interface Group +-- CEF Peer Group +-- CEF Consistency Checker (CC) group +-- CEF Stats Group +-- CEF Notification Control Group. +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + ciscoCefMIBNotifs OBJECT IDENTIFIER ::= {ciscoCefMIB 0} + ciscoCefMIBObjects OBJECT IDENTIFIER ::= {ciscoCefMIB 1} + ciscoCefMIBConform OBJECT IDENTIFIER ::= {ciscoCefMIB 2} + + cefFIB OBJECT IDENTIFIER ::= { ciscoCefMIBObjects 1 } + cefAdj OBJECT IDENTIFIER ::= { ciscoCefMIBObjects 2 } + cefFE OBJECT IDENTIFIER ::= { ciscoCefMIBObjects 3 } + cefGlobal OBJECT IDENTIFIER ::= { ciscoCefMIBObjects 4 } + cefInterface OBJECT IDENTIFIER ::= { ciscoCefMIBObjects 5 } + cefPeer OBJECT IDENTIFIER ::= { ciscoCefMIBObjects 6 } + cefCC OBJECT IDENTIFIER ::= { ciscoCefMIBObjects 7 } + cefStats OBJECT IDENTIFIER ::= { ciscoCefMIBObjects 8 } + cefNotifCntl OBJECT IDENTIFIER ::= { ciscoCefMIBObjects 9 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF FIB Summary +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + cefFIBSummary OBJECT IDENTIFIER + ::= { cefFIB 1 } + + cefFIBSummaryTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefFIBSummaryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains the summary information + for the cefPrefixTable." + ::= { cefFIBSummary 1 } + + cefFIBSummaryEntry OBJECT-TYPE + SYNTAX CefFIBSummaryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device, + each entry contains the FIB summary related + attributes for the managed entity. + + A row may exist for each IP version type + (v4 and v6) depending upon the IP version + supported on the device. + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { entPhysicalIndex, cefFIBIpVersion } + ::= { cefFIBSummaryTable 1} + + CefFIBSummaryEntry ::= SEQUENCE { + cefFIBIpVersion CefIpVersion, + cefFIBSummaryFwdPrefixes Unsigned32 + } + + cefFIBIpVersion OBJECT-TYPE + SYNTAX CefIpVersion + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The version of IP forwarding." + ::= { cefFIBSummaryEntry 1 } + + cefFIBSummaryFwdPrefixes OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of forwarding Prefixes + in FIB for the IP version specified + by cefFIBIpVersion object." + ::= { cefFIBSummaryEntry 2 } + + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Forwarding Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + cefPrefixTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefPrefixEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of CEF forwarding prefixes." + ::= { cefFIB 2 } + + cefPrefixEntry OBJECT-TYPE + SYNTAX CefPrefixEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device, + each entry contains the forwarding + prefix attributes. + + CEF prefix based non-recursive stats are maintained + in internal and external buckets (depending upon the + value of cefIntNonrecursiveAccouting object in the + CefIntEntry). + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { entPhysicalIndex, + cefPrefixType, + cefPrefixAddr, + cefPrefixLen + } + ::= { cefPrefixTable 1} + + CefPrefixEntry ::= SEQUENCE { + cefPrefixType InetAddressType, + cefPrefixAddr InetAddress, + cefPrefixLen InetAddressPrefixLength, + cefPrefixForwardingInfo SnmpAdminString, + cefPrefixPkts Counter32, + cefPrefixHCPkts Counter64, + cefPrefixBytes Counter32, + cefPrefixHCBytes Counter64, + cefPrefixInternalNRPkts Counter32, + cefPrefixInternalNRHCPkts Counter64, + cefPrefixInternalNRBytes Counter32, + cefPrefixInternalNRHCBytes Counter64, + cefPrefixExternalNRPkts Counter32, + cefPrefixExternalNRHCPkts Counter64, + cefPrefixExternalNRBytes Counter32, + cefPrefixExternalNRHCBytes Counter64 + } + + cefPrefixType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Network Prefix Type. + This object specifies the address type + used for cefPrefixAddr. + + Prefix entries are only valid for the address + type of ipv4(1) and ipv6(2)." + ::= { cefPrefixEntry 1 } + + cefPrefixAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Network Prefix Address. + The type of this address is determined by + the value of the cefPrefixType object. + This object is a Prefix Address containing the + prefix with length specified by cefPrefixLen. + Any bits beyond the length specified by + cefPrefixLen are zeroed." + ::= { cefPrefixEntry 2 } + + cefPrefixLen OBJECT-TYPE + SYNTAX InetAddressPrefixLength + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Length in bits of the FIB Address prefix." + ::= { cefPrefixEntry 3 } + + cefPrefixForwardingInfo OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object indicates the associated forwarding element + selection entries in cefFESelectionTable. + The value of this object is index value (cefFESelectionName) + of cefFESelectionTable." + ::= { cefPrefixEntry 4 } + + cefPrefixPkts OBJECT-TYPE + SYNTAX Counter32 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable per prefix + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'perPrefix' + accounting), then this object represents the + number of packets switched to this prefix." + ::= { cefPrefixEntry 5 } + + cefPrefixHCPkts OBJECT-TYPE + SYNTAX Counter64 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable per prefix + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'perPrefix' + accounting), then this object represents the + number of packets switched to this prefix. + + This object is a 64-bit version of + cefPrefixPkts." + ::= { cefPrefixEntry 6 } + + cefPrefixBytes OBJECT-TYPE + SYNTAX Counter32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable per prefix + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'perPrefix' + accounting), then this object represents the + number of bytes switched to this prefix." + ::= { cefPrefixEntry 7 } + + cefPrefixHCBytes OBJECT-TYPE + SYNTAX Counter64 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable per prefix + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'perPrefix' + accounting), then this object represents the + number of bytes switched to this prefix. + + This object is a 64-bit version of + cefPrefixBytes." + ::= { cefPrefixEntry 8 } + + cefPrefixInternalNRPkts OBJECT-TYPE + SYNTAX Counter32 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable non-recursive + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'nonRecursive' + accounting), then this object represents the number + of non-recursive packets in the internal bucket + switched using this prefix." + ::= { cefPrefixEntry 9 } + + cefPrefixInternalNRHCPkts OBJECT-TYPE + SYNTAX Counter64 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable non-recursive + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'nonRecursive' + accounting), then this object represents the number + of non-recursive packets in the internal bucket + switched using this prefix. + + This object is a 64-bit version of + cefPrefixInternalNRPkts." + ::= { cefPrefixEntry 10 } + + cefPrefixInternalNRBytes OBJECT-TYPE + SYNTAX Counter32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable nonRecursive + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'nonRecursive' + accounting), then this object represents + the number of non-recursive bytes in the internal + bucket switched using this prefix." + ::= { cefPrefixEntry 11 } + + cefPrefixInternalNRHCBytes OBJECT-TYPE + SYNTAX Counter64 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable nonRecursive + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'nonRecursive' + accounting), then this object represents + the number of non-recursive bytes in the internal + bucket switched using this prefix. + + This object is a 64-bit version of + cefPrefixInternalNRBytes." + ::= { cefPrefixEntry 12 } + + cefPrefixExternalNRPkts OBJECT-TYPE + SYNTAX Counter32 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable non-recursive + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'nonRecursive' + accounting), then this object represents the number + of non-recursive packets in the external bucket + switched using this prefix." + ::= { cefPrefixEntry 13 } + + cefPrefixExternalNRHCPkts OBJECT-TYPE + SYNTAX Counter64 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable non-recursive + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'nonRecursive' + accounting), then this object represents the number + of non-recursive packets in the external bucket + switched using this prefix. + + This object is a 64-bit version of + cefPrefixExternalNRPkts." + ::= { cefPrefixEntry 14 } + + cefPrefixExternalNRBytes OBJECT-TYPE + SYNTAX Counter32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable nonRecursive + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'nonRecursive' + accounting), then this object represents + the number of non-recursive bytes in the external + bucket switched using this prefix." + ::= { cefPrefixEntry 15 } + + cefPrefixExternalNRHCBytes OBJECT-TYPE + SYNTAX Counter64 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If CEF accounting is set to enable nonRecursive + accounting (value of cefCfgAccountingMap object in + the cefCfgEntry is set to enable 'nonRecursive' + accounting), then this object represents + the number of non-recursive bytes in the external + bucket switched using this prefix. + + This object is a 64-bit version of + cefPrefixExternalNRBytes." + ::= { cefPrefixEntry 16 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Longest Match Prefix Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + cefLMPrefixSpinLock OBJECT-TYPE + SYNTAX TestAndIncr + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An advisory lock used to allow cooperating SNMP + Command Generator applications to coordinate their + use of the Set operation in creating Longest + Match Prefix Entries in cefLMPrefixTable. + + When creating a new longest prefix match entry, + the value of cefLMPrefixSpinLock should be retrieved. + The destination address should be determined to be + unique by the SNMP Command Generator application by + consulting the cefLMPrefixTable. Finally, the longest + prefix entry may be created (Set), including the + advisory lock. + + If another SNMP Command Generator application has + altered the longest prefix entry in the meantime, + then the spin lock's value will have changed, + and so this creation will fail because it will specify + the wrong value for the spin lock. + + Since this is an advisory lock, the use of this lock + is not enforced, but not using this lock may lead + to conflict with the another SNMP command responder + application which may also be acting on the + cefLMPrefixTable." + ::= { cefFIB 3 } + + cefLMPrefixTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefLMPrefixEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of Longest Match Prefix Query requests. + + Generator application should utilize the + cefLMPrefixSpinLock to try to avoid collisions. + See DESCRIPTION clause of cefLMPrefixSpinLock." + ::= { cefFIB 4 } + + cefLMPrefixEntry OBJECT-TYPE + SYNTAX CefLMPrefixEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the managed device, then each + entry represents a longest Match Prefix request. + + A management station wishing to get the longest + Match prefix for a given destination address + should create the associate instance of the + row status. The row status should be set to + active(1) to initiate the request. Note that + this entire procedure may be initiated via a + single set request which specifies a row status + of createAndGo(4). + + Once the request completes, the management station + should retrieve the values of the objects of + interest, and should then delete the entry. In order + to prevent old entries from clogging the table, + entries will be aged out, but an entry will never be + deleted within 5 minutes of completion. + Entries are lost after an agent restart. + + I.e. to find out the longest prefix match for + destination address of A.B.C.D on entity whose + entityPhysicalIndex is 1, the Management station + will create an entry in cefLMPrefixTable with + cefLMPrefixRowStatus.1(entPhysicalIndex).1(ipv4).A.B.C.D + set to createAndGo(4). Management Station may query the + value of objects cefLMPrefix and cefLMPrefixLen + to find out the corresponding prefix entry from the + cefPrefixTable once the value of cefLMPrefixState + is set to matchFound(2). + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF. + " + INDEX { entPhysicalIndex, + cefLMPrefixDestAddrType, + cefLMPrefixDestAddr } + ::= { cefLMPrefixTable 1} + + CefLMPrefixEntry ::= SEQUENCE { + cefLMPrefixDestAddrType InetAddressType, + cefLMPrefixDestAddr InetAddress, + cefLMPrefixState CefPrefixSearchState, + cefLMPrefixAddr InetAddress, + cefLMPrefixLen InetAddressPrefixLength, + cefLMPrefixRowStatus RowStatus + } + + cefLMPrefixDestAddrType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Destination Address Type. + This object specifies the address type + used for cefLMPrefixDestAddr. + + Longest Match Prefix entries are only valid + for the address type of ipv4(1) and ipv6(2)." + ::= { cefLMPrefixEntry 1 } + + cefLMPrefixDestAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Destination Address. + The type of this address is determined by + the value of the cefLMPrefixDestAddrType object." + ::= { cefLMPrefixEntry 2 } + + cefLMPrefixState OBJECT-TYPE + SYNTAX CefPrefixSearchState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the state of this prefix search request." + ::= { cefLMPrefixEntry 3 } + + cefLMPrefixAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Network Prefix Address. Index to the cefPrefixTable. + The type of this address is determined by + the value of the cefLMPrefixDestAddrType object." + ::= { cefLMPrefixEntry 4 } + + cefLMPrefixLen OBJECT-TYPE + SYNTAX InetAddressPrefixLength + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Network Prefix Length. Index to the cefPrefixTable." + ::= { cefLMPrefixEntry 5 } + + cefLMPrefixRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of this table entry. Once the entry + status is set to active(1), the associated entry + cannot be modified until the request completes + (cefLMPrefixState transitions to matchFound(2) + or noMatchFound(3)). + + Once the longest match request has been created + (i.e. the cefLMPrefixRowStatus has been made active), + the entry cannot be modified - the only operation + possible after this is to delete the row." + ::= { cefLMPrefixEntry 6 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Path Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + cefPathTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefPathEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "CEF prefix path is a valid route to reach to a + destination IP prefix. Multiple paths may exist + out of a router to the same destination prefix. + This table specify lists of CEF paths." + ::= { cefFIB 5 } + + cefPathEntry OBJECT-TYPE + SYNTAX CefPathEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device, + each entry contain a CEF prefix path. + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { entPhysicalIndex, + cefPrefixType, + cefPrefixAddr, + cefPrefixLen, + cefPathId + } + ::= { cefPathTable 1 } + + CefPathEntry ::= SEQUENCE { + cefPathId Integer32, + cefPathType CefPathType, + cefPathInterface InterfaceIndexOrZero, + cefPathNextHopAddr InetAddress, + cefPathRecurseVrfName MplsVpnId + } + + cefPathId OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The locally arbitrary, but unique identifier associated + with this prefix path entry." + ::= { cefPathEntry 1 } + + cefPathType OBJECT-TYPE + SYNTAX CefPathType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type for this CEF Path." + ::= { cefPathEntry 2 } + + cefPathInterface OBJECT-TYPE + SYNTAX InterfaceIndexOrZero + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface associated with this CEF path. + + A value of zero for this object will indicate + that no interface is associated with this path + entry." + ::= { cefPathEntry 3 } + + cefPathNextHopAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Next hop address associated with this CEF path. + + The value of this object is only relevant + for attached next hop and recursive next hop + path types (when the object cefPathType is + set to attachedNexthop(4) or recursiveNexthop(5)). + and will be set to zero for other path types. + + The type of this address is determined by + the value of the cefPrefixType object." + ::= { cefPathEntry 4 } + + cefPathRecurseVrfName OBJECT-TYPE + SYNTAX MplsVpnId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The recursive vrf name associated with this path. + + The value of this object is only relevant + for recursive next hop path types (when the + object cefPathType is set to recursiveNexthop(5)), + and '0x00' will be returned for other path types." + ::= { cefPathEntry 5 } + + -- End of cefPathTable + + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Adjacency Summary +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + cefAdjSummary OBJECT IDENTIFIER + ::= { cefAdj 1 } + + cefAdjSummaryTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefAdjSummaryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains the summary information + for the cefAdjTable." + ::= { cefAdjSummary 1 } + + cefAdjSummaryEntry OBJECT-TYPE + SYNTAX CefAdjSummaryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device, + each entry contains the CEF Adjacency + summary related attributes for the + Managed entity. A row exists for + each adjacency link type. + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { entPhysicalIndex, cefAdjSummaryLinkType} + ::= { cefAdjSummaryTable 1} + + CefAdjSummaryEntry ::= SEQUENCE { + cefAdjSummaryLinkType CefAdjLinkType, + cefAdjSummaryComplete Unsigned32, + cefAdjSummaryIncomplete Unsigned32, + cefAdjSummaryFixup Unsigned32, + cefAdjSummaryRedirect Unsigned32 + } + + cefAdjSummaryLinkType OBJECT-TYPE + SYNTAX CefAdjLinkType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The link type of the adjacency." + ::= { cefAdjSummaryEntry 1 } + + cefAdjSummaryComplete OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of complete adjacencies. + + The total number of adjacencies which can be used + to switch traffic to a neighbour." + ::= { cefAdjSummaryEntry 2 } + + cefAdjSummaryIncomplete OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of incomplete adjacencies. + + The total number of adjacencies which cannot be + used to switch traffic in their current state." + ::= { cefAdjSummaryEntry 3 } + + cefAdjSummaryFixup OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of adjacencies for which + the Layer 2 encapsulation string (header) may be + updated (fixed up) at packet switch time." + ::= { cefAdjSummaryEntry 4 } + + cefAdjSummaryRedirect OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of adjacencies for which + ip redirect (or icmp redirection) is enabled. + The value of this object is only relevant for + ipv4 and ipv6 link type (when the index object + cefAdjSummaryLinkType value is ipv4(1) or ipv6(2)) + and will be set to zero for other link types. + " + REFERENCE + "1. Internet Architecture Extensions for Shared Media, + RFC 1620, May 1994." + ::= { cefAdjSummaryEntry 5 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Adjacency Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + cefAdjTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefAdjEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of CEF adjacencies." + ::= { cefAdj 2 } + + cefAdjEntry OBJECT-TYPE + SYNTAX CefAdjEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device, + each entry contains the adjacency + attributes. Adjacency entries may exist + for all the interfaces on which packets + can be switched out of the device. + The interface is instantiated by ifIndex. + Therefore, the interface index must have been + assigned, according to the applicable procedures, + before it can be meaningfully used. + Generally, this means that the interface must exist. + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { + entPhysicalIndex, + ifIndex, + cefAdjNextHopAddrType, + cefAdjNextHopAddr, + cefAdjConnId, + cefAdjSummaryLinkType + } + ::= { cefAdjTable 1} + + CefAdjEntry ::= SEQUENCE { + cefAdjNextHopAddrType InetAddressType, + cefAdjNextHopAddr InetAddress, + cefAdjConnId Unsigned32, + cefAdjSource CefAdjacencySource, + cefAdjEncap SnmpAdminString, + cefAdjFixup SnmpAdminString, + cefAdjMTU Unsigned32, + cefAdjForwardingInfo SnmpAdminString, + cefAdjPkts Counter32, + cefAdjHCPkts Counter64, + cefAdjBytes Counter32, + cefAdjHCBytes Counter64 + } + + + cefAdjNextHopAddrType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Address type for the cefAdjNextHopAddr. + This object specifies the address type + used for cefAdjNextHopAddr. + + Adjacency entries are only valid for the + address type of ipv4(1) and ipv6(2)." + ::= { cefAdjEntry 1 } + + cefAdjNextHopAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The next Hop address for this adjacency. + The type of this address is determined by + the value of the cefAdjNextHopAddrType object." + ::= { cefAdjEntry 2 } + + cefAdjConnId OBJECT-TYPE + SYNTAX Unsigned32(0 | 1..4294967295) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "In cases where cefLinkType, interface and the + next hop address are not able to uniquely define + an adjacency entry (e.g. ATM and Frame Relay + Bundles), this object is a unique identifier + to differentiate between these adjacency entries. + + In all the other cases the value of this + index object will be 0." + ::= { cefAdjEntry 3 } + + cefAdjSource OBJECT-TYPE + SYNTAX CefAdjacencySource + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If the adjacency is created because some neighbour + discovery mechanism has discovered a neighbour + and all the information required to build a frame header to + encapsulate traffic to the neighbour is available + then the source of adjacency is set to the mechanism + by which the adjacency is learned." + ::= { cefAdjEntry 4 } + + cefAdjEncap OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The layer 2 encapsulation string to be used + for sending the packet out using this adjacency." + ::= { cefAdjEntry 5 } + + cefAdjFixup OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For the cases, where the encapsulation string + is decided at packet switch time, the adjacency + encapsulation string specified by object cefAdjEncap + require a fixup. I.e. for the adjacencies out of IP + Tunnels, the string prepended is an IP header which has + fields which can only be setup at packet switch time. + + The value of this object represent the kind of fixup + applied to the packet. + + If the encapsulation string doesn't require any fixup, + then the value of this object will be of zero length." + ::= { cefAdjEntry 6 } + + cefAdjMTU OBJECT-TYPE + SYNTAX Unsigned32(0..65535) + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Layer 3 MTU which can be transmitted using + this adjacency." + ::= { cefAdjEntry 7 } + + cefAdjForwardingInfo OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object selects a forwarding info entry + defined in the cefFESelectionTable. The + selected target is defined by an entry in the + cefFESelectionTable whose index value (cefFESelectionName) + is equal to this object. + + The value of this object will be of zero length if + this adjacency entry is the last forwarding + element in the forwarding path." + ::= { cefAdjEntry 8 } + + cefAdjPkts OBJECT-TYPE + SYNTAX Counter32 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of pkts transmitted using this adjacency." + ::= { cefAdjEntry 9 } + + cefAdjHCPkts OBJECT-TYPE + SYNTAX Counter64 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of pkts transmitted using this adjacency. + This object is a 64-bit version of cefAdjPkts." + ::= { cefAdjEntry 10 } + + cefAdjBytes OBJECT-TYPE + SYNTAX Counter32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of bytes transmitted using this adjacency." + ::= { cefAdjEntry 11 } + + cefAdjHCBytes OBJECT-TYPE + SYNTAX Counter64 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of bytes transmitted using this adjacency. + This object is a 64-bit version of cefAdjBytes." + ::= { cefAdjEntry 12 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Forwarding Element Selection Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + cefFESelectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefFESelectionEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of forwarding element selection entries." + ::= { cefFE 1 } + + cefFESelectionEntry OBJECT-TYPE + SYNTAX CefFESelectionEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device, + each entry contain a CEF forwarding element + selection list. + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { entPhysicalIndex, + cefFESelectionName, + cefFESelectionId } + ::= { cefFESelectionTable 1 } + + CefFESelectionEntry ::= SEQUENCE { + cefFESelectionName SnmpAdminString, + cefFESelectionId Integer32, + cefFESelectionSpecial CefForwardingElementSpecialType, + cefFESelectionLabels CefMplsLabelList, + cefFESelectionAdjLinkType CefAdjLinkType, + cefFESelectionAdjInterface InterfaceIndexOrZero, + cefFESelectionAdjNextHopAddrType InetAddressType, + cefFESelectionAdjNextHopAddr InetAddress, + cefFESelectionAdjConnId Unsigned32, + cefFESelectionVrfName MplsVpnId, + cefFESelectionWeight Unsigned32 + } + + cefFESelectionName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(1..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The locally arbitrary, but unique identifier used + to select a set of forwarding element lists." + ::= { cefFESelectionEntry 1 } + + cefFESelectionId OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Secondary index to identify a forwarding elements List + in this Table." + ::= { cefFESelectionEntry 2 } + + cefFESelectionSpecial OBJECT-TYPE + SYNTAX CefForwardingElementSpecialType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Special processing for a destination + is indicated through the use of special + forwarding element. + + If the forwarding element list contains the + special forwarding element, then this object + represents the type of special forwarding element." + ::= { cefFESelectionEntry 3 } + + cefFESelectionLabels OBJECT-TYPE + SYNTAX CefMplsLabelList + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represent the MPLS Labels + associated with this forwarding Element List. + + The value of this object will be irrelevant and will + be set to zero length if the forwarding element list + doesn't contain a label forwarding element. A zero + length label list will indicate that there is no label + forwarding element associated with this selection entry." + ::= { cefFESelectionEntry 4 } + + cefFESelectionAdjLinkType OBJECT-TYPE + SYNTAX CefAdjLinkType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represent the link type for + the adjacency associated with this forwarding + Element List. + + The value of this object will be irrelevant and will + be set to unknown(5) if the forwarding element list + doesn't contain an adjacency forwarding element." + ::= { cefFESelectionEntry 5 } + + cefFESelectionAdjInterface OBJECT-TYPE + SYNTAX InterfaceIndexOrZero + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represent the interface for + the adjacency associated with this forwarding + Element List. + + The value of this object will be irrelevant and will + be set to zero if the forwarding element list doesn't + contain an adjacency forwarding element." + ::= { cefFESelectionEntry 6 } + + cefFESelectionAdjNextHopAddrType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represent the next hop address type for + the adjacency associated with this forwarding + Element List. + + The value of this object will be irrelevant and will + be set to unknown(0) if the forwarding element list + doesn't contain an adjacency forwarding element." + ::= { cefFESelectionEntry 7 } + + cefFESelectionAdjNextHopAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represent the next hop address for + the adjacency associated with this forwarding + Element List. + + The value of this object will be irrelevant and will + be set to zero if the forwarding element list doesn't + contain an adjacency forwarding element." + ::= { cefFESelectionEntry 8 } + + cefFESelectionAdjConnId OBJECT-TYPE + SYNTAX Unsigned32(0 | 1..4294967295) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represent the connection id for + the adjacency associated with this forwarding + Element List. + + The value of this object will be irrelevant and will + be set to zero if the forwarding element list doesn't + contain an adjacency forwarding element. + + In cases where cefFESelectionAdjLinkType, interface + and the next hop address are not able to uniquely + define an adjacency entry (e.g. ATM and Frame Relay + Bundles), this object is a unique identifier + to differentiate between these adjacency entries." + ::= { cefFESelectionEntry 9 } + + cefFESelectionVrfName OBJECT-TYPE + SYNTAX MplsVpnId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represent the Vrf name for + the lookup associated with this forwarding + Element List. + + The value of this object will be irrelevant and will + be set to a string containing the single octet + 0x00 if the forwarding element list + doesn't contain a lookup forwarding element." + ::= { cefFESelectionEntry 10 } + + cefFESelectionWeight OBJECT-TYPE + SYNTAX Unsigned32(0 | 1..4294967295) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represent the weighting for + load balancing between multiple Forwarding Element + Lists. The value of this object will be zero if + load balancing is associated with this selection + entry." + ::= { cefFESelectionEntry 11 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Cfg Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + cefCfgTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefCfgEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains global config parameter + of CEF on the Managed device." + ::= { cefGlobal 1 } + + cefCfgEntry OBJECT-TYPE + SYNTAX CefCfgEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If the Managed device supports CEF, + each entry contains the CEF config + parameter for the managed entity. + A row may exist for each IP version type + (v4 and v6) depending upon the IP version + supported on the device. + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { entPhysicalIndex, + cefFIBIpVersion } + ::= { cefCfgTable 1} + + CefCfgEntry ::= SEQUENCE { + cefCfgAdminState CefAdminStatus, + cefCfgOperState CefOperStatus, + cefCfgDistributionAdminState CefAdminStatus, + cefCfgDistributionOperState CefOperStatus, + cefCfgAccountingMap BITS, + cefCfgLoadSharingAlgorithm INTEGER, + cefCfgLoadSharingID Unsigned32, + cefCfgTrafficStatsLoadInterval Unsigned32, + cefCfgTrafficStatsUpdateRate Unsigned32 + } + + cefCfgAdminState OBJECT-TYPE + SYNTAX CefAdminStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The desired state of CEF." + ::= { cefCfgEntry 1 } + + cefCfgOperState OBJECT-TYPE + SYNTAX CefOperStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current operational state of CEF. + + If the cefCfgAdminState is disabled(2), then + cefOperState will eventually go to the down(2) + state unless some error has occurred. + + If cefCfgAdminState is changed to enabled(1) then + cefCfgOperState should change to up(1) only if the + CEF entity is ready to forward the packets using + Cisco Express Forwarding (CEF) else it should remain + in the down(2) state. The up(1) state for this object + indicates that CEF entity is forwarding the packet + using Cisco Express Forwarding." + ::= { cefCfgEntry 2 } + + cefCfgDistributionAdminState OBJECT-TYPE + SYNTAX CefAdminStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The desired state of CEF distribution." + ::= { cefCfgEntry 3 } + + cefCfgDistributionOperState OBJECT-TYPE + SYNTAX CefOperStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current operational state of CEF distribution. + + If the cefCfgDistributionAdminState is disabled(2), then + cefDistributionOperState will eventually go to the down(2) + state unless some error has occurred. + + If cefCfgDistributionAdminState is changed to enabled(1) + then cefCfgDistributionOperState should change to up(1) + only if the CEF entity is ready to forward the packets + using Distributed Cisco Express Forwarding (dCEF) else + it should remain in the down(2) state. The up(1) state + for this object indicates that CEF entity is forwarding + the packet using Distributed Cisco Express Forwarding." + ::= { cefCfgEntry 4 } + + cefCfgAccountingMap OBJECT-TYPE + SYNTAX BITS { + nonRecursive(0), + perPrefix(1), + prefixLength(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object represents a bitmap of network + accounting options. + + CEF network accounting is disabled by default. + + CEF network accounting can be enabled + by selecting one or more of the following + CEF accounting option for the value + of this object. + + nonRecursive(0): enables accounting through + nonrecursive prefixes. + + perPrefix(1): enables the collection of the numbers + of pkts and bytes express forwarded + to a destination (prefix) + + prefixLength(2): enables accounting through + prefixlength. + + Once the accounting is enabled, the corresponding stats + can be retrieved from the cefPrefixTable and + cefStatsPrefixLenTable. + + " + ::= { cefCfgEntry 5 } + + cefCfgLoadSharingAlgorithm OBJECT-TYPE + SYNTAX INTEGER { + none (1), -- Load sharing is disabled + original (2), + tunnel (3), + universal(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates the CEF Load balancing algorithm. + + Setting this object to none(1) will disable + the Load sharing for the specified entry. + + CEF load balancing can be enabled by setting + this object to one of following Algorithms: + + original(2) : This algorithm is based on a + source and destination hash + + tunnel(3) : This algorithm is used in + tunnels environments or in + environments where there are + only a few source + + universal(4) : This algorithm uses a source and + destination and ID hash + + If the value of this object is set to 'tunnel' + or 'universal', then the FIXED ID for these + algorithms may be specified by the managed + object cefLoadSharingID. + " + ::= { cefCfgEntry 6 } + + cefCfgLoadSharingID OBJECT-TYPE + SYNTAX Unsigned32(0 | 1..4294967295) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The Fixed ID associated with the managed object + cefCfgLoadSharingAlgorithm. The hash of this object + value may be used by the Load Sharing Algorithm. + + The value of this object is not relevant and will + be set to zero if the value of managed object + cefCfgLoadSharingAlgorithm is set to none(1) or original(2). + The default value of this object is calculated by + the device at the time of initialization." + ::= { cefCfgEntry 7 } + + cefCfgTrafficStatsLoadInterval OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The interval time over which the CEF traffic statistics + are collected." + ::= { cefCfgEntry 8 } + + cefCfgTrafficStatsUpdateRate OBJECT-TYPE + SYNTAX Unsigned32(0 | 1..65535) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The frequency with which the line card sends the + traffic load statistics to the Router Processor. + + Setting the value of this object to 0 will disable + the CEF traffic statistics collection." + ::= { cefCfgEntry 9 } + + cefResourceTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefResourceEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains global resource + information of CEF on the Managed device." + ::= { cefGlobal 2 } + + cefResourceEntry OBJECT-TYPE + SYNTAX CefResourceEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If the Managed device supports CEF, + each entry contains the CEF Resource + parameters for the managed entity. + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { entPhysicalIndex } + ::= { cefResourceTable 1} + + CefResourceEntry ::= SEQUENCE { + cefResourceMemoryUsed Gauge32, + cefResourceFailureReason CefFailureReason + } + + cefResourceMemoryUsed OBJECT-TYPE + SYNTAX Gauge32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the number of bytes from + the Processor Memory Pool that + are currently in use by CEF on the + managed entity." + ::= { cefResourceEntry 1 } + + cefResourceFailureReason OBJECT-TYPE + SYNTAX CefFailureReason + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The CEF resource failure reason which may lead to CEF + being disabled on the managed entity." + ::= { cefResourceEntry 2 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Interface Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + cefIntTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefIntEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This Table contains interface specific + information of CEF on the Managed + device." + ::= { cefInterface 1 } + + cefIntEntry OBJECT-TYPE + SYNTAX CefIntEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device, + each entry contains the CEF attributes + associated with an interface. + The interface is instantiated by ifIndex. + Therefore, the interface index must have been + assigned, according to the applicable procedures, + before it can be meaningfully used. + Generally, this means that the interface must exist. + + A row may exist for each IP version type + (v4 and v6) depending upon the IP version + supported on the device. + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { entPhysicalIndex, cefFIBIpVersion, ifIndex } + ::= { cefIntTable 1} + + CefIntEntry ::= SEQUENCE { + cefIntSwitchingState INTEGER, + cefIntLoadSharing INTEGER, + cefIntNonrecursiveAccouting INTEGER + } + + cefIntSwitchingState OBJECT-TYPE + SYNTAX INTEGER { + cefEnabled (1), + distCefEnabled (2), + cefDisabled (3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The CEF switching State for the interface. + If CEF is enabled but distributed CEF(dCEF) is + disabled then CEF is in cefEnabled(1) state. + + If distributed CEF is enabled, then CEF is in + distCefEnabled(2) state. The cefDisabled(3) state + indicates that CEF is disabled. + + The CEF switching state is only applicable to the + received packet on the interface." + ::= { cefIntEntry 1 } + + cefIntLoadSharing OBJECT-TYPE + SYNTAX INTEGER { + perPacket (1), + perDestination (2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The status of load sharing on the + interface. + + perPacket(1) : Router to send data packets + over successive equal-cost paths + without regard to individual hosts + or user sessions. + + perDestination(2) : Router to use multiple, equal-cost + paths to achieve load sharing + + Load sharing is enabled by default + for an interface when CEF is enabled." + ::= { cefIntEntry 2 } + + + cefIntNonrecursiveAccouting OBJECT-TYPE + SYNTAX INTEGER { + internal(1), + external(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The CEF accounting mode for the interface. + CEF prefix based non-recursive accounting + on an interface can be configured to store + the stats for non-recursive prefixes in a internal + or external bucket. + + internal(1) : Count input traffic in the nonrecursive + internal bucket + + external(2) : Count input traffic in the nonrecursive + external bucket + + The value of this object will only be effective if + value of the object cefAccountingMap is set to enable + nonRecursive(1) accounting." + ::= { cefIntEntry 3 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Peer Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + cefPeerTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefPeerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entity acting as RP (Routing Processor) keeps + the CEF states for the line card entities and + communicates with the line card entities using + XDR. This Table contains the CEF information + related to peer entities on the managed device." + ::= { cefPeer 1 } + + cefPeerEntry OBJECT-TYPE + SYNTAX CefPeerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device, + each entry contains the CEF related attributes + associated with a CEF peer entity. + + entPhysicalIndex and entPeerPhysicalIndex are + also indexes for this table which represents + entities of 'module' entPhysicalClass which are + capable of running CEF." + INDEX { entPhysicalIndex, entPeerPhysicalIndex } + ::= { cefPeerTable 1} + + CefPeerEntry ::= SEQUENCE { + entPeerPhysicalIndex PhysicalIndex, + cefPeerOperState INTEGER, + cefPeerNumberOfResets Counter32 + } + + entPeerPhysicalIndex OBJECT-TYPE + SYNTAX PhysicalIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The entity index for the CEF peer entity. + Only the entities of 'module' + entPhysicalClass are included here." + ::= { cefPeerEntry 1 } + + cefPeerOperState OBJECT-TYPE + SYNTAX INTEGER { + peerDisabled (1), + peerUp (2), + peerHold (3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current CEF operational state of the CEF peer entity. + + Cef peer entity oper state will be peerDisabled(1) in + the following condition: + + : Cef Peer entity encounters fatal error i.e. resource + allocation failure, ipc failure etc + + : When a reload/delete request is received from the Cef + Peer Entity + + Once the peer entity is up and no fatal error is encountered, + then the value of this object will transits to the peerUp(3) + state. + + If the Cef Peer entity is in held stage, then the value + of this object will be peerHold(3). Cef peer entity can only + transit to peerDisabled(1) state from the peerHold(3) state." + ::= { cefPeerEntry 2 } + + cefPeerNumberOfResets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of times the session with CEF peer entity + has been reset." + ::= { cefPeerEntry 3 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Peer FIB Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + cefPeerFIBTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefPeerFIBEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entity acting as RP (Routing Processor) keep + the CEF FIB states for the line card entities and + communicate with the line card entities using + XDR. This Table contains the CEF FIB State + related to peer entities on the managed device." + ::= { cefPeer 2 } + + cefPeerFIBEntry OBJECT-TYPE + SYNTAX CefPeerFIBEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device, + each entry contains the CEF FIB State + associated a CEF peer entity. + + entPhysicalIndex and entPeerPhysicalIndex are + also indexes for this table which represents + entities of 'module' entPhysicalClass which are + capable of running CEF." + INDEX { entPhysicalIndex, + entPeerPhysicalIndex, + cefFIBIpVersion } + ::= { cefPeerFIBTable 1} + + CefPeerFIBEntry ::= SEQUENCE { + cefPeerFIBOperState INTEGER + } + + cefPeerFIBOperState OBJECT-TYPE + SYNTAX INTEGER { + peerFIBDown (1), + peerFIBUp (2), + peerFIBReloadRequest(3), + peerFIBReloading (4), + peerFIBSynced (5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current CEF FIB Operational State for the + CEF peer entity. + " + ::= { cefPeerFIBEntry 1 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Prefix Length Stats Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + cefStatsPrefixLenTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefStatsPrefixLenEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table specifies the CEF stats based + on the Prefix Length." + ::= { cefStats 1 } + + cefStatsPrefixLenEntry OBJECT-TYPE + SYNTAX CefStatsPrefixLenEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device + and if CEF accounting is set to enable + prefix length based accounting (value of + cefCfgAccountingMap object in the + cefCfgEntry is set to enable 'prefixLength' + accounting), each entry contains the traffic + statistics for a prefix length. + A row may exist for each IP version type + (v4 and v6) depending upon the IP version + supported on the device. + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { entPhysicalIndex, + cefFIBIpVersion, + cefStatsPrefixLen } + ::= { cefStatsPrefixLenTable 1} + + CefStatsPrefixLenEntry ::= SEQUENCE { + cefStatsPrefixLen InetAddressPrefixLength, + cefStatsPrefixQueries Counter32, + cefStatsPrefixHCQueries Counter64, + cefStatsPrefixInserts Counter32, + cefStatsPrefixHCInserts Counter64, + cefStatsPrefixDeletes Counter32, + cefStatsPrefixHCDeletes Counter64, + cefStatsPrefixElements Gauge32, + cefStatsPrefixHCElements CounterBasedGauge64 + } + + + cefStatsPrefixLen OBJECT-TYPE + SYNTAX InetAddressPrefixLength + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Length in bits of the Destination IP prefix. + As 0.0.0.0/0 is a valid prefix, hence + 0 is a valid prefix length." + ::= { cefStatsPrefixLenEntry 1 } + + cefStatsPrefixQueries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of queries received in the FIB database + for the specified IP prefix length." + ::= { cefStatsPrefixLenEntry 2 } + + cefStatsPrefixHCQueries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of queries received in the FIB database + for the specified IP prefix length. + This object is a 64-bit version of + cefStatsPrefixQueries." + ::= { cefStatsPrefixLenEntry 3 } + + cefStatsPrefixInserts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of insert operations performed to the FIB + database for the specified IP prefix length." + ::= { cefStatsPrefixLenEntry 4 } + + cefStatsPrefixHCInserts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of insert operations performed to the FIB + database for the specified IP prefix length. + This object is a 64-bit version of + cefStatsPrefixInsert." + ::= { cefStatsPrefixLenEntry 5 } + + cefStatsPrefixDeletes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of delete operations performed to the FIB + database for the specified IP prefix length." + ::= { cefStatsPrefixLenEntry 6 } + + cefStatsPrefixHCDeletes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of delete operations performed to the FIB + database for the specified IP prefix length. + This object is a 64-bit version of + cefStatsPrefixDelete." + ::= { cefStatsPrefixLenEntry 7 } + + cefStatsPrefixElements OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of elements in the FIB database for the + specified IP prefix length." + ::= { cefStatsPrefixLenEntry 8 } + + cefStatsPrefixHCElements OBJECT-TYPE + SYNTAX CounterBasedGauge64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of elements in the FIB database for the + specified IP prefix length. + This object is a 64-bit version of + cefStatsPrefixElements." + ::= { cefStatsPrefixLenEntry 9 } + + + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Switching Stats Table +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + cefSwitchingStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefSwitchingStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table specifies the CEF switch stats." + ::= { cefStats 2 } + + cefSwitchingStatsEntry OBJECT-TYPE + SYNTAX CefSwitchingStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If CEF is enabled on the Managed device, + each entry specifies the switching stats. + A row may exist for each IP version type + (v4 and v6) depending upon the IP version + supported on the device. + + entPhysicalIndex is also an index for this + table which represents entities of + 'module' entPhysicalClass which are capable + of running CEF." + INDEX { entPhysicalIndex, + cefFIBIpVersion, + cefSwitchingIndex + } + ::= { cefSwitchingStatsTable 1} + + CefSwitchingStatsEntry ::= SEQUENCE { + cefSwitchingIndex Integer32, + cefSwitchingPath SnmpAdminString, + cefSwitchingDrop Counter32, + cefSwitchingHCDrop Counter64, + cefSwitchingPunt Counter32, + cefSwitchingHCPunt Counter64, + cefSwitchingPunt2Host Counter32, + cefSwitchingHCPunt2Host Counter64 + } + + cefSwitchingIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The locally arbitrary, but unique identifier associated + with this switching stats entry." + ::= { cefSwitchingStatsEntry 1 } + + cefSwitchingPath OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(1..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Switch path where the feature was executed. + Available switch paths are platform-dependent. + Following are the examples of switching paths: + + RIB : switching with CEF assistance + + Low-end switching (LES) : CEF switch path + + PAS : CEF turbo switch path. + " + ::= { cefSwitchingStatsEntry 2 } + + cefSwitchingDrop OBJECT-TYPE + SYNTAX Counter32 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of packets dropped by CEF." + ::= { cefSwitchingStatsEntry 3 } + + cefSwitchingHCDrop OBJECT-TYPE + SYNTAX Counter64 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of packets dropped by CEF. + This object is a 64-bit version of cefSwitchingDrop." + ::= { cefSwitchingStatsEntry 4 } + + cefSwitchingPunt OBJECT-TYPE + SYNTAX Counter32 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of packets that could not be switched + in the normal path and were punted to the + next-fastest switching vector." + ::= { cefSwitchingStatsEntry 5 } + + cefSwitchingHCPunt OBJECT-TYPE + SYNTAX Counter64 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of packets that could not be switched + in the normal path and were punted to the + next-fastest switching vector. + This object is a 64-bit version of cefSwitchingPunt." + ::= { cefSwitchingStatsEntry 6 } + + cefSwitchingPunt2Host OBJECT-TYPE + SYNTAX Counter32 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of packets that could not be switched + in the normal path and were punted to the host + (process switching path). + + For most of the switching paths, the value of + this object may be similar to cefSwitchingPunt." + ::= { cefSwitchingStatsEntry 7 } + + cefSwitchingHCPunt2Host OBJECT-TYPE + SYNTAX Counter64 + UNITS "packets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of packets that could not be switched + in the normal path and were punted to the host + (process switching path). + + For most of the switching paths, the value of + this object may be similar to cefSwitchingPunt. + This object is a 64-bit version of cefSwitchingPunt2Host." + ::= { cefSwitchingStatsEntry 8 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF IP Prefix Consistency Checker Group +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + cefCCGlobalTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefCCGlobalEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains CEF consistency checker + (CC) global parameters for the managed device." + ::= { cefCC 1 } + + cefCCGlobalEntry OBJECT-TYPE + SYNTAX CefCCGlobalEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If the managed device supports CEF, + each entry contains the global consistency + checker parameter for the managed device. + A row may exist for each IP version type + (v4 and v6) depending upon the IP version + supported on the device." + INDEX { cefFIBIpVersion } + ::= { cefCCGlobalTable 1} + + CefCCGlobalEntry ::= SEQUENCE { + cefCCGlobalAutoRepairEnabled TruthValue, + cefCCGlobalAutoRepairDelay Unsigned32, + cefCCGlobalAutoRepairHoldDown Unsigned32, + cefCCGlobalErrorMsgEnabled TruthValue, + cefCCGlobalFullScanAction CefCCAction, + cefCCGlobalFullScanStatus CefCCStatus + } + + cefCCGlobalAutoRepairEnabled OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Once an inconsistency has been detected, + CEF has the ability to repair the problem. + This object indicates the status of auto-repair + function for the consistency checkers." + ::= { cefCCGlobalEntry 1 } + + cefCCGlobalAutoRepairDelay OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indiactes how long the consistency checker + waits to fix an inconsistency. + + The value of this object has no effect when the + value of object cefCCGlobalAutoRepairEnabled + is 'false'." + ::= { cefCCGlobalEntry 2 } + + cefCCGlobalAutoRepairHoldDown OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates how long the consistency checker + waits to re-enable auto-repair after + auto-repair runs. + + The value of this object has no effect when the + value of object cefCCGlobalAutoRepairEnabled + is 'false'." + ::= { cefCCGlobalEntry 3 } + + cefCCGlobalErrorMsgEnabled OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enables the consistency checker to generate + an error message when it detects an inconsistency." + ::= { cefCCGlobalEntry 4 } + + cefCCGlobalFullScanAction OBJECT-TYPE + SYNTAX CefCCAction + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Setting the value of this object to ccActionStart(1) + will start the full scan consistency checkers. + + The Management station should poll the + cefCCGlobalFullScanStatus object to get the + state of full-scan operation. + + Once the full-scan operation completes (value + of cefCCGlobalFullScanStatus object is ccStatusDone(3)), + the Management station should retrieve the values of the + related stats object from the cefCCTypeTable. + + Setting the value of this object to ccActionAbort(2) will + abort the full-scan operation. + + The value of this object can't be set to ccActionStart(1), + if the value of object cefCCGlobalFullScanStatus + is ccStatusRunning(2). + + The value of this object will be set to cefActionNone(1) + when the full scan consistency checkers have never + been activated. + + A Management Station cannot set the value of + this object to cefActionNone(1)." + DEFVAL { ccActionNone } + ::= { cefCCGlobalEntry 5 } + + cefCCGlobalFullScanStatus OBJECT-TYPE + SYNTAX CefCCStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the status of the full scan consistency + checker request." + ::= { cefCCGlobalEntry 6 } + + -- + -- Consistency Checker Type Table + -- + + cefCCTypeTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefCCTypeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains CEF consistency + checker types specific parameters on the managed device. + + All detected inconsistency are signaled to the + Management Station via cefInconsistencyDetection + notification. + " + ::= { cefCC 2 } + + cefCCTypeEntry OBJECT-TYPE + SYNTAX CefCCTypeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If the managed device supports CEF, + each entry contains the consistency + checker statistics for a consistency + checker type. + A row may exist for each IP version type + (v4 and v6) depending upon the IP version + supported on the device." + INDEX { cefFIBIpVersion, + cefCCType } + ::= { cefCCTypeTable 1} + + CefCCTypeEntry ::= SEQUENCE { + cefCCType CefCCType, + cefCCEnabled TruthValue, + cefCCCount Unsigned32, + cefCCPeriod Unsigned32, + cefCCQueriesSent Counter32, + cefCCQueriesIgnored Counter32, + cefCCQueriesChecked Counter32, + cefCCQueriesIterated Counter32 + } + + cefCCType OBJECT-TYPE + SYNTAX CefCCType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Type of the consistency checker." + ::= { cefCCTypeEntry 1 } + + cefCCEnabled OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enables the passive consistency checker. + Passive consistency checkers are disabled + by default. + + Full-scan consistency checkers are always enabled. + An attempt to set this object to 'false' for + an active consistency checker will result in + 'wrongValue' error." + ::= { cefCCTypeEntry 2 } + + cefCCCount OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of prefixes to check per scan. + + The default value for this object + depends upon the consistency checker type. + + The value of this object will be irrelevant + for some of the consistency checkers and + will be set to 0. + + A Management Station cannot set the value of + this object to 0." + ::= { cefCCTypeEntry 3 } + + cefCCPeriod OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The period between scans for the consistency + checker." + ::= { cefCCTypeEntry 4 } + + cefCCQueriesSent OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of prefix consistency queries sent to CEF + forwarding databases by this consistency checker." + ::= { cefCCTypeEntry 5 } + + cefCCQueriesIgnored OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of prefix consistency queries for which + the consistency checks were not performed by this + consistency checker. This may be because of some + internal error or resource failure." + ::= { cefCCTypeEntry 6 } + + cefCCQueriesChecked OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of prefix consistency queries processed by this + consistency checker." + ::= { cefCCTypeEntry 7 } + + cefCCQueriesIterated OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of prefix consistency queries iterated back to + the master database by this consistency checker." + ::= { cefCCTypeEntry 8 } + + -- + -- Inconsistency Record Table + -- + + cefInconsistencyRecordTable OBJECT-TYPE + SYNTAX SEQUENCE OF CefInconsistencyRecordEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains CEF inconsistency + records." + ::= { cefCC 3 } + + cefInconsistencyRecordEntry OBJECT-TYPE + SYNTAX CefInconsistencyRecordEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "If the managed device supports CEF, + each entry contains the inconsistency + record." + INDEX { cefFIBIpVersion, + cefInconsistencyRecId } + ::= { cefInconsistencyRecordTable 1} + + CefInconsistencyRecordEntry ::= SEQUENCE { + cefInconsistencyRecId Integer32, + cefInconsistencyPrefixType InetAddressType, + cefInconsistencyPrefixAddr InetAddress, + cefInconsistencyPrefixLen InetAddressPrefixLength, + cefInconsistencyVrfName MplsVpnId, + cefInconsistencyCCType CefCCType, + cefInconsistencyEntity EntPhysicalIndexOrZero, + cefInconsistencyReason INTEGER + } + + cefInconsistencyRecId OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The locally arbitrary, but unique identifier associated + with this inconsistency record entry." + ::= { cefInconsistencyRecordEntry 1 } + + cefInconsistencyPrefixType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network prefix type associated with this inconsistency + record." + ::= { cefInconsistencyRecordEntry 2 } + + cefInconsistencyPrefixAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network prefix address associated with this + inconsistency record. + + The type of this address is determined by + the value of the cefInconsistencyPrefixType object." + ::= { cefInconsistencyRecordEntry 3 } + + cefInconsistencyPrefixLen OBJECT-TYPE + SYNTAX InetAddressPrefixLength + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Length in bits of the inconsistency address prefix." + ::= { cefInconsistencyRecordEntry 4 } + + cefInconsistencyVrfName OBJECT-TYPE + SYNTAX MplsVpnId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Vrf name associated with this inconsistency record." + ::= { cefInconsistencyRecordEntry 5 } + + cefInconsistencyCCType OBJECT-TYPE + SYNTAX CefCCType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of consistency checker who generated this + inconsistency record." + ::= { cefInconsistencyRecordEntry 6 } + + cefInconsistencyEntity OBJECT-TYPE + SYNTAX EntPhysicalIndexOrZero + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The entity for which this inconsistency record was + generated. The value of this object will be + irrelevant and will be set to 0 when the inconsisency + record is applicable for all the entities." + ::= { cefInconsistencyRecordEntry 7 } + + cefInconsistencyReason OBJECT-TYPE + SYNTAX INTEGER { + missing (1), + checksumErr(2), + unknown (3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The reason for generating this inconsistency record. + + missing(1): the prefix is missing + + checksumErr(2): checksum error was found + + unknown(3): reason is unknown + " + ::= { cefInconsistencyRecordEntry 8 } + + -- + -- Global objects for CEF Inconsistency + -- + + -- last change time stamp for the whole MIB + entLastInconsistencyDetectTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time an + inconsistency is detecetd." + ::= { cefCC 4 } + + cefInconsistencyReset OBJECT-TYPE + SYNTAX CefCCAction + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Setting the value of this object to ccActionStart(1) + will reset all the active consistency checkers. + + The Management station should poll the + cefInconsistencyResetStatus object to get the + state of inconsistency reset operation. + + This operation once started, cannot be aborted. + Hence, the value of this object cannot be set to + ccActionAbort(2). + + The value of this object can't be set to ccActionStart(1), + if the value of object cefInconsistencyResetStatus + is ccStatusRunning(2). + " + DEFVAL { ccActionNone } + ::= { cefCC 5 } + + cefInconsistencyResetStatus OBJECT-TYPE + SYNTAX CefCCStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the status of the consistency reset + request." + ::= { cefCC 6 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- The CEF Notif Control Group +-- +-- This group of objects controls the sending of CEF Notifications +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + cefResourceFailureNotifEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates whether or not a notification should be + generated on the detection of CEF resource Failure." + ::= { cefNotifCntl 1 } + + cefPeerStateChangeNotifEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates whether or not a notification should be + generated on the detection of CEF peer state change." + ::= { cefNotifCntl 2 } + + cefPeerFIBStateChangeNotifEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates whether or not a notification should be + generated on the detection of CEF FIB peer state change." + ::= { cefNotifCntl 3 } + + cefNotifThrottlingInterval OBJECT-TYPE + SYNTAX Integer32 (0 | 1..3600) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object controls the generation of the + cefInconsistencyDetection notification. + + If this object has a value of zero, + then the throttle control is disabled. + + If this object has a non-zero value, then the agent + must not generate more than one + cefInconsistencyDetection 'notification-event' in the + indicated period, where a 'notification-event' is the + transmission of a single trap + or inform PDU to a list of notification destinations. + + If additional inconsistency is detected within the + throttling period, then notification-events + for these inconsistencies should be suppressed by the agent + until the current throttling period expires. At the end of a + throttling period, one notification-event should be generated + if any inconsistency was detected since the start of the + throttling period. In such a case, another throttling period + is started right away. + + An NMS should periodically poll cefInconsistencyRecordTable + to detect any missed cefInconsistencyDetection + notification-events, e.g., due to throttling or transmission + loss. + + If cefNotifThrottlingInterval notification generation + is enabled, the suggested default throttling period is + 60 seconds, but generation of the cefInconsistencyDetection + notification should be disabled by default. + + If the agent is capable of storing non-volatile + configuration, then the value of this object must be + restored after a re-initialization of the management + system. + + The actual transmission of notifications is controlled + via the MIB modules in RFC 3413." + DEFVAL { 0 } + ::= { cefNotifCntl 4 } + + cefInconsistencyNotifEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates whether cefInconsistencyDetection notification + should be generated for this managed device." + ::= { cefNotifCntl 5 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- CEF Notifications +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + cefResourceFailure NOTIFICATION-TYPE + OBJECTS { + cefResourceFailureReason + } + STATUS current + DESCRIPTION + "A cefResourceFailure notification is generated when + CEF resource failure on the managed entity is + detected. The reason for this failure is indicated + by cefResourcefFailureReason." + ::= { ciscoCefMIBNotifs 1 } + + cefPeerStateChange NOTIFICATION-TYPE + OBJECTS { + cefPeerOperState + } + STATUS current + DESCRIPTION + "A cefPeerStateChange notification is generated if + change in cefPeerOperState is detected for the + peer entity." + ::= { ciscoCefMIBNotifs 2 } + + cefPeerFIBStateChange NOTIFICATION-TYPE + OBJECTS { + cefPeerFIBOperState + } + STATUS current + DESCRIPTION + "A cefPeerFIBStateChange notification is generated if + change in cefPeerFIBOperState is detected for the + peer entity." + ::= { ciscoCefMIBNotifs 3 } + + cefInconsistencyDetection NOTIFICATION-TYPE + OBJECTS { + entLastInconsistencyDetectTime + } + STATUS current + DESCRIPTION + "A cefInconsistencyDetection notification is generated + when CEF consistency checkers detects an inconsistent + prefix in one of the CEF forwarding databases. + + Note that the generation of cefInconsistencyDetection + notifications is throttled by the agent, as specified + by the 'cefNotifThrottlingInterval' object." + ::= { ciscoCefMIBNotifs 4 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Conformance Information +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + cefMIBGroups OBJECT IDENTIFIER + ::= { ciscoCefMIBConform 1 } + cefMIBCompliances OBJECT IDENTIFIER + ::= { ciscoCefMIBConform 2 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Compliance Statements +-- +++++++++++++++++++++++++++++++++++ ++++++++++++++++++++ + cefMIBCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMP Agents which + implement this MIB." + MODULE -- this module + MANDATORY-GROUPS { cefGroup, + cefNotifCntlGroup, + cefNotificationGroup + } + + GROUP cefDistributedGroup + DESCRIPTION + "This group should be supported on the agents + which support distributed CEF (dCEF)." + + GROUP cefHCStatsGroup + DESCRIPTION + "This group should be supported on the agents + which support 64-bit counters." + + -- OBJECT cefFESelectionAdjNextHopAddrType + -- SYNTAX InetAddressType { ipv4(1), ipv6(2) } + -- DESCRIPTION + -- "An implementation is required to support global IPv4 + -- and/or IPv6 addresses, depending on its support for + -- IPv4 and IPv6." + + OBJECT cefFESelectionAdjNextHopAddr + SYNTAX InetAddress (SIZE(4|16)) + DESCRIPTION + "An implementation is required to support global IPv4 + and/or IPv6 addresses, depending on its support for + IPv4 and IPv6." + + -- OBJECT cefInconsistencyPrefixType + -- SYNTAX InetAddressType { ipv4(1), ipv6(2) } + -- DESCRIPTION + -- "An implementation is required to support global IPv4 + -- and/or IPv6 addresses, depending on its support for + -- IPv4 and IPv6." + + OBJECT cefInconsistencyPrefixAddr + SYNTAX InetAddress (SIZE(4|16)) + DESCRIPTION + "An implementation is required to support global IPv4 + and/or IPv6 addresses, depending on its support for + IPv4 and IPv6." + + ::= { cefMIBCompliances 1 } + + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Units of Conformance +-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + cefGroup OBJECT-GROUP + OBJECTS { + cefFIBSummaryFwdPrefixes, + cefPrefixForwardingInfo, + cefPrefixPkts, + cefPrefixBytes, + cefPrefixInternalNRPkts, + cefPrefixInternalNRBytes, + cefPrefixExternalNRPkts, + cefPrefixExternalNRBytes, + cefLMPrefixSpinLock, + cefLMPrefixState, + cefLMPrefixAddr, + cefLMPrefixLen, + cefLMPrefixRowStatus, + cefPathType, + cefPathInterface, + cefPathNextHopAddr, + cefPathRecurseVrfName, + cefAdjSummaryComplete, + cefAdjSummaryIncomplete, + cefAdjSummaryFixup, + cefAdjSummaryRedirect, + cefAdjSource, + cefAdjEncap, + cefAdjFixup, + cefAdjMTU, + cefAdjForwardingInfo, + cefAdjPkts, + cefAdjBytes, + cefFESelectionSpecial, + cefFESelectionLabels, + cefFESelectionAdjLinkType, + cefFESelectionAdjInterface, + cefFESelectionAdjNextHopAddrType, + cefFESelectionAdjNextHopAddr, + cefFESelectionAdjConnId, + cefFESelectionVrfName, + cefFESelectionWeight, + cefCfgAdminState, + cefCfgOperState, + cefCfgAccountingMap, + cefCfgLoadSharingAlgorithm, + cefCfgLoadSharingID, + cefCfgTrafficStatsLoadInterval, + cefCfgTrafficStatsUpdateRate, + cefResourceMemoryUsed, + cefResourceFailureReason, + cefIntSwitchingState, + cefIntLoadSharing, + cefIntNonrecursiveAccouting, + cefStatsPrefixQueries, + cefStatsPrefixInserts, + cefStatsPrefixDeletes, + cefStatsPrefixElements, + cefSwitchingPath, + cefSwitchingDrop, + cefSwitchingPunt, + cefSwitchingPunt2Host + } + STATUS current + DESCRIPTION + "This group consists of all the managed objects + which are applicable to CEF irrespective + of the value of object cefDistributionOperState." + ::= { cefMIBGroups 1 } + + cefDistributedGroup OBJECT-GROUP + OBJECTS { + cefCfgDistributionAdminState, + cefCfgDistributionOperState, + cefPeerOperState, + cefPeerNumberOfResets, + cefPeerFIBOperState, + cefCCGlobalAutoRepairEnabled, + cefCCGlobalAutoRepairDelay, + cefCCGlobalAutoRepairHoldDown, + cefCCGlobalErrorMsgEnabled, + cefCCGlobalFullScanStatus, + cefCCGlobalFullScanAction, + cefCCEnabled, + cefCCCount, + cefCCPeriod, + cefCCQueriesSent, + cefCCQueriesIgnored, + cefCCQueriesChecked, + cefCCQueriesIterated, + entLastInconsistencyDetectTime, + cefInconsistencyPrefixType, + cefInconsistencyPrefixAddr, + cefInconsistencyPrefixLen, + cefInconsistencyVrfName, + cefInconsistencyCCType, + cefInconsistencyEntity, + cefInconsistencyReason, + cefInconsistencyReset, + cefInconsistencyResetStatus + } + + STATUS current + DESCRIPTION + "This group consists of all the Managed objects + which are only applicable to CEF is + the value of object cefDistributionOperState + is 'up'." + ::= { cefMIBGroups 2 } + + cefHCStatsGroup OBJECT-GROUP + OBJECTS { + cefPrefixHCPkts, + cefPrefixHCBytes, + cefPrefixInternalNRHCPkts, + cefPrefixInternalNRHCBytes, + cefPrefixExternalNRHCPkts, + cefPrefixExternalNRHCBytes, + cefAdjHCPkts, + cefAdjHCBytes, + cefStatsPrefixHCQueries, + cefStatsPrefixHCInserts, + cefStatsPrefixHCDeletes, + cefStatsPrefixHCElements, + cefSwitchingHCDrop, + cefSwitchingHCPunt, + cefSwitchingHCPunt2Host + } + STATUS current + DESCRIPTION + "This group consists of all the 64-bit + counter objects which are applicable to + CEF irrespective of the value of object + cefDistributionOperState." + ::= { cefMIBGroups 3 } + + cefNotifCntlGroup OBJECT-GROUP + OBJECTS { + cefResourceFailureNotifEnable, + cefPeerStateChangeNotifEnable, + cefPeerFIBStateChangeNotifEnable, + cefNotifThrottlingInterval, + cefInconsistencyNotifEnable + } + STATUS current + DESCRIPTION + "This group of objects controls the sending of + CEF Notifications." + ::= { cefMIBGroups 5 } + + cefNotificationGroup NOTIFICATION-GROUP + NOTIFICATIONS { + cefResourceFailure, + cefPeerStateChange, + cefPeerFIBStateChange, + cefInconsistencyDetection + } + STATUS current + DESCRIPTION + "This group contains the notifications for the CEF MIB." + ::= { cefMIBGroups 6 } + + +END diff --git a/mibs/CISCO-CEF-TC b/mibs/CISCO-CEF-TC new file mode 100644 index 0000000000..bb8d6f3fae --- /dev/null +++ b/mibs/CISCO-CEF-TC @@ -0,0 +1,453 @@ +-- *------------------------------------------------------------------ +-- * CISCO-CEF-TC.my: Cisco CEF TC. +-- * +-- * Sep 2005, Rohit Mendiratta +-- * +-- * This MIB module is used to define Textual Conventions +-- * for Cisco Express Forwarding (CEF). +-- * +-- * Copyright (c) 2005 by Cisco Systems, Inc. +-- * All rights reserved. +-- * +-- *------------------------------------------------------------------ +CISCO-CEF-TC DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY + FROM SNMPv2-SMI + TEXTUAL-CONVENTION + FROM SNMPv2-TC + ciscoMgmt + FROM CISCO-SMI; + + ciscoCefTextualConventions MODULE-IDENTITY + LAST-UPDATED "200509300000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + "Postal: Cisco Systems, Inc. + 170 West Tasman Drive + San Jose, CA 95134-1706 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-cef@cisco.com" + + DESCRIPTION + "This MIB module defines Textual Conventions and + OBJECT-IDENTITIES for use in documents defining + management information base (MIBs) modules for + managing Cisco Express Forwarding (CEF)." + REVISION "200509300000Z" + DESCRIPTION + "Initial version of this MIB module." + ::= { ciscoMgmt 493 } + +-- +++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Textual Conventions +-- +++++++++++++++++++++++++++++++++++++++++++++++++++ + + CefIpVersion ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The version of CEF IP forwarding." + SYNTAX INTEGER { + ipv4(1), + ipv6(2) + } + + CefAdjLinkType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Link type for the adjacency. The adjacency link type + identifies protocol stack on neighbour device which will + process packets fed through adjacency." + SYNTAX INTEGER { + ipv4 (1), + ipv6 (2), + mpls (3), -- For MPLS Label + raw (4), -- For bridging etc + unknown (5) + } + + CefAdjacencySource ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The mechanism by which the adjacency is learned. + As the mechanism of learning the adjacency can be + multiple (e.g. 'arp' and 'atmPVC'), hence the + value of this object represents the bit mask of + adjacency sources." + SYNTAX BITS { + atom (0), -- Any Transport over MPLS + linkRawAdj (1), -- Raw Link + ipPseudowireAdj (2), -- IP Pseudowire + arp (3), + p2pAdj (4), + frMap (5), -- Frame Relay Map + atmPVC (6), -- ATM PVC + atmSVC (7), -- ATM SVC + atmTVC (8), -- ATM Tag VC + nbma (9), -- Non-Broadcast Multiple + -- Access Media + mpoa (10), -- Multi-Protocol Over ATM + atmBundle (11), -- ATM Bundle + lec (12), -- LAN Emulation Client + nhrp (13), -- NBMA Next Hop + -- Resolution Protocol + ipv6ND (14), -- IPv6 Neighbour Discovery + cmcc (15), -- Cisco Mainframe Channel + -- Connection + ipv6SixtoFourTunnel (16), -- IPv6 6to4 Tunnel + ipv6IsaTapTunnel (17), -- IPv6 ISATAP Tunnel + ipv6AutoTunnel (18), -- IPv6 Auto Tunnel + fibLc (19), -- Linecard FIB + virtual (20), + multicast (21), + unknown (22) + } + + CefPathType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Type of the CEF Path. + receive(1) : path for the address + configured on any of the + interface in the device. + + connectedPrefix(2) : connected prefix path + + attachedPrefix(3) : attached prefix path + + attachedHost(4) : attached host path + + attachedNexthop(5) : attached next hop path + + recursiveNexthop(6) : recursive next hop path + + adjacencyPrefix(7) : adjacency prefix path + + specialPrefix(8) : special prefix path + + unknown(9): : unknown path + ." + SYNTAX INTEGER { + receive (1), + connectedPrefix (2), + attachedPrefix (3), + attachedHost (4), + attachedNexthop (5), + recursiveNexthop (6), + adjacencyPrefix (7), + specialPrefix (8), + unknown (9) + } + + CefPrefixSearchState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The state of prefix search operation. + The description of each state is given below: + + running(1) : this state signifies that a prefix + search request is running. + + matchFound(2) : this state signifies that a prefix + search request is completed and a prefix + match has been found. + + noMatchFound(3) : this state signifies that a prefix + search request is completed and a prefix + match has not been found. + " + SYNTAX INTEGER { + running (1), + matchFound (2), + noMatchFound (3) + } + + CefForwardingElementSpecialType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Type of special forwarding element + + illegal(1) : illegal special forwarding element. + the packet will be dropped. + + punt(2) : the packet will be punted to the + next switching path + + drop(3) : not supported for Destination IP to next hop + interface and the packet will be dropped + + discard(4) : the packet is for Destination IP through + next hop interface and it will be discarded + + null(5) : the packet is for Destination IP to null0, + it will be dropped + + glean(6) : an attempt will be made to complete the + encapsulation string through address + resolution + + unResolved(7): unresolved forwarding element. + the packet will be dropped unconditionally. + + noRoute(8) : no route forwarding element. + This forwarding element will result + in rate limited punts to the next + switching path(to generate ICMP + no route message) + + none(9) : not a special forwarding element and + the value of this object should be + ignored + + + " + SYNTAX INTEGER { + illegal (1), + punt (2), + drop (3), + discard (4), + null (5), + glean (6), + unresolved (7), + noRoute (8), + none (9) + } + + CefMplsLabelList ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This contains a list of MPLS Labels, + each separated by the ';' (semi-colon) character. + + MPLS Label values are in accordance with the + MplsLabel TEXTUAL-CONVENTION defined in the + MPLS-TC-MIB. + + The following is en example containing two MPLS labels: + + 4294;100 + + An empty string value for this object indicates + no MPLS Labels in this list. + " + SYNTAX OCTET STRING (SIZE (0..255)) + + CefAdminStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Admin status of CEF. The admin status of CEF + may differ from the oper status of CEF depending + upon the success of the admin operation." + SYNTAX INTEGER { + enabled (1), + disabled (2) + } + + CefOperStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Operational status of CEF." + SYNTAX INTEGER { + up (1), -- running + down (2) -- not running + } + + CefFailureReason ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Reason of CEF Failure: + + none(1) : no failure + + mallocFailure(2) : memory allocation failed for CEF + + hwFailure(3) : hardware interface failure + for CEF + + keepaliveFailure(4) : keepalive was not received from + the CEF peer entity + + noMsgBuffer(5) : message buffers were exhausted + while preparing IPC message to be + sent to the CEF peer entity + + invalidMsgSize(6) : IPC message was received with + invalid size from the + CEF peer entity + + internalError(7) : Some other internal error was + detected for CEF + " + SYNTAX INTEGER { + none (1), + mallocFailure (2), + hwFailure (3), + keepaliveFailure (4), + noMsgBuffer (5), + invalidMsgSize (6), + internalError (7) + } + + CefCCType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Type of the consistency checker. + + lcDetect : This is an active consistency checker + which is triggered when a packet cannot + be forwarded because the prefix is not + in the forwarding table. It Detects + missing prefixes on the linecard CEF + database by sending the missing prefixes + to the RP. + + scanFibLcRp : This is an passive consistency checker + which performs a passive scan check of + the table on the line card. + + This consistency checker operates on + the line card by examining the FIB table + for a configurable time period and sending + the next n prefixes to the RP. + + scanFibRpLc : This is an passive consistency checker + which performs a passive scan check of + RP by examining the FIB table for + a configurable period and + sending the next n prefixes to the + line card. + + scanRibFib : This is an passive consistency checker + which compares routing information base + (RIB) to the FIB table at a configurable + interval and provides the number of + entries missing from the FIB table. + + scanFibRib : This is an passive consistency checker + which compares FIB Tables to the + routing information base (RIB) + at a configurable interval and provides + the number of entries missing from the + FIB table. + + scanFibHwSw : This is an passive consistency checker + which compares FIB Tables in hardware + to the FIB Tables in RP. + + scanFibSwHw : This is an passive consistency checker + which compares FIB Tables in RP + to the FIB Tables in hardware. + + fullScanRibFib : This is an active consistency checker + which is triggered by Management Station + request. It compares the entire routing + information base (RIB) to the FIB table + and provide the number of entries missing + from the FIB Table. + + fullScanFibRib : This is an active consistency checker + which is triggered by Management Station + request. It compares the FIB table to the + routing information base (RIB) + and provide the number of entries missing + from the FIB Table. + + fullScanFibRpLc : This is an active consistency checker + which is triggered by Management Station + request. It compares the RP FIB Table + with FIB Table on each LC and report + inconsistencies. + + fullScanFibLcRp : This is an active consistency checker + which is triggered by Management Station + request. It compares the Fib Table on LC + with FIB table on RP and report + inconsistencies. + + fullScanFibHwSw : This is an active consistency checker + which is triggered by Management Station + request. It compares the Fib Table in + hardware with FIB table in RP and report + inconsistencies. + + fullScanFibSwHw : This is an active consistency checker + which is triggered by Management Station + request. It compares the Fib Table in RP + with FIB table in hardware and report + inconsistencies." + SYNTAX INTEGER { + lcDetect (1), + scanFibLcRp (2), + scanFibRpLc (3), + scanRibFib (4), + scanFibRib (5), + scanFibHwSw (6), + scanFibSwHw (7), + fullScanRibFib (8), + fullScanFibRib (9), + fullScanFibRpLc (10), + fullScanFibLcRp (11), + fullScanFibHwSw (12), + fullScanFibSwHw (13) + } + + CefCCAction ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The action to be performed for the consistency + checkers. + + ccActionStart(1) : start the Consistency checker + operation. + + ccActionAbort(2) : abort the Consistency checker + operation. After aborting, the + active process must recover. + This can take some time, and + during this period, the scan + cannot be restarted. + + ccActionNone(3) : no operation is being performed + on consistency checkers. + + " + SYNTAX INTEGER { + ccActionStart (1), + ccActionAbort (2), + ccActionNone (3) + } + + CefCCStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The status of consistency checker operation. + The description of each state is given below: + + ccStatusIdle(1) : this state signifies that + no consistency checker request + is being performed. + + ccStatusRunning(2) : this state signifies that + consistency checker request is + in progress. + + ccStatusDone(3) : this state signifies that + consistency checker request is + over. + + " + SYNTAX INTEGER { + ccStatusIdle (1), + ccStatusRunning (2), + ccStatusDone (3) + } + +END + + + + diff --git a/poller.php b/poller.php index 5031fdc7e4..deca1ceea6 100755 --- a/poller.php +++ b/poller.php @@ -51,9 +51,10 @@ if (isset($options['d'])) { echo("DEBUG!\n"); $debug = 1; } echo("Starting polling run:\n\n"); $polled_devices = 0; -$device_query = mysql_query("SELECT * FROM `devices` WHERE `ignore` = 0 AND `disabled` = 0 $where ORDER BY `device_id` ASC"); -while ($device = mysql_fetch_array($device_query)) +$device_query = mysql_query("SELECT `device_id` FROM `devices` WHERE `ignore` = 0 AND `disabled` = 0 $where ORDER BY `device_id` ASC"); +while ($device = mysql_fetch_assoc($device_query)) { + $device = mysql_fetch_assoc(mysql_query("SELECT * FROM `devices` WHERE `device_id` = '".$device['device_id']."'")); $status = 0; unset($array); $device_start = utime(); // Start counting device poll time