--------------------------------------------------
--Version Number:20050824001
--Desc:
--------------------------------------------------
---changed diffServClassMapType's order from "matchAny (1),matchAll (2)" to "matchAll (1),matchAny (2)" and indicate 
---srw224p don't support matchAll in description.
---changed aclMacAceEtherTypeOp,aclMacAceMinEtherType,aclMacAcePktformat and aclMacAceMaxEtherType's MAX-ACCESS from read-create to not-accessible
---changed aclMacAceMaxVid and aclMacAceVidOp's MAX-ACCESS from read-create to read-only

--------------------------------------------------
--Version Number:20050816001
--Desc:
--------------------------------------------------
---remove LEAF_diffServMultiFieldClfrExtVid from diffServMultiFieldClfrExtEntry


--------------------------------------------------
--Version Number:20050812001
--Desc:
--------------------------------------------------
---change "hybrid" to "general" and "dot1qTrunk" to "trunk" in vlanPortMode

--------------------------------------------------
--Version Number:20050721001
--Desc:
--------------------------------------------------
---suport diffserv

--------------------------------------------------
--Version Number:20050719001
--Desc:
--------------------------------------------------
---update rateLimitFastEthernetGranularity's DESCRIPTION to figure out n is a shortcut key for Granularity RATE behind it.


--------------------------------------------------
--Version Number:20050718001
--Desc:
--------------------------------------------------
---support PoE

--------------------------------------------------
--Version Number:20050701001
--Desc:
--------------------------------------------------
--changed consoleLoginResponseTimeout's MAX-ACCESS from read-write to read-only and update its DESCRIPTION
--removed node swIpFilterRejectTrap(include trapIpFilterRejectMode and trapIpFilterRejectIp)
--change tftpSrcFile's range from 0...127 to 1..32
--change tftpDestFile's range from 0...127 to 1..32
--change fileCopySrcFileName's range from 0...127 to 1..32
--change fileCopyDestFileName's range from 0...127 to 1..32
--changed swIndivPowerIndex type from INTEGER to Integer32
--changed rlPortInputLevel's range from 1..30 to 1..255 and update its description
--changed rlPortOutputLevel's range from 1..30 to 1..255 and update its description
--added node:swPortSecurityTrap,IMPORT ifIndex FROM IF-MIB
--removed "Accton Technology Corp." from ORGANIZATION 
--added add range "granularity8(4),granularity64(5),granularity2000(6)" for rateLimitFastEthernetGranularity
--added node tacacsMgt

--------------------------------------------------
--Version Number:20050623001
--Desc:
--------------------------------------------------
--Remove pvlan syslog smtp ntp ssh telnet

--------------------------------------------------
--Version Number:20050406001
--Desc:
--------------------------------------------------
--add NTP support


--------------------------------------------------
--Version Number:20050117001
--Desc:
--------------------------------------------------
--add two new nodes:amtrMacAddrAgingStatus and portSecAction
--change wrong description for tftpAction, 
--and add range for bcastStormOctetRate radiusServerKey and ratelimitFastEthernetGranularity
--
--------------------------------------------------

SRW224P-MIB DEFINITIONS ::= BEGIN

IMPORTS
       
        MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Gauge32,Integer32,Counter32,IpAddress,
        NOTIFICATION-TYPE, enterprises
                FROM SNMPv2-SMI
        DisplayString, RowStatus,RowPointer, TruthValue
                FROM SNMPv2-TC
        PortList,VlanIndex 
                FROM Q-BRIDGE-MIB
        InterfaceIndex, ifIndex
               FROM IF-MIB
        diffServClfrEntry, diffServMultiFieldClfrEntry, IndexIntegerNextFree, IndexInteger
                FROM DIFFSERV-MIB
        SnmpAdminString
                  FROM SNMP-FRAMEWORK-MIB       
        EnabledStatus 
                FROM P-BRIDGE-MIB;


linksys              OBJECT IDENTIFIER ::= { enterprises 3955 }
snmpMgt              OBJECT IDENTIFIER ::= { linksys 6 }
cheetahSwitchMgt     OBJECT IDENTIFIER ::= { snmpMgt 4 }
poeSwitchMgt         OBJECT IDENTIFIER ::= { cheetahSwitchMgt 224 }

srw224pMIB MODULE-IDENTITY
        LAST-UPDATED "200109060000Z"
        ORGANIZATION ""
        CONTACT-INFO
                "Cisco Linksys
                 Customer Service

                 Postal: 121 Theory Dr.,
                         Irvine, CA 92617
                 
                 Tel: (800) 326- 7114
                 
                 FAX: (949) 823-3007
                
                 E-mail: sales@linksys.com"
        DESCRIPTION
                "The MIB module for SRW224P."
        REVISION "200109060000Z"
        DESCRIPTION
                "Initial version of this MIB."
        ::= { poeSwitchMgt 1 }


srw224pMIBObjects       OBJECT IDENTIFIER ::= { srw224pMIB 1 }
srw224pNotifications    OBJECT IDENTIFIER ::= { srw224pMIB 2 }
srw224pConformance      OBJECT IDENTIFIER ::= { srw224pMIB 3 }

--supported groups
switchMgt           OBJECT IDENTIFIER ::= { srw224pMIBObjects 1 }
portMgt             OBJECT IDENTIFIER ::= { srw224pMIBObjects 2 }
trunkMgt            OBJECT IDENTIFIER ::= { srw224pMIBObjects 3 }
lacpMgt             OBJECT IDENTIFIER ::= { srw224pMIBObjects 4 }
staMgt              OBJECT IDENTIFIER ::= { srw224pMIBObjects 5 }
tftpMgt             OBJECT IDENTIFIER ::= { srw224pMIBObjects 6 }
restartMgt          OBJECT IDENTIFIER ::= { srw224pMIBObjects 7 }
mirrorMgt           OBJECT IDENTIFIER ::= { srw224pMIBObjects 8 }
igmpSnoopMgt        OBJECT IDENTIFIER ::= { srw224pMIBObjects 9 }
ipMgt               OBJECT IDENTIFIER ::= { srw224pMIBObjects 10 }
bcastStormMgt       OBJECT IDENTIFIER ::= { srw224pMIBObjects 11 }
vlanMgt             OBJECT IDENTIFIER ::= { srw224pMIBObjects 12 }
priorityMgt         OBJECT IDENTIFIER ::= { srw224pMIBObjects 13 }
trapDestMgt         OBJECT IDENTIFIER ::= { srw224pMIBObjects 14 }
qosMgt              OBJECT IDENTIFIER ::= { srw224pMIBObjects 16 }
securityMgt         OBJECT IDENTIFIER ::= { srw224pMIBObjects 17 }
lineMgt             OBJECT IDENTIFIER ::= { srw224pMIBObjects 20 }
sysTimeMgt          OBJECT IDENTIFIER ::= { srw224pMIBObjects 23 }
fileMgt             OBJECT IDENTIFIER ::= { srw224pMIBObjects 24 }
poeMgt              OBJECT IDENTIFIER ::= { srw224pMIBObjects 28 }

-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------

ValidStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "A simple status value for the object to create and destroy
         a table entry. This is a simplified variant of RowStatus as it
         supports only two values. Setting it to valid(1) creates an entry.
         Setting it to invalid(2) destroys an entry."
    SYNTAX      INTEGER { valid(1), invalid(2) }



StaPathCostMode ::= TEXTUAL-CONVENTION
     STATUS  current
     DESCRIPTION 
         "The path cost mode of a spanning tree algorithm, short(1) indicates 
          that we retrieve/configure the spanning tree path cost as a 16 bit 
          value and long(2) indicates that we retrieve/configure the spanning 
          tree path cost as a 32 bit value."
     SYNTAX      INTEGER { short(1), long(2) }
    
--
-- switchMgt
--

switchManagementVlan OBJECT-TYPE
        SYNTAX      INTEGER (1..4094)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The VLAN on which management is done."
        ::= { switchMgt 1 }

switchNumber OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of switches present on this system."
        ::= { switchMgt 2 }

switchInfoTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwitchInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table of descriptive and status information about
                     switches in this system."
        ::= { switchMgt 3 }

switchInfoEntry OBJECT-TYPE
        SYNTAX      SwitchInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry in the table, containing information
                     about a single switch in this system."
        INDEX       { swUnitIndex }
        ::= { switchInfoTable 1 }

SwitchInfoEntry ::= SEQUENCE
{
    swUnitIndex             Integer32,
    swHardwareVer           DisplayString,
    swMicrocodeVer          DisplayString,
    swLoaderVer             DisplayString,
    swBootRomVer            DisplayString,
    swOpCodeVer             DisplayString,
    swPortNumber            Integer32,
    swPowerStatus           INTEGER,
    swRoleInSystem          INTEGER,
    swSerialNumber          DisplayString,
    swExpansionSlot1        INTEGER,
    swExpansionSlot2        INTEGER,
    swServiceTag            DisplayString
}

swUnitIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object identifies the switch within the system
                     for which this entry contains information. This
                     value can never be greater than switchNumber."
        ::= { switchInfoEntry 1 }

swHardwareVer OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..20))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Hardware version of the main board."
        ::= { switchInfoEntry 2 }

swMicrocodeVer OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..20))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Microcode version of the main board."
        ::= { switchInfoEntry 3 }

swLoaderVer OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..20))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Loader version of the main board."
        ::= { switchInfoEntry 4 }

swBootRomVer OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..20))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Boot ROM code version of the main board."
        ::= { switchInfoEntry 5 }

swOpCodeVer OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..20))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Operation code version of the main board."
        ::= { switchInfoEntry 6 }

swPortNumber OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total port number of this switch
                     (including expansion slot)."
        ::= { switchInfoEntry 7 }

swPowerStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        internalPower(1),
                        redundantPower(2),
                        internalAndRedundantPower(3)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the switch using internalPower(1),
                     redundantPower(2) or both(3)"
        ::= { switchInfoEntry 8 }

swRoleInSystem OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        master(1),
                        backupMaster(2),
                        slave(3)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the switch is master(1), backupMaster(2)
                     or slave(3) in this system."
        ::= { switchInfoEntry 9 }

swSerialNumber OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..80))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Serial number of the switch."
        ::= { switchInfoEntry 10 }

swExpansionSlot1 OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notPresent(1),
                        other(2),
                        hundredBaseFxScMmf(3),
                        hundredBaseFxScSmf(4),
                        hundredBaseFxMtrjMmf(5),
                        thousandBaseSxScMmf(6),
                        thousandBaseSxMtrjMmf(7),
                        thousandBaseXGbic(8),
                        thousandBaseLxScSmf(9),
                        thousandBaseT(10),
                        stackingModule(11),
                        thousandBaseSfp(12),
                        tenHundredBaseT4port(13),
                        tenHundredBaseFxMtrj4port(14),
                        comboStackingSfp(15),
                        tenHundredBaseT(16)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Type of expansion module in this switch slot 1."
        ::= { switchInfoEntry 11 }

swExpansionSlot2 OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notPresent(1),
                        other(2),
                        hundredBaseFxScMmf(3),
                        hundredBaseFxScSmf(4),
                        hundredBaseFxMtrjMmf(5),
                        thousandBaseSxScMmf(6),
                        thousandBaseSxMtrjMmf(7),
                        thousandBaseXGbic(8),
                        thousandBaseLxScSmf(9),
                        thousandBaseT(10),
                        stackingModule(11),
                        thousandBaseSfp(12),
                        tenHundredBaseT4port(13),
                        tenHundredBaseFxMtrj4port(14),
                        comboStackingSfp(15),
                        tenHundredBaseT(16)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Type of expansion module in this switch slot 2."
        ::= { switchInfoEntry 12 }

swServiceTag OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..80))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Service tag serial-number of the switch."
        ::= { switchInfoEntry 13 }

switchOperState OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        other(1),
                        unknown(2),
                        ok(3),
                        noncritical(4),
                        critical(5),
                        nonrecoverable(6)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Global operation state of the switch."
        ::= { switchMgt 4 }

switchProductId     OBJECT IDENTIFIER ::= { switchMgt 5 }

swProdName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..127))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION ""
        ::= { switchProductId 1 }

swProdManufacturer OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..127))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION ""
        ::= { switchProductId 2 }

swProdDescription OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..127))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION ""
        ::= { switchProductId 3 }

swProdVersion OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..127))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION ""
        ::= { switchProductId 4 }

swProdUrl OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..127))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION ""
        ::= { switchProductId 5 }

swIdentifier OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A unique identifier of which switch in the chassis is currently 
                     being looked at."
        ::= { switchProductId 6 }
        
swChassisServiceTag OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..80))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The service tag of the chassis this switch resides in."
        ::= { switchProductId 7 }

switchIndivPowerTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwitchIndivPowerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table about statuses of individual powers."
        ::= { switchMgt 6 }

switchIndivPowerEntry OBJECT-TYPE
        SYNTAX      SwitchIndivPowerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table about statuses of individual powers."
        INDEX       { swIndivPowerUnitIndex, swIndivPowerIndex }
        ::= { switchIndivPowerTable 1 }

SwitchIndivPowerEntry ::= SEQUENCE
{
    swIndivPowerUnitIndex   Integer32,
    swIndivPowerIndex       Integer32,
    swIndivPowerStatus      INTEGER
}

swIndivPowerUnitIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This is defined as swUnitIndex."
        ::= { switchIndivPowerEntry 1 }

swIndivPowerIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..2)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "1 means internal power. 2 means external power."
        ::= { switchIndivPowerEntry 2 }

swIndivPowerStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notPresent(1),
                        green(2),
                        red(3)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "notPresent(1) means not present. green(2) means
                     up. red(3) means down."
        ::= { switchIndivPowerEntry 3 }

amtrMgt      OBJECT IDENTIFIER   ::= { switchMgt 8 }
-- Address Management
amtrMacAddrAgingStatus OBJECT-TYPE
         SYNTAX     EnabledStatus
         MAX-ACCESS read-write
         STATUS     current
         DESCRIPTION "If this is enabled(1), the MAC address table will age out according to
                      its timer. If this is disabled(2), the MAC address table will not
                      age out."
         ::= { amtrMgt 3 } 
         
--
-- portMgt
--

portTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table of descriptive and status information about
                     configuration of each switch port (including expansion slot)
                     in this system. This table also contains information
                     about each trunk (similar to Cisco's EtherChannel)."
        ::= { portMgt 1 }

portEntry OBJECT-TYPE
        SYNTAX      PortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry in the table, containing information
                     about configuration in one switch port of the switch."
        INDEX       { portIndex }
        ::= { portTable 1 }

PortEntry ::= SEQUENCE
{
    portIndex                Integer32,
    portName                 DisplayString,
    portType                 INTEGER,
    portSpeedDpxCfg          INTEGER,
    portFlowCtrlCfg          INTEGER,
    portCapabilities         BITS,
    portAutonegotiation      INTEGER,
    portSpeedDpxStatus       INTEGER,
    portFlowCtrlStatus       INTEGER,
    portTrunkIndex           Integer32
}

portIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as ifIndex in the IF-MIB."
        ::= { portEntry 1 }

portName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..64))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Indicates the port name. This is same as 
                     ifAlias in the IF-MIB (RFC2863 or later)."
        ::= { portEntry 2 }

portType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        other(1),
                        hundredBaseTX(2),
                        hundredBaseFX(3),
                        thousandBaseSX(4),
                        thousandBaseLX(5),
                        thousandBaseT(6),
                        thousandBaseGBIC(7),
                        thousandBaseSfp(8),
                        hundredBaseFxScSingleMode(9),
                        hundredBaseFxScMultiMode(10)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the port type."
        ::= { portEntry 3 }

