    GBNDeviceSwitch-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,
        Integer32, IpAddress,
        NOTIFICATION-TYPE                       FROM SNMPv2-SMI

        DisplayString, MacAddress,
        RowStatus, TruthValue,DateAndTime       FROM SNMPv2-TC

        MODULE-COMPLIANCE, OBJECT-GROUP         FROM SNMPv2-CONF

        gbnDevice                               FROM GREENTECH-MASTER-MIB

        SnmpAdminString                         FROM SNMP-FRAMEWORK-MIB

        VlanIndex                               FROM Q-BRIDGE-MIB

        PortList, dot1qStaticMulticastEntry     FROM Q-BRIDGE-MIB;

    gbnDeviceSwitch MODULE-IDENTITY
        LAST-UPDATED    "201802140000Z"  -- February 14, 2018
        ORGANIZATION    "Greentech"
        CONTACT-INFO    "Adam Armstrong
                         E-mail: adama@observium.org"

        DESCRIPTION     "Gbn Common Enterprise MIB definition."

        REVISION        "201802140000Z"  -- February 14, 2018
        DESCRIPTION     "Fix a few ASN.1 syntax errors (replace underscores
                         with hyphens in descriptors) so that Net-SNMP tools
                         can now load the MIB."

        REVISION        "0011020000Z"  -- November 2, 2000
        DESCRIPTION     "Initial MIB creation."

        ::= { gbnDevice 1 }

--
--  define groups in gbnDeviceSwitch-MIB
--

    gbnDeviceSwitchMirror          OBJECT IDENTIFIER ::= { gbnDeviceSwitch 1 }
    gbnDeviceSwitchPort            OBJECT IDENTIFIER ::= { gbnDeviceSwitch 2 }
    gbnDeviceSwitchAggregation     OBJECT IDENTIFIER ::= { gbnDeviceSwitch 3 }
    gbnDeviceSwitchL3              OBJECT IDENTIFIER ::= { gbnDeviceSwitch 4 }
    gbnDeviceSwitchLoopTest        OBJECT IDENTIFIER ::= { gbnDeviceSwitch 5 }
    gbnDeviceSwitchSRM             OBJECT IDENTIFIER ::= { gbnDeviceSwitch 6 }
    gbnDeviceSwitchFlowAlarm     OBJECT IDENTIFIER ::= { gbnDeviceSwitch 7 }
    gbnDeviceSwitchQueneScheduer    OBJECT IDENTIFIER ::= { gbnDeviceSwitch 8 }
    gbnDeviceSwitchLineRate       OBJECT IDENTIFIER ::= { gbnDeviceSwitch 9 }
    gbnDeviceSwitchPortIsolation         OBJECT IDENTIFIER ::= { gbnDeviceSwitch 10 }
    gbnDeviceSwitchStormControl        OBJECT IDENTIFIER ::= { gbnDeviceSwitch 11 }
    gbnDeviceSwitchBandWidth        OBJECT IDENTIFIER ::= { gbnDeviceSwitch 12 }
    gbnDeviceSwitchNewStormControl        OBJECT IDENTIFIER ::= { gbnDeviceSwitch 13 }

--
--  gbnDeviceSwitchMirror - Mirror Group
--

    mirroringPort OBJECT-TYPE
        SYNTAX INTEGER (0..26)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This port which all packets send to."
        ::= { gbnDeviceSwitchMirror 1 }

    mirroredEgrPort OBJECT-TYPE
        SYNTAX      PortList
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
             "The egress ports which need to monitor."
        ::= { gbnDeviceSwitchMirror 2 }

    mirroredIgrPort OBJECT-TYPE
        SYNTAX      PortList
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The ingress ports which need to monitor."
            ::= { gbnDeviceSwitchMirror 3 }


