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 "200907281830Z" -- July 28, 2009 6:30pm
            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."
            ::=        { 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     "Bottleneck detection enable or disable."
	::= { bdConfig 1 }


	bdLThreshold    OBJECT-TYPE
            SYNTAX            DisplayString(SIZE(1..5))
            MAX-ACCESS     read-only
            STATUS             current
            DESCRIPTION     "Threshold for Latency BD."
            ::= { bdConfig 2 }

	bdCThreshold   OBJECT-TYPE
            SYNTAX            DisplayString(SIZE(1..5))
            MAX-ACCESS     read-only
            STATUS             current
            DESCRIPTION     "Threshold for Congestion BD."
            ::= { bdConfig 3 }

	bdQTime          OBJECT-TYPE
            SYNTAX            INTEGER(1..1000)
            UNITS           "seconds"
            MAX-ACCESS     read-only
            STATUS             current
            DESCRIPTION     " Quiet time for TARFD. In this duration there will not be any trap."
            ::= { bdConfig 4 }

	bdWinAvgTime  OBJECT-TYPE
	SYNTAX            INTEGER (1..100)
	UNITS           "seconds"
	MAX-ACCESS     read-only
	STATUS             current
	DESCRIPTION     " Window Average duration."
	::= { bdConfig 5 }

	bdThreshold     OBJECT-TYPE
	SYNTAX            DisplayString(SIZE(1..5))
	MAX-ACCESS     accessible-for-notify
	STATUS             current
	DESCRIPTION     "Threshold for BD."
	::= { bdConfig 6 }



	nBdType		OBJECT-TYPE
        SYNTAX		BdType
        MAX-ACCESS	accessible-for-notify
        STATUS		current
       	DESCRIPTION     "This object represents the BD type."
        ::= { 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 BD."
            ::= { 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
            }

            userPortNumber            OBJECT-TYPE
            SYNTAX                        SwPortIndex
            MAX-ACCESS     read-only
            STATUS             current
            DESCRIPTION     "This object represents the user port index."
            ::= { bdStatsEntry 1 }

            bdSampleTime              OBJECT-TYPE
            SYNTAX                        Unsigned32
            UNITS           "seconds"
            MAX-ACCESS     read-only
            STATUS             current
            DESCRIPTION     "This object represents the sample time."
            ::= { bdStatsEntry 2 }

            bdType             OBJECT-TYPE
            SYNTAX            BdType
            MAX-ACCESS     read-only
            STATUS             current
            DESCRIPTION     "This object represents the BD type."
            ::= { 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 }


            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."
            ::= { bdStats 3 }

	bdAbsoluteValue OBJECT-TYPE        
            SYNTAX            INTEGER (1..1000)
            MAX-ACCESS     accessible-for-notify
            STATUS          current     
            DESCRIPTION     "This is absolute value of bdAggrStats"
            ::= { bdStats 4 }

	bdAvgFrameSize OBJECT-TYPE        
            SYNTAX         Unsigned32
            MAX-ACCESS     accessible-for-notify
            STATUS          current     
            DESCRIPTION     "Average frame size during window average time"
            ::= { bdStats 5 }

            bdTrap NOTIFICATION-TYPE
            OBJECTS            {
userPortNumber,
                                    bdWinAvgTime,
                                    nBdType,
                                    bdThreshold,
                                    bdAggrStats,
                                    bdAbsoluteValue,
                                    swVfId,
				    bdAvgFrameSize

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

