-- *****************************************************************
-- MY-TRAFFIC-CTRL-MIB.mib:  My traffic control MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--

MY-TRAFFIC-CTRL-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Integer32,
        Counter32,
        IpAddress
                FROM SNMPv2-SMI
        VlanId
                FROM Q-BRIDGE-MIB
        TruthValue,
        DisplayString,
        RowStatus,
        MacAddress
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        ConfigStatus,
        MemberMap,
        IfIndex
                FROM MY-TC
        ifIndex        
                FROM IF-MIB
        EnabledStatus 
                FROM P-BRIDGE-MIB
        myMgmt
                FROM MY-SMI;

myTrafficCtrlMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "$Company$"
        CONTACT-INFO
                " 
                Tel: $Telephone$ 

                E-mail: $E-mail$"
        DESCRIPTION
                "This module defines my traffic control mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { myMgmt 14}

-- Percentage for statistic, etc.
--
Percent ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "An integer that is in the range of a percent value."
    SYNTAX INTEGER (1..100)        

myTrafficCtrlMIBObjects OBJECT IDENTIFIER ::= { myTrafficCtrlMIB 1 }


myPtTrafficCtrlTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyPtTrafficCtrlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of port-based traffic control configuration objects."
        ::= { myTrafficCtrlMIBObjects 1 }
    
myPtTrafficCtrlEntry OBJECT-TYPE
        SYNTAX MyPtTrafficCtrlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains port-based traffic control configuration objects."
        INDEX { myPtTrafficCtrlIfIndex }
        ::= { myPtTrafficCtrlTable 1 }

MyPtTrafficCtrlEntry ::=
        SEQUENCE {
            myPtTrafficCtrlIfIndex IfIndex,
            myPtProtectedPortStatus EnabledStatus,
            myPtBroadcastStormControlStatus EnabledStatus, 
            myPtMulticastStormControlStatus EnabledStatus, 
            myPtUnicastStormControlStatus EnabledStatus,
            myPtBroadcastStormControlLevel Percent, 
            myPtMulticastStormControlLevel Percent, 
            myPtUnicastStormControlLevel Percent            
        }

myPtTrafficCtrlIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            " "
        ::= { myPtTrafficCtrlEntry 1 }
                                           
myPtProtectedPortStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Some applications require that no traffic be forwarded by the 
            Layer 2 protocol between ports on the same switch. In such an 
            environment, there is no exchange of unicast, broadcast, 
            or multicast traffic betweenports on the switch, and traffic 
            between ports on the same switch is forwarded through a Layer 3 device
            such as a router.
            
                To meet this requirement, you can configure ports as protected ports(Set this
            value to enabled).Protected ports do not forward any traffic to protected ports on
            the same switch. This means that all traffic passing between protected 
            portsunicast, broadcast, and multicastmust be forwarded through a Layer 3 device. 
            Protected ports can forward any type of traffic to nonprotected ports, 
            and they forward as usual to all ports on other switches. Dynamically learnt
            addresses are not retained if the switch is reloaded."
        DEFVAL { disabled }            
        ::= { myPtTrafficCtrlEntry 2 }
                            
myPtBroadcastStormControlStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the broadcast storm control status of a port, can be opened by setting its
            value to Enabled(1), or closed by setting its value to Disabled(2).
            
            This attribute apply physical port and aggreate port"
        ::= { myPtTrafficCtrlEntry 3 }
        
myPtMulticastStormControlStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the multicast storm control status of a port, can be opened by setting its
            value to Enabled(1), or closed by setting its value to Disabled(2).
            
            This attribute apply physical port and aggreate port"
        ::= { myPtTrafficCtrlEntry 4 }
        
myPtUnicastStormControlStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the unknown unicast storm control status of a port, can be opened by setting its
            value to Enabled(1), or closed by setting its value to Disabled(2).
            
            This attribute apply physical port and aggreate port"
        ::= { myPtTrafficCtrlEntry 5 }        
                               
myPtBroadcastStormControlLevel OBJECT-TYPE
        SYNTAX Percent
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "ʾӿͨ㲥ݵռӿ
             İٷֱȣ㲥˰ٷֱȵʱ
             ӿڽֵĹ㲥
             
             ֻڽӿڹ㲥籩ƹܴʱЧ"
        DEFVAL { 10 }
        ::= { myPtTrafficCtrlEntry 6 }
        
myPtMulticastStormControlLevel OBJECT-TYPE
        SYNTAX Percent
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "ʾӿͨಥݵռӿ
             İٷֱȣಥ˰ٷֱȵʱ
            ӿڽֵĶಥ
            
            ֻڽӿڶಥ籩ƹܴʱЧ"
        DEFVAL { 10 }
        ::= { myPtTrafficCtrlEntry 7 }
        
myPtUnicastStormControlLevel OBJECT-TYPE
        SYNTAX Percent
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "ʾӿͨδ֪ݵռӿ
             İٷֱȣδ֪˰ٷֱȵʱ
            ӿڽֵδ֪
            
            ֻڽӿδ֪籩ƹܴʱЧ"
        DEFVAL { 10 }
        ::= { myPtTrafficCtrlEntry 8 }               
                               
myPtTrafficCtrlTraps      OBJECT IDENTIFIER ::= { myTrafficCtrlMIB 2 }

stormViolationAlarmType OBJECT-TYPE
        SYNTAX INTEGER{
            unknown(1),
            broadcast(2),
            mutlicast(3),
            unicast(4)            
        }
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
          "The type of storm of interface"
        ::= { myPtTrafficCtrlTraps 1 }
        
stormViolationAlarm NOTIFICATION-TYPE
    OBJECTS    {ifIndex, stormViolationAlarmType}
    STATUS  current
    DESCRIPTION
            "while the storm threshold has been set, if more broadcast 
            is send to the port, then this trap will be sent."
    ::= { myPtTrafficCtrlTraps 2 }        

myPtTrafficCtrlMIBConformance OBJECT IDENTIFIER ::= { myTrafficCtrlMIB 3 }
myPtTrafficCtrlMIBCompliances OBJECT IDENTIFIER ::= { myPtTrafficCtrlMIBConformance 1 }
myPtTrafficCtrlMIBGroups      OBJECT IDENTIFIER ::= { myPtTrafficCtrlMIBConformance 2 }


-- compliance statements

myPtTrafficCtrlMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the My IfConfig MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { myPtTrafficCtrlMIBGroup
                 }
        ::= { myPtTrafficCtrlMIBCompliances 1 }
                
-- units of conformance

myPtTrafficCtrlMIBGroup OBJECT-GROUP
        OBJECTS {
            myPtTrafficCtrlIfIndex,
            myPtProtectedPortStatus,
            myPtBroadcastStormControlStatus, 
            myPtMulticastStormControlStatus, 
            myPtUnicastStormControlStatus,       
            myPtBroadcastStormControlLevel, 
            myPtMulticastStormControlLevel, 
            myPtUnicastStormControlLevel
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing port traffic control configure."
        ::= { myPtTrafficCtrlMIBGroups 1 }         
                
END
