-- *****************************************************************
-- QTECH-TRAFFIC-CTRL-MIB.mib:  Qtech traffic control MIB file
--
-- March 2002, Wuzg
--
-- Copyright (c) 2002 by Qtech Networks Co.,Ltd.
-- All rights reserved.
-- 
-- *****************************************************************
--

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

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE
                FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        TEXTUAL-CONVENTION
                FROM SNMPv2-TC
        IfIndex
                FROM QTECH-TC
        ifIndex        
                FROM IF-MIB
        EnabledStatus 
                FROM P-BRIDGE-MIB
        qtechMgmt
                FROM QTECH-SMI;

qtechTrafficCtrlMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "Qtech Networks Co.,Ltd."
        CONTACT-INFO
                " 
                Tel: 4008-111-000 

                E-mail: service@qtech.com.cn"
        DESCRIPTION
                "This module defines qtech traffic control mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { qtechMgmt 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)        

qtechTrafficCtrlMIBObjects OBJECT IDENTIFIER ::= { qtechTrafficCtrlMIB 1 }


qtechPtTrafficCtrlTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechPtTrafficCtrlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of port-based traffic control configuration objects."
        ::= { qtechTrafficCtrlMIBObjects 1 }
    
qtechPtTrafficCtrlEntry OBJECT-TYPE
        SYNTAX QtechPtTrafficCtrlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains port-based traffic control configuration objects."
        INDEX { qtechPtTrafficCtrlIfIndex }
        ::= { qtechPtTrafficCtrlTable 1 }

QtechPtTrafficCtrlEntry ::=
        SEQUENCE {
            qtechPtTrafficCtrlIfIndex IfIndex,
            qtechPtProtectedPortStatus EnabledStatus,
            qtechPtBroadcastStormControlStatus EnabledStatus, 
            qtechPtMulticastStormControlStatus EnabledStatus, 
            qtechPtUnicastStormControlStatus EnabledStatus,
            qtechPtBroadcastStormControlLevel Percent, 
            qtechPtMulticastStormControlLevel Percent, 
            qtechPtUnicastStormControlLevel Percent            
        }

qtechPtTrafficCtrlIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            " "
        ::= { qtechPtTrafficCtrlEntry 1 }
                                           
qtechPtProtectedPortStatus 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 }            
        ::= { qtechPtTrafficCtrlEntry 2 }
                            
qtechPtBroadcastStormControlStatus 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"
        ::= { qtechPtTrafficCtrlEntry 3 }
        
qtechPtMulticastStormControlStatus 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"
        ::= { qtechPtTrafficCtrlEntry 4 }
        
qtechPtUnicastStormControlStatus 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"
        ::= { qtechPtTrafficCtrlEntry 5 }        
                               
qtechPtBroadcastStormControlLevel OBJECT-TYPE
        SYNTAX Percent
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The percentage of maximal traffic allowed to go through the broadcast packets in the interface bandwidth.
            When the traffic of broadcast packets exceeds the percentage, the broadcast packets correspondent with 
            the exceeded traffic will be discarded.
             
             It takes effect only when the broadcast storm control function is enabled on the interface."
        DEFVAL { 10 }
        ::= { qtechPtTrafficCtrlEntry 6 }
        
qtechPtMulticastStormControlLevel OBJECT-TYPE
        SYNTAX Percent
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The percentage of maximal traffic allowed to go through the multicast packets in the interface bandwidth.
            When the traffic of multicast packets exceeds the percentage, the multicast packets correspondent with 
            the exceeded traffic will be discarded.
             
             It takes effect only when the broadcast storm control function is enabled on the interface."
        DEFVAL { 10 }
        ::= { qtechPtTrafficCtrlEntry 7 }
        
qtechPtUnicastStormControlLevel OBJECT-TYPE
        SYNTAX Percent
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
             "The percentage of maximal traffic allowed to go through the unknown unicast packets in the interface bandwidth.
            When the traffic of unknown unicast packets exceeds the percentage, the unknown unicast packets correspondent with 
            the exceeded traffic will be discarded.
             
             It takes effect only when the broadcast storm control function is enabled on the interface."
        DEFVAL { 10 }
        ::= { qtechPtTrafficCtrlEntry 8 }               
                               
qtechPtTrafficCtrlTraps      OBJECT IDENTIFIER ::= { qtechTrafficCtrlMIB 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"
        ::= { qtechPtTrafficCtrlTraps 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."
    ::= { qtechPtTrafficCtrlTraps 2 }        

qtechPtTrafficCtrlMIBConformance OBJECT IDENTIFIER ::= { qtechTrafficCtrlMIB 3 }
qtechPtTrafficCtrlMIBCompliances OBJECT IDENTIFIER ::= { qtechPtTrafficCtrlMIBConformance 1 }
qtechPtTrafficCtrlMIBGroups      OBJECT IDENTIFIER ::= { qtechPtTrafficCtrlMIBConformance 2 }


-- compliance statements

qtechPtTrafficCtrlMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Qtech IfConfig MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { qtechPtTrafficCtrlMIBGroup
                 }
        ::= { qtechPtTrafficCtrlMIBCompliances 1 }
                
-- units of conformance

qtechPtTrafficCtrlMIBGroup OBJECT-GROUP
        OBJECTS {
            qtechPtTrafficCtrlIfIndex,
            qtechPtProtectedPortStatus,
            qtechPtBroadcastStormControlStatus, 
            qtechPtMulticastStormControlStatus, 
            qtechPtUnicastStormControlStatus,       
            qtechPtBroadcastStormControlLevel, 
            qtechPtMulticastStormControlLevel, 
            qtechPtUnicastStormControlLevel
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing port traffic control configure."
        ::= { qtechPtTrafficCtrlMIBGroups 1 }         
                
END