--
--  gbnDeviceSwitchPort - Port Group
--

    portTypeTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PortTypeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table of switch interfaces and associated properties."
        ::= { gbnDeviceSwitchPort 1 }

    portTypeEntry OBJECT-TYPE
        SYNTAX PortTypeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Table entry for switch interface control and status information."
        INDEX { portNumber }
        ::= { portTypeTable 1 }

    PortTypeEntry ::= SEQUENCE {
        portNumber                INTEGER,
        portType                INTEGER

      }

    portNumber OBJECT-TYPE
        SYNTAX INTEGER (1..26)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "the index of port."
        ::= { portTypeEntry 1 }

    portType OBJECT-TYPE
        SYNTAX INTEGER {
             blank(1),
             fE(2),
             single100FX(3),
             double100FX(4),
             single1000FX(5),
             double1000FX(6),
             fE1000(7),
             SM-2SC-1310-25(9),
             MM-2SC-1310-2(10),
             MM-2SC-850-2(11),
             SM-1SC-1550-20(12),
             SM-1SC-1310-20(13)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "˿ͣ1Ϊڣ2Ϊ10/100Mڣ3Ϊ100Mģˣ
            4Ϊ100Mģˣ5Ϊ1000Mģˣ6Ϊ1000Mģˣ7Ϊ1000Mڣ
            9Ϊ4/8˿ڰ׵ģ˫˹ڣ10Ϊ4/8˿ڰ׶ģ˫˹1310nm
            11Ϊ4/8˿ڰ׶ģ˫˹850nm 12Ϊ4/8˿ڰ׵ģ˫ڷ䲨1550nm
            13Ϊ4/8˿ڰ׵ģ˫ڷ䲨1310nm"
        ::= { portTypeEntry 2 }

--
--  gbnDeviceSwitchAggregation - Port Trunk Group
--

    aggTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AggEntry
        MAX-ACCESS  not-accessible
        STATUS      obsolete
        DESCRIPTION
            "A table that contains information about every
            Aggregator that is associated with this System."
        ::= { gbnDeviceSwitchAggregation 1 }

    aggEntry OBJECT-TYPE
        SYNTAX      AggEntry
        MAX-ACCESS  not-accessible
        STATUS      obsolete
        DESCRIPTION
            "A list of the Aggregator parameters. This is indexed
            by the ifIndex of the Aggregator."
        INDEX { aggUnit, aggPort }
        ::= { aggTable 1 }

       AggEntry ::=
        SEQUENCE {
            aggUnit
               INTEGER,
            aggPort
               INTEGER,
            aggPortListPorts
               PortList,
            aggRule
               INTEGER,
            aggRowstatus
               RowStatus
        }

    aggUnit OBJECT-TYPE
        SYNTAX       INTEGER
        MAX-ACCESS   read-only
        STATUS       obsolete
        DESCRIPTION
            "The Interface Unit of the Aggregation."
        ::= { aggEntry 1 }

    aggPort OBJECT-TYPE
        SYNTAX       INTEGER
        MAX-ACCESS   read-only
        STATUS       obsolete
        DESCRIPTION
            "The MasterPort of the Aggregation."
        ::= { aggEntry 2 }

    aggPortListPorts OBJECT-TYPE
        SYNTAX      PortList
        MAX-ACCESS  read-write
        STATUS      obsolete
        DESCRIPTION
            "The complete set of ports currently associated with
             this Aggregator.  Each bit set in this list represents
             an Actor Port member of this Link Aggregation."
        ::= { aggEntry 3 }

    aggRule OBJECT-TYPE
    SYNTAX INTEGER {
        srcMAC(1),
        destMAC(2),
        srcXORDestMAC(3),
        srcIP(4),
        destIP(5),
        srcXORDestIP(6)
    }
    ACCESS read-write
    STATUS obsolete
    DESCRIPTION
        " The Rule to be applied to this Link Aggregator's Trunk Group
        Table. The rules are based on the following selections SrcMAC (1),
        means that the last three bits of the Source MAC Address are used to
        index the Trunk Group to get the destination port. DestMAC (2), means
        the last three bits of the Destination MAC Address are used to index
        into the Trunk Group to get the destination port. SrcXORDestMAC (3),
        means that the last three bits of the Source MAC Address are logically
        XORed with the last three bits of the Destination MAC Address and used
        to index into the Trunk Group to get the destination port. SrcIP (4),
        means the last three bits of the Source IP Address are used to index
        into the Trunk Group to get the destination port. DestIP (5), means
        the last three bits of the Destination IP Address are used to index
        into the Trunk Group to get the destination port. SrcXORDestIP (6),
        means the last three bits of the Source IP Address are logically XORed
        with the last three bits of the Destination IP Address and used to
        index into the Trunk Group to get the destination port. This rule
        defines the distribution algorithm applied to the aggregated link."
    ::= { aggEntry 4 }

    aggRowstatus OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-write
        STATUS       obsolete
        DESCRIPTION
            "rowstatus of trunk."
        ::= { aggEntry 5 }

--
--  gbnDeviceSwitchL3 - L3 Group
--

    l3Table OBJECT-TYPE
        SYNTAX      SEQUENCE OF L3Entry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "˱ΪоƬL3ݡ"
        ::= { gbnDeviceSwitchL3 1 }

    l3Entry OBJECT-TYPE
        SYNTAX      L3Entry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "оƬL3˱Ϊֻ"
        INDEX   { l3IpAddress }
        ::= { l3Table 1 }

    L3Entry ::=
        SEQUENCE {
            l3IpAddress          IpAddress,
            l3NextHopMacAddress  MacAddress,
            l3Vlan               VlanIndex,
            l3Port               INTEGER,
            l3CreateTime         DateAndTime,
            l3UpdateTime         DateAndTime
        }

    l3IpAddress OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION "ĿIPַΪ"
        ::= { l3Entry 1 }

    l3NextHopMacAddress OBJECT-TYPE
        SYNTAX       MacAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION "һIPMACַ"
        ::= { l3Entry 2 }

    l3Vlan OBJECT-TYPE
        SYNTAX       VlanIndex
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION "һIPڵVLAN"
        ::= { l3Entry 3 }

    l3Port OBJECT-TYPE
        SYNTAX       INTEGER
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION "ĵĳ˿ڡ"
        ::= { l3Entry 4 }

    l3CreateTime OBJECT-TYPE
        SYNTAX       DateAndTime
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION "Create Time,such as 2004-07-29,13:30:15.0"
        ::= { l3Entry 5 }

    l3UpdateTime OBJECT-TYPE
        SYNTAX       DateAndTime
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION "Update Time,such as 2004-07-29,13:30:15.0"
        ::= { l3Entry 6 }

--
--  gbnDeviceSwitchLoopTest - Loop Test Group
--

   loopTestPortno  OBJECT-TYPE
        SYNTAX DisplayString(SIZE(1..4))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "port bitmap:Numbers of the port to be tested.
            The highest bit is port 1, the second bit is port 2, and so on."
        ::= { gbnDeviceSwitchLoopTest 1 }

     loopTestType  OBJECT-TYPE
        SYNTAX INTEGER {
               noop(1),    -- no operation
               local(2),   -- for both vdsl and ethernet port
               remote(3),   -- for both vdsl and ethernet port
               other(4)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { 4 }
             Setting this object to 2-4 enables loop back test.
             Setting it to 1 disables loop back test."
        ::= { gbnDeviceSwitchLoopTest 2 }

   loopTestSuccess  OBJECT-TYPE
        SYNTAX DisplayString(SIZE(1..4))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "if the highest bit is
             0:the port 1 loop fail,
             1,the port 1 loop success,
             and so on.
             "
        ::= { gbnDeviceSwitchLoopTest 3 }

--
--  gbnDeviceSwitchSRM - SRM Group
--

    srmHardwareEnable OBJECT-TYPE
        SYNTAX  INTEGER {
              enabled(1),
              disabled(2)
          }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Add network routes to hardware table or not.Default is enable."
        ::= { gbnDeviceSwitchSRM 1 }

   srmHardwareDEFCPU OBJECT-TYPE
        SYNTAX  INTEGER {
              enabled(1),
              disabled(2)
          }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The DEF routes goes to CPU."
        ::= { gbnDeviceSwitchSRM 2 }

--
--  gbnDeviceSwitchFlowAlarm - Port Flow Alarm Group
--

    portFlowAlarmTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PortFlowAlarmEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A Table of port flow alarm."
        ::= { gbnDeviceSwitchFlowAlarm 1 }

    portFlowAlarmEntry OBJECT-TYPE
        SYNTAX PortFlowAlarmEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of port flow alarm."
        INDEX { portFlowAlarmPort }
        ::= { portFlowAlarmTable 1 }

    PortFlowAlarmEntry ::= SEQUENCE {
            portFlowAlarmPort            Integer32,
            portFlowAlarmEnable          TruthValue,
            portFlowAlarmExceedStatus  TruthValue,
            portFlowAlarmExceedThreshold  Integer32,
            portFlowAlarmNormalThreshold  Integer32
        }

    portFlowAlarmPort OBJECT-TYPE
        SYNTAX Integer32 (1..26)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The port number."
        ::= { portFlowAlarmEntry 1 }

    portFlowAlarmEnable OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The enable status of the port flow alarm"
        ::= { portFlowAlarmEntry 2 }

    portFlowAlarmExceedStatus OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The exceed status of the port flow alarm"
        ::= { portFlowAlarmEntry 3 }

    portFlowAlarmExceedThreshold OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS  read-write
        STATUS current
        DESCRIPTION
            "The exceed threshold of port flow alarm."
        ::= { portFlowAlarmEntry 4 }

    portFlowAlarmNormalThreshold OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The normal threshold of port flow alarm."
        ::= { portFlowAlarmEntry 5 }

    portFlowAlarmGlobalEnable OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The global enable status of port flow alarm."
        ::= { gbnDeviceSwitchFlowAlarm 2 }

--
--  gbnDeviceSwitchTrap - gbn device switch TRAP
--

    portFlowAlarmTrap      OBJECT IDENTIFIER ::= { gbnDeviceSwitchFlowAlarm 5 }

    portFlowAlarmExceedTrap NOTIFICATION-TYPE
        OBJECTS { portFlowAlarmPort }
        STATUS  current
        DESCRIPTION
               "Port ingress packet rate become too big, port flow exceed alarm happen."
        ::= { portFlowAlarmTrap 1 }

    portFlowAlarmNormalTrap NOTIFICATION-TYPE
        OBJECTS { portFlowAlarmPort }
        STATUS  current
        DESCRIPTION
               "Port ingress packet rate become normal, port flow normal alarm happen."
        ::= { portFlowAlarmTrap 2 }

--
--  QoS Queue Scheduler
--

   qosQueueSchedulerGroup  OBJECT IDENTIFIER ::= { gbnDeviceSwitchQueneScheduer 1 }

   qosWrrQueue1Weight OBJECT-TYPE
       SYNTAX  INTEGER (1..100)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Weight of 1th queue(%)."
       ::= { qosQueueSchedulerGroup 1 }

   qosWrrQueue2Weight OBJECT-TYPE
       SYNTAX  INTEGER (1..100)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Weight of 2th queue(%). "
       ::= { qosQueueSchedulerGroup 2 }


   qosWrrQueue3Weight OBJECT-TYPE
       SYNTAX  INTEGER (1..100)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Weight of 3th queue(%)."
       ::= { qosQueueSchedulerGroup 3 }


   qosWrrQueue4Weight OBJECT-TYPE
       SYNTAX  INTEGER (1..100)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Weight of 4th queue(%)."
       ::= { qosQueueSchedulerGroup 4 }

   qosWrrMaxDelayValue OBJECT-TYPE
       SYNTAX  INTEGER (1..255)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "the maximum allowable latency for packet transmission on the priorest COS"
       ::= { qosQueueSchedulerGroup 5 }

   qosQueueSchedulerMode OBJECT-TYPE
       SYNTAX  INTEGER  {
                        strictPriority (1),
                        wrr(2) }
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "queue scheduler mode: strict priority, weighted round robin"
       DEFVAL  { strictPriority }
       ::= { qosQueueSchedulerGroup 6 }

   qosWrrQueue5Weight OBJECT-TYPE
       SYNTAX  INTEGER (1..100)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Weight of 5th queue(%)."
       ::= { qosQueueSchedulerGroup 7 }

   qosWrrQueue6Weight OBJECT-TYPE
       SYNTAX  INTEGER (1..100)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Weight of 6th queue(%). "
       ::= { qosQueueSchedulerGroup 8 }


   qosWrrQueue7Weight OBJECT-TYPE
       SYNTAX  INTEGER (1..100)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Weight of 7th queue(%)."
       ::= { qosQueueSchedulerGroup 9 }


   qosWrrQueue8Weight OBJECT-TYPE
       SYNTAX  INTEGER (1..100)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Weight of 8th queue(%)."
       ::= { qosQueueSchedulerGroup 10 }

   qosPriorityRemapGroup  OBJECT IDENTIFIER ::= { gbnDeviceSwitchQueneScheduer 2 }

   qosPriority0Remap OBJECT-TYPE
       SYNTAX  INTEGER (0..7)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Remap of 0 priority."
       ::= { qosPriorityRemapGroup 1 }

   qosPriority1Remap OBJECT-TYPE
       SYNTAX  INTEGER (0..7)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Remap of 1 priority."
       ::= { qosPriorityRemapGroup 2 }

   qosPriority2Remap OBJECT-TYPE
       SYNTAX  INTEGER (0..7)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Remap of 2 priority."
       ::= { qosPriorityRemapGroup 3 }

   qosPriority3Remap OBJECT-TYPE
       SYNTAX  INTEGER (0..7)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Remap of 3 priority."
       ::= { qosPriorityRemapGroup 4 }

   qosPriority4Remap OBJECT-TYPE
       SYNTAX  INTEGER (0..7)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Remap of 4 priority."
       ::= { qosPriorityRemapGroup 5 }

   qosPriority5Remap OBJECT-TYPE
       SYNTAX  INTEGER (0..7)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Remap of 5 priority."
       ::= { qosPriorityRemapGroup 6 }

   qosPriority6Remap OBJECT-TYPE
       SYNTAX  INTEGER (0..7)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Remap of 6 priority."
       ::= { qosPriorityRemapGroup 7 }

   qosPriority7Remap OBJECT-TYPE
       SYNTAX  INTEGER (0..7)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Remap of 7 priority."
       ::= { qosPriorityRemapGroup 8 }

   qosPriorityRemapStatus OBJECT-TYPE
       SYNTAX  INTEGER  {
                        enable (1),
                        disable(2)}
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "Priority remap status: enable, disable"
       DEFVAL  { strictPriority }
       ::= { qosPriorityRemapGroup 9 }

--
-- QOS line-rate configuration                       --
--

   qosLineRateTable OBJECT-TYPE
       SYNTAX  SEQUENCE OF QosLineRateEntry
       ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
               "A list of line-rate QOS entries. "
       ::= { gbnDeviceSwitchLineRate 1 }

   qosLineRateEntry OBJECT-TYPE
       SYNTAX  QosLineRateEntry
       ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
               "A list of line-rate QOS entries. "
       INDEX   { qosLineRateInterface }
       ::= { qosLineRateTable 1 }

   QosLineRateEntry ::=
       SEQUENCE {
           qosLineRateInterface
               INTEGER,
           qosLineRateTargetRate
               INTEGER,
           qosLineRateRowStatus
               RowStatus
       }

   qosLineRateInterface OBJECT-TYPE
       SYNTAX  INTEGER (1..26)
       ACCESS  read-only
       STATUS  current
       DESCRIPTION
               "the line rate interface.  "
       ::= { qosLineRateEntry 1 }

   qosLineRateTargetRate OBJECT-TYPE
       SYNTAX  INTEGER (1..100)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "the target rate of the line-rate QOS. "
       ::= { qosLineRateEntry 2 }

--
-- the port-isolation configuration
--
   portIsolationGroup  OBJECT IDENTIFIER ::= { gbnDeviceSwitchPortIsolation 1 }

   portIsolationDownLinkPorts OBJECT-TYPE
       SYNTAX  PortList
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "port isolation down link portlist"
       ::= { portIsolationGroup 1 }

--
-- the storm control
--

   stormControlTable OBJECT-TYPE
       SYNTAX  SEQUENCE OF StormControlEntry
       ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
               "A list of storm control entries. "
       ::= { gbnDeviceSwitchStormControl 1 }

   stormControlEntry OBJECT-TYPE
       SYNTAX  StormControlEntry
       ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
               "A list of storm control entries. "
       INDEX   { stormControlInterface, stormControlType }
       ::= { stormControlTable 1 }

   StormControlEntry ::=
       SEQUENCE {
           stormControlInterface
               INTEGER,
           stormControlType
               INTEGER,
           stormControlTargetRate
               INTEGER,
           stormControlRowStatus
               RowStatus
       }

   stormControlInterface OBJECT-TYPE
       SYNTAX  INTEGER (1..26)
       ACCESS  read-only
       STATUS  current
       DESCRIPTION
               "the storm control interface. "
       ::= { stormControlEntry 1 }

   stormControlType OBJECT-TYPE
       SYNTAX  INTEGER
       ACCESS  read-only
       STATUS  current
       DESCRIPTION
               "the pack flow type of the storm control. "
       ::= { stormControlEntry 2 }

   stormControlTargetRate OBJECT-TYPE
       SYNTAX  INTEGER (1..1000)
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "the target rate of the storm control. "
       ::= { stormControlEntry 3 }

   stormControlRowStatus OBJECT-TYPE
        SYNTAX   RowStatus
        MAX-ACCESS   read-write
        STATUS   current
        DESCRIPTION
                "row status of the storm control"
        ::= { stormControlEntry 4 }


--
-- the bandwidth control
--

   bandwidthcontrolTable OBJECT-TYPE
        SYNTAX SEQUENCE OF BandwidthcontrolEntry
        MAX-ACCESS  not-accessible
        STATUS current
        DESCRIPTION
            "A table of switch interfaces and associated properties."
        ::= { gbnDeviceSwitchBandWidth 1 }

    bandwidthcontrolEntry OBJECT-TYPE
        SYNTAX BandwidthcontrolEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Table entry for switch interface control and status information."
        INDEX { controlPort }
        ::= { bandwidthcontrolTable 1 }

    BandwidthcontrolEntry ::= SEQUENCE {
        controlPort                             INTEGER,
        portEgressBandwidthcontrol     INTEGER,
        portIngressBandwidthcontrol    INTEGER
      }

    controlPort OBJECT-TYPE
        SYNTAX INTEGER (1..26)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "the index of port."
        ::= { bandwidthcontrolEntry 1 }

    portEgressBandwidthcontrol OBJECT-TYPE
        SYNTAX INTEGER (0..1024000)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Egress Speed Value of port, bandwidth control ."
        ::= { bandwidthcontrolEntry 2 }

    portIngressBandwidthcontrol OBJECT-TYPE
        SYNTAX INTEGER (0..1024000)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Ingress Speed Value of port, bandwidth control ."
        ::= { bandwidthcontrolEntry 3 }

--
-- the newStorm control
--

   newStormControlType OBJECT-TYPE
       SYNTAX  INTEGER {
                        none (0),
                        broadcast (1),
                        ipmulticast (2),
                        broadcast-ipmulticast (3),
                        dlf (4),
                        broadcast-dlf (5),
                        ipmulticast-dlf (6),
                        broadcast-ipmulticast-dlf (7)
                       }
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "the pack flow type of the storm control."
       ::= { gbnDeviceSwitchNewStormControl 1 }

   newStormControlTargetRate OBJECT-TYPE
       SYNTAX  INTEGER {
                        rate-one-sixteenth (6),
                        rate-one-eighth (12),
                        rate-one-fourth (25),
                        rate-one-half (50)}
       ACCESS  read-write
       STATUS  current
       DESCRIPTION
               "the target rate of the storm control."
       ::= { gbnDeviceSwitchNewStormControl 2 }

   newStormControlTable OBJECT-TYPE
       SYNTAX  SEQUENCE OF NewStormControlEntry
       ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
               "A list of storm control entries."
       ::= { gbnDeviceSwitchNewStormControl 3 }

   newStormControlEntry OBJECT-TYPE
       SYNTAX  NewStormControlEntry
       ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
               "A list of storm control entries."
       INDEX   { newStormControlInterface }
       ::= { newStormControlTable 1 }

   NewStormControlEntry ::=
       SEQUENCE {
           newStormControlInterface
               INTEGER,
           newStormControlStatus
               INTEGER
       }

   newStormControlInterface OBJECT-TYPE
       SYNTAX  INTEGER (1..26)
       ACCESS  read-only
       STATUS  current
       DESCRIPTION
               "the storm control interface."
       ::= { newStormControlEntry 1 }

   newStormControlStatus OBJECT-TYPE
        SYNTAX   INTEGER {
                          enable(1),
                      disable(2)
                         }
        MAX-ACCESS   read-write
        STATUS   current
        DESCRIPTION
                "the status of the storm control."
        ::= { newStormControlEntry 2 }

--
-- END of gbnDeviceSwitch-MIB
--

END
