CISCO-PORT-STORM-CONTROL-MIB -- CISCO-PORT-STORM-CONTROL-MIB.my -- MIB support for the Port Storm Control Feature -- -- -- Copyright (c) 2003 by Cisco Systems, Inc. -- All rights reserved. -- CISCO-PORT-STORM-CONTROL-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY,OBJECT-TYPE, NOTIFICATION-TYPE, Integer32, Counter64 FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF ifIndex FROM IF-MIB TruthValue, TEXTUAL-CONVENTION, TimeStamp FROM SNMPv2-TC ciscoMgmt FROM CISCO-SMI; ciscoPortStormControlMIB MODULE-IDENTITY LAST-UPDATED "200307030000Z" ORGANIZATION "Cisco Systems, Inc." CONTACT-INFO " Cisco Systems Customer Services Postal: 170 W Tasman Drive San Jose, CA 95134 USA Tel: +1 800 553-NETS E-mail: cs-lan-switch-snmp@cisco.com" DESCRIPTION "The MIB module for managing Cisco Port Storm Control." REVISION "200307030000Z" DESCRIPTION "Initial version of this MIB module." ::= { ciscoMgmt 362 } -- -- A LAN storm occurs when packets flood the LAN creating excessive -- traffic. Storm control is a mechanism to mitigate the effect of -- the storm, by controlling the amount of received broadcast, -- multicast, or unicast traffic. -- -- The port storm control MIB allows the Network Management Station -- to configure the storm control feature on supported physical -- interfaces. -- -- -- MIB Groups -- ciscoPortStormControlMIBNotifs OBJECT IDENTIFIER ::= { ciscoPortStormControlMIB 0 } ciscoPortStormControlMIBObjects OBJECT IDENTIFIER ::= { ciscoPortStormControlMIB 1 } ciscoPortStormControlMIBConform OBJECT IDENTIFIER ::= { ciscoPortStormControlMIB 2 } cpscConfigObjects OBJECT IDENTIFIER ::= { ciscoPortStormControlMIBObjects 1 } cpscStatusObjects OBJECT IDENTIFIER ::= { ciscoPortStormControlMIBObjects 2 } -- -- Textual Conventions -- -- -- Traffic Types that can be regulated by Storm Control -- CPortStormControlTrafficType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The type of traffic that can be configured to be regulated per physical interface." SYNTAX INTEGER { broadcast (1), multicast (2), unicast (3), all (4) } -- -- Storm control Action that the user can configure on a port -- CPortStormControlActionType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The type of storm control action that is configured on a port. An action of filter indicates that packets should be filtered if a storm event is detected on a port. An action of shutdown indicates that the port should be shutdown if a storm event is detected on a port." SYNTAX INTEGER { filter (1), shutdown (2) } CPortStormControlStatusType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The current status of storm control on a given interface for a given traffic type. inactive - Indicates that storm control is not enabled for the given traffic type. forwarding - Indicates that storm control is monitoring the traffic type, but no storm event has been detected. trafficTypeFiltered - Indicates that a storm event has has occurred and the particular traffic type is being filtered allTrafficFiltered - Indicates that a storm event has occurred and all traffic received on the interface is being filtered shutdown - Indicates that the interface has been shutdown in response to a storm event." SYNTAX INTEGER { inactive (1), forwarding (2), trafficTypeFiltered (3), allTrafficFiltered (4), shutdown (5) } -- -- Storm Control Configuration -- A management station needs to do a couple of things to -- configure storm control on an interface -- One is to configure the thresholds for the particular traffic -- type(s) and the other is to configure the desired action -- cpscThresholdTable OBJECT-TYPE SYNTAX SEQUENCE OF CPortSCThresholdEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of storm control threshold configuration entries." ::= { cpscConfigObjects 1 } cpscThresholdEntry OBJECT-TYPE SYNTAX CPortSCThresholdEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A collection of storm control threshold configuration entries. Storm control can be configured for multiple traffic types on a given interface. One entry is created for each interface and the traffic type that can be monitored by the device." INDEX { ifIndex, cpscTrafficType } ::= { cpscThresholdTable 1 } CPortSCThresholdEntry ::= SEQUENCE { cpscTrafficType CPortStormControlTrafficType, cpscUpperThreshold INTEGER, cpscLowerThreshold INTEGER } cpscTrafficType OBJECT-TYPE SYNTAX CPortStormControlTrafficType MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object identifies a particular traffic type for which a management station desires to configure storm control on the given interface (which is identified by its ifIndex)." ::= { cpscThresholdEntry 1 } cpscUpperThreshold OBJECT-TYPE SYNTAX INTEGER (0..10000) UNITS "0.01 Percentage" MAX-ACCESS read-write STATUS current DESCRIPTION "This object represents the upper threshold of total amount of a particular traffic type that can be seen on a given interface, after which a storm event is declared and storm control action is taken. The value represents the traffic as a percentage of total bandwidth of the interface, in units of 0.01 %. For example, if a management station sets the value of cpscUpperThreshold.3.1 as 4000, it means the following: a) storm control is enabled on the interface with ifIndex = 3 for broadcast (1) packets b) if the broadcast traffic received per second on the interface is more than (4000*0.01 = 40%) of the total interface bandwidth, then the system will take storm control actions, as indicated by cpscAction.3 . It should be noted that setting the upper threshold value to anything other than 100% results in storm control being automatically enabled on the given interface, for the given traffic type. An implementation may not be able to support different threshold values for different traffic types, in which case changing the value for one traffic type will automatically result in the threshold value for other types also modified. The default value of this object is implementation- dependent." ::= { cpscThresholdEntry 2 } cpscLowerThreshold OBJECT-TYPE SYNTAX INTEGER (0..10000) UNITS "0.01 Percentage" MAX-ACCESS read-write STATUS current DESCRIPTION "This object represents the lower threshold of total amount of a particular traffic type. When a filter action (see cpscAction) is in effect on an interface because of a previous storm event, the value of this object determines when the system will stop the filter action. The value represents traffic as percent of total bandwidth of the interface, in units of 0.01 %. For example, if a broadcast(1) storm occurred on an interface with ifIndex 3, and the value of cpscLowerThreshold.3.1 is 2500 (25%), then the system will stop filtering broadcast traffic on that interface if it drops below 25% of the total bandwidth. This value will be ignored if a shutdown action is configured. The value of this object must be equal to or less than the value of the upper threshold specified by cpscUpperThreshold for the same entry. The default value of this object is implementation- dependent. On platforms that only support one threshold level for this traffic type and interface,this object is read-only and always has the same value of the corresponding cpscUpperThreshold for the same entry." ::= { cpscThresholdEntry 3 } -- -- Per interface storm action configuration table -- cpscActionTable OBJECT-TYPE SYNTAX SEQUENCE OF CPortSCActionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of storm control action entries." ::= { cpscConfigObjects 2 } cpscActionEntry OBJECT-TYPE SYNTAX CPortSCActionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing the storm control action configuration information. An entry is created for each interface that can support the storm control feature." INDEX { ifIndex } ::= { cpscActionTable 1 } CPortSCActionEntry ::= SEQUENCE { cpscAction CPortStormControlActionType, cpscNotificationControl INTEGER } cpscAction OBJECT-TYPE SYNTAX CPortStormControlActionType MAX-ACCESS read-write STATUS current DESCRIPTION "This object represents the storm control action taken when the traffic of a particular type exceeds the configured upper threshold values." ::= { cpscActionEntry 1 } cpscNotificationControl OBJECT-TYPE SYNTAX INTEGER { none (1), stormOccurred (2), stormCleared (3), both (4) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object controls when a storm control notification will be generated. If the object is set to none(1), no notifications will be generated. A notification will be generated when a storm event is detected or cleared when the object is set to stormOccurred(2) or stormCleared(3) respectively. If the object is set to both(4), a notification will be generated both when a storm event is detected and cleared. NOTE: a) The default value of this object is none(1). b) Irrespective of the value of this object, the value of the global object cpscNotificationThreshold controls whether or not a notification will be generated at a given point. " ::= {cpscActionEntry 2 } -- -- Global Storm control notification configuration -- cpscNotificationThreshold OBJECT-TYPE SYNTAX INTEGER (0..1000) UNITS "Notifications per Minute" MAX-ACCESS read-write STATUS current DESCRIPTION "The value of object controls the global rate of storm control notifications generated by an entity per minute. A value of 0 indicates no limit, and the entity will generate notifications for each storm event as governed by the cpscNotificationControl for a given interface." ::= { cpscConfigObjects 3 } -- -- Storm control status information -- cpscStatusTable OBJECT-TYPE SYNTAX SEQUENCE OF CPortSCStatusEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of storm control status entries." ::= { cpscStatusObjects 1 } cpscStatusEntry OBJECT-TYPE SYNTAX CPortSCStatusEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A collection of storm control status entries, one per interface and traffic type. An entry is created for each storm control capable interface and the traffic type with the storm control status information." INDEX { ifIndex, cpscTrafficType } ::= { cpscStatusTable 1 } CPortSCStatusEntry ::= SEQUENCE { cpscStatus CPortStormControlStatusType, cpscCurrentLevel INTEGER, cpscSuppressedPacket Counter64 } cpscStatus OBJECT-TYPE SYNTAX CPortStormControlStatusType MAX-ACCESS read-only STATUS current DESCRIPTION "This object identifies the status of storm control on the interface (identified by ifIndex) corresponding to a particular traffic type (identified by cpscTrafficType). A value of inactive indicates that no storm control has been enabled on the interface for the traffic type." ::= { cpscStatusEntry 1 } cpscCurrentLevel OBJECT-TYPE SYNTAX INTEGER(0..10000) UNITS "0.01 Percentage" MAX-ACCESS read-only STATUS current DESCRIPTION "This object identifies the current level of traffic of a particular type on a given interface, as a percentage of the total interface bandwidth. When storm control is inactive, the value is 10000, indicating the maximum level (100% of the particular traffic type is allowed to be received)." ::= { cpscStatusEntry 2 } cpscSuppressedPacket OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "This object represents the total number of packets of a particular traffic type that have been suppressed on a given interface by storm control filter action." ::= { cpscStatusEntry 3 } -- -- Storm control history table -- Provides information about storm events that -- occurred on a given interface, if available -- cpscHistoryTable OBJECT-TYPE SYNTAX SEQUENCE OF CPortSCHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual table to represent the history of storm events on an interface. Management station can use this to get information about the timeline of storm events as to when each event occurred, and when it ended." ::= { cpscStatusObjects 2 } cpscHistoryEntry OBJECT-TYPE SYNTAX CPortSCHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A collection of storm control history entries per interface and per traffic type. The number of such entries available is implementation-dependent." INDEX { ifIndex, cpscHistoryTrafficType, cpscHistoryIndex } ::= { cpscHistoryTable 1 } CPortSCHistoryEntry ::= SEQUENCE { cpscHistoryTrafficType CPortStormControlTrafficType, cpscHistoryIndex Integer32, cpscHistoryStartTime TimeStamp, cpscHistoryEndTime TimeStamp } cpscHistoryTrafficType OBJECT-TYPE SYNTAX CPortStormControlTrafficType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The traffic type corresponding to this storm history entry." ::= { cpscHistoryEntry 1 } cpscHistoryIndex OBJECT-TYPE SYNTAX Integer32 (1..1024) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A number that uniquely identifies one storm control history entry for a given interface. The index starts at 1 and increases by 1. Although this MIB specification stipulates a maximum of 1K entries, the actual maximum number of history entries returned per interface is implementation-dependent. When the value of this index reaches the actual maximum number of entries supported by an implementation, it will wrap around to 1." ::= { cpscHistoryEntry 2 } cpscHistoryStartTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the storm event was declared on the interface for the particular traffic type, and storm control measures were taken." ::= { cpscHistoryEntry 3 } cpscHistoryEndTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the storm ceased to exist and the interface was set to its previous normal state. If the interface was shutdown due to user configuration, then the value will be equal to the value of sysUpTime when the interface was shutdown. If the storm event continues to persist when this object is queried, the value returned will be 0." ::= { cpscHistoryEntry 4 } -- -- Notifications -- cpscNotificationsPrefix OBJECT IDENTIFIER ::= { ciscoPortStormControlMIBNotifs 1 } cpscEvent NOTIFICATION-TYPE OBJECTS { cpscStatus } STATUS current DESCRIPTION "This notification is sent by the implementation when a storm event occurs on an interface with respect to a particular traffic type." ::= { cpscNotificationsPrefix 1 } -- -- MIB Conformance statements -- ciscoPortStormControlMIBCompliances OBJECT IDENTIFIER ::= { ciscoPortStormControlMIBConform 1 } ciscoPortStormControlMIBGroups OBJECT IDENTIFIER ::= { ciscoPortStormControlMIBConform 2 } ciscoPortStormControlMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for the cisco port storm control MIB." MODULE -- This module MANDATORY-GROUPS { cpscConfigurationGroup } GROUP cpscNotifConfigurationGroup DESCRIPTION "This group is mandatory if the managed system supports notifications for storm events." GROUP cpscNotificationGroup DESCRIPTION "This group is mandatory if the managed system supports notifications for storm events." GROUP cpscStatusGroup DESCRIPTION "This group is mandatory if the storm control status information is available in the managed system." GROUP cpscStatisticsGroup DESCRIPTION "This group is mandatory if the storm control statistics information is available in the managed system." GROUP cpscHistoryGroup DESCRIPTION "This group is mandatory if the managed system maintains such storm control history information." OBJECT cpscLowerThreshold MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT cpscAction MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { ciscoPortStormControlMIBCompliances 1 } cpscConfigurationGroup OBJECT-GROUP OBJECTS { cpscUpperThreshold, cpscLowerThreshold, cpscAction } STATUS current DESCRIPTION "A collection of objects to configure the Port Storm Control feature on a given interface." ::= { ciscoPortStormControlMIBGroups 1 } cpscStatusGroup OBJECT-GROUP OBJECTS { cpscStatus, cpscCurrentLevel } STATUS current DESCRIPTION "A collection of objects to provide storm control status on a given interface." ::= { ciscoPortStormControlMIBGroups 2 } cpscNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { cpscEvent } STATUS current DESCRIPTION "A collection of notification objects for user with the cisco port storm control mib." ::= { ciscoPortStormControlMIBGroups 3 } cpscNotifConfigurationGroup OBJECT-GROUP OBJECTS { cpscNotificationControl, cpscNotificationThreshold } STATUS current DESCRIPTION "A collection of objects to configure notification information." ::= { ciscoPortStormControlMIBGroups 4 } cpscStatisticsGroup OBJECT-GROUP OBJECTS { cpscSuppressedPacket } STATUS current DESCRIPTION "A collection of objects to provide storm control statistics information." ::= { ciscoPortStormControlMIBGroups 5 } cpscHistoryGroup OBJECT-GROUP OBJECTS { cpscHistoryStartTime, cpscHistoryEndTime } STATUS current DESCRIPTION "A collection of objects to provide storm control history information on a given interface." ::= { ciscoPortStormControlMIBGroups 6 } END