BD-MIB DEFINITIONS ::= BEGIN
            IMPORTS

            DisplayString, TEXTUAL-CONVENTION, TruthValue
            FROM SNMPv2-TC

            OBJECT-TYPE, OBJECT-IDENTITY,
            MODULE-IDENTITY, NOTIFICATION-TYPE
            FROM SNMPv2-SMI

            SwPortIndex
            FROM Brocade-TC

            fcSwitch, bcsiModules
            FROM Brocade-REG-MIB

            swVfId 
            FROM SW-MIB;


            bd MODULE-IDENTITY
            LAST-UPDATED "201404101146Z" -- Apr 10, 2014 11:46am
            ORGANIZATION "Brocade Communications Systems, Inc.,"
            CONTACT-INFO "Customer Support Group
                        Brocade Communications Systems,
                        1745 Technology Drive,
                        San Jose, CA 95110 U.S.A
                        Tel: +1-408-392-6061
                        Fax: +1-408-392-6656
                        Email: support@Brocade.COM
                        WEB: www.brocade.com"
                        
            DESCRIPTION     "The MIB module is for Brocade's Bottleneck detection feature.Copyright (c) 1996-2003 Brocade Communications Systems, Inc. All rights reserved."
			REVISION    "201404101146Z" -- Apr 10, 2014 11:46am
			DESCRIPTION     "Added slotPort object in bdStatsEntry and included it
							in bdTrap and bdClearTrap."
            ::=        { fcSwitch 51 }
            
	BdType             ::= TEXTUAL-CONVENTION
	STATUS  current
        DESCRIPTION   "BD type"
	SYNTAX  INTEGER {
		congestion      (1),
		latency       (2)
	}

            bdTraps OBJECT-IDENTITY
            STATUS     current
            DESCRIPTION     "The OID represents the BD Traps."
            ::= { bd 0 }

    bdConfig OBJECT-IDENTITY
	STATUS     current
	DESCRIPTION     "The OID represents the BD config."
	::= { bd 1 }

	bdStats OBJECT-IDENTITY
	STATUS     current
	DESCRIPTION     "This OID represents the BD stats."
	::= { bd 2 }

	bdStatus    OBJECT-TYPE
	SYNTAX      TruthValue
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "This object gives the status of bottleneck detection feature 
					 if enabled in the switch. The value of this OID if true(1) or false(2)."
	::= { bdConfig 1 }


	bdLThreshold    OBJECT-TYPE
	SYNTAX            DisplayString(SIZE(1..5))
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "This object is the severity threshold for latency bottleneck.
					This threshold indicates the percentage of one-second intervals 
					affected by latency conditions within a specified time window. 
					The value of this OID is between 0 and 1."
    ::= { bdConfig 2 }

	bdCThreshold   OBJECT-TYPE
	SYNTAX            DisplayString(SIZE(1..5))
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "This object is the severity threshold for congestion bottleneck. 
					This threshold indicates the percentage of one-second intervals 
					affected by congestion conditions within a specified time window. 
					The value of this OID is between 0 and 1"
	::= { bdConfig 3 }

	bdQTime          OBJECT-TYPE
	SYNTAX            INTEGER(1..1000)
	UNITS           "seconds"
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "The minimum number of seconds between consecutive alerts. 
					The value assigned to this parameter applies to both latency and 
					congestion monitoring. In this duration, there will not be 
					any traps sent."
	::= { bdConfig 4 }

	bdWinAvgTime  OBJECT-TYPE
	SYNTAX            INTEGER (1..100)
	UNITS           "seconds"
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "The time window in seconds over which the percentage of seconds 
					affected by bottleneck conditions is computed and compared 
					with the threshold."
	::= { bdConfig 5 }

	bdThreshold     OBJECT-TYPE
	SYNTAX            DisplayString(SIZE(1..5))
	MAX-ACCESS     accessible-for-notify
	STATUS             current
	DESCRIPTION     "This is the severity threshold for latency or congestion 
					bottleneck. This is accessible only for traps. This object is 
					one of the variable binding in bdTrap and bdClearTrap."
	::= { bdConfig 6 }



	nBdType		OBJECT-TYPE
	SYNTAX		BdType
	MAX-ACCESS	accessible-for-notify
	STATUS		current
	DESCRIPTION     "This is the type of bottleneck.This is accessible only for 
					traps. This object is one of the variable binding in bdTrap and 
					bdClearTrap. This can have a value of congestion(1) or  latency(2)."
	::= { bdConfig 7 }

	

	bdNumOfEntries            OBJECT-TYPE
	SYNTAX                       Integer32 
	MAX-ACCESS     read-only
	STATUS             current
        DESCRIPTION     "Number of rows in the stats table."
	::= { bdStats 1 }

	bdStatsTable    OBJECT-TYPE
	SYNTAX         SEQUENCE OF BdStatsEntry
	MAX-ACCESS     not-accessible
	STATUS             current
	DESCRIPTION     "The table of stats entries represents both types of bottleneck.
					Each sample in the stats is taken every 10 seconds.The maximum 
					number of entries for each port, each type 
					[congestion/latency] is 30."
	::= { bdStats 2 }

	bdStatsEntry     OBJECT-TYPE
	SYNTAX            BdStatsEntry
	MAX-ACCESS     not-accessible
	STATUS             current
	DESCRIPTION     "An entry of BD stats information."
	INDEX               { userPortNumber, bdType, bdSampleTime}
	::= { bdStatsTable 1 }


            


	BdStatsEntry     ::= SEQUENCE {
				userPortNumber            SwPortIndex,
				bdSampleTime  Unsigned32,
				bdType         BdType,
				bdStatsValue10SecsSample       DisplayString,
				bdStatsValue60SecsSample       DisplayString,
				bdStatsValue300SecsSample     DisplayString,
				slotPort					DisplayString
	}

	userPortNumber            OBJECT-TYPE
	SYNTAX                        SwPortIndex
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "This object represents the user port indices of bottleneck 
					monitored ports like F-port, E-port, L-port, FCOE-port."
	::= { bdStatsEntry 1 }

	bdSampleTime              OBJECT-TYPE
	SYNTAX                        Unsigned32
	UNITS           "seconds"
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "This object represents the sample time in Unix time format.
					Ex:1265259069 The above Unix time is equal to 
					Thu, 04 Feb 2010 04:51:09 GMT ."
	::= { bdStatsEntry 2 }

	bdType             OBJECT-TYPE
	SYNTAX            BdType
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "This object represents the bottleneck type. The value of 
					this object can be congestion(1) or latency(2)."
	::= { bdStatsEntry 3 }

	bdStatsValue10SecsSample       OBJECT-TYPE
	SYNTAX            DisplayString(SIZE(1..5))
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "This sample is average of 10 samples collected every second. 
					If the sample has not been taken yet then bdStatsValue10SecsSample 
					return -1."
	::= { bdStatsEntry 4 }

	bdStatsValue60SecsSample       OBJECT-TYPE
	SYNTAX            DisplayString(SIZE(1..5))
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "This sample is average of 60 samples collected every second. 
					If the sample has not been taken yet then bdStatsValue60SecsSample 
					return -1."
	::= { bdStatsEntry 5 }

	bdStatsValue300SecsSample     OBJECT-TYPE
	SYNTAX         DisplayString(SIZE(1..5))
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     "This sample is average of 300 samples collected every second. 
					If the sample has not been taken yet then bdStatsValue300SecsSample 
					return -1."
	::= { bdStatsEntry 6 }

	slotPort OBJECT-TYPE
	SYNTAX          DisplayString
	MAX-ACCESS      accessible-for-notify
	STATUS          current
	DESCRIPTION     "This object represents the slot/port format of userPortNumber for bottleneck
					monitored ports like F-port, E-port, L-port, FCOE-port."
	::= { bdStatsEntry 7 }

	bdAggrStats OBJECT-TYPE        
	SYNTAX            DisplayString(SIZE(1..12))     
	MAX-ACCESS     accessible-for-notify
	STATUS             current     
	DESCRIPTION     "This object represents the aggregrate stats value. 
					This value is the sum of all the samples divided by average 
					window and multiplied by 100.This is accessible only for traps. 
					This obejct is one of the variable binding in bdTrap and 
					bdClearTrap."
	::= { bdStats 3 }

	bdAbsoluteValue OBJECT-TYPE        
	SYNTAX            INTEGER (1..1000)
	MAX-ACCESS     accessible-for-notify
	STATUS          current     
	DESCRIPTION     "This object represents the absolute value of bdAggrStats.
					It is the number of affected seconds. This object is accessible 
					only for traps and it is one of the variable binding in 
					bdTrap and bdClearTrap."
	::= { bdStats 4 }

	bdAvgFrameSize OBJECT-TYPE        
	SYNTAX         Unsigned32
	MAX-ACCESS     accessible-for-notify
	STATUS          current     
	DESCRIPTION     "This object represents the average size in bytes of all frames 
					that were transmitted on the ports during the averaging window.
					This object is accessible only for traps and it is one of the 
					variable binding in bdTrap and bdClearTrap."
	::= { bdStats 5 }


	bdTrap NOTIFICATION-TYPE
	OBJECTS            {
									userPortNumber,
									slotPort,
                                    bdWinAvgTime,
                                    nBdType,
                                    bdThreshold,
                                    bdAggrStats,
                                    bdAbsoluteValue,
                                    swVfId,
								    bdAvgFrameSize
                        }
	STATUS current
	DESCRIPTION     "trap to be send for bottleneck detection."
	::= { bdTraps 1 }
            
	bdClearTrap     NOTIFICATION-TYPE
	OBJECTS            {
                                    userPortNumber,
									slotPort,
                                    bdWinAvgTime,
                                    nBdType,
                                    bdThreshold,
                                    bdAggrStats,
                                    bdAbsoluteValue,
                                    swVfId,
								    bdAvgFrameSize
                        }
	STATUS current
	DESCRIPTION     "trap to be send for bottleneck clearance."
	::= { bdTraps 2 }
END