portSpeedDpxCfg OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        reserved(1),
                        halfDuplex10(2),
                        fullDuplex10(3),
                        halfDuplex100(4),
                        fullDuplex100(5),
                        halfDuplex1000(6),
                        fullDuplex1000(7)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set the port speed and duplex mode as follows:
                         halfDuplex10(2)    - 10Mbps and half duplex mode
                         fullDuplex10(3)    - 10Mbps and full duplex mode
                         halfDuplex100(4)   - 100Mbps and half duplex mode
                         fullDuplex100(5)   - 100Mbps and full duplex mode
                         halfDuplex1000(6)  - 1000Mbps and half duplex mode
                         fullDuplex1000(7)  - 1000Mbps and full duplex mode
                     hundredBaseTX port can be set as
                         halfDuplex10(2)
                         fullDuplex10(3)
                         halfDuplex100(4)
                         fullDuplex100(5)
                     hundredBaseFX port can be set as
                         halfDuplex100(4)
                         fullDuplex100(5)
                     thousandBaseSX port can be set as
                         halfDuplex1000(6)
                         fullDuplex1000(7)
                     The actual operating speed and duplex of the port
                     is given by portSpeedDpxStatus."
        DEFVAL      { halfDuplex10 }
        ::= { portEntry 4 }

portFlowCtrlCfg OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        enabled(1),
                        disabled(2),
                        backPressure(3),
                        dot3xFlowControl(4)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "(1) Flow control mechanism is enabled.
                         If the port type is hundredBaseTX or thousandBaseSX:
                         When the port is operating in halfDuplex mode, the
                         port uses backPressure flow control mechanism. When
                         the port is operating in fullDuplex mode, the port
                         uses IEEE 802.3x flow control mechanism.
                         If the port type is hundredBaseFX:
                         When the port is operating in halfDuplex mode, the
                         port uses backPressure flow control mechanism. When
                         the port is operating in fullDuplex mode, Flow
                         control mechanism will not function.
                     (2) Flow control mechanism is disabled.
                     (3) Flow control mechanism is backPressure.
                         when the port is in fullDuplex mode.This flow control
                         mechanism will not function.
                     (4) Flow control mechanism is IEEE 802.3x flow control.
                         when the port is in halfDuplex mode.This flow control
                         mechanism will not function.
                     hundredBaseTX and thousandBaseSX port can be set as:
                         enabled(1),
                         disabled(2),
                         backPressure(3),
                         dot3xFlowControl(4).
                     hundredBaseFX port can be set as:
                         enabled(1),
                         disabled(2),
                         backPressure(3).
                     The actual flow control mechanism is used given by
                     portFlowCtrlStatus."
        DEFVAL      { enabled }
        ::= { portEntry 5 }

