-- *****************************************************************
-- FS-TRAFFIC-CTRL-MIB.mib:  FS traffic control MIB file
--
-- March 2002, Wuzg
--
-- Copyright (c) 2002 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************
--

FS-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 FS-TC
        ifIndex        
                FROM IF-MIB
        EnabledStatus 
                FROM P-BRIDGE-MIB
        fsMgmt
                FROM FS-SMI;

fsTrafficCtrlMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "FS.COM Inc.."
        CONTACT-INFO
                " 
                Tel: 400-865-2852 

                E-mail: https://www.fs.com/live_chat_service_mail.html"
        DESCRIPTION
                "This module defines fs traffic control mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { fsMgmt 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)        

fsTrafficCtrlMIBObjects OBJECT IDENTIFIER ::= { fsTrafficCtrlMIB 1 }


fsPtTrafficCtrlTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSPtTrafficCtrlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of port-based traffic control configuration objects."
        ::= { fsTrafficCtrlMIBObjects 1 }
    
fsPtTrafficCtrlEntry OBJECT-TYPE
        SYNTAX FSPtTrafficCtrlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains port-based traffic control configuration objects."
        INDEX { fsPtTrafficCtrlIfIndex }
        ::= { fsPtTrafficCtrlTable 1 }

FSPtTrafficCtrlEntry ::=
        SEQUENCE {
            fsPtTrafficCtrlIfIndex IfIndex,
            fsPtProtectedPortStatus EnabledStatus,
            fsPtBroadcastStormControlStatus EnabledStatus, 
            fsPtMulticastStormControlStatus EnabledStatus, 
            fsPtUnicastStormControlStatus EnabledStatus,
            fsPtBroadcastStormControlLevel Percent, 
            fsPtMulticastStormControlLevel Percent, 
            fsPtUnicastStormControlLevel Percent            
        }

fsPtTrafficCtrlIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            " "
        ::= { fsPtTrafficCtrlEntry 1 }
                                           
fsPtProtectedPortStatus 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 }            
        ::= { fsPtTrafficCtrlEntry 2 }
                            
fsPtBroadcastStormControlStatus 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"
        ::= { fsPtTrafficCtrlEntry 3 }
        
fsPtMulticastStormControlStatus 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"
        ::= { fsPtTrafficCtrlEntry 4 }
        
fsPtUnicastStormControlStatus 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"
        ::= { fsPtTrafficCtrlEntry 5 }        
                               
fsPtBroadcastStormControlLevel 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 }
        ::= { fsPtTrafficCtrlEntry 6 }
        
fsPtMulticastStormControlLevel 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 }
        ::= { fsPtTrafficCtrlEntry 7 }
        
fsPtUnicastStormControlLevel 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 }
        ::= { fsPtTrafficCtrlEntry 8 }               
                               
fsPtTrafficCtrlTraps      OBJECT IDENTIFIER ::= { fsTrafficCtrlMIB 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"
        ::= { fsPtTrafficCtrlTraps 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."
    ::= { fsPtTrafficCtrlTraps 2 }        

fsPtTrafficCtrlMIBConformance OBJECT IDENTIFIER ::= { fsTrafficCtrlMIB 3 }
fsPtTrafficCtrlMIBCompliances OBJECT IDENTIFIER ::= { fsPtTrafficCtrlMIBConformance 1 }
fsPtTrafficCtrlMIBGroups      OBJECT IDENTIFIER ::= { fsPtTrafficCtrlMIBConformance 2 }


-- compliance statements

fsPtTrafficCtrlMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the FS IfConfig MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { fsPtTrafficCtrlMIBGroup
                 }
        ::= { fsPtTrafficCtrlMIBCompliances 1 }
                
-- units of conformance

fsPtTrafficCtrlMIBGroup OBJECT-GROUP
        OBJECTS {
            fsPtTrafficCtrlIfIndex,
            fsPtProtectedPortStatus,
            fsPtBroadcastStormControlStatus, 
            fsPtMulticastStormControlStatus, 
            fsPtUnicastStormControlStatus,       
            fsPtBroadcastStormControlLevel, 
            fsPtMulticastStormControlLevel, 
            fsPtUnicastStormControlLevel
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing port traffic control configure."
        ::= { fsPtTrafficCtrlMIBGroups 1 }         
                
END
