-- ***************************************************************** -- NBAR Protocol Discovery MIB file. -- -- August 2001, Richard Wellum --- -- Copyright (c) 2001, 2002 by Cisco Systems, Inc. -- All rights reserved. -- ***************************************************************** CISCO-NBAR-PROTOCOL-DISCOVERY-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Unsigned32, Counter32, Counter64, TimeTicks FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TEXTUAL-CONVENTION, TruthValue, RowStatus FROM SNMPv2-TC ifIndex, InterfaceIndex FROM IF-MIB ciscoMgmt FROM CISCO-SMI; ciscoNbarProtocolDiscoveryMIB MODULE-IDENTITY LAST-UPDATED "200208160000Z" ORGANIZATION "Cisco Systems, Inc." CONTACT-INFO " Cisco Systems Customer Service Postal: 170 W. Tasman Drive San Jose, CA 95134-1706 USA Tel: +1 800 553-NETS E-mail: cs-cnpd-mib@cisco.com" DESCRIPTION "Cisco NBAR Protocol Discovery MIB NBAR - Network Based Application Recognition is an intelligent classification engine that recognizes applications that are static (which use fixed TCP or UDP port numbers), and stateful (which dynamically assign TCP or UDP port numbers). Protocol Discovery - uses NBAR to show you the mix of applications currently running on the network. Key statistics are associated with each protocol. These statistics can be used to define traffic classes and QoS policies. Functionality: 1. To enable/disable Protocol Discovery per interface. 2. Display the protocols/applications which NBAR currently recognizes. 3. To display various Protocol Discovery statistics. 4. A configurable top N table which lists protocols using user defined criteria. 5. To configure notifications (traps) based on configurable statistic thresholds. 6. To maintain a history table of all notification events." REVISION "200208160000Z" DESCRIPTION "Added comment that cnpdStatusLastUpdateTime becomes zero when PD disabled. Added comment that during overflow in cnpdAllStatsTable, the 32 bit counter not valid. There is no overflow support for it. One should only use the HC (64 bit) counters to get the stats in cnpdAllStatsTable Default cnpdTopNConfigStatsSelect changed from 'bitRateSum' to 'byteCountSum'. Added better rowStatus descriptions to TopNConfig and ThresholdConfig tables. Added comment to explain what TopNSampleTime really does - i.e only changes sample time for bitrate on an interface. Changed sizes of TopN and Threshold tables according to memory requirements and recommendations from various platforms. Added following objects to cnpdThresholdHistoryTable: cnpdThresholdHistoryValue cnpdThresholdHistoryType cnpdThresholdHistoryProtocol cnpdThresholdHistoryStatsSelect Changed reported objects in Notification Table to reflect changes in cnpdThresholdHistoryTable." REVISION "200112280000Z" DESCRIPTION "Initial version of this MIB module" ::= { ciscoMgmt 244 } -- -- Textual Conventions -- CiscoPdProtocolIndex ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "An object which represents a unique identifier for a protocol or application which NBAR currently recognizes. The value of this object is defined in the cnpdSupportedProtocolsTable." SYNTAX Unsigned32 CiscoPdProtocolName ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Name of an application or protocol, which NBAR is capable of recognizing. For example: ftp, vdolive and citrix." SYNTAX OCTET STRING (SIZE (1..255)) CiscoPdDataType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "These are the data types which NBAR can measure a particular protocol by. bitRateIn(1) - incoming bitrate. bitRateOut(2) - outgoing bitrate. bitRateSum(3) - sum of incoming and outgoing bitrate. byteCountIn(4) - incoming bytecount. byteCountOut(5) - outgoing bytecount. byteCountSum(6) - sum of incoming and outgoing bytecount. packetCountIn(7) - incoming packetcount. packetCountOut(8) - outgoing packetcount. packetCountSum(9) - sum of incoming and outgoing packetcount. UNITS: bitrate - unit is kilo bits per second bytecount - unit is bytes packetcount - unit is packets" SYNTAX INTEGER { bitRateIn (1), bitRateOut (2), bitRateSum (3), byteCountIn (4), byteCountOut (5), byteCountSum (6), packetCountIn (7), packetCountOut (8), packetCountSum (9) } -- -- Overview of MIB Objects: -- cnpdMIBNotifications OBJECT IDENTIFIER ::= { ciscoNbarProtocolDiscoveryMIB 0 } cnpdMIBObjects OBJECT IDENTIFIER ::= { ciscoNbarProtocolDiscoveryMIB 1 } cnpdMIBConformance OBJECT IDENTIFIER ::= { ciscoNbarProtocolDiscoveryMIB 2 } cnpdStatus OBJECT IDENTIFIER ::= { cnpdMIBObjects 1 } cnpdAllStats OBJECT IDENTIFIER ::= { cnpdMIBObjects 2 } cnpdTopNConfig OBJECT IDENTIFIER ::= { cnpdMIBObjects 3 } cnpdTopNStats OBJECT IDENTIFIER ::= { cnpdMIBObjects 4 } cnpdThresholdConfig OBJECT IDENTIFIER ::= { cnpdMIBObjects 5 } cnpdThresholdHistory OBJECT IDENTIFIER ::= { cnpdMIBObjects 6 } cnpdNotificationsConfig OBJECT IDENTIFIER ::= { cnpdMIBObjects 7 } cnpdSupportedProtocols OBJECT IDENTIFIER ::= { cnpdMIBObjects 8 } cnpdMIBCompliances OBJECT IDENTIFIER ::= { cnpdMIBConformance 1 } cnpdMIBGroups OBJECT IDENTIFIER ::= { cnpdMIBConformance 2 } -- The NBAR Protocol Discovery Supported Protocols table -- cnpdSupportedProtocolsTable OBJECT-TYPE SYNTAX SEQUENCE OF CnpdSupportedProtocolsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Supported Protocols table lists all the protocols and applications which NBAR is currently capable of recognizing." ::= { cnpdSupportedProtocols 1 } cnpdSupportedProtocolsEntry OBJECT-TYPE SYNTAX CnpdSupportedProtocolsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A entry in the Supported Protocols table reflecting key information about a protocol." INDEX { cnpdSupportedProtocolsIndex } ::= { cnpdSupportedProtocolsTable 1 } CnpdSupportedProtocolsEntry ::= SEQUENCE { cnpdSupportedProtocolsIndex CiscoPdProtocolIndex, cnpdSupportedProtocolsName CiscoPdProtocolName } cnpdSupportedProtocolsIndex OBJECT-TYPE SYNTAX CiscoPdProtocolIndex (1..1024) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A unique identifier of a row in this table. Thus it also represents a unique identifier for a protocol or application which NBAR currently recognizes." ::= { cnpdSupportedProtocolsEntry 1 } cnpdSupportedProtocolsName OBJECT-TYPE SYNTAX CiscoPdProtocolName MAX-ACCESS read-only STATUS current DESCRIPTION "This object reflects the valid string of a protocol or application which NBAR currently recognizes." ::= { cnpdSupportedProtocolsEntry 2 } -- -- The NBAR Protocol Discovery Statistics group -- -- This group is comprised of two tables, cnpdStatusTable -- to enable Protocol Discovery, and -- cnpdAllStatsTable to store Protocol Discovery -- statistics. -- cnpdStatusTable OBJECT-TYPE SYNTAX SEQUENCE OF CnpdStatusEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The cnpdStatusTable is used to enable and disable Protocol Discovery on an interface." ::= { cnpdStatus 1 } cnpdStatusEntry OBJECT-TYPE SYNTAX CnpdStatusEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the cnpdStatusTable contains objects for enabling or disabling Protocol Discovery on a per interface basis." INDEX { ifIndex } ::= { cnpdStatusTable 1 } CnpdStatusEntry ::= SEQUENCE { cnpdStatusPdEnable TruthValue, cnpdStatusLastUpdateTime TimeTicks } cnpdStatusPdEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to enable or disable Protocol Discovery on an interface. If set to 'true' - Protocol Discovery is enabled on this Interface. If set to 'false' - Protocol Discovery is disabled on this Interface." ::= { cnpdStatusEntry 1 } cnpdStatusLastUpdateTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time Protocol Discovery was last enabled on an interface. If the interface does not have Protocol Discovery enabled this value is zero." ::= { cnpdStatusEntry 2 } cnpdAllStatsTable OBJECT-TYPE SYNTAX SEQUENCE OF CnpdAllStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The cnpdAllStatsTable contains all the statistics available for all the protocols/applications currently recognized by NBAR Protocol Discovery for a particular interface. In the event of an overflow, the 32 bit counters are not valid. There is no overflow support." ::= { cnpdAllStats 1 } cnpdAllStatsEntry OBJECT-TYPE SYNTAX CnpdAllStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the cnpdAllStatsTable table. This entry contains the statistics collected on all the protocols which NBAR classifies for a particular interface." INDEX { ifIndex, cnpdAllStatsProtocolsIndex } ::= { cnpdAllStatsTable 1 } CnpdAllStatsEntry ::= SEQUENCE { cnpdAllStatsProtocolsIndex CiscoPdProtocolIndex, cnpdAllStatsProtocolName CiscoPdProtocolName, cnpdAllStatsInPkts Counter32, cnpdAllStatsOutPkts Counter32, cnpdAllStatsInBytes Counter32, cnpdAllStatsOutBytes Counter32, cnpdAllStatsHCInPkts Counter64, cnpdAllStatsHCOutPkts Counter64, cnpdAllStatsHCInBytes Counter64, cnpdAllStatsHCOutBytes Counter64, cnpdAllStatsInBitRate Unsigned32, cnpdAllStatsOutBitRate Unsigned32 } cnpdAllStatsProtocolsIndex OBJECT-TYPE SYNTAX CiscoPdProtocolIndex (1..1024) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An object which represents a unique identifier for a protocol or application which NBAR currently recognizes. This object is an index into the SupportedProtocolsTable where details of the protocol can be found." ::= { cnpdAllStatsEntry 1 } cnpdAllStatsProtocolName OBJECT-TYPE SYNTAX CiscoPdProtocolName MAX-ACCESS read-only STATUS current DESCRIPTION "Name of the application or protocol, a unique textual string, assigned in the cnpdSupportedProtocolsTable." ::= { cnpdAllStatsEntry 2 } cnpdAllStatsInPkts OBJECT-TYPE SYNTAX Counter32 UNITS "packets" MAX-ACCESS read-only STATUS current DESCRIPTION "The packet count of inbound packets as determined by Protocol Discovery." ::= { cnpdAllStatsEntry 3 } cnpdAllStatsOutPkts OBJECT-TYPE SYNTAX Counter32 UNITS "packets" MAX-ACCESS read-only STATUS current DESCRIPTION "The packet count of outbound packets as determined by Protocol Discovery." ::= { cnpdAllStatsEntry 4 } cnpdAllStatsInBytes OBJECT-TYPE SYNTAX Counter32 UNITS "bytes" MAX-ACCESS read-only STATUS current DESCRIPTION "The byte count of inbound octets as determined by Protocol Discovery." ::= { cnpdAllStatsEntry 5 } cnpdAllStatsOutBytes OBJECT-TYPE SYNTAX Counter32 UNITS "bytes" MAX-ACCESS read-only STATUS current DESCRIPTION "The byte count of outbound octets as determined by Protocol Discovery." ::= { cnpdAllStatsEntry 6 } cnpdAllStatsHCInPkts OBJECT-TYPE SYNTAX Counter64 UNITS "packets" MAX-ACCESS read-only STATUS current DESCRIPTION "The packet count of inbound packets as determined by Protocol Discovery. This is the 64-bit (High Capacity) version of cnpdAllStatsInPkts." ::= { cnpdAllStatsEntry 7 } cnpdAllStatsHCOutPkts OBJECT-TYPE SYNTAX Counter64 UNITS "packets" MAX-ACCESS read-only STATUS current DESCRIPTION "The packet count of outbound packets as determined by Protocol Discovery. This is the 64-bit (High Capacity) version of cnpdAllStatsOutPkts." ::= { cnpdAllStatsEntry 8 } cnpdAllStatsHCInBytes OBJECT-TYPE SYNTAX Counter64 UNITS "bytes" MAX-ACCESS read-only STATUS current DESCRIPTION "The byte count of inbound octets as determined by Protocol Discovery. This is the 64-bit (High Capacity) version of cnpdAllStatsInBytes." ::= { cnpdAllStatsEntry 9 } cnpdAllStatsHCOutBytes OBJECT-TYPE SYNTAX Counter64 UNITS "bytes" MAX-ACCESS read-only STATUS current DESCRIPTION "The byte count of outbound octets as determined by Protocol Discovery. This is the 64-bit (High Capacity) version of cnpdAllStatsOutBytes." ::= { cnpdAllStatsEntry 10 } cnpdAllStatsInBitRate OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) UNITS "kilo bits per second" MAX-ACCESS read-only STATUS current DESCRIPTION "The inbound bit rate as determined by Protocol Discovery." ::= { cnpdAllStatsEntry 11 } cnpdAllStatsOutBitRate OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) UNITS "kilo bits per second" MAX-ACCESS read-only STATUS current DESCRIPTION "The outbound bit rate as determined by Protocol Discovery." ::= { cnpdAllStatsEntry 12 } -- The NBAR Protocol Discovery Top "N" Group -- -- This group is used to prepare a list of -- applications that top a list in order of -- bandwidth used, over an interval specified -- by the management station. -- cnpdTopNConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF CnpdTopNConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The cnpdTopNConfigTable is used to configure cnpdTopNStatsTable's." ::= { cnpdTopNConfig 1 } cnpdTopNConfigEntry OBJECT-TYPE SYNTAX CnpdTopNConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This entry provides the objects to configure and thus initiate the generation of a cnpdTopNStatsTable.." INDEX { cnpdTopNConfigIndex } ::= { cnpdTopNConfigTable 1 } CnpdTopNConfigEntry ::= SEQUENCE { cnpdTopNConfigIndex Unsigned32, cnpdTopNConfigIfIndex InterfaceIndex, cnpdTopNConfigStatsSelect CiscoPdDataType, cnpdTopNConfigSampleTime Unsigned32, cnpdTopNConfigRequestedSize Unsigned32, cnpdTopNConfigGrantedSize Unsigned32, cnpdTopNConfigTime TimeTicks, cnpdTopNConfigStatus RowStatus } cnpdTopNConfigIndex OBJECT-TYPE SYNTAX Unsigned32 (1..50) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A monotonically increasing integer which uniquely identifies a cnpdTopNConfigEntry in the cnpdTopNConfigTable." ::= { cnpdTopNConfigEntry 1 } cnpdTopNConfigIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-create STATUS current DESCRIPTION "This object allows the management station to select the interface, which Protocol Discovery is running on, to be used to create this cnpdTopNConfigEntry." ::= { cnpdTopNConfigEntry 2 } cnpdTopNConfigStatsSelect OBJECT-TYPE SYNTAX CiscoPdDataType MAX-ACCESS read-create STATUS current DESCRIPTION "This object allows the management station to select the statistic used to base the order of the top-n table on. For example: a cnpdTopNConfigStatsSelect of bitRateSum means order this table based on each applications/protocols combined in and out bitrate." DEFVAL { byteCountSum } ::= { cnpdTopNConfigEntry 3 } cnpdTopNConfigSampleTime OBJECT-TYPE SYNTAX Unsigned32 (1..2048) UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "If the cnpdTopNConfigStatsSelect is bitRateIn, bitRateOut or bitRateSum, then this value is the interval in seconds that the bitrate is sampled. This has no effect if the cnpdTopNConfigStatsSelect is byte or packet based. When this object is modified by the management station, a new sample period is started regardless of whether the original cnpdTopNConfigSampleTime was finished." DEFVAL { 10 } ::= { cnpdTopNConfigEntry 4 } cnpdTopNConfigRequestedSize OBJECT-TYPE SYNTAX Unsigned32 (1..500) MAX-ACCESS read-create STATUS current DESCRIPTION "The requested size of the associated cnpdTopNStatsTable entry. For example a cnpdTopNConfigRequestedSize of 20 indicates the management station wants to create an associated cnpdTopNStatsTable entry of 20 protocol/application's" DEFVAL { 10 } ::= { cnpdTopNConfigEntry 5 } cnpdTopNConfigGrantedSize OBJECT-TYPE SYNTAX Unsigned32 (1..500) MAX-ACCESS read-only STATUS current DESCRIPTION "The actual size of the associated cnpdTopNStatsTable entry. The reason this may differ from cnpdTopNConfigRequestedSize is because a management station may request a number of protocols that is greater than the number of protocols actually found by Protocol Discovery." ::= { cnpdTopNConfigEntry 6 } cnpdTopNConfigTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the associated cnpdTopNStatsTable entry was created." ::= { cnpdTopNConfigEntry 7 } cnpdTopNConfigStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to create or delete the row entry in cnpdTopNConfigTable. When creating a row entry the management station is required to specify a value for cnpdTopNConfigIfIndex only. 'notReady' means that a row exists but either it has no valid IfIndex or it has not been set to createAndGo or active. 'active' means that a createAndGo or active has been issued, AND a valid ifIndex exists. Therefore if a row is 'active' it means a TopNStats entry has been generated. If you set an 'active' row to createAndWait it will get the status 'notReady'. If you set any row to 'notReady' - it will go to the 'notReadystate'. If you set any row to 'notInService' - it will go to the 'notInService' state and the corresponding TopNStatsEntry will be deleted. The same TopNConfig entry can be re-used without changes by setting it to 'active'. The corresponding TopStatsTable entry will be regenerated. This can be used by the NMS to poll a particular TopNConfig Entry. Changes to an existing TopNConfig entry can be made by setting the status to 'createAndWait' and changing the necessary objects. Setting it to 'createAndGo' or 'active' will cause the corresponding TopNStats entry to be regenerated." ::= { cnpdTopNConfigEntry 8 } cnpdTopNStatsTable OBJECT-TYPE SYNTAX SEQUENCE OF CnpdTopNStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A cnpdTopNStatsTable describes an ordered list of protocols." ::= { cnpdTopNStats 1 } cnpdTopNStatsEntry OBJECT-TYPE SYNTAX CnpdTopNStatsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This entry is used to store a set of objects which describe a cnpdTopNStatsTable. A cnpdTopNStatsTable is a number of protocols and statistics sorted according to the criteria in the associated cnpdTopNConfigEntry. Therefore a cnpdTopNStatsTable can differ in content and size according to what was configured in the associated cnpdTopNConfigTableEntry." INDEX { cnpdTopNConfigIndex, cnpdTopNStatsIndex } ::= { cnpdTopNStatsTable 1 } CnpdTopNStatsEntry ::= SEQUENCE { cnpdTopNStatsIndex Unsigned32, cnpdTopNStatsProtocolName CiscoPdProtocolName, cnpdTopNStatsRate Counter32, cnpdTopNStatsHCRate Counter64 } cnpdTopNStatsIndex OBJECT-TYPE SYNTAX Unsigned32 (1..500) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A monotonically increasing integer which uniquely identifies a cnpdTopNStatsEntry in the cnpdTopNStatsTable." ::= { cnpdTopNStatsEntry 1 } cnpdTopNStatsProtocolName OBJECT-TYPE SYNTAX CiscoPdProtocolName MAX-ACCESS read-only STATUS current DESCRIPTION "Name of the application or protocol, a unique textual string, assigned in the cnpdSupportedProtocolsTable." ::= { cnpdTopNStatsEntry 2 } cnpdTopNStatsRate OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The amount of change in the selected statistic during this sampling interval. The selected statistic is the cnpdTopNConfigStatsSelect from the associated cnpdTopNConfigStatsEntry." ::= { cnpdTopNStatsEntry 3 } cnpdTopNStatsHCRate OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The amount of change in the selected statistic during this sampling interval. The selected statistic is the cnpdTopNConfigStatsSelect from the associated cnpdTopNConfigStatsEntry. This is the 64-bit (High Capacity) version of cnpdTopNStatsRate." ::= { cnpdTopNStatsEntry 4 } -- The NBAR Protocol Discovery Threshold group -- -- This group is used to configure and store threshold -- events. -- cnpdThresholdConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF CnpdThresholdConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The cnpdThresholdConfigTable allows the management station to create thresholds for the purpose of sending notifications if breached, and creating a history of breached thresholds." ::= { cnpdThresholdConfig 1 } cnpdThresholdConfigEntry OBJECT-TYPE SYNTAX CnpdThresholdConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This entry contains configuration information to set thresholds for the purpose of notifications. The management station is allowed to set thresholds on individual statistics for individual protocols on an interface. If the threshold is breached by the protocol statistic, a new event is written to the cnpdThresholdHistoryTable, which in turn will generate a Notification Event. This function has a hysteresis mechanism to limit the generation of events. This mechanism generates one event as a threshold is crossed in the appropriate direction. No more events are generated for that threshold until the opposite threshold is crossed. This stops repeated Notification events being generated each time the value is sampled, when the value is above the threshold. Instead one notification is sent when the threshold is breached and one notification when the statistic drops below the threshold value again." INDEX { cnpdThresholdConfigIndex } ::= { cnpdThresholdConfigTable 1 } CnpdThresholdConfigEntry ::= SEQUENCE { cnpdThresholdConfigIndex Unsigned32, cnpdThresholdConfigIfIndex InterfaceIndex, cnpdThresholdConfigInterval Unsigned32, cnpdThresholdConfigSampleType INTEGER, cnpdThresholdConfigProtocol CiscoPdProtocolIndex, cnpdThresholdConfigProtocolAny TruthValue, cnpdThresholdConfigStatsSelect CiscoPdDataType, cnpdThresholdConfigStartup INTEGER, cnpdThresholdConfigRising Unsigned32, cnpdThresholdConfigFalling Unsigned32, cnpdThresholdConfigStatus RowStatus } cnpdThresholdConfigIndex OBJECT-TYPE SYNTAX Unsigned32 (1..100) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A monotonically increasing integer which uniquely identifies an entry in the cnpdThresholdConfigTable." ::= { cnpdThresholdConfigEntry 1 } cnpdThresholdConfigIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-create STATUS current DESCRIPTION "This object allows the management station to select the interface, which Protocol Discovery is running on, to be used to create this cnpdThresholdConfigTable entry." ::= { cnpdThresholdConfigEntry 2 } cnpdThresholdConfigInterval OBJECT-TYPE SYNTAX Unsigned32 (1..2048) UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The interval in seconds over which the data is sampled and compared with cnpdThresholdConfigRising and cnpdThresholdConfigFalling thresholds." DEFVAL { 10 } ::= { cnpdThresholdConfigEntry 3 } cnpdThresholdConfigSampleType OBJECT-TYPE SYNTAX INTEGER { absoluteValue (1), deltaValue (2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The method of sampling the selected statistic and calculating the value to be compared against cnpdThresholdConfigRising or cnpdThresholdConfigFalling thresholds. If the value of this object is absoluteValue(1), the value at the end of the sampling interval cnpdThresholdConfigInterval, will be compared with the cnpdThresholdConfigRising and cnpdThresholdConfigFalling thresholds. In this mode, when cnpdThresholdConfigStatsSelect is byte or packet based, a maximum of two cnpdThresholdHistory entries will be created per application, as these byte and packet counts monotonically increase from zero. If the value of this object is deltaValue(2), the difference between the samples at the beginning and end of the cnpdThresholdConfigInterval will be compared with the cnpdThresholdConfigRising and cnpdThresholdConfigFalling thresholds. Because the difference in the previous and current samples are compared over the sample period cnpdThresholdConfigInterval, this mode provides more granularity to the thresholds because the NMS is now provided with the gradient or change in the cnpdThresholdConfigStatsSelect. Note that even though the sample value is monotonically increasing for byte and packet counts, cnpdThresholdConfigSampleType set to deltaValue, can generate falling cnpdThresholdHistory entries, because the gradient can be lower than the cnpdThresholdConfigFalling value." DEFVAL { absoluteValue } ::= { cnpdThresholdConfigEntry 4 } cnpdThresholdConfigProtocol OBJECT-TYPE SYNTAX CiscoPdProtocolIndex (1..1024) MAX-ACCESS read-create STATUS current DESCRIPTION "The application or protocol which the management station wishes to configure a threshold on. This object is an index into the SupportedProtocolsTable where details of the protocol can be found. If cnpdThresholdConfigProtocolAny is set to TRUE this value will be ignored. If it is set to FALSE, then cnpdThresholdConfigProtocol will be the only protocol that is checked to see if it has breached the threshold." ::= { cnpdThresholdConfigEntry 5 } cnpdThresholdConfigProtocolAny OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "If set to 'true' - this threshold is configured to check for any protocol which meets the threshold criteria. This means that multiple protocols can generate ThresholdHistoryTable entries. Each protocol is subject to the hysterisis mechanism. If set to 'false' - this threshold is configured to check for the protocol which meets the threshold criteria referred to by cnpdThresholdConfigProtocol." DEFVAL { true } ::= { cnpdThresholdConfigEntry 6 } cnpdThresholdConfigStatsSelect OBJECT-TYPE SYNTAX CiscoPdDataType MAX-ACCESS read-create STATUS current DESCRIPTION "This object allows the management station to select the statistic used to base the threshold on. For example a cnpdThresholdConfigStatsSelect of bitRateSum means cnpdThresholdConfigRising and cnpdThresholdConfigFalling are values based on the combined value of in and out bitrates." DEFVAL { bitRateSum } ::= { cnpdThresholdConfigEntry 7 } cnpdThresholdConfigStartup OBJECT-TYPE SYNTAX INTEGER { rising (1), falling (2), risingOrFalling (3) } MAX-ACCESS read-create STATUS current DESCRIPTION "This controls the type of notification that is sent when this threshold entry is first enabled. Because there is no previous sampling history, choosing one of these options determines the type of notification generated - Rising or Falling. If the first sample after this entry is enabled is greater than or equal to cnpdThresholdConfigRising and this object is equal to rising(1) or risingOrFalling(3), then a single rising notification will be generated. If the first sample after this entry is enabled is less than or equal to cnpdThresholdConfigFalling and this object is equal to falling(2) or risingOrFalling(3), then a single falling notification will be generated." DEFVAL { risingOrFalling } ::= { cnpdThresholdConfigEntry 8 } cnpdThresholdConfigRising OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS read-create STATUS current DESCRIPTION "This is the threshold object which the managment station sets to determine if it gets breached. It indicates the statistic being sampled was rising. When the current sample is greater than or equal to this object, and the value at the last sampling interval was less than this object (in other words the value is rising), an entry in the cnpdThresholdHistoryTable will be created. After a rising event is generated, another such event will not be generated until the sampled value falls below this threshold and reaches the cnpdThresholdConfigFalling value. This ensures that samples which are taken after a cnpdThresholdConfigRising threshold event has been created, do not create further thresholds and therefore notifications, until the cnpdThresholdConfigFalling threshold has been met. Thus a very short cnpdThresholdConfigInterval can be chosen without risk of multiple notifications for the same threshold breach condition." ::= { cnpdThresholdConfigEntry 9 } cnpdThresholdConfigFalling OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS read-create STATUS current DESCRIPTION "This is the threshold object which the management station sets to determine if it gets breached. It indicates the statistic being sampled was falling. When current sample is less than or equal to this object, and the value at the last sampling interval was greater than this object (in other words the value is falling), an entry in the cnpdThresholdHistoryTable will be created. After a falling event is generated, another such event will not be generated until the sampled value rises above this object and reaches the cnpdThresholdConfigRising value." ::= { cnpdThresholdConfigEntry 10 } cnpdThresholdConfigStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to create or delete the row entry in cnpdThresholdConfigTable. When creating a row entry the management station is required to specify a value for cnpdThresholdConfigIfIndex, cnpdThresholdConfigRising and cnpdThresholdConfigFalling. 'active' means that a createAndGo or active has been issued, AND a valid ifIndex exists. And therefore if a row is 'active' it means a ThresholdHistory entry may have been generated if the value was breached. If you set an 'active' row to 'createAndWait' - it will in fact get the status 'notReady'. Likewise if you set any row to 'notInService' or 'notReady' it will go to the 'notReady' state." ::= { cnpdThresholdConfigEntry 12 } cnpdThresholdHistoryTable OBJECT-TYPE SYNTAX SEQUENCE OF CnpdThresholdHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Threshold History table. Notifications are unreliable so this table provides a history of the last 5000 threshold breached events. A notification can be traced back to its cnpdThresholdHistoryEntry." ::= { cnpdThresholdHistory 1 } cnpdThresholdHistoryEntry OBJECT-TYPE SYNTAX CnpdThresholdHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This entry is created each time a threshold is breached. Thus there is not necessarily a one to one relationship to cnpdThresholdConfigTable as not every Threshold configured will be breached." INDEX { cnpdThresholdHistoryIndex } ::= { cnpdThresholdHistoryTable 1 } CnpdThresholdHistoryEntry ::= SEQUENCE { cnpdThresholdHistoryIndex Unsigned32, cnpdThresholdHistoryConfigIndex Unsigned32, cnpdThresholdHistoryValue Unsigned32, cnpdThresholdHistoryType INTEGER, cnpdThresholdHistoryTime TimeTicks, cnpdThresholdHistoryProtocol CiscoPdProtocolIndex, cnpdThresholdHistoryStatsSelect CiscoPdDataType } cnpdThresholdHistoryIndex OBJECT-TYPE SYNTAX Unsigned32 (1..1000) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A monotonically increasing integer which uniquely identifies this cnpdThresholdHistoryEntry in the cnpdThresholdHistory table." ::= { cnpdThresholdHistoryEntry 1 } cnpdThresholdHistoryConfigIndex OBJECT-TYPE SYNTAX Unsigned32 (1..1000) MAX-ACCESS read-only STATUS current DESCRIPTION "The cnpdThresholdConfigTable entry which generated this entry. Using this object the management station can backtrack to the appropriate cnpdThresholdConfigEntry." ::= { cnpdThresholdHistoryEntry 2 } cnpdThresholdHistoryValue OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "The actual value of the statistic when the sampling was made." ::= { cnpdThresholdHistoryEntry 3 } cnpdThresholdHistoryType OBJECT-TYPE SYNTAX INTEGER { risingBreach (1), fallingBreach (2) } MAX-ACCESS read-only STATUS current DESCRIPTION "Describes whether this is an event caused by a rising or falling threshold breach." ::= { cnpdThresholdHistoryEntry 4 } cnpdThresholdHistoryTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime of the running configuration when the event occurred." ::= { cnpdThresholdHistoryEntry 5 } cnpdThresholdHistoryProtocol OBJECT-TYPE SYNTAX CiscoPdProtocolIndex (1..1024) MAX-ACCESS read-only STATUS current DESCRIPTION "The application or protocol which the management station configured a threshold on. This object is an index into the SupportedProtocolsTable where details of the protocol can be found." ::= { cnpdThresholdHistoryEntry 6 } cnpdThresholdHistoryStatsSelect OBJECT-TYPE SYNTAX CiscoPdDataType MAX-ACCESS read-only STATUS current DESCRIPTION "This is the statistic used to base the threshold on." ::= { cnpdThresholdHistoryEntry 7 } -- The NBAR Protocol Discovery Notifications Config table -- cnpdNotificationsEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to enable or disable Notifications on a global basis. If set to 'true' - Notifications are enabled. If set to 'false' - Notifications are disabled." DEFVAL { false } ::= { cnpdNotificationsConfig 1 } -- The NBAR Protocol Discovery Notifications Group -- -- NOTIFICATIONS -- cnpdThresholdRisingEvent NOTIFICATION-TYPE OBJECTS { cnpdThresholdConfigIfIndex, cnpdThresholdConfigStatsSelect, cnpdThresholdHistoryValue, cnpdThresholdConfigRising, cnpdThresholdConfigProtocol, cnpdThresholdHistoryTime } STATUS current DESCRIPTION "A cnpdThresholdRisingEvent is sent whenever a notification entry crosses its rising threshold and generates an event that is added to the cnpdThresholdHistoryTable." ::= { cnpdMIBNotifications 1 } cnpdThresholdFallingEvent NOTIFICATION-TYPE OBJECTS { cnpdThresholdConfigIfIndex, cnpdThresholdConfigStatsSelect, cnpdThresholdHistoryValue, cnpdThresholdConfigFalling, cnpdThresholdConfigProtocol, cnpdThresholdHistoryTime } STATUS current DESCRIPTION "A cnpdThresholdConfigFallingEvent is sent whenever a notification entry crosses its falling threshold and generates an event that is added to the cnpdThresholdHistoryTable." ::= { cnpdMIBNotifications 2 } -- compliance statements cnpdMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities that implement NBAR Protocol Discovery on a Cisco router." MODULE -- this module MANDATORY-GROUPS { cnpdStatsGroup, cnpdTopNGroup, cnpdThresholdGroup, cnpdMIBNotificationsGroup, cnpdMIBNotificationsConfigGroup, cnpdSupportedProtocolsGroup } ::= { cnpdMIBCompliances 1 } cnpdStatsGroup OBJECT-GROUP OBJECTS { cnpdStatusPdEnable, cnpdStatusLastUpdateTime, cnpdAllStatsProtocolName, cnpdAllStatsInPkts, cnpdAllStatsOutPkts, cnpdAllStatsInBytes, cnpdAllStatsOutBytes, cnpdAllStatsHCInPkts, cnpdAllStatsHCOutPkts, cnpdAllStatsHCInBytes, cnpdAllStatsHCOutBytes, cnpdAllStatsInBitRate, cnpdAllStatsOutBitRate } STATUS current DESCRIPTION "Required objects to provide protocol application discovery info." ::= { cnpdMIBGroups 1 } cnpdTopNGroup OBJECT-GROUP OBJECTS { cnpdTopNConfigIfIndex, cnpdTopNConfigStatsSelect, cnpdTopNConfigRequestedSize, cnpdTopNConfigSampleTime, cnpdTopNConfigGrantedSize, cnpdTopNConfigTime, cnpdTopNConfigStatus, cnpdTopNStatsProtocolName, cnpdTopNStatsRate, cnpdTopNStatsHCRate } STATUS current DESCRIPTION "The set of objects supported to record notification events." ::= { cnpdMIBGroups 2 } cnpdThresholdGroup OBJECT-GROUP OBJECTS { cnpdThresholdConfigIfIndex, cnpdThresholdConfigInterval, cnpdThresholdConfigSampleType, cnpdThresholdConfigProtocol, cnpdThresholdConfigStatsSelect, cnpdThresholdConfigProtocolAny, cnpdThresholdConfigStartup, cnpdThresholdConfigRising, cnpdThresholdConfigFalling, cnpdThresholdConfigStatus, cnpdThresholdHistoryConfigIndex, cnpdThresholdHistoryValue, cnpdThresholdHistoryType, cnpdThresholdHistoryTime, cnpdThresholdHistoryProtocol, cnpdThresholdHistoryStatsSelect } STATUS current DESCRIPTION "The set of objects supported to record notification events." ::= { cnpdMIBGroups 3 } cnpdMIBNotificationsGroup NOTIFICATION-GROUP NOTIFICATIONS { cnpdThresholdRisingEvent, cnpdThresholdFallingEvent } STATUS current DESCRIPTION "The set of notification events supported." ::= { cnpdMIBGroups 4 } cnpdMIBNotificationsConfigGroup OBJECT-GROUP OBJECTS { cnpdNotificationsEnable } STATUS current DESCRIPTION "The set of notification configuration events." ::= { cnpdMIBGroups 5 } cnpdSupportedProtocolsGroup OBJECT-GROUP OBJECTS { cnpdSupportedProtocolsName } STATUS current DESCRIPTION "The set of objects describing a protocol or application." ::= { cnpdMIBGroups 6 } END