portCapabilities OBJECT-TYPE
        SYNTAX      BITS
                    {
                        portCap10half(0),
                        portCap10full(1),
                        portCap100half(2),
                        portCap100full(3),
                        portCap1000half(4),
                        portCap1000full(5),
                        reserved6(6),
                        reserved7(7),
                        reserved8(8),
                        reserved9(9),
                        reserved10(10),
                        reserved11(11),
                        reserved12(12),
                        reserved13(13),
                        portCapSym(14),
                        portCapFlowCtrl(15)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Port capabilities."
        ::= { portEntry 6 }

portAutonegotiation OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether autonegotiation is enabled."
        ::= { portEntry 7 }
                        
portSpeedDpxStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        error(1),
                        halfDuplex10(2),
                        fullDuplex10(3),
                        halfDuplex100(4),
                        fullDuplex100(5),
                        halfDuplex1000(6),
                        fullDuplex1000(7)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The operating speed and duplex mode of the
                     switched port. If this index is a trunk,
                     the speed is the speed of its individual members.
                     If this index is a trunk and the result
                     is inconsistent among its member ports, this value is
                     error(1)."
        ::= { portEntry 8 }

portFlowCtrlStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        error(1),
                        backPressure(2),
                        dot3xFlowControl(3),
                        none(4)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "(2) BackPressure flow control machanism is used.
                     (3) IEEE 802.3 flow control machanism is used.
                     (4) Flow control mechanism is disabled.
                     If this index is a trunk and the result
                     is inconsistent among its member ports, this value is
                     error(1)."
        ::= { portEntry 9 }

portTrunkIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The trunk to which this port belongs. A value of 0
                    means that this port does not belong to any trunk.
                    A value greater than zero means that this port
                    belongs to trunk at trunkIndex, defined by the
                    corresponding trunkPorts."
        ::= { portEntry 10 }

--
-- trunkMgt
--

trunkMaxId OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum number for a trunk identifier."
    ::= { trunkMgt 1 }

trunkValidNumber OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid trunks."
    ::= { trunkMgt 2 }

trunkTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF TrunkEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table of descriptive and status information about
                     configuration of each trunk,
                     similar to Cisco EtherChannel."
        ::= { trunkMgt 3 }

trunkEntry OBJECT-TYPE
        SYNTAX      TrunkEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry in the table, containing information
                     about configuration in one trunk of the switch."
        INDEX       { trunkIndex }
        ::= { trunkTable 1 }

TrunkEntry ::= SEQUENCE
{
    trunkIndex                Integer32,
    trunkPorts                PortList,
    trunkCreation             INTEGER,
    trunkStatus               INTEGER
}

trunkIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object identifies the trunk within the switch
                     for which this entry contains information."
        ::= { trunkEntry 1 }

trunkPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The complete set of ports currently associated with
        this trunk."
    ::= { trunkEntry 2 }

trunkCreation OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    static(1),
                    lacp(2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A value of static(1) means a statically configured trunk.
         A value of lacp(2) means an LACP-configured trunk."
    ::= { trunkEntry 3 }

trunkStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    valid(1),
                    invalid(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Writing this to valid(1) creates an entry.
         Writing this to invalid(2) destroys an entry."
    ::= { trunkEntry 4 }

---
--- lacpMgt
---

lacpPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF LacpPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for LACP port configuration."
        ::= { lacpMgt 1 }

lacpPortEntry OBJECT-TYPE
        SYNTAX      LacpPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for LACP port configuration."
        INDEX       { lacpPortIndex }
        ::= { lacpPortTable 1 }

LacpPortEntry ::= SEQUENCE
{
    lacpPortIndex            Integer32,
    lacpPortStatus           INTEGER
}

lacpPortIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as ifIndex in the IF-MIB."
        ::= { lacpPortEntry 1 }

lacpPortStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether 802.3ad LACP is enabled."
        ::= { lacpPortEntry 2 }

--
-- staMgt
--

-- Management for Spanning Tree Algorithm (STA).
-- This has variables not already defined in the implemented
-- standard MIB(s).
      
-- for 1d(STP) start     
staSystemStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Global spanning tree status.
                     (1) Spanning tree protocol is enabled.
                     (2) Spanning tree protocol is disabled."
        DEFVAL      { enabled }
        ::= { staMgt 1 }
-- for 1d(STP) end

staPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF StaPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table manages port settings for Spanning Tree 
                     Protocol 802.1d, 802.1w or 802.1s depending on the 
                     value specified by staProtocolType."
        REFERENCE "IEEE 802.1d, IEEE 802.1w, IEEE 802.1s."
        ::= { staMgt 2 }

staPortEntry OBJECT-TYPE
        SYNTAX      StaPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual entry of staPortTable."
        INDEX       { staPortIndex }
        ::= { staPortTable 1 }

StaPortEntry ::= SEQUENCE
{
    staPortIndex                  Integer32,
-- for 1d(STP) start     
    staPortFastForward        EnabledStatus,
-- for 1d(STP) end
-- for 1w(RSTP) start          
    staPortProtocolMigration  TruthValue,
    staPortAdminEdgePort      TruthValue,
    staPortOperEdgePort       TruthValue,
    staPortAdminPointToPoint  INTEGER,
    staPortOperPointToPoint   TruthValue,
    staPortLongPathCost       Integer32,
    staPortSystemStatus       EnabledStatus
-- for 1w(RSTP) end  
}

staPortIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port and the trunk (excluding trunk member ports) 
                     interface of the staPortTable. The interface identified
                     by a particular value of this index is the same interface 
                     as identified by the same value of dot1dStpPort in the
                     BRIDGE-MIB."
        ::= { staPortEntry 1 }

-- for 1d(STP) start
staPortFastForward OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether fast forwarding is enabled."
        ::= { staPortEntry 2 }
-- for 1d(STP) end

-- for 1w(RSTP) start          
staPortProtocolMigration OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "When operating in RSTP (version 2) mode, writing true(1)
         to this object forces this port to transmit RSTP BPDUs.
         Any other operation on this object has no effect and
         it always returns false(2) when read."
    REFERENCE
        "IEEE 802.1w clause 14.8.2.4, 17.18.10, 17.26"
    ::= { staPortEntry 3 }

staPortAdminEdgePort OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The administrative value of the edge port parameter.  A
         value of true(1) indicates that this port should be
         assumed as an edge-port and a value of false(2) indicates
         that this port should be assumed as a non-edge-port."
    REFERENCE
        "IEEE 802.1t clause 14.8.2, 18.3.3"
    ::= { staPortEntry 4 }

staPortOperEdgePort OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The operational value of the edge port parameter. The object is
         initialized to the value of staPortAdminEdgePort and is set false
         when a BPDU is received."
    REFERENCE
        "IEEE 802.1t clause 14.8.2, 18.3.4"
    ::= { staPortEntry 5 }

staPortAdminPointToPoint OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    forceTrue(0),
                    forceFalse(1),
                    auto(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
     DESCRIPTION
        "The administrative point-to-point status of the LAN segment
         attached to this port. A value of forceTrue(0) indicates that
         this port should always be treated as if it is connected to
         a point-to-point link. A value of forceFalse(1) indicates
         that this port should be treated as having a shared media
         connection. A value of auto(2) indicates that this port is
         considered to have a point-to-point link if it is an Aggregator
         and all of its members are aggregatable, or if the MAC entity
         is configured for full duplex operation, either through
         auto-negotiation or by management means."
   REFERENCE
       "IEEE 802.1w clause 6.4.3, 6.5, 14.8.2"
   ::= { staPortEntry 6 }

staPortOperPointToPoint OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The operational point-to-point status of the LAN segment
         attached to this port. This indicates whether a port is
         considered to have a point-to-point connection or not.
         The value is determined by management or by auto-detection,
         as described in the staPortAdminPointToPoint object."
    REFERENCE
        "IEEE 802.1w clause 6.4.3, 6.5, 14.8.2"
    ::= { staPortEntry 7 }

staPortLongPathCost OBJECT-TYPE
    SYNTAX      Integer32(1..200000000)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
          "The contribution of this port to the path cost (in 32
          bits value) of paths towards the spanning tree root which
          include this port.

          This object is used to configure the spanning tree port
          path cost in the 32-bit value range when the
          staPathCostMethod is long(2).

          If the staPathCostMethod is short(1), this mib object is not 
          instantiated."
    ::= { staPortEntry 8 }

staPortSystemStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Per-port spanning tree status.
                     (1) Spanning tree protocol is enabled.
                     (2) Spanning tree protocol is disabled."
        DEFVAL      { enabled }
        ::= { staPortEntry 9 }

staProtocolType OBJECT-TYPE
    SYNTAX      INTEGER {
                    stp(1),
                    rstp(2),
                    mstp(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The version of Spanning Tree Protocol the bridge is currently
                 running. The value 'stp(1)' indicates the Spanning Tree 
                 Protocol is as specified in IEEE 802.1D,'rstp(2)' indicates that
                 the Rapid Spanning Tree Protocol is as specified in IEEE 
                 802.1w, and the value 'mstp(3)' indicates that the Multiple Spanning
                 Tree Protocol is as specified in IEEE 802.1s. Here LEO doesn't support 'mstp(3)'
                 New values may be defined in the future as new or updated versions of the 
                 protocol become available."
    REFERENCE
        "IEEE 802.1w clause 14.8.1, 17.12, 17.16.1"
    ::= { staMgt 3 }


staTxHoldCount OBJECT-TYPE
    SYNTAX      Integer32 (1..10)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value used by the Port Transmit state machine to limit
         the maximum transmission rate."
    REFERENCE
        "IEEE 802.1w clause 17.16.6"
    DEFVAL      { 3 }
    ::= { staMgt 4 }

staPathCostMethod    OBJECT-TYPE
    SYNTAX       StaPathCostMode
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "Indicates the type of spanning tree path cost mode configured
                 on the switch. This mode applies to all instances of the 
                 spanning tree protocol running on the switch.

                 When the value of this MIB object is changed, the path cost of
                 all ports will be reassigned to the default path cost values 
                 based on the new spanning tree path cost mode and the 
                 ports' speed.

                 When the value of this MIB object is set to long(2), the 
                 staPortLongPathCost MIB object must be used to retrieve/configure 
                 the spanning tree port path cost as a 32-bit value. 
                 The set operation on dot1dStpPortPathCost in BRIDGE-MIB will be rejected. 
                 While retrieving the value of dot1dStpPortPathCost, the maximum 
                 value of 65535 will be returned if the value of staPortLongPathCost 
                 for the same instance exceeds 65535.

                 When the value of this MIB object is set to short(1), the 
                 dot1dStpPortPathCost in BRIDGE-MIB must be used."
   DEFVAL  { short }
   ::= { staMgt 5} 
-- for 1w(RSTP) end   

--
-- tftpMgt
--

tftpFileType  OBJECT-TYPE
    SYNTAX     INTEGER {
                  opcode(1),
                  config(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Type of file to transfer."
    ::= { tftpMgt 1 }

tftpSrcFile  OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(1..32))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The source file name for TFTP transfer when a
        transfer is next requested via this MIB.  This value is set to
        the zero length string when no file name has been specified."
    ::= { tftpMgt 2 }

tftpDestFile  OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(1..32))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The destination file name for TFTP transfer when a
        transfer is next requested via this MIB.  This value is set to
        the zero length string when no file name has been specified."
    ::= { tftpMgt 3 }

tftpServer  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The IP address of the TFTP server for transfer
        when a download is next requested via this MIB.
        This value is set to `0.0.0.0' when no IP address has been
        specified."
    ::= { tftpMgt 4 }

tftpAction  OBJECT-TYPE
    SYNTAX     INTEGER {
                  notDownloading(1),
                  downloadToPROM(2),
                  downloadToRAM(3),
                  upload(4)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "When this object is set to downloadToRAM(3) or
        downloadToPROM(2), the device will discontinue its
        normal operation and begin download of the file specified
        by tftpSrcFile from the server specified by
        tftpServer to tftpDestFile in the device
        using the TFTP protocol.  If
        downloadToRAM(3) is specified, the new image is copied
        to RAM only (the old image remains unaltered in the flash
        EPROM).  If downloadToPROM(2) is specified
        the new image is written to the flash EPROM
        memory after its checksum has been verified to be correct.
        When the download process is completed, the device will
        warm boot to restart the newly loaded application.
        When the device is not downloading, this object will have
        a value of notDownloading(1).
        downloadToRAM(3) applies only to configuration download.
        Otherwise 'invalid value' is replied.
        When this object is set to upload(4), the device will begin
        upload of the file specified by tftpScrFile in the device
        to tftpDestFile in the server specified by tftpServer."
    ::= { tftpMgt 5 }

tftpStatus  OBJECT-TYPE
    SYNTAX     INTEGER {
                    tftpSuccess(1),
                    tftpStatusUnknown(2),
                    tftpGeneralError(3),
                    tftpNoResponseFromServer(4),
                    tftpDownloadChecksumError(5),--download only
                    tftpDownloadIncompatibleImage(6),--download only
                    tftpTftpFileNotFound(7),
                    tftpTftpAccessViolation(8)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The status of the last transfer procedure, if any.  This
        object will have a value of downloadStatusUnknown(2) if no
        transfer process has been performed."
    ::= { tftpMgt 6 }


--
-- restartMgt
--

restartOpCodeFile OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..32))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Name of op-code file for start-up."
        ::= { restartMgt 1 }

restartConfigFile OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..32))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Name of configuration file for start-up."
        ::= { restartMgt 2 }

restartControl  OBJECT-TYPE
    SYNTAX     INTEGER {
                    running(1),
                    warmBoot(2),
                    coldBoot(3)
              }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Setting this object to warmBoot(2) causes the device to
        restart the application software with current configuration
        parameters saved in non-volatile memory.  Setting this
        object to coldBoot(3) causes the device to reinitialize
        configuration parameters in non-volatile memory to default
        values and restart the application software.  When the device
        is running normally, this variable has a value of
        running(1)."
    ::= { restartMgt 3 }

--
-- mirrorMgt
--

mirrorTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MirrorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table of descriptive and status information about
                     switches in this system."
        ::= { mirrorMgt 1 }

mirrorEntry OBJECT-TYPE
        SYNTAX      MirrorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry in the table, containing information
                     about a single switch in this system. "
        INDEX       { mirrorDestinationPort, mirrorSourcePort }
        ::= { mirrorTable 1 }

MirrorEntry ::= SEQUENCE
{
    mirrorDestinationPort  Integer32,
    mirrorSourcePort       Integer32,
    mirrorType             INTEGER,
    mirrorStatus           INTEGER
}

mirrorDestinationPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Destination port for mirrored packets. This is defined
                    as ifIndex in the IF-MIB."
        ::= { mirrorEntry 1 }

mirrorSourcePort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Source port for mirrored packets. This is defined as
                    ifIndex in the IF-MIB."
        ::= { mirrorEntry 2 }

mirrorType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        rx(1),
                        tx(2)

                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "If this value is rx(1), receive packets will
                    be mirrored. If this value is tx(2), transmit

                    packets will be mirrored."
        ::= { mirrorEntry 3 }

mirrorStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        valid(1),
                        invalid(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Writing this to valid(1) creates an entry.
                     Writing this to invalid(2) destroys an entry."
        ::= { mirrorEntry 4 }

--
-- igmpSnoopMgt
--

igmpSnoopStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable IGMP snooping on the device.
                     When enabled, the device will examine IGMP packets and set
                     up filters for IGMP ports. "
        DEFVAL      { enabled }
        ::= { igmpSnoopMgt 1 }

igmpSnoopQuerier OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether to act as querier."
        DEFVAL      { enabled }
        ::= { igmpSnoopMgt 2 }

igmpSnoopQueryCount OBJECT-TYPE
        SYNTAX      INTEGER (2..10)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Maximum number of queries that have not been heard on the
                     system before the system starts taking action to solicit
                     reports."
        DEFVAL      { 2 }
        ::= { igmpSnoopMgt 3 }


igmpSnoopQueryInterval OBJECT-TYPE
        SYNTAX      INTEGER (60..125)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Query interval."
        DEFVAL      { 125 }
        ::= { igmpSnoopMgt 4 }

igmpSnoopQueryMaxResponseTime OBJECT-TYPE
        SYNTAX      INTEGER (5..25)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Timeout value (seconds) between IGMP reports received on a port
                     for an IP Multicast Address that can pass before the system
                     sends an IGMP Query out the port and removes it from the
                     list."
        DEFVAL      { 10 }
        ::= { igmpSnoopMgt 5 }

igmpSnoopQueryTimeout OBJECT-TYPE
        SYNTAX      INTEGER (300..500)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Query time-out."
        DEFVAL      { 300 }
        ::= { igmpSnoopMgt 6 }

igmpSnoopVersion OBJECT-TYPE
        SYNTAX      INTEGER (1..2)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Version."
        DEFVAL      { 2 }
        ::= { igmpSnoopMgt 7 }

igmpSnoopRouterCurrentTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IgmpSnoopRouterCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for current router ports."
    ::= { igmpSnoopMgt 8 }

igmpSnoopRouterCurrentEntry OBJECT-TYPE
    SYNTAX      IgmpSnoopRouterCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for current router ports."
    INDEX   { igmpSnoopRouterCurrentVlanIndex }
    ::= { 
igmpSnoopRouterCurrentTable 1 }

IgmpSnoopRouterCurrentEntry ::=
    SEQUENCE {
        igmpSnoopRouterCurrentVlanIndex
            Unsigned32,
        igmpSnoopRouterCurrentPorts
            PortList,
        igmpSnoopRouterCurrentStatus
            PortList
    }

igmpSnoopRouterCurrentVlanIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is defined as dot1qVlanIndex in the Q-BRIDGE-MIB."
    ::= { igmpSnoopRouterCurrentEntry 1 }

igmpSnoopRouterCurrentPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The set of ports which are current router ports.
         Within this list, some router ports are static router ports.
         Please refer to igmpSnoopRouterStaticTable."
    ::= { igmpSnoopRouterCurrentEntry 2 }

igmpSnoopRouterCurrentStatus OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The set of ports which are static router ports."
    ::= { igmpSnoopRouterCurrentEntry 3 }

igmpSnoopRouterStaticTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IgmpSnoopRouterStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for static router ports."
    ::= { igmpSnoopMgt 9 }

igmpSnoopRouterStaticEntry OBJECT-TYPE
    SYNTAX      IgmpSnoopRouterStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for static router ports."
    INDEX   { igmpSnoopRouterStaticVlanIndex }
    ::= { 
igmpSnoopRouterStaticTable 1 }

IgmpSnoopRouterStaticEntry ::=
    SEQUENCE {
        igmpSnoopRouterStaticVlanIndex
            Unsigned32,
        igmpSnoopRouterStaticPorts
            PortList,
        igmpSnoopRouterStaticStatus
            INTEGER
    }

igmpSnoopRouterStaticVlanIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is defined as dot1qVlanIndex in the Q-BRIDGE-MIB."
    ::= { igmpSnoopRouterStaticEntry 1 }

igmpSnoopRouterStaticPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The set of ports which are static router ports."
    ::= { igmpSnoopRouterStaticEntry 2 }

igmpSnoopRouterStaticStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    valid(1),
                    invalid(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Writing this to valid(1) creates an entry.
         Writing this to invalid(2) destroys an entry."
    ::= { igmpSnoopRouterStaticEntry 3 }

igmpSnoopMulticastCurrentTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IgmpSnoopMulticastCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for current multicast addresses."
    ::= { igmpSnoopMgt 10 }

igmpSnoopMulticastCurrentEntry OBJECT-TYPE
    SYNTAX      IgmpSnoopMulticastCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for current multicast addresses."
    INDEX   { igmpSnoopMulticastCurrentVlanIndex,
              igmpSnoopMulticastCurrentIpAddress }
    ::= { 
igmpSnoopMulticastCurrentTable 1 }

IgmpSnoopMulticastCurrentEntry ::=
    SEQUENCE {
        igmpSnoopMulticastCurrentVlanIndex
            Unsigned32,
        igmpSnoopMulticastCurrentIpAddress
            IpAddress,
        igmpSnoopMulticastCurrentPorts
            PortList,
        igmpSnoopMulticastCurrentStatus
            PortList
    }

igmpSnoopMulticastCurrentVlanIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is defined as dot1qVlanIndex in the Q-BRIDGE-MIB."
    ::= { igmpSnoopMulticastCurrentEntry 1 }

igmpSnoopMulticastCurrentIpAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "IP address of multicast group."
    ::= { igmpSnoopMulticastCurrentEntry 2 }

igmpSnoopMulticastCurrentPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The set of ports which are members."
    ::= { igmpSnoopMulticastCurrentEntry 3 }

igmpSnoopMulticastCurrentStatus OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The set of ports which are static members."
    ::= { igmpSnoopMulticastCurrentEntry 4 }

igmpSnoopMulticastStaticTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IgmpSnoopMulticastStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for static multicast addresses."
    ::= { igmpSnoopMgt 11 }

igmpSnoopMulticastStaticEntry OBJECT-TYPE
    SYNTAX      IgmpSnoopMulticastStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for static multicast addresses."
    INDEX   { igmpSnoopMulticastStaticVlanIndex,
              igmpSnoopMulticastStaticIpAddress }
    ::= { 
igmpSnoopMulticastStaticTable 1 }

IgmpSnoopMulticastStaticEntry ::=
    SEQUENCE {
        igmpSnoopMulticastStaticVlanIndex
            Unsigned32,
        igmpSnoopMulticastStaticIpAddress
            IpAddress,
        igmpSnoopMulticastStaticPorts
            PortList,
        igmpSnoopMulticastStaticStatus
            INTEGER
    }

igmpSnoopMulticastStaticVlanIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is defined as dot1qVlanIndex in the Q-BRIDGE-MIB."
    ::= { igmpSnoopMulticastStaticEntry 1 }

igmpSnoopMulticastStaticIpAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "IP address of multicast group."
    ::= { igmpSnoopMulticastStaticEntry 2 }

igmpSnoopMulticastStaticPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The set of ports which are members."
    ::= { igmpSnoopMulticastStaticEntry 3 }

igmpSnoopMulticastStaticStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    valid(1),
                    invalid(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Writing this to valid(1) creates an entry.
         Writing this to invalid(2) destroys an entry."
    ::= { igmpSnoopMulticastStaticEntry 4 }

--
-- The Probe Configuration Group
--
-- This group controls the configuration of various operating
-- parameters of the probe.

netConfigTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF NetConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of netConfigEntries."
    ::= { ipMgt 1 }

netConfigEntry  OBJECT-TYPE
    SYNTAX     NetConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A set of configuration parameters for a particular
        network interface on this device. If the device has no network
        interface, this table is empty.

        The index is composed of the ifIndex assigned to the
        corresponding interface."
    INDEX  { netConfigIfIndex, netConfigIPAddress, netConfigSubnetMask }
    ::= { netConfigTable 1 }

NetConfigEntry ::= SEQUENCE {
    netConfigIfIndex           Integer32,
    netConfigIPAddress         IpAddress,
    netConfigSubnetMask        IpAddress,
    netConfigPrimaryInterface  INTEGER,
    netConfigUnnumbered        INTEGER,
    netConfigStatus            RowStatus
}




netConfigIfIndex  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "VLAN interface on which this entry is defined.
        This is defined as ifIndex in the IF-MIB."
    ::= { netConfigEntry 1 }

netConfigIPAddress  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The IP address of this Net interface.  The default value
        for this object is 0.0.0.0.  If either the netConfigIPAddress
        or netConfigSubnetMask are 0.0.0.0, then when the device
        boots, it may use BOOTP to try to figure out what these
        values should be. If BOOTP fails, before the device
        can talk on the network, this value must be configured
        (e.g., through a terminal attached to the device). If BOOTP is
        used, care should be taken to not send BOOTP broadcasts too
        frequently and to eventually send very infrequently if no
        replies are received."
    ::= { netConfigEntry 2 }

netConfigSubnetMask  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The subnet mask of this Net interface.  The default value
        for this object is 0.0.0.0.  If either the netConfigIPAddress
        or netConfigSubnetMask are 0.0.0.0, then when the device
        boots, it may use BOOTP to try to figure out what these
        values should be. If BOOTP fails, before the device
        can talk on the network, this value must be configured
        (e.g., through a terminal attached to the device). If BOOTP is
        used, care should be taken to not send BOOTP broadcasts too
        frequently and to eventually send very infrequently if no
        replies are received."
    ::= { netConfigEntry 3 }

netConfigPrimaryInterface OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   primary(1),
                   secondary(2)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Whether this is a primary interface."
    ::= { netConfigEntry 4 }

netConfigUnnumbered OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   unnumbered(1),
                   notUnnumbered(2)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Whether this is an unnumbered interface."
    ::= { netConfigEntry 5 }

netConfigStatus  OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this netConfigEntry.

        An entry may not exist in the active state unless all
        objects in the entry have an appropriate value."
    ::= { netConfigEntry 6 }

netDefaultGateway  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The IP Address of the default gateway.  If this value is
        undefined or unknown, it shall have the value 0.0.0.0."
    ::= { ipMgt 2 }

ipHttpState OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   enabled(1),
                   disabled(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Whether HTTP is enabled."
    ::= { ipMgt 3 }

ipHttpPort OBJECT-TYPE
   SYNTAX     INTEGER (1..65535)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The port number for HTTP."
    ::= { ipMgt 4 }

ipDhcpRestart OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   restart(1),
                   noRestart(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Write it to restart(1) to restart DHCP.
        When read, this value always returns noRestart(2)."
    ::= { ipMgt 5 }
    
ipHttpsState OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   enabled(1),
                   disabled(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Whether HTTPS is enabled."
    ::= { ipMgt 6 }

ipHttpsPort OBJECT-TYPE
    SYNTAX     INTEGER (1..65535)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The port number for HTTPS."
    ::= { ipMgt 7 }


pingMgt              OBJECT IDENTIFIER ::= { ipMgt 15 }

pingIpAddress OBJECT-TYPE
	SYNTAX     IpAddress
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"The address of the device to be pinged."
	::= { pingMgt 1 }

pingPacketSize OBJECT-TYPE
	SYNTAX     Integer32 (32..512)
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"Specifies the size of ping packets to send to the target in this ping
	     operation. The lower and upper boundaries of this object are 
	     protocol-dependent."
	DEFVAL { 32 }
	::= { pingMgt 2 }
	
pingRoundTripTime OBJECT-TYPE
    SYNTAX     Integer32
    UNITS	   "milliseconds"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"The last round trip time of a single ping operation. When the ping 
		 opertion is time out, a value of -1 will be returned."
	::= { pingMgt 3 }

pingCompleted OBJECT-TYPE
	SYNTAX     TruthValue
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"A value of true(1) will be read when this ping operation  
		have been either responded to or timed out. A value of false(2) will be
		read when there is a ping operation is currently running and all 
		associate objects in pingMgt cannot be modified during this period."
	::= { pingMgt 4 }

pingAction OBJECT-TYPE
	SYNTAX     INTEGER {
                   noAction(1),
                   pingStart(2)
                 }
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"The action of the pingMgt. Set this objects to pingStart(2) to begin
		 the ping operation. Once the action is set to pingStart(2), the
		 associate pingMgt objects cannot be modified until this ping operation is
		 completed (pingCompleted is true). When the ping has ended or no ping 
		 operation is performing, this object will get a value of noAction(1)."
	::= { pingMgt 5 }

--
-- bcastStormMgt
--

bcastStormTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF BcastStormEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table of descriptive and status information about
                     configuration of each switch ports(including expansion slot)
                     in this system."
        ::= { bcastStormMgt 1 }

bcastStormEntry OBJECT-TYPE
        SYNTAX      BcastStormEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry in the table, containing information
                     about configuration in one switch port of the switch."
        INDEX       { bcastStormIfIndex }
        ::= { bcastStormTable 1 }

BcastStormEntry ::= SEQUENCE
{
    bcastStormIfIndex      Integer32,
    bcastStormStatus       INTEGER,
    bcastStormSampleType   INTEGER,    
    bcastStormOctetRate    INTEGER    
}

bcastStormIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as ifIndex in the IF-MIB."
        ::= { bcastStormEntry 1 }

bcastStormStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether broadcast storm protection is enabled."
        ::= { bcastStormEntry 2 }

bcastStormSampleType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        octet-rate(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Sample type. If this is pkt-rate(1), then
                     bcastStormPktRate is valid. If this is octet-rate(2),
                     then bcastStormOctetRate is valid. If this is percent(3),
                     then bcastStormPercent is valid."
        ::= { bcastStormEntry 3 }

bcastStormOctetRate OBJECT-TYPE
        SYNTAX      INTEGER (1..11625)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Broadcast storm threshold as 64k bits per second."
        ::= { bcastStormEntry 5 }

--
-- vlanMgt
--

vlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for VLAN configuration."
        ::= { vlanMgt 1 }

vlanEntry OBJECT-TYPE
        SYNTAX      VlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for VLAN configuration."
        INDEX       { vlanIndex }
        ::= { vlanTable 1 }

VlanEntry ::= SEQUENCE
{
    vlanIndex               Unsigned32,
    vlanAddressMethod       INTEGER
}

vlanIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Same is dot1qVlanIndex in the Q-BRIDGE-MIB.
            This table has only one entry - the entry for
            the VLAN of the management interface."
        ::= { vlanEntry 1 }

vlanAddressMethod OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        user(1),
                        bootp(2),
                        dhcp(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Method to get the IP address."
        ::= { vlanEntry 2 }

vlanPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VlanPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port configuration in VLAN."
        ::= { vlanMgt 2 }

vlanPortEntry OBJECT-TYPE
        SYNTAX      VlanPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port configuration in VLAN."
        INDEX       { vlanPortIndex }
        ::= { vlanPortTable 1 }

VlanPortEntry ::= SEQUENCE
{
    vlanPortIndex            Integer32,
    vlanPortMode             INTEGER
}

vlanPortIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as ifIndex in the IF-MIB."
        ::= { vlanPortEntry 1 }

vlanPortMode OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        general(1),
                        trunk(2),
                        access(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This variable sets the 802.1Q VLAN mode.
                    Setting it to general(1) sets a general link.
                    Setting it to trunk(2) sets a trunk link.
                    Setting it to access(3) sets an access link."
        ::= { vlanPortEntry 2 }



--
-- priorityMgt
--

prioIpPrecDscpStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        disabled(1),
                        precedence(2),
                        dscp(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether IP precedence or DSCP look-up is enabled."
        ::= { priorityMgt 1 }

prioIpPrecTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PrioIpPrecEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for IP precedence priority mapping."
        ::= { priorityMgt 2 }

prioIpPrecEntry OBJECT-TYPE
        SYNTAX      PrioIpPrecEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for IP precendence priority mapping."
        INDEX       { prioIpPrecPort, prioIpPrecValue }
        ::= { prioIpPrecTable 1 }

PrioIpPrecEntry ::= SEQUENCE
{
    prioIpPrecPort           Integer32,
    prioIpPrecValue          Integer32,
    prioIpPrecCos            INTEGER
}

prioIpPrecPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as ifIndex in the IF-MIB."
        ::= { prioIpPrecEntry 2 }

prioIpPrecValue OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Precedence value for this entry."
        ::= { prioIpPrecEntry 3 }

prioIpPrecCos OBJECT-TYPE
        SYNTAX      INTEGER (0..7)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Class of service for this entry."
        ::= { prioIpPrecEntry 4 }

prioIpPrecRestoreDefault OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object is to restore IP Precedence
                    settings of a port to default.
                    To do this, write it to the value of ifIndex
                    defined by the ifIndex in the IF-MIB.
                    The range is 1-28 when port number is 26. 
                    When read, this object always returns 0."
        ::= { priorityMgt 3 }

prioIpDscpTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PrioIpDscpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for IP DSCP priority mapping."
        ::= { priorityMgt 4 }

prioIpDscpEntry OBJECT-TYPE
        SYNTAX      PrioIpDscpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for IP DSCP priority mapping."
        INDEX       { prioIpDscpPort, prioIpDscpValue }
        ::= { prioIpDscpTable 1 }

PrioIpDscpEntry ::= SEQUENCE
{
    prioIpDscpPort           Integer32,
    prioIpDscpValue          Integer32,
    prioIpDscpCos            INTEGER
}

prioIpDscpPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as ifIndex in the IF-MIB."
        ::= { prioIpDscpEntry 1 }

prioIpDscpValue OBJECT-TYPE
        SYNTAX      Integer32 (0..63)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "DSCP value for this entry."
        ::= { prioIpDscpEntry 2 }

prioIpDscpCos OBJECT-TYPE
        SYNTAX      INTEGER (0..7)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Class of service for this entry."
        ::= { prioIpDscpEntry 3 }

prioIpDscpRestoreDefault OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object is to restore IP DSCP
                    settings of a port to default.
                    To do this, write it to the value of ifIndex
                    defined by the ifIndex in the IF-MIB.
                    The range is 1-28 when port number is 26.
                    When read, this object always returns 0."
        ::= { priorityMgt 5 }

prioIpPortEnableStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether IP Port priority look-up is enabled."
        ::= { priorityMgt 6 }

prioIpPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PrioIpPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for IP port priority mapping."
        ::= { priorityMgt 7 }

prioIpPortEntry OBJECT-TYPE
        SYNTAX      PrioIpPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for IP port priority mapping."
        INDEX       { prioIpPortPhysPort,prioIpPortValue }
        ::= { prioIpPortTable 1 }

PrioIpPortEntry ::= SEQUENCE
{
    prioIpPortPhysPort       Integer32,
    prioIpPortValue          Integer32,
    prioIpPortCos            INTEGER,
    prioIpPortStatus         INTEGER
}

prioIpPortPhysPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as ifIndex in the IF-MIB."
        ::= { prioIpPortEntry 1 }

prioIpPortValue OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "IP port for this value."
        ::= { prioIpPortEntry 2 }

prioIpPortCos OBJECT-TYPE
        SYNTAX      INTEGER (0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Class of service for this entry."
        ::= { prioIpPortEntry 3 }

prioIpPortStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        valid(1),
                        invalid(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Writing this to valid(1) creates an entry.
                     Writing this to invalid(2) destroys an entry."
        ::= { prioIpPortEntry 4 }

prioCopy            OBJECT IDENTIFIER ::= { priorityMgt 8 }

prioCopyIpPrec OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Action to copy IP Precedence settings from
                    a source port to many destination ports.
                    The first four octets represent an integer for
                    the source port, in high-to-low (big-endian) order.
                    Starting from the 5th octet is destination port list
                    in a form described by PortList in the Q-BRIDGE-MIB.
                    Writing this object will perform copy.
                    Reading this object will always get a zero-length
                    octet string."
        ::= { prioCopy 1 }

prioCopyIpDscp OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Action to copy IP DSCP settings from
                    a source port to many destination ports.
                    The first four octets represent an integer for
                    the source port, in high-to-low (big-endian) order.
                    Starting from the 5th octet is destination port list
                    in a form described by PortList in the Q-BRIDGE-MIB.
                    Writing this object will perform copy.
                    Reading this object will always get a zero-length
                    octet string."
        ::= { prioCopy 2 }

prioCopyIpPort OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Action to copy IP Port settings from
                    a source port to many destination ports.
                    The first four octets represent an integer for
                    the source port, in high-to-low (big-endian) order.
                    Starting from the 5th octet is destination port list
                    in a form described by PortList in the Q-BRIDGE-MIB.
                    Writing this object will perform copy.
                    Reading this object will always get a zero-length
                    octet string."
        ::= { prioCopy 3 }

prioWrrTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PrioWrrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for weighted round robin (WRR)."
        ::= { priorityMgt 9 }

prioWrrEntry OBJECT-TYPE
        SYNTAX      PrioWrrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for weighted round robin (WRR)."
        INDEX       { prioWrrTrafficClass }
        ::= { prioWrrTable 1 }

PrioWrrEntry ::= SEQUENCE
{
    prioWrrTrafficClass    INTEGER,
    prioWrrWeight          INTEGER
}

prioWrrTrafficClass OBJECT-TYPE
        SYNTAX      INTEGER (0..7)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Traffic class for this entry, as defined in
                    dot1dTrafficClass in the Q-BRIDGE-MIB. The actual
                    maximum depends on the hardware, and is
                    equal to dot1dPortNumTrafficClasses-1."
        ::= { prioWrrEntry 1 }

prioWrrWeight OBJECT-TYPE
        SYNTAX      INTEGER (1..31)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Weight for this entry."
        ::= { prioWrrEntry 2 }

prioQueueMode OBJECT-TYPE
        SYNTAX  INTEGER {
                    wrr(1),
                    strict(2)                  
                }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The global status for the prioQueue.
                    wrr(1),strict(2)"
        ::= { priorityMgt 10 }      
        
--
-- trapDestMgt
--

trapDestTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF TrapDestEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A list of trap destination entries."
    ::= { trapDestMgt 1 }

trapDestEntry  OBJECT-TYPE
    SYNTAX     TrapDestEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This entry includes a destination IP address to which to send
        traps for this community."
    INDEX { trapDestAddress }
    ::= { trapDestTable 1 }

TrapDestEntry ::= SEQUENCE {
    trapDestAddress             IpAddress,
    trapDestCommunity           OCTET STRING,
    trapDestStatus              INTEGER,
    trapDestVersion             INTEGER
}

trapDestAddress  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The address to send traps."
    ::= { trapDestEntry 1 }

trapDestCommunity  OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(0..32))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "A community to which this destination address belongs."
    ::= { trapDestEntry 2 }

trapDestStatus  OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   valid(1),
                   invalid(2)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Writing this to valid(1) creates an entry.
         Writing this to invalid(2) destroys an entry."
    ::= { trapDestEntry 3 }

trapDestVersion OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   version1(1),
                   version2(2)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "This variables represent the version of the Trap we wish to send to trap Receiver,
         if the value is 1, mean we wish to send Version 1 trap, if the value is 2,
         mean we wish to send version 2 trap."
    ::= { trapDestEntry 4}

-- trapVar is for binding variables for traps, there is no value when
-- no trap is sent.
trapVar OBJECT IDENTIFIER ::= { trapDestMgt 2 }   
  
--
-- rateLimitMgt
--

rateLimitMgt        OBJECT IDENTIFIER ::= { qosMgt 1 }

rateLimitPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RateLimitPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for rate limit of each port."
        ::= { rateLimitMgt 2 }

rateLimitPortEntry OBJECT-TYPE
        SYNTAX      RateLimitPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for rate limit of each port."
        INDEX       { rlPortIndex }
        ::= { rateLimitPortTable 1 }
 
                  
RateLimitPortEntry ::= SEQUENCE
{
    rlPortIndex              Integer32,    
    rlPortInputStatus        EnabledStatus,
    rlPortOutputStatus       EnabledStatus,
    rlPortInputLevel         Integer32,
    rlPortOutputLevel        Integer32 
}

rlPortIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port and the trunk (including trunk member) interface of
                     the portTable. The interface identified by a particular value
                     of this index is the same interface as identified by the same 
                     value of ifIndex in the IF-MIB."
        ::= { rateLimitPortEntry 1 }

rlPortInputStatus OBJECT-TYPE
        SYNTAX      EnabledStatus                      
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether input rate limit is enabled for this port."
        ::= { rateLimitPortEntry 6 }

rlPortOutputStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether output rate limit is enabled for this port."
        ::= { rateLimitPortEntry 7 }

--same as rlPortInputLimit, special for LEO_X 's chip
rlPortInputLevel OBJECT-TYPE
        SYNTAX      Integer32(1..255)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The Level of the input rate limit.This range only suit for 100M port.To 1000M port, its range is 1..30."
        ::= { rateLimitPortEntry 8 }
        
--same as rlPortOutputLimit, special for LEO_X 's chip        
rlPortOutputLevel OBJECT-TYPE  
        SYNTAX      Integer32(1..255)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The Level of the output rate limit.This range only suit for 100M port.To 1000M port, its range is 1..30."
        ::= { rateLimitPortEntry 9 }
        

rateLimitGigaGranularity OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The rate limit gigabit ethernet granularity."
        ::= { rateLimitMgt 3 }
        

rateLimitFastEthernetGranularity OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        granularity512(1),
                        granularity1000(2),
                        granularity3300(3),
                        granularity8(4),
                        granularity64(5),
                        granularity2000(6)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The rate limit fast ethernet granularity.Formula like:[n]:granularity RATE 
        						is to say that n is a shortcut key to set granularity RATE behind it.To set n or 
        						granularity RATE behind it is the same effect to set rateLimitFastEthernetGranularity.
        						Note when get value of this node,what we get is the real granularity RATE but not the
        						shortcut key for it."
        ::= { rateLimitMgt 4 }

cosMgt        OBJECT IDENTIFIER ::= { qosMgt 3 }
 
--prioAclToCosMappingTable
prioAclToCosMappingTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PrioAclToCosMappingEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for ACL to CoS Mapping."
        ::= { cosMgt 1 }

prioAclToCosMappingEntry OBJECT-TYPE
        SYNTAX      PrioAclToCosMappingEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for ACL to CoS Mapping."
        INDEX       { prioAclToCosMappingIfIndex, prioAclToCosMappingAclName }
        ::= { prioAclToCosMappingTable 1 }

PrioAclToCosMappingEntry ::= SEQUENCE
{
    prioAclToCosMappingIfIndex    Integer32,
    prioAclToCosMappingAclName  DisplayString,    
    prioAclToCosMappingCosValue      Integer32,
    prioAclToCosMappingStatus      RowStatus
}

prioAclToCosMappingIfIndex OBJECT-TYPE
        SYNTAX      Integer32 
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface of the prioAclToCosMappingEntry. The interface 
                     identified by a particular value of this index is the 
                     same interface as identified by the same value of 
                     ifIndex in the IF-MIB."        
        ::= { prioAclToCosMappingEntry 1 }
        
prioAclToCosMappingAclName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(1..15))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The name of an IP ACL. Within a feature a unique name is
                     used to identify the list to which the entry belongs 
                     in the device."        
        ::= { prioAclToCosMappingEntry 2 }
     
prioAclToCosMappingCosValue OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "CoS value of the prioAclToCosMappingTable."
        ::= { prioAclToCosMappingEntry 3 } 

prioAclToCosMappingStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
	    DESCRIPTION
			"The status of this conceptual row entry. This object isused to manage the
			creation and deletion of conceptual rows.
			
			The status column has six defined values:
			
			     - 'active', which indicates that the conceptual row is
			     available for use by the managed device;
			
			     - 'notInService', which indicates that the conceptual
			     row exists in the agent, but is unavailable for use by
			     the managed device (see NOTE below);
			
			     - 'notReady', which indicates that the conceptual row
			     exists in the agent, but is missing information
			     necessary in order to be available for use by the
			     managed device;
			
			     - 'createAndGo', which is supplied by a management
			     station wishing to create a new instance of a
			     conceptual row and to have its status automatically set
			     to active, making it available for use by the managed
			     device;
			
			     - 'createAndWait', which is supplied by a management
			     station wishing to create a new instance of a
			     conceptual row (but not make it available for use by
			     the managed device); and,
			
			     - 'destroy', which is supplied by a management station
			     wishing to delete all of the instances associated with
			     an existing conceptual row.
			
			Whereas five of the six values (all except 'notReady') may
			be specified in a management protocol set operation, only
			three values will be returned in response to a management
			protocol retrieval operation:  'notReady', 'notInService' or
			'active'.  That is, when queried, an existing conceptual row
			has only three states:  it is either available for use by
			the managed device (the status column has value 'active');
			it is not available for use by the managed device, though
			the agent has sufficient information to make it so (the
			status column has value 'notInService'); or, it is not
			available for use by the managed device, and an attempt to
			make it so would fail because the agent has insufficient
			information (the state column has value 'notReady').

            For a detailed description of this object, please refer to 
            SNMPv2-TC MIB." 
        ::= { prioAclToCosMappingEntry 4 } 
--
--diffServMgt
--

diffServMgt        OBJECT IDENTIFIER ::= { qosMgt 4 }

--diffServClfrExtTable
diffServClfrExtTable OBJECT-TYPE
    SYNTAX       	SEQUENCE OF DiffServClfrExtEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual table of diffServClfrExtEntry."
    REFERENCE       "DIFFSERV-MIB.diffServClfrTable"
    ::= { diffServMgt 1 }

diffServClfrExtEntry OBJECT-TYPE
    SYNTAX       	DiffServClfrExtEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual row for diffServClfrExtTable."
    AUGMENTS       	{diffServClfrEntry}
    ::= { diffServClfrExtTable 1 }

DiffServClfrExtEntry ::= SEQUENCE
    {
        diffServClfrExtName                  DisplayString,
        diffServClfrExtDesc                  DisplayString
    }

diffServClfrExtName OBJECT-TYPE
    SYNTAX       	DisplayString(SIZE (0..16))
    MAX-ACCESS   	read-write
    STATUS       	current
    DESCRIPTION 	"The policy-map name."
    ::= { diffServClfrExtEntry 1 }

diffServClfrExtDesc OBJECT-TYPE
    SYNTAX       	DisplayString(SIZE (0..64))
    MAX-ACCESS   	read-write
    STATUS       	current
    DESCRIPTION 	"The description of policy-map."
    ::= { diffServClfrExtEntry 2 }

--diffServClassMapNextFree
diffServClassMapNextFree OBJECT-TYPE
    SYNTAX       	IndexIntegerNextFree
    MAX-ACCESS   	read-only
    STATUS       	current
    DESCRIPTION 	"This object contains an unused value for diffServClassMapId,
                     or a zero to indicate that none exist."
    ::= { diffServMgt 2 }


--diffServClassMapTable

diffServClassMapTable 	OBJECT-TYPE
    SYNTAX       	SEQUENCE OF DiffServClassMapEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual table of diffServClassMapEntry."
    ::= { diffServMgt 3 }

diffServClassMapEntry OBJECT-TYPE
    SYNTAX       	DiffServClassMapEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual row for diffServClassMapTable."
    INDEX       	{diffServClassMapId}
    ::= { diffServClassMapTable 1 }

DiffServClassMapEntry ::= SEQUENCE
    {
        diffServClassMapId                  IndexInteger,
        diffServClassMapName                DisplayString,
        diffServClassMapDesc                DisplayString,
        diffServClassMapType                INTEGER,
        diffServCalssMapStatus              RowStatus
    }

diffServClassMapId OBJECT-TYPE
    SYNTAX       	IndexInteger
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"An index that enumerates the Class Map entries.
                     Managers obtain new values for row creation in this table
                     by reading diffServClassMapNextFree."
    ::= { diffServClassMapEntry 1 }

diffServClassMapName OBJECT-TYPE
    SYNTAX       	DisplayString(SIZE (0..16))
    MAX-ACCESS   	read-create
    STATUS       	current
    DESCRIPTION 	"The class-map name."
    ::= { diffServClassMapEntry 2 }


diffServClassMapDesc OBJECT-TYPE
    SYNTAX       	DisplayString(SIZE (0..64))
    MAX-ACCESS   	read-create
    STATUS       	current
    DESCRIPTION 	"The description of class-map."
    ::= { diffServClassMapEntry 3 }

diffServClassMapType OBJECT-TYPE
    SYNTAX       	INTEGER {
                             matchAny (1),
                             matchAll (2)
                            }
    MAX-ACCESS   	read-create
    STATUS       	current
    DESCRIPTION 	"The class-map type.SRW224P don't support matchAll.It support matchAny only."
    ::= { diffServClassMapEntry 4 }

diffServCalssMapStatus OBJECT-TYPE
    SYNTAX       	RowStatus
    MAX-ACCESS   	read-create
    STATUS       	current
    DESCRIPTION 	"The status of this conceptual row entry. This object isused to manage the
			creation and deletion of conceptual rows.

			The status column has six defined values:

			     - 'active', which indicates that the conceptual row is
			     available for use by the managed device;

			     - 'notInService', which indicates that the conceptual
			     row exists in the agent, but is unavailable for use by
			     the managed device (see NOTE below);

			     - 'notReady', which indicates that the conceptual row
			     exists in the agent, but is missing information
			     necessary in order to be available for use by the
			     managed device;

			     - 'createAndGo', which is supplied by a management
			     station wishing to create a new instance of a
			     conceptual row and to have its status automatically set
			     to active, making it available for use by the managed
			     device;

			     - 'createAndWait', which is supplied by a management
			     station wishing to create a new instance of a
			     conceptual row (but not make it available for use by
			     the managed device); and,

			     - 'destroy', which is supplied by a management station
			     wishing to delete all of the instances associated with
			     an existing conceptual row.

			Whereas five of the six values (all except 'notReady') may
			be specified in a management protocol set operation, only
			three values will be returned in response to a management
			protocol retrieval operation:  'notReady', 'notInService' or
			'active'.  That is, when queried, an existing conceptual row
			has only three states:  it is either available for use by
			the managed device (the status column has value 'active');
			it is not available for use by the managed device, though
			the agent has sufficient information to make it so (the
			status column has value 'notInService'); or, it is not
			available for use by the managed device, and an attempt to
			make it so would fail because the agent has insufficient
			information (the state column has value 'notReady').

            For a detailed description of this object, please refer to
            SNMPv2-TC MIB."
    ::= { diffServClassMapEntry 5 }

--diffServClassMapElementNextFree
diffServClassMapElementNextFree OBJECT-TYPE
    SYNTAX       	IndexIntegerNextFree
    MAX-ACCESS   	read-only
    STATUS       	current
    DESCRIPTION 	"This object contains an unused value for diffServClassMapElementId,
                     or a zero to indicate that none exist."
    ::= { diffServMgt 4 }

--diffServClassMapElementTable
diffServClassMapElementTable OBJECT-TYPE
    SYNTAX       	SEQUENCE OF DiffServClassMapElementEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual table of diffServClassMapElementEntry."
    ::= { diffServMgt 5 }

diffServClassMapElementEntry OBJECT-TYPE
    SYNTAX       	DiffServClassMapElementEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual row for diffServClassMapElementTable."
    INDEX       	{diffServClassMapId, diffServClassMapElementId}
    ::= { diffServClassMapElementTable 1 }

DiffServClassMapElementEntry ::= SEQUENCE
    {
        diffServClassMapElementId                  IndexInteger,
        diffServClassMapElementSpecific            RowPointer,
        diffServClassMapElementStatus              RowStatus
    }

diffServClassMapElementId OBJECT-TYPE
    SYNTAX       	IndexInteger
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"An index that enumerates the Class Map Element entries.
                     Managers obtain new values for row creation in this table by
                     reading diffServClfrElementNextFree."
    ::= { diffServClassMapElementEntry 1 }

diffServClassMapElementSpecific OBJECT-TYPE
    SYNTAX       	RowPointer
    MAX-ACCESS   	read-create
    STATUS       	current
    DESCRIPTION 	"A pointer to a valid entry in another table, filter table,
                     that describes the applicable classification parameters.

                     This RowPointer should point to an instance of one of:
                     diffServMultiFieldClfrEntry, diffServMultiFieldClfrExtEntry,
                     aclIpEntry, aclMacEntry."
    ::= { diffServClassMapElementEntry 2 }

diffServClassMapElementStatus OBJECT-TYPE
    SYNTAX       	RowStatus
    MAX-ACCESS   	read-create
    STATUS       	current
    DESCRIPTION 	"The status of this conceptual row entry. This object isused to manage the
			creation and deletion of conceptual rows.

			The status column has six defined values:

			     - 'active', which indicates that the conceptual row is
			     available for use by the managed device;

			     - 'notInService', which indicates that the conceptual
			     row exists in the agent, but is unavailable for use by
			     the managed device (see NOTE below);

			     - 'notReady', which indicates that the conceptual row
			     exists in the agent, but is missing information
			     necessary in order to be available for use by the
			     managed device;

			     - 'createAndGo', which is supplied by a management
			     station wishing to create a new instance of a
			     conceptual row and to have its status automatically set
			     to active, making it available for use by the managed
			     device;

			     - 'createAndWait', which is supplied by a management
			     station wishing to create a new instance of a
			     conceptual row (but not make it available for use by
			     the managed device); and,

			     - 'destroy', which is supplied by a management station
			     wishing to delete all of the instances associated with
			     an existing conceptual row.

			Whereas five of the six values (all except 'notReady') may
			be specified in a management protocol set operation, only
			three values will be returned in response to a management
			protocol retrieval operation:  'notReady', 'notInService' or
			'active'.  That is, when queried, an existing conceptual row
			has only three states:  it is either available for use by
			the managed device (the status column has value 'active');
			it is not available for use by the managed device, though
			the agent has sufficient information to make it so (the
			status column has value 'notInService'); or, it is not
			available for use by the managed device, and an attempt to
			make it so would fail because the agent has insufficient
			information (the state column has value 'notReady').

            For a detailed description of this object, please refer to
            SNMPv2-TC MIB."
    ::= { diffServClassMapElementEntry 3 }


--diffServMultiFieldClfrExtTable

diffServMultiFieldClfrExtTable OBJECT-TYPE
    SYNTAX       	SEQUENCE OF DiffServMultiFieldClfrExtEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual table of diffServMultiFieldClfrExtEntry."
    REFERENCE       "DIFFSERV-MIB.diffServMultiFieldClfrTable"
    ::= { diffServMgt 6 }

diffServMultiFieldClfrExtEntry OBJECT-TYPE
    SYNTAX       	DiffServMultiFieldClfrExtEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual row for diffServMultiFieldClfrExtTable."
    AUGMENTS       	{diffServMultiFieldClfrEntry}
    ::= { diffServMultiFieldClfrExtTable 1 }

DiffServMultiFieldClfrExtEntry ::= SEQUENCE
    {
        diffServMultiFieldClfrExtType              BITS,
        diffServMultiFieldClfrExtIpPrecedence      Integer32
    }

diffServMultiFieldClfrExtType OBJECT-TYPE
    SYNTAX       	BITS
                    {
                            dscp(0),
                            ipPrecedence(1),
                            vid(2)
                    }
    MAX-ACCESS   	read-write
    STATUS       	current
    DESCRIPTION 	"Indicates the current type of the multi filed entry. This is a
                    bit-map of possible conditions. The various bit
                    positions are:

                    0: dscp.
                    1: ipPrecedence.
                    2: vid"
    ::= { diffServMultiFieldClfrExtEntry 1 }

diffServMultiFieldClfrExtIpPrecedence OBJECT-TYPE
    SYNTAX       	Integer32 (0..7)
    MAX-ACCESS   	read-write
    STATUS       	current
    DESCRIPTION 	"The IP precedence value to match against the packet's IP precedence value."
    ::= { diffServMultiFieldClfrExtEntry 3 }

--diffServToSMarkActTable
diffServToSMarkActTable  OBJECT-TYPE
    SYNTAX       	SEQUENCE OF DiffServToSMarkActEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual table of diffServToSMarkActEntry."
    ::= { diffServMgt 7 }

diffServToSMarkActEntry OBJECT-TYPE
    SYNTAX       	DiffServToSMarkActEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual row for diffServToSMarkActTable."
    INDEX       	{ diffServToSMarkActToS }
    ::= { diffServToSMarkActTable 1 }

DiffServToSMarkActEntry ::= SEQUENCE
    {
        diffServToSMarkActToS              Integer32
    }

diffServToSMarkActToS OBJECT-TYPE
    SYNTAX       	Integer32 (0..32)
    MAX-ACCESS   	read-only
    STATUS       	current
    DESCRIPTION 	"The ToS value referenced by a diffServActionSpecific attribute."
    ::= { diffServToSMarkActEntry 1 }

--diffServDot1pMarkActTable
diffServDot1pMarkActTable OBJECT-TYPE
    SYNTAX       	SEQUENCE OF DiffServDot1pMarkActEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual table of diffServDot1pMarkActEntry."
    ::= { diffServMgt 8 }

diffServDot1pMarkActEntry OBJECT-TYPE
    SYNTAX       	DiffServDot1pMarkActEntry
    MAX-ACCESS   	not-accessible
    STATUS       	current
    DESCRIPTION 	"The conceptual row for diffServDot1pMarkActTable."
    INDEX       	{ diffServDot1pMarkActDot1p }
    ::= { diffServDot1pMarkActTable 1 }

DiffServDot1pMarkActEntry ::= SEQUENCE
    {
        diffServDot1pMarkActDot1p              Integer32
    }

diffServDot1pMarkActDot1p OBJECT-TYPE
    SYNTAX       	Integer32 (0..7)
    MAX-ACCESS   	read-only
    STATUS       	current
    DESCRIPTION 	"The Dot1p value referenced by a diffServActionSpecific attribute."
    ::= { diffServDot1pMarkActEntry 1 }

portSecurityMgt     OBJECT IDENTIFIER ::= { securityMgt 2 }
radiusMgt           OBJECT IDENTIFIER ::= { securityMgt 4 }
tacacsMgt           OBJECT IDENTIFIER ::= { securityMgt 5 }
aclMgt              OBJECT IDENTIFIER ::= { securityMgt 7 }
ipFilterMgt         OBJECT IDENTIFIER ::= { securityMgt 9 }

    
-- PortSecurityMgt

-- Management for Port Security. A secure port only allowes
-- secure MAC addresses to come in.



portSecPortTable OBJECT-TYPE 
        SYNTAX      SEQUENCE OF PortSecPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The Port Security(MAC bindind) Table"
        ::= { portSecurityMgt 1 }
        
portSecPortEntry OBJECT-TYPE  
        SYNTAX      PortSecPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The entry of portSecPortTable"
        INDEX       { portSecPortIndex }
        ::= { portSecPortTable 1 }

PortSecPortEntry ::= SEQUENCE
{
      portSecPortIndex      Integer32,
      portSecPortStatus     EnabledStatus,
      portSecAction         INTEGER,
      portSecMaxMacCount       Integer32
}

portSecPortIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port and the trunk (excluding trunk members) interface of
                     the portTable. The interface identified by a particular value
                     of this index is the same interface as identified by the same 
                     value of ifIndex in the IF-MIB."
        ::= { portSecPortEntry 1 }

portSecPortStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set enabled(1) to enable port security and set disabled(2) to 
                     disable port security."
        ::= { portSecPortEntry 2  }

portSecAction OBJECT-TYPE
        SYNTAX        INTEGER
                      {
                        none(1),
                        trap(2),
                        shutdown(3),
                        trapAndShutdown(4)
                      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION  "The corresponding actions that will take place when a
                      port is under intrusion, when this variable is set to
                      none(1), no action will be performed, when this variable is
                      set to trap(2), a swPortSecurityTrap trap will be sent,
                      when this variable is set to shutdown(3), the port will
                      shutdown, when this variable is set to
                      trapAndShutdown(4), a swPortSecurityTrap will be sent
                      and the port will shutdown."
        ::= { portSecPortEntry 3  }
portSecMaxMacCount OBJECT-TYPE
        SYNTAX       Integer32(0..1024)
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION  "The maximun number of MAC addresses that will be learned and locked.
                      When we change the value of this variable, if the 
                      portSecPortStatus is enabled, we will discard all secure MAC 
                      and begin to learn again, until the number of MAC has reached
                      this value, and only the secure MAC addresses can enter
                      this port. If the portSecPortStatus is disabled, we will begin
                      to learn the MAC, and auto enabled the portSecPortStatus when 
                      the MAC has reached this value."
        ::= { portSecPortEntry 4 }
        
                
-- radiusMgt 
radiusServerPortNumber OBJECT-TYPE
        SYNTAX      INTEGER (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "IP port number of RADIUS server."
        ::= { radiusMgt 2 }

radiusServerKey OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(1..48))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Key for RADIUS.  This variable can only be written.
                     When this variable is read, it always returns a
                     zero-length string. when this variable is written,
                     it's max length is 48 characters."
        ::= { radiusMgt 3 }

radiusServerRetransmit OBJECT-TYPE
        SYNTAX      INTEGER (1..30)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Maximum number of retransmissions for RADIUS."
        ::= { radiusMgt 4 }

radiusServerTimeout OBJECT-TYPE
        SYNTAX      INTEGER (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Timeout for RADIUS."
        ::= { radiusMgt 5 }

radiusMultipleServerTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RadiusMultipleServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for multiple RADIUS server."
        ::= { radiusMgt 7 }

radiusMultipleServerEntry OBJECT-TYPE
        SYNTAX      RadiusMultipleServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for radiusMultipleServerTable."
        INDEX       { radiusMultipleServerIndex }
        ::= { radiusMultipleServerTable 1 }

RadiusMultipleServerEntry ::= SEQUENCE
{
   radiusMultipleServerIndex      Integer32,
   radiusMultipleServerAddress    IpAddress,
   radiusMultipleServerPortNumber Integer32,
   radiusMultipleServerKey        DisplayString,
   radiusMultipleServerRetransmit INTEGER,
   radiusMultipleServerTimeout    INTEGER,
   radiusMultipleServerStatus     ValidStatus
}

radiusMultipleServerIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The RADIUS multiple server index."
        ::= { radiusMultipleServerEntry 1 }  
        
radiusMultipleServerAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "IP address of a multiple RADIUS server.
        IP address will be set to system default value(e.g. 10.1.0.1)
        after creates an entry first by setting radiusMultipleServerStatus to valid.
        "
        ::= { radiusMultipleServerEntry 2 }        

radiusMultipleServerPortNumber OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "IP port number of a multiple RADIUS server."
        ::= { radiusMultipleServerEntry 3 }

radiusMultipleServerKey OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(1..48))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Key for RADIUS.  This variable can only be written.
                     When this variable is read, it always returns a
                     zero-length string. when this variable is written,
                     it's max length is 48 characters."
        ::= { radiusMultipleServerEntry 4 }

radiusMultipleServerRetransmit OBJECT-TYPE
        SYNTAX      INTEGER (1..30)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Maximum number of retransmissions for RADIUS."
        ::= { radiusMultipleServerEntry 5 }

radiusMultipleServerTimeout OBJECT-TYPE
        SYNTAX      INTEGER (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Timeout for RADIUS."
        ::= { radiusMultipleServerEntry 6}
        
radiusMultipleServerStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Setting this to valid(1) creates an entry.
                     Setting this to invalid(2) destroys an entry."        
        ::= { radiusMultipleServerEntry 8 }  

-- tacacsMgt

-- Management for Terminal Access Controller Access Control System plus (TACACS+).

tacacsServerAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "IP address of TACACS server."
        ::= { tacacsMgt 1 }

tacacsServerPortNumber OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "IP port number of TACACS server."
        ::= { tacacsMgt 2 }

tacacsServerKey OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION  "The encryption key used to authenticate logon access
                     for the client using TACAS. Do not use blank spaces
                     in the string. (Maximum length: 20 characters).
                     This variable can only be set. When this variable is 
                     read, it always returns a zero-length string."
        ::= { tacacsMgt 3 }

--
-- aclMgt
--

--aclIpAceTable
aclIpAceTable       OBJECT-TYPE
        SYNTAX      SEQUENCE OF AclIpAceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual table of all of aclIpAceEntry."
        ::= { aclMgt 1 }       

aclIpAceEntry OBJECT-TYPE
        SYNTAX      AclIpAceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for aclIpAceTable."
        INDEX       { aclIpAceName, aclIpAceIndex }
        ::= { aclIpAceTable 1 }  

AclIpAceEntry ::= SEQUENCE
{
    aclIpAceName                    DisplayString,
    aclIpAceIndex                   Integer32,
    aclIpAcePrecedence              Integer32,
    aclIpAceAction                  INTEGER,
    aclIpAceSourceIpAddr            IpAddress,
    aclIpAceSourceIpAddrBitmask     IpAddress,
    aclIpAceDestIpAddr              IpAddress,
    aclIpAceDestIpAddrBitmask       IpAddress,
    aclIpAceProtocol                Integer32,
    aclIpAcePrec                    Integer32,
    aclIpAceTos                     Integer32,
    aclIpAceDscp                    Integer32,
    aclIpAceSourcePortOp            INTEGER,
    aclIpAceMinSourcePort           Integer32,
    aclIpAceMaxSourcePort           Integer32,    
    aclIpAceDestPortOp              INTEGER,
    aclIpAceMinDestPort             Integer32,
    aclIpAceMaxDestPort             Integer32,    
    aclIpAceControlCode             Integer32,
    aclIpAceControlCodeBitmask      Integer32,
    aclIpAceStatus                  RowStatus
} 

aclIpAceName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(1..15))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The name of an ACL. Within a feature a unique 
                     name is used to identify
                     the list to which the entry belongs in the device."
        ::= { aclIpAceEntry 1 }  
        
aclIpAceIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..32)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The unique index of an ACE within an ACL."
        ::= { aclIpAceEntry 2 }    
        
aclIpAcePrecedence OBJECT-TYPE
        SYNTAX      Integer32 (0..32)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Specifies the IP precedence value to be matched against.
                     This object cannot not be configured when the status of the
                     entry, aclIpAceStatus, is active(1)." 
        ::= { aclIpAceEntry 3 } 

aclIpAceAction OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        permit(1),
                        deny(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the action to be taken if a packet matches this ACE.
                     This object cannot not be configured when the status of the
                     entry, aclIpAceStatus, is active(1)." 
        ::= { aclIpAceEntry 4 }
        
aclIpAceSourceIpAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified source IP address. The packet's source address is
        AND-ed with the value of aclIpAceSourceIpAddrBitmask and then compared
                    against the value of this object.
                    This object cannot be configured when the status of the
                    entry, aclIpAceStatus, is active(1)."
        ::= { aclIpAceEntry 5 }       
        
aclIpAceSourceIpAddrBitmask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified source IP address mask. The packet's destination
                     address is AND-ed with the value of aclIpAceSourceIpAddr and then
                     compared against the value of this object."
        ::= { aclIpAceEntry 6 } 
        
aclIpAceDestIpAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified destination IP address. 
                     The packet's destination address is
        AND-ed with the value of aclIpAceDestIpAddrBitmask and then compared
                     against the value of this object."
        ::= { aclIpAceEntry 7 } 
        
aclIpAceDestIpAddrBitmask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified destination IP address mask."
        ::= { aclIpAceEntry 8 }  
        
aclIpAceProtocol OBJECT-TYPE
        SYNTAX      Integer32 (0..256)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The protocol number field in the IP header used to indicate
        the higher layer protocol as specified in RFC 1700. A value 
                    value of 0 matches every IP packet. The object=256, means 'any'

        For example :
        0 is IP, 1 is ICMP, 2 is IGMP, 4 is IP in IP encapsulation,
        6 is TCP, 9 is IGRP, 17 is UDP, 47 is GRE, 50 is ESP, 51 is AH,
        88 is IGRP, 89 is OSPF, 94 is KA9Q/NOS compatible IP over IP,
        103 is PIMv2, 108 is PCP. "
        ::= { aclIpAceEntry 9 }  

aclIpAcePrec OBJECT-TYPE
        SYNTAX      Integer32 (0..8)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the IP precedence value to be matched against.
                     This object cannot be configured when the status of the
                     entry, aclIpAceStatus, is active(1). 
                     The value of this object is ignored whenever the value of 
                     aclIpAcePrec object is 8."
        ::= { aclIpAceEntry 10 }  

aclIpAceTos OBJECT-TYPE
        SYNTAX      Integer32 (0..16)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the IP ToS facility value to be matched against.
                     This object cannot be configured when the status of the
                     entry, aclIpAceStatus, is active(1). 
                     The value of this object is ignored whenever the value of 
                     aclIpAcePrec object is 9."
        ::= { aclIpAceEntry 11 } 
        
aclIpAceDscp OBJECT-TYPE
        SYNTAX      Integer32 (0..64)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the DSCP value to be matched against. 
                     This object cannot be configured when the status of the
                     entry, aclIpAceStatus, is active(1). 
                     The value of this object is ignored whenever the value of 
                     aclIpAcePrec object is 64."
        ::= { aclIpAceEntry 12 }

aclIpAceSourcePortOp OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noOperator(1),
                        equal(2),
                        range(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates how a packet's source TCP/UDP port number is
                     to be compared. noOperator(1), which is the default value, means no
                     comparison is to be made with the source TCP/UDP port
                     number."
        ::= { aclIpAceEntry 13 }  

aclIpAceMinSourcePort OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "If the aclIpAceSourcePortOp is range(3), 
                     this indicates the lower bound of the TCP/UDP port number value range."
        ::= { aclIpAceEntry 14 }   

aclIpAceMaxSourcePort OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "If the aclIpAceSourcePortOp is range(3), 
                     this indicates the upper bound of the TCP/UDP port number value range."
        ::= { aclIpAceEntry 15 } 

aclIpAceDestPortOp OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noOperator(1),
                        equal(2),
                        range(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates how a packet's destination TCP/UDP port number is
                     to be compared. noOperator(1), which is the default value, means that no
                     comparison is to be made with the destination TCP/UDP port
                     number."
        ::= { aclIpAceEntry 17 } 

aclIpAceMinDestPort OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "If the aclIpAceDestPortOp is range(3), 
                     this indicates the lower bound of the TCP/UDP port number value range."
        ::= { aclIpAceEntry 18 } 
        
aclIpAceMaxDestPort OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "If the aclIpAceDestPortOp is range(3), 
                     this indicates the upper bound of the TCP/UDP port number value range."
        ::= { aclIpAceEntry 19 }    

aclIpAceControlCode OBJECT-TYPE
        SYNTAX      Integer32 (0..63)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates how the control flags of TCP packets are to be compared. 
                     aceIpControlCode is AND-ed with aceIpControlCodeBitmask." 
        ::= { aclIpAceEntry 21 }            

aclIpAceControlCodeBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..63)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates how the control flags of TCP packets are to be compared.
                     It can be used to check multiple flags of the 
                     FIN, SYN, RST, PSH, ACK, URG by the sum of 
                     FIN=1, SYN=2, RST=4, PSH=8, ACK=16, URG=32."
        ::= { aclIpAceEntry 22 } 

aclIpAceStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
	    DESCRIPTION
			"The status of this conceptual row entry. This object isused to manage the
			creation and deletion of conceptual rows.
       
			The status column has six defined values:
			
			     - 'active', which indicates that the conceptual row is
			     available for use by the managed device;
        
			     - 'notInService', which indicates that the conceptual
			     row exists in the agent, but is unavailable for use by
			     the managed device (see NOTE below);
			
			     - 'notReady', which indicates that the conceptual row
			     exists in the agent, but is missing information
			     necessary in order to be available for use by the
			     managed device;
        
			     - 'createAndGo', which is supplied by a management
			     station wishing to create a new instance of a
			     conceptual row and to have its status automatically set
			     to active, making it available for use by the managed
			     device;
			
			     - 'createAndWait', which is supplied by a management
			     station wishing to create a new instance of a
			     conceptual row (but not make it available for use by
			     the managed device); and,
        
			     - 'destroy', which is supplied by a management station
			     wishing to delete all of the instances associated with
			     an existing conceptual row.
			
			Whereas five of the six values (all except 'notReady') may
			be specified in a management protocol set operation, only
			three values will be returned in response to a management
			protocol retrieval operation:  'notReady', 'notInService' or
			'active'.  That is, when queried, an existing conceptual row
			has only three states:  it is either available for use by
			the managed device (the status column has value 'active');
			it is not available for use by the managed device, though
			the agent has sufficient information to make it so (the
			status column has value 'notInService'); or, it is not
			available for use by the managed device, and an attempt to
			make it so would fail because the agent has insufficient
			information (the state column has value 'notReady').

            For a detailed description of this object, please refer to 
            SNMPv2-TC MIB."     
        ::= { aclIpAceEntry 23 } 

-- aclMacAceTable
aclMacAceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AclMacAceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual table of all of aclMacAceEntry."
        ::= { aclMgt 2 }  

aclMacAceEntry OBJECT-TYPE
        SYNTAX      AclMacAceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for aclMacAceTable. "
        INDEX       { aclMacAceName, aclMacAceIndex }
        ::= { aclMacAceTable 1 }

AclMacAceEntry ::= SEQUENCE
{
    aclMacAceName                   DisplayString,
    aclMacAceIndex                  Integer32,
    aclMacAcePrecedence             Integer32,
    aclMacAceAction                 INTEGER,
    aclMacAcePktformat              INTEGER,
    aclMacAceSourceMacAddr          OCTET STRING,
    aclMacAceSourceMacAddrBitmask   OCTET STRING,
    aclMacAceDestMacAddr            OCTET STRING,
    aclMacAceDestMacAddrBitmask     OCTET STRING,
    aclMacAceVidOp                  INTEGER,
    aclMacAceMinVid                 Integer32,    
    aclMacAceMaxVid                 Integer32,
    aclMacAceEtherTypeOp            INTEGER,    
    aclMacAceMinEtherType           Integer32,
    aclMacAceMaxEtherType           Integer32,
    aclMacAceStatus                 RowStatus
}        

aclMacAceName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(1..15))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The name of an ACL. Within a feature, a unique
                    name is used to identify
                    the list to which the entry belongs in the device."
        ::= { aclMacAceEntry 1 } 

aclMacAceIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..32)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The unique index of an ACE within an ACL."
        ::= { aclMacAceEntry 2 }  

aclMacAcePrecedence OBJECT-TYPE
        SYNTAX      Integer32 (0..32)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Specifies the entry's precedence."
        ::= { aclMacAceEntry 3 }  

aclMacAceAction OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        permit(1),
                        deny(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the action to be taken if a packet matches this ACE.
                     This object cannot be configured when the status of the
                     entry, aclMacAceStatus, is active(1)." 
        ::= { aclMacAceEntry 4 }

aclMacAcePktformat OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        any(1),
                        untagged-Eth2(2),
                        untagged802Dot3(3),
                        tagggedEth2(4),
                        tagged802Dot3(5)
                    }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Used to check the packet format of the packets.
                     This object cannot be configured when the status of the
                     entry, aclMacAceStatus, is active(1)."
        ::= { aclMacAceEntry 5 }

aclMacAceSourceMacAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (6))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the 48-bit destination MAC address. 
                    The specified source MAC of the packet The packet's source MAC 
                    address is AND-ed with the value of aceMacSourceMacAddrBitmask 
                    and then compared against the value of this object. This object 
                    cannot be configured when the status of the entry, 
                    aclMacAceStatus, is active(1)."
        ::= { aclMacAceEntry 6 }          
        
aclMacAceSourceMacAddrBitmask OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (6))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified source MAC address mask.
                    This object cannot be configured when the status of the
                    entry, aclMacAceStatus, is active(1)."
        ::= { aclMacAceEntry 7 }  

aclMacAceDestMacAddr OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (6))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the 48-bit destination MAC address. 
                     The specified destination MAC of the packet. 
                     The packet's destination MAC address is
                     AND-ed with the value of aceMacDestMacAddrBitmask and then compared
                     against the value of this object.
                     This object cannot be configured when the status of the
                     entry, aclMacAceStatus, is active(1)."
        ::= { aclMacAceEntry 8 }

aclMacAceDestMacAddrBitmask OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (6))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified destination MAC address mask.
                     This object cannot be configured when the status of the
                     entry, aclMacAceStatus, is active(1)."
        ::= { aclMacAceEntry 9 }                            
        
aclMacAceVidOp OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noOperator(1),
                        range(3)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates how a packet's vid is
                     to be compared.
                     This object cannot be configured when the status of the
                     entry, aclMacAceStatus, is active(1).In SRW224P,range's 
                     upper limit and lower limit must be the same value."       
        ::= { aclMacAceEntry 10 }     

aclMacAceMinVid OBJECT-TYPE
        SYNTAX      Integer32 (1..4094)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the lower bound of the vid value range if the aclMacAceVidOp is range(3).  
                     This object cannot be configured when the status of the
                     entry, aclMacAceStatus, is active(1).While set this value,it will set aclMacAceMaxVid
                     automatically to the same value in the same time."
        ::= { aclMacAceEntry 11 }        

aclMacAceMaxVid OBJECT-TYPE
        SYNTAX      Integer32 (1..4094)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the upper bound of the vid value range if the aclMacAceVidOp is range(3).  
                     This object cannot be configured when the status of the
                     entry, aclMacAceStatus, is active(1).In SRW224P,this value will be the same as aclMacAceMinVid automatically."
        ::= { aclMacAceEntry 13 } 

aclMacAceEtherTypeOp OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noOperator(1),
                        range(3)
                    }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Indicates how a packet's ethertype is
                     to be compared.
                     This object cannot be configured when the status of the
                     entry, aclMacAceStatus, is active(1)." 
        ::= { aclMacAceEntry 14 }   

aclMacAceMinEtherType OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Indicates the lower bound of the vid value range if the aclMacAceEtherTypeOp is range(3).  
                     This object cannot be configured when the status of the
                     entry, aclMacAceStatus, is active(1)."
        ::= { aclMacAceEntry 16 }  

aclMacAceMaxEtherType OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Indicates the upper bound of the vid value range if the aclMacAceEtherTypeOp is range(3).
                     This object cannot be configured when the status of the
                     entry, aclMacAceStatus, is active(1)."
        ::= { aclMacAceEntry 17 }  

aclMacAceStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
	    DESCRIPTION
			"The status of this conceptual row entry. This object isused to manage the
			creation and deletion of conceptual rows.
			
			The status column has six defined values:
			
			     - 'active', which indicates that the conceptual row is
			     available for use by the managed device;
			
			     - 'notInService', which indicates that the conceptual
			     row exists in the agent, but is unavailable for use by
			     the managed device (see NOTE below);
			
			     - 'notReady', which indicates that the conceptual row
			     exists in the agent, but is missing information
			     necessary in order to be available for use by the
			     managed device;
			
			     - 'createAndGo', which is supplied by a management
			     station wishing to create a new instance of a
			     conceptual row and to have its status automatically set
			     to active, making it available for use by the managed
			     device;
			
			     - 'createAndWait', which is supplied by a management
			     station wishing to create a new instance of a
			     conceptual row (but not make it available for use by
			     the managed device); and,
			
			     - 'destroy', which is supplied by a management station
			     wishing to delete all of the instances associated with
			     an existing conceptual row.
			
			Whereas five of the six values (all except 'notReady') may
			be specified in a management protocol set operation, only
			three values will be returned in response to a management
			protocol retrieval operation:  'notReady', 'notInService' or
			'active'.  That is, when queried, an existing conceptual row
			has only three states:  it is either available for use by
			the managed device (the status column has value 'active');
			it is not available for use by the managed device, though
			the agent has sufficient information to make it so (the
			status column has value 'notInService'); or, it is not
			available for use by the managed device, and an attempt to
			make it so would fail because the agent has insufficient
			information (the state column has value 'notReady').

            For a detailed description of this object, please refer to 
            SNMPv2-TC MIB." 
        ::= { aclMacAceEntry 18 }  

--aclAclGroupTable
aclAclGroupTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AclAclGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual table of aclAclGroupEntry."
        ::= { aclMgt 3 }    

aclAclGroupEntry OBJECT-TYPE
        SYNTAX      AclAclGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for aclAclGroupTable."
        INDEX       { aclAclGroupIfIndex }
        ::= { aclAclGroupTable 1 } 

AclAclGroupEntry ::= SEQUENCE
{
    aclAclGroupIfIndex Integer32,
    aclAclGroupIngressIpAcl DisplayString,
    aclAclGroupEgressIpAcl DisplayString,
    aclAclGroupIngressMacAcl DisplayString,
    aclAclGroupEgressMacAcl DisplayString
}                                                                                           
   
aclAclGroupIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The interface number specifying the ACL binding to."
        ::= { aclAclGroupEntry 1 }   

aclAclGroupIngressIpAcl OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..15))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies the ingress IP ACL(standard or extended) binding to the interface."
        ::= { aclAclGroupEntry 2 }        
        
aclAclGroupEgressIpAcl OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..15))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies the egress IP ACL(standard or extended) binding to the interface.But it
                     is not supported in LEO product."
        ::= { aclAclGroupEntry 3 } 

aclAclGroupIngressMacAcl OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..15))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies the ingress MAC ACL binding to the interface."
        ::= { aclAclGroupEntry 4 }       

aclAclGroupEgressMacAcl OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..15))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies the egress MAC ACL binding to the interface.But it is not supported 
                     in LEO product."
        ::= { aclAclGroupEntry 5 }   

--
-- ipFilterMgt
--

--ipFilterSnmpTable
ipFilterSnmpTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF IpFilterSnmpEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A list of IP address entries."
    ::= { ipFilterMgt 1 }

ipFilterSnmpEntry  OBJECT-TYPE
    SYNTAX     IpFilterSnmpEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This entry includes an IP address range which the system
         will allow to connect to this device through SNMP."
    INDEX { ipFilterSnmpStartAddress }
    ::= { ipFilterSnmpTable 1 }
    
IpFilterSnmpEntry ::= SEQUENCE {
    ipFilterSnmpStartAddress        IpAddress,
    ipFilterSnmpEndAddress          IpAddress,
    ipFilterSnmpStatus              ValidStatus
    }

ipFilterSnmpStartAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The start IP address."        
        ::= { ipFilterSnmpEntry 1 }
        
ipFilterSnmpEndAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The end IP address."        
        ::= { ipFilterSnmpEntry 2 }     

ipFilterSnmpStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Setting this to valid(1) creates an entry.
                     Setting this to invalid(2) destroys an entry."        
        ::= { ipFilterSnmpEntry 3 }               
            
--ipFilterHTTPTable
ipFilterHTTPTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF IpFilterHTTPEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A list of IP address entries."
    ::= { ipFilterMgt 2 }

ipFilterHTTPEntry  OBJECT-TYPE
    SYNTAX     IpFilterHTTPEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This entry includes an IP address range which the system 
         will allow to connect to this device through SNMP."
    INDEX { ipFilterHTTPStartAddress }
    ::= { ipFilterHTTPTable 1 }
    
IpFilterHTTPEntry ::= SEQUENCE {
    ipFilterHTTPStartAddress        IpAddress,
    ipFilterHTTPEndAddress          IpAddress,
    ipFilterHTTPStatus              ValidStatus
}

ipFilterHTTPStartAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The start IP address."        
        ::= { ipFilterHTTPEntry 1 }
        
ipFilterHTTPEndAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The end IP address."        
        ::= { ipFilterHTTPEntry 2 }     

ipFilterHTTPStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Setting this to valid(1) creates an entry.
                     Setting this to invalid(2) destroys an entry."        
        ::= { ipFilterHTTPEntry 3 } 
        
                 

--
-- lineMgt
--

consoleMgt           OBJECT IDENTIFIER ::= { lineMgt 1 }


--consoleMgt

consoleDataBits OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                      databits7(1),
                      databits8(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Number of data bits."
        ::= { consoleMgt 1 }

consoleParity OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                     partyNone(1),
                     partyEven(2),
                     partyOdd(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Define the generation of a parity bit."
        ::= { consoleMgt 2 }

consoleBaudRate OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                     baudRate9600(1),
                     baudRate19200(2),
                     baudRate38400(3),
                     baudRate57600(4),
                     baudRate115200(5)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Baud rate. Valid values are 115200, 57600, 38400,
                     19200, and 9600."
        ::= { consoleMgt 3 }

consoleStopBits OBJECT-TYPE
        SYNTAX     INTEGER
                   {
                    stopbits1(1),
                    stopbits2(2)
                   }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION "The stop Bits of the console, valid value is stopbits1(1) or stopbits2(2)"
        ::= { consoleMgt 4 }

consoleExecTimeout OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "In serial console, use the consoleExecTimeout
                     variables to set the interval that the EXEC command
                     interpreter waits until user input is detected, 
                     set the value to 0 to disable it."
        ::= { consoleMgt 5 }

consolePasswordThreshold OBJECT-TYPE
        SYNTAX      INTEGER (0..120)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "In serial console, use the consolePasswordThreshold variabes to
                     set the password intrusion threshold, which limits the number of 
                     failed logon attempts allowed. Set it value to 0 to disable it."
        ::= { consoleMgt 6 }

consoleSilentTime OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "In Console, Use the consoleSilentTime variable to set the amount 
                     of time the management console is inaccessible after the number
                     of unsuccessful logon attempts exceeds the threshold set by the 
                     password-thresh command. Set it to 0 to disable it."
                     
        ::= { consoleMgt 7 }
        
--to set login timeout seconds
consoleLoginResponseTimeout OBJECT-TYPE
        SYNTAX      Integer32(0..300)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION  "Console login response timeout setting.
                      Valid range is 0 to 300. Setting to 0 means disabled.This setting 
                      don't fit to menu driven,it is always disabled and read-only to 
                      SRW224P."
        ::= { consoleMgt 10 }        


--
-- sysTimeMgt
--

sntpMgt OBJECT IDENTIFIER ::= { sysTimeMgt 1 }

sntpStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Set enabled(1) to enable the SNTP, set disabled(2) to disable 
                 the SNTP."
    ::= { sntpMgt 1 }

sntpServiceMode OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    unicast(1)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Service mode."
    ::= { sntpMgt 2 }

sntpPollInterval OBJECT-TYPE
    SYNTAX      Integer32(16..16384)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Polling interval."
    ::= { sntpMgt 3 }

sntpServerTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SntpServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for SNTP servers"
        ::= { sntpMgt 4 }

sntpServerEntry OBJECT-TYPE
        SYNTAX      SntpServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for SNTP servers."
        INDEX       { sntpServerIndex }
        ::= { sntpServerTable 1 }

SntpServerEntry ::= SEQUENCE
{
    sntpServerIndex Integer32,
    sntpServerIpAddress IpAddress
}


sntpServerIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..3)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of a server. This table has fixed size."
    ::= { sntpServerEntry 1 }

sntpServerIpAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The IP address of a server. Valid IP addresses
                 must occupy contiguous indexes.
                 All IP addresses after the last valid index is 0."
    ::= { sntpServerEntry 2 }

sysCurrentTime OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(20))
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "It is a text string in the following form, based on Unix:
                  'Mmm _d hh:mm:ss yyyy'. 'Mmm' is the first three letters 
                  of the English name of the month. '_d' is the day of month. 
                  A single-digit day is preceded by the space. 'hh:mm:ss' is
                  a 24-hour representations of hours, minutes, and seconds. 
                  A single-digit hour is preceded by a zero. 'yyyy' is the 
                  four-digit year. An example is: 'Jan  1 02:03:04 2002'."
     ::= { sysTimeMgt 2 }

sysTimeZone OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(6))
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "It is a text string in the following form: '[s]hh:mm'.
                  '[s]' is a plus-or-minus sign. For UTC, this is omitted. 
                  For a positive offset, this is '+'. For a negative offset,
                  this is '-'. 'hh:mm' in the hour and minute offset from UTC. 
                  A single-digit hour is preceded by a zero."
     ::= { sysTimeMgt 3 }

sysTimeZoneName OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..30))
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "The name of the time zone."
     ::= { sysTimeMgt 4 }


-- 
-- fileMgt
--

-- Management for File System Manipulate, including files copy, display and delete.


fileCopyMgt OBJECT IDENTIFIER ::= { fileMgt 1 }
--
-- This performs the copy operation.
--

fileCopySrcOperType OBJECT-TYPE
    SYNTAX     INTEGER 
               {
                 file(1),
                 runningCfg(2),
                 startUpCfg(3),
                 tftp(4),
                 unit(5)
                }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "The Copy Operation that we want to perform on the
                 fileCopyDestOperType, this operation is similar to the CLI 
                 command 'copy fileCopySrcOperType fileCopyDestOperType'.
                 file(1) means we want to perform the 'copy file fileCopyDestType'
                 operation, runningCfg(2) means we want to perform the 
                 'copy running-config fileCopyDestOperType' operation, 
                 startUpCfg(3) means we want to perform the 
                 'copy startup-config fileCopyDestOperType' operation, tftp(4) means 
                 we want to perform the 'copy tftp fileCopyDestOperType' operation,
                 unit(5) is only available in stacking systems, in which we 
                 can copy files from one unit to another unit and it means
                 we want to perform the 'copy unit fileCopyDestOperType' operation.
                 The possible permutations are as follows: (1)copy file file 
                 (2)copy file runningCfg (3) copy file startUpCfg 
                 (4)copy file tftp (5) copy file unit(for stacking systems only)
                 (6)copy runningCfg file (7)copy runningCfg startUpCfg 
                 (8)copy runningCfg tftp (9)copy startupCfg file 
                 (10)copy startupCfg runningCfg (11)copy startupCfg tftp
                 (12)copy tftp file (13)copy tftp runningCfg 
                 (14)copy tftp startUpCfg (15)copy unit file."
    ::= { fileCopyMgt 1}
    
fileCopySrcFileName OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(1..32))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The source file name for fileCopyMgt when a copy
        operation is next requested via this MIB. This value is set to
        a zero length string when no file name has been specified.
        Note: If the fileCopySrcOperType is runningCfg(2) or startUpCfg(3),
        this variable can be ignored."
    ::= { fileCopyMgt 2 }
    
fileCopyDestOperType OBJECT-TYPE
    SYNTAX     INTEGER 
               {
                 file(1),
                 runningCfg(2),
                 startUpCfg(3),
                 tftp(4),
                 unit(5)
                }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "The Copy Operation that we want to perform on
                 fileCopySrcOperType, this operation is similar to the CLI 
                 command 'copy fileCopySrcOperType fileCopyDestOperType'.
                 file(1) means we want to perform the 'copy fileCopySrcType file '
                 operation, runningCfg(2) means we want to perform the 
                 'copy fileCopySrcOperType running-config ' operation, 
                 startUpCfg(3) means we want to perform the 
                 'copy fileCopySrcOperType startup-config ' operation, tftp(4) means 
                 we want to perform the 'copy fileCopySrcOperType tftp' operation,
                 unit(5) is only available in stacking systems in which we 
                 can copy files from one unit to another unit. It means
                 we want to perform the 'copy fileCopySrcOperType unit' operation.
                 The possible permutations are as follows: (1)copy file file 
                 (2)copy file runningCfg (3) copy file startUpCfg 
                 (4)copy file tftp (5) copy file unit(for stacking system only)
                 (6)copy runningCfg file (7)copy runningCfg startUpCfg 
                 (8)copy runningCfg tftp (9)copy startupCfg file 
                 (10)copy startupCfg runningCfg (11)copy startupCfg tftp
                 (12)copy tftp file (13)copy tftp runningCfg 
                 (14)copy tftp startUpCfg (15)copy unit file."
    ::= { fileCopyMgt 3 }

fileCopyDestFileName  OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(1..32))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The destination file name for fileCopyMgt when a
        copy operation is next requested via this MIB.  This value is set to
        a zero length string when no file name has been specified.
        Note: If the fileCopyDestOperType is runningCfg(2) or startupCfg(3),
        this variable can be ignored."
    ::= { fileCopyMgt 4 }

fileCopyFileType  OBJECT-TYPE
    SYNTAX     INTEGER {
                  opcode(1),
                  config(2),
                  bootRom(3)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Type of file to copy in fileCopyMgt. If the fileCopySrcOperType or
         fileCopyDestOperType is either runningCfg(2) or startupCfg(3), this
         variable can be ignored. If the fileCopySrcOperType or fileCopyDestOperType
         is unit(5), this variable cannot be set to bootRom(3)."
    ::= { fileCopyMgt 5 }

fileCopyTftpServer  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The IP address of the TFTP server for transfer
        when a download is next requested via this MIB.
        This value is set to '0.0.0.0' when no IP address has been
        specified. If neither fileCopySrcOperType nor fileCopyDestOperType
        is tftp(4), this variable can be ignored."
    ::= { fileCopyMgt 6 }   

fileCopyUnitId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the switch unit for stackable devices. 
                When performing the 'copy unit file' or 'copy file unit' action,
                if neither fileCopySrcOperType nor fileCopyDestOperType
                is unit(5), this variable can be ignored."
    ::= { fileCopyMgt 7 }

fileCopyAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                  notCopying(1),
                  copy(2)
                }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
          "Setting this object to copy(2) to begin the copy Operation."
    ::= { fileCopyMgt 8 }
                  
    
fileCopyStatus  OBJECT-TYPE
    SYNTAX     INTEGER {                    
                    fileCopyTftpUndefError(1),
                    fileCopyTftpFileNotFound(2),
                    fileCopyTftpAccessViolation(3),
                    fileCopyTftpDiskFull(4),
                    fileCopyTftpIllegalOperation(5),
                    fileCopyTftpUnkownTransferId(6),
                    fileCopyTftpFileExisted(7),
                    fileCopyTftpNoSuchUser(8),
                    fileCopyTftpTimeout(9),
                    fileCopyTftpSendError(10),
                    fileCopyTftpReceiverError(11),
                    fileCopyTftpSocketOpenError(12),
                    fileCopyTftpSocketBindError(13),
                    fileCopyTftpUserCancel(14),
                    fileCopyTftpCompleted(15),
                    fileCopyParaError(16),
                    fileCopyBusy(17),
                    fileCopyUnknown(18),
                    fileCopyReadFileError(19),
                    fileCopySetStartupError(20),
                    fileCopyFileSizeExceed(21),
                    fileCopyMagicWordError(22),
                    fileCopyImageTypeError(23),
                    fileCopyHeaderChecksumError(24),
                    fileCopyImageChecksumError(25),                 
                    fileCopyWriteFlashFinish(26),
                    fileCopyWriteFlashError(27),
                    fileCopyWriteFlashProgramming(28),
                    fileCopyError(29),
                    fileCopySuccess(30),
                    fileCopyCompleted(31)                                                                          
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The status of the last copy procedure, if any. This
        object will have a value of downloadStatusUnknown(2) if no
        copy operation has been performed."
    ::= { fileCopyMgt 9 }

fileCopyTftpErrMsg OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..255))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
          "TFTP error message, this value is meaningful only when the fileCopyStatus is 
          fileCopyTftpUndefError(1)."
    ::= { fileCopyMgt 10 }
    
fileInfoMgt OBJECT IDENTIFIER ::= { fileMgt 2 }
--
-- This mangement performs the display and delete operation.
--


fileInfoTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF FileInfoEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "This table contain the information of the file system;
                 we can also perform the delete, set startup file operation."
                
    ::= { fileInfoMgt 1 }

fileInfoEntry OBJECT-TYPE
    SYNTAX       FileInfoEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "A conceptually row for fileInfoTable."
    INDEX       {fileInfoUnitID, IMPLIED fileInfoFileName}
    ::= { fileInfoTable 1 }

FileInfoEntry ::= SEQUENCE
    {   
        fileInfoUnitID                  Integer32,
        fileInfoFileName                DisplayString,
        fileInfoFileType                INTEGER,
        fileInfoIsStartUp               TruthValue,
        fileInfoFileSize                Integer32,
        fileInfoCreationTime            DisplayString,
        fileInfoDelete                  INTEGER        
    }

fileInfoUnitID OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The switch unit in a stacking system, in a 
                 non-stacking system, this value is always 1."
    ::= { fileInfoEntry 1 }

fileInfoFileName OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (1..32))
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The file Name of the file System in the device."
    ::= { fileInfoEntry 2 }
    
fileInfoFileType OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                    diag(1),
                    runtime(2),
                    syslog(3),
                    cmdlog(4),
                    config(5),
                    postlog(6),
                    private(7),
                    certificate(8),
                    webarchive(9)                                                        
                 } 
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "The file type of the file System in the device."
    ::= { fileInfoEntry 3 }

fileInfoIsStartUp OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "This flag indicate whether this file is a startup file. Set this
                 object to true(1) to indicate that this is a startup file. Setting this 
                 object to false(2) is a invalid operation."
    ::= { fileInfoEntry 4 }

fileInfoFileSize OBJECT-TYPE
    SYNTAX       Integer32
    UNITS        "bytes"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "The sizes (in bytes) of the file."
    ::= { fileInfoEntry 5 }

fileInfoCreationTime OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(20))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "The creation time of the file, This is a text string in the 
                 following form, based on Unix: 'Mmm _d hh:mm:ss yyyy'. 'Mmm' 
                 are the first three letters of the English name of the month. 
                 '_d' is the day of month. A single-digit day is preceded by 
                 a space. 'hh:mm:ss' is a 24-hour representations of hours,
                 minutes, and seconds. A single-digit hour is preceded by a 
                 zero. 'yyyy' is the four-digit year. An example is: 
                 'Jan  1 02:03:04 2002'."
    ::= { fileInfoEntry 6 }

fileInfoDelete OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                  noDelete(1),
                  delete(2)
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "Write this object to delete(2) to delete a file, when
                 read, this always return noDelete(1)."
    ::= { fileInfoEntry 7 }
--
-- poeMgt
--

   -- PSE Objects

     pethPsePortTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF PethPsePortEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "A table of objects that display and control the power
               characteristics power Ethernet ports on a Power Source
               Entity (PSE) device. This group will be implemented in
               managed power Ethernet switches and mid-span devices."
          ::= { poeMgt 1 }

      pethPsePortEntry OBJECT-TYPE
          SYNTAX      PethPsePortEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
                  "A set of objects that display and control the power
                  characteristics of a power Ethernet PSE port."
          INDEX    { pethPsePortGroupIndex , pethPsePortIndex  }
          ::= { pethPsePortTable 1 }


      PethPsePortEntry ::= SEQUENCE {
          pethPsePortGroupIndex
             Integer32,
          pethPsePortIndex
             Integer32,
          pethPsePortAdminEnable
              INTEGER,
          pethPsePortPowerPairsControlAbility
              TruthValue,
          pethPsePortPowerPairs
              INTEGER,
          pethPsePortDetectionStatus
              INTEGER,
          pethPsePortPowerPriority
              INTEGER,
          pethPsePortMPSAbsentCounter
                Counter32,
          pethPsePortOverCurrentCounter
                Counter32,
          pethPsePortType
              SnmpAdminString,
          pethPsePortPowerClassifications
                INTEGER
      }

        pethPsePortGroupIndex OBJECT-TYPE
          SYNTAX      Integer32 (1..2147483647)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "This variable uniquely identifies the group
               containing the port to which a power Ethernet PSE is connected.
               Group means box in the stack, module in a rack and the value 1
               MUST be used for non-modular devices .

               pethPseMidSpanGroupCapacity is the number of Mid-Span PSE
               groups that can be contained within the Mid-Span PSE."
          ::= { pethPsePortEntry 1 }

        pethPsePortIndex OBJECT-TYPE
          SYNTAX      Integer32 (1..2147483647)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "This variable uniquely identifies the power Ethernet PSE
               port within group pethPseGroupIndex to which the
               power Ethernet PSE entry is connected."
          ::= { pethPsePortEntry 2 }


        pethPsePortAdminEnable OBJECT-TYPE
       SYNTAX INTEGER   {
                  enable(1),
                  disable(2)
         }
       MAX-ACCESS read-write
       STATUS current
       DESCRIPTION
           "Enables power supply on this port.
            Setting this object at a value enable(1) enables power
            and detection mechanism for this port.
            Setting this object at a value disable(2) disables power
            for this port."
       ::= { pethPsePortEntry 3 }

        pethPsePortPowerPairsControlAbility OBJECT-TYPE
       SYNTAX TruthValue
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
            "Describes the capability of controlling the power pairs
            functionality to switch pins for sourcing power.
            The value true indicate that the device has the capability
            to control the power pairs"
       ::= { pethPsePortEntry 4 }

        pethPsePortPowerPairs OBJECT-TYPE
       SYNTAX INTEGER   {
                  signal(1),
                  spare(2)
        }
       MAX-ACCESS read-write
       STATUS current
       DESCRIPTION
           "Describes or controls the pairs in use. If the value of
            pethPsePortPowerPairsControl is true, this object is
            writable.
            A value of signal(1) means that the signal pairs
            only are in use.
            A value of spare(2) means that the spare pairs
            only are in use."
       ::= { pethPsePortEntry 5 }

       pethPsePortDetectionStatus OBJECT-TYPE
       SYNTAX INTEGER   {
                disabled(1),
                searching(2),
                  deliveringPower(4),
                  fault(5),
                  test(7),
                  denyLowPriority(8)
        }
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "Describes the operational status of the port PD detection.
            A value of disabled(1)- indicates that the PSE State diagram is in
            the state IDLE
            A value of searching(2)- indicates that the PSE State diagram is in
            the state DETECTION, CLASSIFICATION, SIGNATURE_INVALID or BACKOFF.
            A value of deliveringPower(4) - indicates that the PSE State diagram
            is in the state POWER_UP, POWER_ON or POWER_OFF.
            A value of fault(5) - indicates that the PSE State diagram is in the
            state TEST_ERROR or the state IDLE due to the variable error
            condition.
            Faults detected are vendor specific.
            A value of test(7) - indicates that the PSE State diagram is in the
            state TEST_MODE.
            A value of denyLowPriority(8) indicates that the port was
            disabled by the power management system, in order to keep
            active higher priority ports.
             "
       ::= { pethPsePortEntry 7 }

        pethPsePortPowerPriority OBJECT-TYPE
       SYNTAX INTEGER   {
                  critical(1),
                  high(2),
                  low(3)
        }
       MAX-ACCESS read-write
       STATUS current
       DESCRIPTION
           "This object controls the priority of the port from the point
            of view of a power management algorithm. The priority that
            is set by this variable could be used by a control mechanism
            that prevents over current situations by disconnecting first
            ports with lower power priority. Ports that connect devices
            critical to the operation of the network - like the E911
            telephones ports - should be set to higher priority."
       ::= { pethPsePortEntry 8 }

       pethPsePortMPSAbsentCounter OBJECT-TYPE
       SYNTAX Counter32
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
             "Counts the number of times that the
                pethPsePortPowerMaintenanceStatus attribute changes from any
                value to the value mPSAbsent(3)."
       REFERENCE   "[IEEE Draft P802.3af/D4.0, November, 2002, object 30.9.1.1.9
                     aPSEUnderCurrentCounter]"
       ::= { pethPsePortEntry 11 }

        pethPsePortOverCurrentCounter OBJECT-TYPE
       SYNTAX Counter32
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
                "Counts the number of times that the aPSEPowerCurrentStatus
                 attribute changes from any value to the value overCurrent(2)."
       REFERENCE   "[IEEE Draft P802.3af/D4.0, November, 2002, object 30.9.1.1.1
                     aPSEOverCurrentCounter]"
       ::= { pethPsePortEntry 12 }


        pethPsePortType OBJECT-TYPE
   		 SYNTAX SnmpAdminString
    	 MAX-ACCESS read-write
    	 STATUS current
    	 DESCRIPTION
        "A manager will set the value of this variable to indicate
         the type of powered device that is connected to the port.
         The default value supplied by the agent if no value has
         ever been set should be a zero-length octet string."
       ::= { pethPsePortEntry 13 }

       pethPsePortPowerClassifications OBJECT-TYPE
        SYNTAX INTEGER   {
                  class0(1),
                  class1(2),
                  class2(3),
                  class3(4),
                  class4(5)
        }
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "Classification is a way to tag different terminals on the
           Power over LAN network according to their power consumption.
           Devices such as IP telephones, WLAN access points and others,
           will be classified according to their power requirements.

          The value is only valid while a valid PD is being detected as
          indicated by the attribute pethPsePortDetectionStatus reporting
          the value or deliveringPower(4)."
       REFERENCE   "[IEEE Draft P802.3af/D4.0, November, 2002,
                     object 30.9.1.1.7 aPSEPowerClassification]"
      ::= { pethPsePortEntry 14 }

   -- Main PSE Objects

   pethMainPseObjects       OBJECT IDENTIFIER ::= { poeMgt 3 }

   pethMainPseTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF PethMainPseEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "A table of objects that display and control the Main power
             on a PSE  device. Example - an Ethernet switch midspan device can
               control an Ethnternet port and the Main Power supply unit's."
          ::= { pethMainPseObjects 1 }

      pethMainPseEntry OBJECT-TYPE
          SYNTAX      PethMainPseEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
               "A set of objects that display and control the Main power
                of a PSE. "
          INDEX    { pethMainPseGroupIndex }
          ::= { pethMainPseTable 1 }

      PethMainPseEntry ::= SEQUENCE {
          pethMainPseGroupIndex
              Integer32,
          pethMainPsePower
              Gauge32 ,
          pethMainPseOperStatus
              INTEGER,
          pethMainPseConsumptionPower
              Gauge32,
          pethMainPseUsageThreshold
              Integer32
      }
        pethMainPseGroupIndex OBJECT-TYPE
          SYNTAX       Integer32 (1..2147483647)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "This variable uniquely identifies the group to which
              power Ethernet PSE is connected.Group means (box in the stack,
              module in a rack) and  the value 1 MUST be  used for non-modular
              devices "
          ::= { pethMainPseEntry 1 }

        pethMainPsePower OBJECT-TYPE
          SYNTAX      Gauge32  (1..65535)
          UNITS      "Watts"
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
                  "The nominal power of the PSE expressed in Watts."
          ::= { pethMainPseEntry 2 }


        pethMainPseOperStatus OBJECT-TYPE
          SYNTAX INTEGER   {
                  on(1),
                  off(2),
                  faulty(3)
             }
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
                  "The operational status of the main PSE."
          ::= { pethMainPseEntry 3 }

        pethMainPseConsumptionPower OBJECT-TYPE
          SYNTAX      Gauge32
          UNITS      "Watts"
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
                  "Measured usage power expressed in Watts."
          ::= { pethMainPseEntry 4 }


        pethMainPseUsageThreshold OBJECT-TYPE
          SYNTAX      Integer32  (1..99)
          UNITS      "%"
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
                  "The usage threshold expressed in percents for
                   comparing the measured power and initiating
                   an alarm if the threshold is exceeded."
          ::= { pethMainPseEntry 7 }


   -- Notification  Control  Objects

   pethNotificationControl        OBJECT IDENTIFIER ::= { poeMgt 4 }

   pethNotificationControlTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF PethNotificationControlEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "A table of objects that display and control the Notification
             on a PSE  device."
          ::= { pethNotificationControl 1 }

      pethNotificationControlEntry OBJECT-TYPE
          SYNTAX      PethNotificationControlEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
               "A set of objects that control the Notification events."
          INDEX    { pethNotificationControlGroupIndex }
          ::= { pethNotificationControlTable 1 }

      PethNotificationControlEntry ::= SEQUENCE {
          pethNotificationControlGroupIndex
              Integer32,
          pethNotificationControlEnable
                INTEGER
      }
        pethNotificationControlGroupIndex OBJECT-TYPE
          SYNTAX      Integer32 (1..2147483647)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "This variable uniquely identifies the group. Group means
              box in the stack, module in a rack and it is RECOMENDED
              that the value 1 be used for non-modular devices "
          ::= { pethNotificationControlEntry 1 }


         pethNotificationControlEnable  OBJECT-TYPE
             SYNTAX             INTEGER
                  {
                       enable(1),
                       disable(2)
                  }
             MAX-ACCESS         read-write
             STATUS             current
             DESCRIPTION
                  "Enable Notification from Agent"
          ::= { pethNotificationControlEntry 2 }

--
-- trap definitions
--

    srw224pTraps  OBJECT IDENTIFIER ::= { srw224pNotifications 1 }
    srw224pTrapsPrefix OBJECT IDENTIFIER ::= { srw224pTraps 0 }

      swPowerStatusChangeTrap NOTIFICATION-TYPE
          OBJECTS     { swIndivPowerUnitIndex, swIndivPowerIndex, swIndivPowerStatus }
          STATUS      current
          DESCRIPTION "This trap is sent when the power status of
                      an individual power changes."
          ::= { srw224pTrapsPrefix 1 }
       
    swPortSecurityTrap NOTIFICATION-TYPE
          OBJECTS       { ifIndex }
          STATUS        current
          DESCRIPTION "This trap is sent when the port is being intruded. This trap
                       will only be sent when the portSecAction is set to trap(2) or
                       trapAndShutdown(4)."
          ::= { srw224pTrapsPrefix 36 }
--poe traps start
    pethPsePortOnOffNotification NOTIFICATION-TYPE
        OBJECTS     { pethPsePortDetectionStatus }
        STATUS      current
        DESCRIPTION
                " This Notification indicates if a Pse Port is delivering power to the PD. This notification SHOULD be sent on
                   every status change except in searching mode."
         ::= { srw224pTrapsPrefix 43 }

    
    pethMainPowerUsageOnNotification NOTIFICATION-TYPE
        OBJECTS     { pethMainPseConsumptionPower  }
        STATUS      current
        DESCRIPTION
              " This Notification indicates PSE Threshold usage indication is
                   on; the power usage is above the threshold."
        ::= { srw224pTrapsPrefix 45 }

     pethMainPowerUsageOffNotification NOTIFICATION-TYPE
        OBJECTS     { pethMainPseConsumptionPower }
        STATUS      current
        DESCRIPTION
              " This Notification indicates that the PSE Threshold usage indication
                 is off; the usage power is below the threshold."
        ::= { srw224pTrapsPrefix 46 }
--poe traps end        
          
END
