-- ------------------------------------------------
-- Version Number:20040624001
-- Desc:Problem description -- ES4624C-17-00099: private mib->aclMgt->aclpAceTable->aclpAceEnTry->aclpAceTos,aclpAcePrec,acllpAceDscp range error
--     Root cause             
--             ===== State: Opened by:steven_zhang at 6/15/2004 1:49:51 PM =====
--            
--            load:2.1.0.0
--            diag:2.0.2.1
--            runtime:1.0.1.14
--            
--            sorry, I have made a mistake, I forgot the mib value should include the value any, so the aclpAceTos,aclpAcePrec,acllpAceDscp should just as before,0-8,0-8,0-64, 8 and 64 means any.
--            
--            ===== State: Submitted by:steven_zhang at 4/6/2004 2:35:27 PM =====
--            
--            aclpAceTos,aclpAcePrec range should be 0-7
--            acllpAceDscp range should be 0-63
--            
--            ===== State: Submitted by:steven_zhang at 4/5/2004 11:53:02 AM =====
--            
--            Create EPR From TRR (TRR-ES4624C-17-040304-01)
--            ===== Test Problem =====
--            aclpAceTos range is 0-8
--            ===== Expected Result =====
--            aclpAceTos range should be 0-16
--            ===== Test Procedure =====
--            view private mib->aclMgt->aclpAceTable->aclpAceEnTry->aclpAceTos range
--            ===== Other =====
--     Resolution -- modify mib and leaf the correct the range
--               after double check with pttch
--               aclIpAceTos range should be 0-16
--               aclIpAcePrec range should be 0-8
--               aclIpAceDscp range should be 0-64          
--     Modify files --  Smc8612xl3.mib, Smc8612xl3Version.txt
--                 Dcrs5512g.mib, Dcrs5512gVersion.txt,
--                 Es4612.mib, Es4612Version.txt
--                 Smc8624tl3.mib, Smc8624tl3Version.txt,                          
--                 leaf_es3626a.h
-- Profile:ES4612-CO_V2.2.3.2_profile
-- ------------------------------------------------

ES4612-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Integer32, Counter32,IpAddress,
        NOTIFICATION-TYPE, enterprises,Gauge32, TimeTicks
                FROM SNMPv2-SMI
        DisplayString, RowStatus, MacAddress, TruthValue, TEXTUAL-CONVENTION,  DateAndTime
                FROM SNMPv2-TC
        PortList
                FROM Q-BRIDGE-MIB
        SnmpAdminString
                FROM SNMP-FRAMEWORK-MIB 
        EnabledStatus, dot1dTrafficClassPriority, dot1dTrafficClass 
                FROM P-BRIDGE-MIB
        BridgeId, Timeout, dot1dStpPort
                FROM BRIDGE-MIB
        vrrpOperVrId 
                FROM VRRP-MIB
        InterfaceIndex, ifIndex, InterfaceIndexOrZero
               FROM IF-MIB;
               


accton                                 OBJECT IDENTIFIER ::= { enterprises 259 }
snmpMgt            					   OBJECT IDENTIFIER ::= { accton 6 }
cheetahSwitchMgt                       OBJECT IDENTIFIER ::= { snmpMgt 10 }


es4612MIB MODULE-IDENTITY
        LAST-UPDATED "200109060000Z"
        ORGANIZATION "Accton Technology Corp."
        CONTACT-INFO
                "Accton Technology Corp.
                 Customer Service

                 Postal: No. 1 Creation Rd. III,
                         Science-based Industrial Park, 
                         Hsinchu 300-77, Taiwan, R.O.C.

                 Tel: +886-3-5770270

                 E-mail: sales_ec@edge-core.com"
        DESCRIPTION
                "The MIB module for ES4612."
        REVISION "200109060000Z"
        DESCRIPTION
                "Initial version of this MIB."
        ::= { cheetahSwitchMgt 57 }


es4612MIBObjects          OBJECT IDENTIFIER ::= { es4612MIB 1 }
es4612MIBNotifications    OBJECT IDENTIFIER ::= { es4612MIB 2 }
es4612MIBConformance      OBJECT IDENTIFIER ::= { es4612MIB 3 }

--supported groups
switchMgt           OBJECT IDENTIFIER ::= { es4612MIBObjects 1 }
portMgt             OBJECT IDENTIFIER ::= { es4612MIBObjects 2 }
trunkMgt            OBJECT IDENTIFIER ::= { es4612MIBObjects 3 }
lacpMgt             OBJECT IDENTIFIER ::= { es4612MIBObjects 4 }
staMgt              OBJECT IDENTIFIER ::= { es4612MIBObjects 5 }
restartMgt          OBJECT IDENTIFIER ::= { es4612MIBObjects 7 }
mirrorMgt           OBJECT IDENTIFIER ::= { es4612MIBObjects 8 }
igmpSnoopMgt        OBJECT IDENTIFIER ::= { es4612MIBObjects 9 }
ipMgt               OBJECT IDENTIFIER ::= { es4612MIBObjects 10 }
bcastStormMgt       OBJECT IDENTIFIER ::= { es4612MIBObjects 11 }
vlanMgt             OBJECT IDENTIFIER ::= { es4612MIBObjects 12 }
priorityMgt         OBJECT IDENTIFIER ::= { es4612MIBObjects 13 }
trapDestMgt         OBJECT IDENTIFIER ::= { es4612MIBObjects 14 }
qosMgt              OBJECT IDENTIFIER ::= { es4612MIBObjects 16 }
securityMgt         OBJECT IDENTIFIER ::= { es4612MIBObjects 17 }
layer3Mgt           OBJECT IDENTIFIER ::= { es4612MIBObjects 18 }
sysLogMgt           OBJECT IDENTIFIER ::= { es4612MIBObjects 19 }
lineMgt             OBJECT IDENTIFIER ::= { es4612MIBObjects 20 }
sysTimeMgt          OBJECT IDENTIFIER ::= { es4612MIBObjects 23 }
fileMgt             OBJECT IDENTIFIER ::= { es4612MIBObjects 24 }
dnsMgt              OBJECT IDENTIFIER ::= { es4612MIBObjects 26 }
hsrpMgt             OBJECT IDENTIFIER ::= { es4612MIBObjects 29 }
mvrMgt              OBJECT IDENTIFIER ::= { es4612MIBObjects 44 }

-- -------------------------------------------------------------
-- 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) }

--  The Area ID, in OSPF, has the same format as an IP Address,
--  but has the function of defining a summarization point for
--  Link State Advertisements

OspfAreaID ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "An OSPF Area Identifier."
    SYNTAX      IpAddress

--  The OSPF Metric is defined as an unsigned value in the range

OspfBigMetric ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "The OSPF External Metric."
    SYNTAX      Integer32 (0..'FFFFFE'h)

--for hsrpMgt start
HsrpState ::= TEXTUAL-CONVENTION
	STATUS current
	DESCRIPTION
	        "The current state of the HSRP protocol for a given
		HSRP group entry."
	SYNTAX INTEGER {
		initial(1),
		learn(2),
		listen(3),
		speak(4),
		standby(5),
		active(6)
        }
--for hsrpMgt end   

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,
    swModelNumber           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) 
                    }
        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)
                    }
        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 }

swModelNumber OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..15))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Model number of the switch."
        ::= { switchInfoEntry 14 }         

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       INTEGER,
    swIndivPowerStatus      INTEGER
}

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

swIndivPowerIndex OBJECT-TYPE
        SYNTAX      INTEGER (1..2)
        MAX-ACCESS  accessible-for-notify
        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 }

switchJumboFrameStatus OBJECT-TYPE
         SYNTAX     INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
         MAX-ACCESS read-write
         STATUS     current
         DESCRIPTION "enable(1) means the Jumbo Frame has enabled, disabled(2)
                     means the Jumbo Frame has disabled."
         ::= { switchMgt 7 }

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 } 

--switchFanTable
switchFanTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SwitchFanEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The table of Fan Status."
       ::= { switchMgt 9 }

switchFanEntry OBJECT-TYPE
       SYNTAX      SwitchFanEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "A conceptual row of the switchFanTable."
       INDEX  { switchUnitIndex, switchFanIndex }
       ::= { switchFanTable 1 }

SwitchFanEntry ::= SEQUENCE
{
    switchUnitIndex     Integer32,
    switchFanIndex      Integer32,
    switchFanStatus       INTEGER
}

switchUnitIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  accessible-for-notify
       STATUS      current
       DESCRIPTION "the unit of the switch for stackable device."
       ::= { switchFanEntry 1 }
       
switchFanIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  accessible-for-notify
       STATUS      current
       DESCRIPTION "The unit number of the fan."
       ::= { switchFanEntry 2 } 
 
switchFanStatus OBJECT-TYPE
       SYNTAX   INTEGER
                {
                    ok(1),
                    failure(2)
                }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION "Indicating the status of the fan, 1:ok; 2:failure."
       ::= { switchFanEntry 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,
    portComboForcedMode      INTEGER
}

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)
                    }
        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 }
        
portComboForcedMode  OBJECT-TYPE
       SYNTAX     INTEGER
                  {
                    none(1),
                    copperForced(2),
                    copperPreferredAuto(3),
                    sfpForced(4),
                    sfpPreferredAuto(5)
                  }
       MAX-ACCESS read-write
       STATUS     current
       DESCRIPTION "This determines the forced mode of a combo port.
                    For a non-combo port, this variable has a value of none(1),
                    and setting this variable to none(1) has no effect.
                    For a combo port, this has its own valid values not
                    equal to none(1), and setting this variable to none(1) is
                    not allowed."
       ::= { portEntry 12}        

portVlanTrunkingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PortVlanTrunkingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Configures vlan trunking feature."
    ::= { portMgt 7 }

portVlanTrunkingEntry OBJECT-TYPE
    SYNTAX      PortVlanTrunkingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Configures vlan trunking feature."
    INDEX       { portVlanTrunkingIfIndex }
    ::= { portVlanTrunkingTable 1 }

PortVlanTrunkingEntry ::= SEQUENCE
{
    portVlanTrunkingIfIndex     Integer32,
    portVlanTrunkingStatus      EnabledStatus
}

portVlanTrunkingIfIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The port and trunk interface of the portVlanTrunkingTable.
                 The interface identified by a particular value of this
                 index is the same interface identified by the same value
                 of ifIndex in the IF-MIB."
    ::= { portVlanTrunkingEntry 1 }

portVlanTrunkingStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether vlan trunking is enabled."
    ::= { portVlanTrunkingEntry 2 }

--
-- 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).
      
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 }
    
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,
    staPortFastForward        EnabledStatus,
-- for MST, RSTP
    staPortProtocolMigration  TruthValue,
    staPortAdminEdgePort      TruthValue,
    staPortOperEdgePort       TruthValue,
    staPortAdminPointToPoint  INTEGER,
    staPortOperPointToPoint   TruthValue,
    staPortLongPathCost       Integer32,
    staPortSystemStatus       EnabledStatus
}

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 }

staPortFastForward OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether fast forwarding is enabled."
        ::= { staPortEntry 2 }

-- for MSTP RSTP
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. 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} 

--
-- xstMgt
--

xstMgt OBJECT IDENTIFIER ::= { staMgt 6}
    
mstName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The name of the Multiple Spanning Tree region."
    ::= { xstMgt 1 }

mstRevision OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The Revision number of the Multiple Spanning Tree region."
    ::= { xstMgt 2 }
    
mstMaxHops OBJECT-TYPE
    SYNTAX      Integer32(1..40)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The max hop number counts of the Multiple Spanning Tree region."
    ::= { xstMgt 3 }
    
xstInstanceCfgTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF XstInstanceCfgEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table is used to configure the property of a specific 
                 instance in Multiple Spanning Tree or Rapid Spanning Tree.
                 If Rapid Spanning Tree protocol is in use, the
                 mstInstanceEditIndex is always 0."
    ::= { xstMgt 4 }

xstInstanceCfgEntry OBJECT-TYPE
    SYNTAX      XstInstanceCfgEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A conceptual row containing the property of the RST or MST instance."
    INDEX       { xstInstanceCfgIndex }
    ::= { xstInstanceCfgTable 1 }

XstInstanceCfgEntry ::= SEQUENCE
{
      xstInstanceCfgIndex                    Integer32,
      xstInstanceCfgPriority                 Integer32,
      xstInstanceCfgTimeSinceTopologyChange  TimeTicks,
      xstInstanceCfgTopChanges               Integer32,
      xstInstanceCfgDesignatedRoot           BridgeId,
      xstInstanceCfgRootCost                 Integer32,
      xstInstanceCfgRootPort                 Integer32,
      xstInstanceCfgMaxAge                   Timeout,
      xstInstanceCfgHelloTime                Timeout,
      xstInstanceCfgHoldTime                 Timeout,
      xstInstanceCfgForwardDelay             Timeout,
      xstInstanceCfgBridgeMaxAge             Timeout,
      xstInstanceCfgBridgeHelloTime          Timeout,
      xstInstanceCfgBridgeForwardDelay       Timeout,
      xstInstanceCfgTxHoldCount              Integer32,
      xstInstanceCfgPathCostMethod           StaPathCostMode
}
  
xstInstanceCfgIndex OBJECT-TYPE
      SYNTAX      Integer32 (0..4094)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "An arbitrary integer within the range from 1 to the value of
          the maximum instance that uniquely identifies a spanning
          tree instance."
      ::= {xstInstanceCfgEntry 1 }
      
xstInstanceCfgPriority OBJECT-TYPE
     SYNTAX      Integer32 (0..61440)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "The priority of a specific spanning tree instance.
     		 The value assigned should be in the range 0-61440
     	 	 in steps of 4096."
     ::= { xstInstanceCfgEntry 2 }


xstInstanceCfgTimeSinceTopologyChange OBJECT-TYPE
     SYNTAX       TimeTicks
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION "The time (in hundredths of a second) since the last topology 
                 change detected by the bridge entity in RST or MST."
     ::= { xstInstanceCfgEntry 3 }

xstInstanceCfgTopChanges OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION "The total number of topology changes detected by
                 this bridge in RST or MST since the management entity
                 was last reset or initialized."
     ::= { xstInstanceCfgEntry 4 }


xstInstanceCfgDesignatedRoot OBJECT-TYPE
     SYNTAX      BridgeId
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION "The bridge identifier of the root of the spanning
                 tree as determined by the Multiple Spanning Tree Protocol. (802.1s)
                 or Rapid Spanning Tree Protocol  ( 802.1w ) executed by this node.  
                 This value is used as the root identifier parameter in 
                 all configuration bridge PDUs originated by this node."
     REFERENCE   "IEEE 802.1w."
     ::= { xstInstanceCfgEntry 5 }

xstInstanceCfgRootCost OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION "The cost of the path to the root as seen from
                 this bridge of the RST or MST."
     ::= { xstInstanceCfgEntry 6 }


xstInstanceCfgRootPort OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION "The number of the port which offers the
                 lowest cost path from this bridge to the root
                 bridge of the RST or MST."
     ::= { xstInstanceCfgEntry 7 }

xstInstanceCfgMaxAge OBJECT-TYPE
     SYNTAX      Timeout
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION "The maximum age of Multiple Spanning Tree Protocol  ( 802.1s )
                 or Rapid Spanning Tree Protocol  ( 802.1w ) information learned 
                 from the network on any port before it is discarded, 
                 in units of hundredths of a second.  This is the actual
                 value that this bridge is currently using."
     ::= { xstInstanceCfgEntry 8 }


xstInstanceCfgHelloTime OBJECT-TYPE
     SYNTAX      Timeout
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION  "The amount of time between the transmission of
                  configuration bridge PDUs by this node on any port
                  when it is the root of the specific spanning tree or trying
                  to become so, in units of hundredths of a second.
                  This is the actual value that this bridge is
                  currently using in RST or MST."
     ::= { xstInstanceCfgEntry 9 }

xstInstanceCfgHoldTime OBJECT-TYPE
     SYNTAX      Timeout
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION  "This time value determines the interval length
                  during which no more than two configuration bridge
                  PDUs shall be transmitted by this node, in units
                  of hundredths of a second."
     ::= { xstInstanceCfgEntry 10 }

xstInstanceCfgForwardDelay OBJECT-TYPE
     SYNTAX      Timeout
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION  "For RST or MST protocol, this time value, measured in units of 
                  hundredths of a second, controls how fast a port changes 
                  its spanning state when moving towards the forwarding
                  state.  The value determines how long the port
                  stays in each of the listening and learning
                  states, which precede the forwarding state.  This
                  value is also used, when a topology change has
                  been detected and is underway, to age all dynamic
                  entries in the forwarding database. This value is the
                  current value being used by the bridge. 
                  xstInstanceCfgBridgeForwardDelay defines the value that
                  this bridge and all others would start using
                  if/when this bridge were to become the root."
     ::= { xstInstanceCfgEntry 11 }

xstInstanceCfgBridgeMaxAge OBJECT-TYPE
     SYNTAX      Timeout
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION   "For RST or MST protocol, the time (in hundredths of second)
                   that all bridges use for MaxAge when this bridge is acting 
                   as the root.  Note that 802.1D-1990 specifies that the range 
                   for this parameter is related to the value of
                   xstInstanceCfgBridgeHelloTime. The granularity of this
                   timer is specified by 802.1D-1990 to be 1 second."
     REFERENCE   "802.1D-1990."
     ::= { xstInstanceCfgEntry 12 }
     
xstInstanceCfgBridgeHelloTime OBJECT-TYPE
     SYNTAX      Timeout
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION   "For RST or MST protocol,the time (in hundredths of a second) that 
                   all bridges use for HelloTime when this bridge is acting 
                   as the root.  The granularity of this timer is specified
                   by 802.1D-1990 to be 1 second."
     REFERENCE   "802.1D-1990."
     ::= { xstInstanceCfgEntry 13 }
     

xstInstanceCfgBridgeForwardDelay OBJECT-TYPE
     SYNTAX      Timeout
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION  "For RST or MST protocol, the time (in hundredths of a second)
                  that all bridges use for ForwardDelay when this bridge 
                  is acting as the root. 
                  Note that 802.1D-1990 specifies that the range for this
                  parameter is related to the value of
                  xstInstanceCfgBridgeMaxAge. The granularity of this
                  timer is specified by 802.1D-1990 to be 1 second."
     REFERENCE   "802.1D-1990."
     ::= { xstInstanceCfgEntry 14 }
     
xstInstanceCfgTxHoldCount OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION  "For RST or MST protocol, the value used by the port transmit 
                  state machine to limit the maximum transmission rate."
     ::= { xstInstanceCfgEntry 15 }

xstInstanceCfgPathCostMethod OBJECT-TYPE
     SYNTAX      StaPathCostMode
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION   
       "For RST or MST protocol, this indicates the type of spanning tree path
       cost mode used by the switch. The 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 xstInstancePortPathCost MIB object must be used in order
       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 xstInstancePortPathCost 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."
     ::= { xstInstanceCfgEntry 16 }
     
xstInstancePortTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF XstInstancePortEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION "The extension table for dot1dStpPortEntry to provide 
                 additional Spanning Tree information and configuration."
     ::= { xstMgt 5 }

xstInstancePortEntry OBJECT-TYPE
     SYNTAX      XstInstancePortEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION "The conceptual row for xstInstancePortTable."
     INDEX       { xstInstancePortInstance, xstInstancePortPort }
     ::= { xstInstancePortTable 1 }
     
XstInstancePortEntry ::= SEQUENCE
{
  xstInstancePortInstance           Integer32,
  xstInstancePortPort               Integer32,
  xstInstancePortPriority           Integer32,
  xstInstancePortState              INTEGER,
  xstInstancePortEnable             EnabledStatus,
  xstInstancePortPathCost           Integer32,
  xstInstancePortDesignatedRoot     BridgeId,
  xstInstancePortDesignatedCost     Integer32,
  xstInstancePortDesignatedBridge   BridgeId,
  xstInstancePortDesignatedPort     OCTET STRING,
  xstInstancePortForwardTransitions Counter32,
  xstInstancePortPortRole           INTEGER
}

xstInstancePortInstance OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION "The instance of the MSTP."
     ::= { xstInstancePortEntry 1 }

xstInstancePortPort OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION "The port and the trunk (excluding trunk member ports) 
                  interface of the mstInstancePortTable. 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."
     ::= { xstInstancePortEntry 2 }
     
xstInstancePortPriority OBJECT-TYPE
     SYNTAX      Integer32(0..240)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "Defines the priority used for this port in the Spanning
                 Tree Algorithm. If the path cost for all ports on a 
                 switch is the same, the port with the highest priority
                 (i.e., lowest value) will be configured as an active link
                 in the Spanning Tree. This makes a port with higher 
                 priority less likely to be blocked if the Spanning Tree
                 Algorithm is detecting network loops. Where more than one
                 port is assigned the highest priority, the port with
                 lowest numeric identifier will be enabled."
     ::= { xstInstancePortEntry 3 }

xstInstancePortState OBJECT-TYPE
     SYNTAX      INTEGER {
                          discarding(1),
                          learning(2),
                          forwarding(3)
                         }
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION  "The port's current state as defined by application of
                  the Spanning Tree Protocol.  This state controls what
                  action a port takes on reception of a frame:
                  discarding(1): Port receives configuration messages,
                                 but does not forward packets.
                  learning(2):   Port has transmitted configuration messages 
		                 for an interval set by the Forward Delay
		                 parameter without receiving contradictory
		                 information.  Port address table is cleared,
		                 and the port begins learning addresses.
                  forwarding(3): Port forwards packets, and continues learning
		                 addresses.
                                   
                  For ports which are disabled (see xstInstancePortEnable),
                  this object will have a value of discarding(1)."
              ::= { xstInstancePortEntry 4}

xstInstancePortEnable OBJECT-TYPE
     SYNTAX     EnabledStatus 
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION    "The enabled/disabled status of the port."
     ::= { xstInstancePortEntry 5 }

xstInstancePortPathCost OBJECT-TYPE
     SYNTAX      Integer32(1..200000000)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "The pathcost of the RST or MST in the range 1 to 200000000.
  		 This parameter is used to determine the best path between
  		 devices. Therefore, lower values should be assigned to 
  		 ports attached to faster media, and higher values assigned
  		 to ports with slower media. (Path cost takes precedence 
  		 over port priority)."
     ::= { xstInstancePortEntry 6 }

xstInstancePortDesignatedRoot OBJECT-TYPE
     SYNTAX      BridgeId
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
                 "The unique bridge identifier of the bridge
                 recorded as the root in the configuration BPDUs
                 transmitted by the designated bridge for the
                 segment to which the port is attached."
     ::= { xstInstancePortEntry 7 }

xstInstancePortDesignatedCost OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
                 "The path cost of the designated port of the
                  segment connected to this port.  This value is
                  compared to the root path cost field in received
                  bridge PDUs."
     ::= { xstInstancePortEntry 8 }

xstInstancePortDesignatedBridge OBJECT-TYPE
     SYNTAX      BridgeId
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
                 "The bridge identifier of the bridge which this
                 port considers to be the designated bridge for
                 this port's segment."
     ::= { xstInstancePortEntry 9 }

xstInstancePortDesignatedPort OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE (2))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
            "The port identifier of the port on the designated
            bridge for this port's segment."
     ::= { xstInstancePortEntry 10 }

xstInstancePortForwardTransitions OBJECT-TYPE
     SYNTAX  Counter32
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION
             "The number of times this port has transitioned
             from the learning state to the forwarding state."
     ::= { xstInstancePortEntry 11 }

xstInstancePortPortRole OBJECT-TYPE
     SYNTAX  INTEGER
             {
               disabled(1),
               root(2),
               designated(3),
               alternate(4),
               backup(5),
               master(6)
             }
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION "The role of the port in the RST or MST protocol:
                  (1) The port has no role within the spanning tree
                  (2) The port is part of the active topology connecting
                      the bridge to the root bridge (i.e., root port)
                  (3) The port is connecting a LAN through the bridge to the
                      root bridge (i.e., designated port)
                  (4) The port may provide connectivity if other
                      bridges, bridge ports, or LANs fail or are removed.
                  (5) The port provides backup if other
                      bridges, bridge ports, or LANs fail or are removed.
                  (6) For MST protocol only, indicates whether this instance
                      is in a master role."
                      
     ::= { xstInstancePortEntry 12 }

mstInstanceEditTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF MstInstanceEditEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION "The Multiple Spanning Tree region instance vlan configuration table.         
                  Please read the actual instance vlan mapped in the mstInstanceOperTable."     
     ::= { xstMgt 6 }

mstInstanceEditEntry OBJECT-TYPE
     SYNTAX      MstInstanceEditEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION  "A conceptual row containing the status of the MSTP instance."
     INDEX       { mstInstanceEditIndex }
     ::= { mstInstanceEditTable 1 }

MstInstanceEditEntry ::= SEQUENCE
{
    mstInstanceEditIndex      Integer32,
    mstInstanceEditVlansMap   OCTET STRING,
    mstInstanceEditVlansMap2k OCTET STRING,
    mstInstanceEditVlansMap3k OCTET STRING,
    mstInstanceEditVlansMap4k OCTET STRING,
    mstInstanceEditRemainingHops Integer32
}

mstInstanceEditIndex OBJECT-TYPE
      SYNTAX      Integer32 (0..4094)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "An arbitrary integer within the range from 1 to the value of
          the maximum instance that uniquely identifies a spanning
          tree instance."
      ::= {mstInstanceEditEntry 1 }    

mstInstanceEditVlansMap OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN. The
            first octet corresponds to VLANs with vlanIndex values
            of 0 through 7; the second octet to VLANs 8 through
            15; etc., The most significant bit of each octet
            corresponds to the lowest value vlanIndex in that octet.

            For each VLAN, if it is mapped to this MSTP instance,
            then the bit corresponding to that VLAN is set to '1'.
            
            To create a row, write any of mstInstanceEditVlansMap,
            mstInstanceEditVlansMap2k, mstInstanceEditVlansMap3k or
            mstInstanceEditVlansMap4k, to a non-empty list.
            To destroy a row, write all of these four variables
            to an empty list."
    ::= {mstInstanceEditEntry 2 }

mstInstanceEditVlansMap2k OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for
            VLANS with vlanIndex values of 1024 through 2047. The
            first octet corresponds to VLANs with vlanIndex values
            of 1024 through 1031; the second octet to VLANs 1032
            through 1039; etc.  The most significant bit of each
            octet corresponds to the lowest value vlanIndex in that
            octet.

            For each VLAN, if it is mapped to this MSTP instance,
            then the bit corresponding to that VLAN is set to '1'.
            
            To create a row, write any of mstInstanceEditVlansMap,
            mstInstanceEditVlansMap2k, mstInstanceEditVlansMap3k or
            mstInstanceEditVlansMap4k, to a non-empty list.
            To destroy a row, write all of these four variables
            to an empty list."
    ::= {mstInstanceEditEntry 3 }

mstInstanceEditVlansMap3k OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for
            VLANS with vlanIndex values of 2048 through 3071. The
            first octet corresponds to VLANs with vlanIndex values
            of 2048 through 2055; the second octet to VLANs 2056
            through 2063; etc.  The most significant bit of each
            octet corresponds to the lowest value vlanIndex in that
            octet.

            For each VLAN, if it is mapped to this MSTP instance,
            then the bit corresponding to that VLAN is set to '1'.

            To create a row, write any of mstInstanceEditVlansMap,
            mstInstanceEditVlansMap2k, mstInstanceEditVlansMap3k or
            mstInstanceEditVlansMap4k, to a non-empty list.
            To destroy a row, write all of these four variables
            to an empty list."
    ::= {mstInstanceEditEntry 4 }

mstInstanceEditVlansMap4k OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for
            VLANS with vlanIndex values of 3072 through 4095. The
            first octet corresponds to VLANs with vlanIndex values
            of 3072 through 3079; the second octet to VLANs 3080
            through 3087; etc.  The most significant bit of each
            octet corresponds to the lowest value vlanIndex in that
            octet.

            For each VLAN, if it is mapped to this MSTP instance,
            then the bit corresponding to that VLAN is set to '1'.

            To create a row, write any of mstInstanceEditVlansMap,
            mstInstanceEditVlansMap2k, mstInstanceEditVlansMap3k or
            mstInstanceEditVlansMap4k, to a non-empty list.
            To destroy a row, write all of these four variables
            to an empty list."
    ::= {mstInstanceEditEntry 5 }
    
mstInstanceEditRemainingHops OBJECT-TYPE
     SYNTAX      Integer32 
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION "The remaining hop count for this MST instance."
     ::= { mstInstanceEditEntry 6 }
--mstInstanceOperTable
mstInstanceOperTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF MstInstanceOperEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION "The Multiple Spanning Tree region instance vlan mapped table."                    
     ::= { xstMgt 7 }

mstInstanceOperEntry OBJECT-TYPE
     SYNTAX      MstInstanceOperEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION  "A conceptual row containing the status of the MSTP instance."
     INDEX       { mstInstanceOperIndex }
     ::= { mstInstanceOperTable 1 }

MstInstanceOperEntry ::= SEQUENCE
{
    mstInstanceOperIndex      Integer32,
    mstInstanceOperVlansMap   OCTET STRING,
    mstInstanceOperVlansMap2k OCTET STRING,
    mstInstanceOperVlansMap3k OCTET STRING,
    mstInstanceOperVlansMap4k OCTET STRING
}

mstInstanceOperIndex OBJECT-TYPE
      SYNTAX      Integer32 (0..4094)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "An arbitrary integer within the range from 1 to the value of
          the maximum instance that uniquely identifies a spanning
          tree instance."
      ::= {mstInstanceOperEntry 1 }    

mstInstanceOperVlansMap OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN. The
            first octet corresponds to VLANs with vlanIndex values
            of 0 through 7; the second octet to VLANs 8 through
            15; etc., The most significant bit of each octet
            corresponds to the lowest value vlanIndex in that octet.

            For each VLAN, if it is mapped to this MSTP instance,
            then the bit corresponding to that VLAN is set to '1'."                        
    ::= {mstInstanceOperEntry 2 }

mstInstanceOperVlansMap2k OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for
            VLANS with vlanIndex values of 1024 through 2047. The
            first octet corresponds to VLANs with vlanIndex values
            of 1024 through 1031; the second octet to VLANs 1032
            through 1039; etc. The most significant bit of each
            octet corresponds to the lowest value vlanIndex in that
            octet.

            For each VLAN, if it is mapped to this MSTP instance,
            then the bit corresponding to that VLAN is set to '1'."
    ::= {mstInstanceOperEntry 3 }

mstInstanceOperVlansMap3k OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for
            VLANS with vlanIndex values of 2048 through 3071. The
            first octet corresponds to VLANs with vlanIndex values
            of 2048 through 2055; the second octet to VLANs 2056
            through 2063; etc. The most significant bit of each
            octet corresponds to the lowest value vlanIndex in that
            octet.

            For each VLAN, if it is mapped to this MSTP instance,
            then the bit corresponding to that VLAN is set to '1'."
    ::= {mstInstanceOperEntry 4 }

mstInstanceOperVlansMap4k OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN for
            VLANS with vlanIndex values of 3072 through 4095. The
            first octet corresponds to VLANs with vlanIndex values
            of 3072 through 3079; the second octet to VLANs 3080
            through 3087; etc. The most significant bit of each
            octet corresponds to the lowest value vlanIndex in that
            octet.

            For each VLAN, if it is mapped to this MSTP instance,
            then the bit corresponding to that VLAN is set to '1'."
    ::= {mstInstanceOperEntry 5 }

--
-- restartMgt
--

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

restartConfigFile OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..127))
        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),
                        both(3)
                    }
        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. If this value is both(3),
                    both receive and transmit packets."
        ::= { 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.

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     EnabledStatus
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Whether HTTPS is enabled."
    ::= { ipMgt 6 }

ipHttpsPort OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The port number for HTTPS."
    ::= { ipMgt 7 }
iPAddrTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF IPAddrEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of iPAddrEntry."
    ::= { ipMgt 16 }

iPAddrEntry  OBJECT-TYPE
    SYNTAX     IPAddrEntry
    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  { iPAddrIPAddress, iPAddrSubnetMask }
    ::= { iPAddrTable 1 }

IPAddrEntry ::= SEQUENCE {
    iPAddrIPAddress         IpAddress,
    iPAddrSubnetMask        IpAddress,
    iPAddrIfIndex           Integer32,
    iPAddrPrimaryInterface  INTEGER,
    iPAddrUnnumbered        INTEGER,
    iPAddrStatus            RowStatus
}


iPAddrIPAddress  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 IPAddrIPAddress
        or IPAddrSubnetMask is 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)."
    ::= { iPAddrEntry 1 }

iPAddrSubnetMask  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 IPAddrIPAddress
        or IPAddrSubnetMask 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)."
    ::= { iPAddrEntry 2 }

iPAddrIfIndex  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION "The VLAN interface being used by this table entry. Only the 
                 VLAN interfaces which have an IP configured will appear in
                 the table."
    ::= { iPAddrEntry 3 }

iPAddrPrimaryInterface OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   primary(1),
                   secondary(2)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Whether this is a primary interface."
    ::= { iPAddrEntry 4 }
 
iPAddrUnnumbered OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   unnumbered(1),
                   notUnnumbered(2)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Whether this is an unnumbered interface."
    ::= { iPAddrEntry 5 }

iPAddrStatus  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."    
    ::= { iPAddrEntry 6 }

dhcpMgt              OBJECT IDENTIFIER ::= { ipMgt 11 }
dhcpClient           OBJECT IDENTIFIER ::= { dhcpMgt 1 }
dhcpcOptions         OBJECT IDENTIFIER ::= { dhcpClient 1 }

dhcpcInterfaceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DhcpcInterfaceTable
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for DHCP client information listed by interface.
                     Depending on the nature of the product, this table may 
                     have only one entry(e.g. for the management VLAN), or 
                     may have many entries(e.g. for all ports, or for all 
                     static VLANs)."
        ::= { dhcpcOptions 1 }

dhcpcInterfaceEntry OBJECT-TYPE
        SYNTAX      DhcpcInterfaceTable
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for DHCP client information listed by interface."
        INDEX       { dhcpcIfIndex }
        ::= { dhcpcInterfaceTable 1 }
        
DhcpcInterfaceTable ::= SEQUENCE
{
   dhcpcIfIndex         Integer32,
   dhcpcIfClientIdMode  INTEGER,
   dhcpcIfClientId      OCTET STRING
}

dhcpcIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined by ifIndex in the IF-MIB.(static vlan if index)"
        ::= { dhcpcInterfaceEntry 1 }

dhcpcIfClientIdMode OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                      notSpecify(1),
                      text(2),
                      hex(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether the Client ID is in text mode or in Hex mode."
        ::= { dhcpcInterfaceEntry 2 }

dhcpcIfClientId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(0..32))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The value that the DHCP client sets in the client_id 
                      option of DHCPDISCOVER and DHCPREQUEST messages. This
                      value may be used by DHCP servers to uniquely identify
                      the client."
         ::= { dhcpcInterfaceEntry 3 }

dhcpRelay OBJECT IDENTIFIER ::= { dhcpMgt 2 }

--dhcpRelayServerAddrTable
dhcpRelayServerAddrTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpRelayServerAddrEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "The role of DHCP Relay Agent is to forward requests 
                        and replies between server and client when they are not
                        in the same subnet. To enable DHCP Relay service user needs to 
                        specify Relay Server ip address and then restart DHCP Relay.
                        This Table is to specify Relay Server ip address, 
                        the maximum numbers of server ip address user can specify is 5.
                        To Restart DHCP Relay, please use the dhcpRelayRestart variable."
          ::= { dhcpRelay 2 }

dhcpRelayServerAddrEntry OBJECT-TYPE
          SYNTAX      DhcpRelayServerAddrEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpRelayServerAddrTable."
          INDEX { dhcpRelayServerAddrIfIndex,dhcpRelayServerAddrIndex } 
          ::= { dhcpRelayServerAddrTable 1 }

DhcpRelayServerAddrEntry ::= SEQUENCE
{
     dhcpRelayServerAddrIfIndex  Integer32,
     dhcpRelayServerAddrIndex Integer32,
     dhcpRelayServerAddrServerIp  IpAddress         
}

dhcpRelayServerAddrIfIndex OBJECT-TYPE
          SYNTAX      Integer32
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "The VLAN interface being used by this table entry."
          ::= { dhcpRelayServerAddrEntry 1 }       

dhcpRelayServerAddrIndex OBJECT-TYPE
          SYNTAX      Integer32 (0..5)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "The Index of the Relay server IP address."
          ::= { dhcpRelayServerAddrEntry 2 }    

dhcpRelayServerAddrServerIp OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "The IP address of the relay server."
          ::= { dhcpRelayServerAddrEntry 3 }   
          
--dhcpRelayRestart
dhcpRelayRestart OBJECT-TYPE
          SYNTAX      INTEGER
                      {
                        restart(1),
                        noRestart(2)
                      }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "Set to restart(1) to restart DCHP Relay. 
                        Always get noRestart(2) when you read this variable."
          ::= { dhcpRelay 3 } 

--  
-- dhcpServerMgt
--
dhcpServerMgt OBJECT IDENTIFIER ::= { dhcpMgt 3 }

--dhcpPoolTable
dhcpPoolTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpPoolEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A dhcp pool is a collection of
                       user configuration such as option config-lease time                         
                        or dns-server IPs, a network address for network pool,
                        or a host IP plus a hardware address pair for host pool. 
                        However, a dhcp pool only can either be a network pool 
                        or a host pool, or none of them (such as that pool only 
                        containing option config no network address config 
                        or a host ip config as well)"
          ::= { dhcpServerMgt 1 }

dhcpPoolEntry OBJECT-TYPE
          SYNTAX      DhcpPoolEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpPoolTable."
          INDEX { dhcpPoolPoolName }
          ::= { dhcpPoolTable 1 }

DhcpPoolEntry ::= SEQUENCE
{
     dhcpPoolPoolName  DisplayString,
     dhcpPoolPoolType INTEGER,
     dhcpPoolPoolAddress  IpAddress,
     dhcpPoolSubnetMask IpAddress,
     dhcpPoolHardwareType INTEGER,
     dhcpPoolMacAddress OCTET STRING,
     dhcpPoolstatus ValidStatus
}

dhcpPoolPoolName OBJECT-TYPE
          SYNTAX      DisplayString(SIZE(1..8))
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "PoolName, simply specify a string which 
                      string size NO MORE THAN 8"
          ::= { dhcpPoolEntry 1 } 

dhcpPoolPoolType OBJECT-TYPE
          SYNTAX      INTEGER
                       {
                            notSpecify(1),
                            netWork(2),
                            host(3)
                       }
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION "Pool Type: notSpecify(1); netWork(2);host(3)"
          ::= { dhcpPoolEntry 2 } 

dhcpPoolPoolAddress OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION "Pool Address"
          ::= { dhcpPoolEntry 3 }  

dhcpPoolSubnetMask OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION "Subnet Mask"
          ::= { dhcpPoolEntry 4 }  

dhcpPoolHardwareType OBJECT-TYPE
          SYNTAX      INTEGER
                      {
                        notSpecify(1),
                        ethernet(2),
                        ieee802(3),
                        fddi(4)
                      }
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION "Hardware type: notSpecify(1); ethernet(2); ieee802(3); fddi(4)"
          ::= { dhcpPoolEntry 5 }    

dhcpPoolMacAddress OBJECT-TYPE
          SYNTAX      OCTET STRING(SIZE(6))
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION "MAC address"
          ::= { dhcpPoolEntry 6 } 
          
dhcpPoolstatus 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."
          ::= { dhcpPoolEntry 7 }  
                                                                           
--dhcpPoolOptionTable
dhcpPoolOptionTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpPoolOptionEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "This is the Option table of the dhcpPoolTable,
                       user can specify Options configuration in this table"
          ::= { dhcpServerMgt 2 }

dhcpPoolOptionEntry OBJECT-TYPE
          SYNTAX      DhcpPoolOptionEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpPoolOptionTable."
          INDEX { dhcpPoolOptionPoolName }
          ::= { dhcpPoolOptionTable 1 }

DhcpPoolOptionEntry ::= SEQUENCE
{
     dhcpPoolOptionPoolName  DisplayString,
     dhcpPoolOptionNextServer IpAddress,
     dhcpPoolOptionNetbiosNodeType  INTEGER,
     dhcpPoolOptionDomainName DisplayString,
     dhcpPoolOptionBootFile DisplayString,
     dhcpPoolOptionLeaseTime Integer32,
     dhcpPoolOptionCidMode INTEGER,
     dhcpPoolOptionCidBuffer  OCTET STRING
}

dhcpPoolOptionPoolName OBJECT-TYPE
          SYNTAX      DisplayString(SIZE(1..8))
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "PoolName, simply specify a string which 
                      string size NO MORE THAN 8"
          ::= { dhcpPoolOptionEntry 1 } 
          
dhcpPoolOptionNextServer OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "Specifies the IP address of the next server in the boot process,
                        which is typically a Trivial File Transfer Protocol(TFTP) server.
                        One IP address is required."
          ::= { dhcpPoolOptionEntry 2 }   

dhcpPoolOptionNetbiosNodeType OBJECT-TYPE
          SYNTAX      INTEGER
                      {
                        none(1),
                        b-node(2),
                        p-node(3),
                        m-node(4),
                        h-node(5)
                      }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "Specifies the NetBIOS node type. Valid types are:
                        none(1)
                        b-node(2) - Broadcast
                        p-node(3) - Peer-to-peer
                        m-node(4) - Mixed
                        h-node(5) - Hybrid."
          ::= { dhcpPoolOptionEntry 3 }                      

dhcpPoolOptionDomainName OBJECT-TYPE
          SYNTAX      DisplayString(SIZE(0..128))
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "Specifies the domain name string."
          ::= { dhcpPoolOptionEntry 4 } 

dhcpPoolOptionBootFile OBJECT-TYPE
          SYNTAX      DisplayString(SIZE(0..128))
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "To specify the name of the default boot image."
          ::= { dhcpPoolOptionEntry 5 }           

dhcpPoolOptionLeaseTime OBJECT-TYPE
          SYNTAX      Integer32
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "To configure the duration of the lease of an 
                        IP address that is assigned from a DHCP Server 
                        to a DHCP client."
          ::= { dhcpPoolOptionEntry 6 }  

dhcpPoolOptionCidMode OBJECT-TYPE
          SYNTAX      INTEGER
                      {
                        notSpecify(1),
                        text(2),
                        hex(3)
                      }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "Set this variable to text(2) of hex(3) 
                        to specify the mode of the Client Id,
                        which is useful for CLI to determine the display way of the 
                        Client Id.                      
                        You will get default value 'notSpecify(1)'when this variable
                        had never been set.                         
                        Setting this to notSpecify(1) is a invalid operation."                                                   
          ::= { dhcpPoolOptionEntry 7 }   

dhcpPoolOptionCidBuffer OBJECT-TYPE
          SYNTAX      OCTET STRING(SIZE(0..128))
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION " Content of Client Id.
                        You MUST specify the dhcpPoolOptionCidMode before 
                        setting this variable."
          ::= { dhcpPoolOptionEntry 8 } 
          
 
--dhcpPoolOptionDnsSerTable
dhcpPoolOptionDnsSerTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpPoolOptionDnsSerEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "To specify the DNS IP servers available to a DHCP client, 
                        you can specify up to two addresses for each DHCP pool."
          ::= { dhcpServerMgt 3 }

dhcpPoolOptionDnsSerEntry OBJECT-TYPE
          SYNTAX      DhcpPoolOptionDnsSerEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpPoolOptionDnsSerTable."
          INDEX { dhcpPoolOptionDnsSerPoolName,dhcpPoolOptionDnsSerIndex}
          ::= { dhcpPoolOptionDnsSerTable 1 }

DhcpPoolOptionDnsSerEntry ::= SEQUENCE
{
     dhcpPoolOptionDnsSerPoolName  DisplayString,
     dhcpPoolOptionDnsSerIndex Integer32,
     dhcpPoolOptionDnsSerIpAddress  IpAddress    
}

dhcpPoolOptionDnsSerPoolName OBJECT-TYPE
          SYNTAX      DisplayString(SIZE(1..8))
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "PoolName, simply specify a string which 
                      string size NO MORE THAN 8"
          ::= { dhcpPoolOptionDnsSerEntry 1 }    

dhcpPoolOptionDnsSerIndex OBJECT-TYPE
          SYNTAX      Integer32(1..2)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "Index of the DNS server."
          ::= { dhcpPoolOptionDnsSerEntry 2 }    

dhcpPoolOptionDnsSerIpAddress OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "Ip address of the DNS server."
          ::= { dhcpPoolOptionDnsSerEntry 3 }  
              
--dhcpPoolOptDefaultRouterTable
dhcpPoolOptDefaultRouterTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpPoolOptDefaultRouterEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "Specifices the default router list for a DHCP Client,
                        you can specify up to two addresses for each DHCP pool."
          ::= { dhcpServerMgt 4 }

dhcpPoolOptDefaultRouterEntry OBJECT-TYPE
          SYNTAX      DhcpPoolOptDefaultRouterEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpPoolOptDefaultRouterTable."
          INDEX { dhcpPoolOptDefaultRouterPoolName,dhcpPoolOptDefaultRouterIndex}
          ::= { dhcpPoolOptDefaultRouterTable 1 }

DhcpPoolOptDefaultRouterEntry ::= SEQUENCE
{
     dhcpPoolOptDefaultRouterPoolName  DisplayString,
     dhcpPoolOptDefaultRouterIndex Integer32,
     dhcpPoolOptDefaultRouterIpAddress  IpAddress      
}

dhcpPoolOptDefaultRouterPoolName OBJECT-TYPE
          SYNTAX      DisplayString(SIZE(1..8))
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "PoolName, simply specify a string which 
                      string size NO MORE THAN 8"
          ::= { dhcpPoolOptDefaultRouterEntry 1 }       

dhcpPoolOptDefaultRouterIndex OBJECT-TYPE
          SYNTAX      Integer32 (1..2)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "Index of the default router."
          ::= { dhcpPoolOptDefaultRouterEntry 2 }   

dhcpPoolOptDefaultRouterIpAddress OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "Specifies the IP address of a router. One IP address is required."
          ::= { dhcpPoolOptDefaultRouterEntry 3 }        

--dhcpPoolOptNetbiosServerTable
dhcpPoolOptNetbiosServerTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpPoolOptNetbiosServerEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "To configure the NetBIOS WINS name servers that are available 
                        to DHCP clients. You can specify up to eight addressed for each
                        DHCP pool."
          ::= { dhcpServerMgt 5 }

dhcpPoolOptNetbiosServerEntry OBJECT-TYPE
          SYNTAX      DhcpPoolOptNetbiosServerEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpPoolOptNetbiosServerTable."
          INDEX { dhcpPoolOptNetbiosServerPoolName,dhcpPoolOptNetbiosServerIndex}
          ::= { dhcpPoolOptNetbiosServerTable 1 }

DhcpPoolOptNetbiosServerEntry ::= SEQUENCE
{
     dhcpPoolOptNetbiosServerPoolName  DisplayString,
     dhcpPoolOptNetbiosServerIndex Integer32,
     dhcpPoolOptNetbiosServerIpAddress  IpAddress    
}

dhcpPoolOptNetbiosServerPoolName OBJECT-TYPE
          SYNTAX      DisplayString(SIZE(1..8))
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "PoolName, simply specify a string which 
                      string size NO MORE THAN 8"
          ::= { dhcpPoolOptNetbiosServerEntry 1 } 
          
dhcpPoolOptNetbiosServerIndex OBJECT-TYPE
          SYNTAX      Integer32(1..8)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "Index of the Netbios name Server."
          ::= { dhcpPoolOptNetbiosServerEntry 2 }     

dhcpPoolOptNetbiosServerIpAddress OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "Specifies the IP address of the NetBIOS WINS name server. 
                        One IP address is required."
          ::= { dhcpPoolOptNetbiosServerEntry 3 }                                   
 
--dhcpServerExcludedIpAddrTable
dhcpServerExcludedIpAddrTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpServerExcludedIpAddrEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "To specify IP addresses that a DHCP Server
                        shuld not assign to DHCP clients."
          ::= { dhcpServerMgt 6 }

dhcpServerExcludedIpAddrEntry OBJECT-TYPE
          SYNTAX      DhcpServerExcludedIpAddrEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpServerExcludedIpAddrTable."
          INDEX { dhcpServerExcludedIpAddrLowIp,dhcpServerExcludedIpAddrHiIp}
          ::= { dhcpServerExcludedIpAddrTable 1 }

DhcpServerExcludedIpAddrEntry ::= SEQUENCE
{
     dhcpServerExcludedIpAddrLowIp  IpAddress,
     dhcpServerExcludedIpAddrHiIp IpAddress,
     dhcpServerExcludedIpAddrStatus  ValidStatus    
}

dhcpServerExcludedIpAddrLowIp OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "The excluded IP address, 
                        or first IP address in an excluded address range."
          ::= { dhcpServerExcludedIpAddrEntry 1 }        

dhcpServerExcludedIpAddrHiIp OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "The last IP address in the excluded address range."
          ::= { dhcpServerExcludedIpAddrEntry 2 }   

dhcpServerExcludedIpAddrStatus 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."
          ::= { dhcpServerExcludedIpAddrEntry 3 } 

--dhcpServerLeaseBindingTable
dhcpServerLeaseBindingTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpServerLeaseBindingEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "To configure the address bindings on the DHCP server."
          ::= { dhcpServerMgt 7 }

dhcpServerLeaseBindingEntry OBJECT-TYPE
          SYNTAX      DhcpServerLeaseBindingEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpServerLeaseBindingTable."
          INDEX { dhcpServerLeaseBindingIp } 
          ::= { dhcpServerLeaseBindingTable 1 }

DhcpServerLeaseBindingEntry ::= SEQUENCE
{
     dhcpServerLeaseBindingIp  IpAddress,
     dhcpServerLeaseBindingMac OCTET STRING,
     dhcpServerLeaseBindingLeaseTime  Integer32,
     dhcpServerLeaseBindingStartTime DisplayString,   
     dhcpServerLeaseBindingStatus ValidStatus 
}

dhcpServerLeaseBindingIp OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "The IP address of the host as recorded on the DHCP Server."
          ::= { dhcpServerLeaseBindingEntry 1 }    

dhcpServerLeaseBindingMac OBJECT-TYPE
          SYNTAX      OCTET STRING (SIZE(6))
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION "The MAC address of the host as recorded on the DHCP Server."
          ::= { dhcpServerLeaseBindingEntry 2 }    

dhcpServerLeaseBindingLeaseTime OBJECT-TYPE
          SYNTAX      Integer32
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION "The lease expiration date of the IP address of the host."
          ::= { dhcpServerLeaseBindingEntry 3 } 

dhcpServerLeaseBindingStartTime OBJECT-TYPE
          SYNTAX      DisplayString (SIZE(20))
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION "Show current system real time in sec."
          ::= { dhcpServerLeaseBindingEntry 4 }     

dhcpServerLeaseBindingStatus 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."
          ::= { dhcpServerLeaseBindingEntry 5 }   

dhcpServerServiceStatus OBJECT-TYPE
          SYNTAX      EnabledStatus
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "Setting this to 1 to enable the dhcp server service.
                       Setting this to 2 to disable the dhcp server service."
          ::= { dhcpServerMgt 8 }
          
--
-- 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,
    bcastStormPktRate      INTEGER,
    bcastStormOctetRate    INTEGER,
    bcastStormPercent      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
                    {
                        pkt-rate(1),
                        octet-rate(2),
                        percent(3)
                    }
        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 }

bcastStormPktRate OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Broadcast storm threshold as packets per second."
        ::= { bcastStormEntry 4 }

bcastStormOctetRate OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Broadcast storm threshold as octets per second."
        ::= { bcastStormEntry 5 }

bcastStormPercent OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Broadcast storm threshold as percentage of bandwidth."
        ::= { bcastStormEntry 6 }

--
-- 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
                    {
                        hybrid(1),
                        dot1qTrunk(2)                        
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This variable sets the 802.1Q VLAN mode.
                    Setting it to hybrid(1) sets a hybrid link.
                    Setting it to dot1qTrunk(2) sets a trunk 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.
                    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.
                    When read, this object always returns 0."
        ::= { priorityMgt 5 }

-- optional
prioIpPortEnableStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        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            Integer32,
    prioIpPortStatus         ValidStatus
}

prioIpPortPhysPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port and the trunk (excluding 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."
        ::= { 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      Integer32 (0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Class of service for this entry."
        ::= { prioIpPortEntry 3 }

prioIpPortStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        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 }

-- optional
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 }        

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 }
                  
--prioWrrPortTable
prioWrrPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PrioWrrPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for per port weighted round robin (WRR)."
        ::= { priorityMgt 12 }

prioWrrPortEntry OBJECT-TYPE
        SYNTAX      PrioWrrPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for per port weighted round robin (WRR)."
        INDEX       { prioWrrPortIfIndex,prioWrrPortTrafficClass }
        ::= { prioWrrPortTable 1 }

PrioWrrPortEntry ::= SEQUENCE
{
	prioWrrPortIfIndex 			Integer32,
    prioWrrPortTrafficClass    Integer32,
    prioWrrPortWeight          Integer32
}

prioWrrPortIfIndex OBJECT-TYPE
        SYNTAX      Integer32 
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface of the prioWrrPortEntry. 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."        
        ::= { prioWrrPortEntry 1 }
        
prioWrrPortTrafficClass OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Traffic class for this entry, as defined in
                    dot1dTrafficClass in the P-BRIDGE-MIB. The actual
                    maximum depends on the hardware, and is
                    equal to dot1dPortNumTrafficClasses-1."
        REFERENCE "MIB.IETF|Q-BRIDGE-MIB.dot1dTrafficClass."
        ::= { prioWrrPortEntry 2 }

prioWrrPortWeight OBJECT-TYPE
        SYNTAX      Integer32 (1..255)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Weight for this entry."
        ::= { prioWrrPortEntry 3 }       
                
--
-- 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,
    trapDestUdpPort             Integer32

}

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..127))
    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),
                   version3(3)
               }
    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. If the value is 3, mean we wish to send 
         version 3 trap."
    ::= { trapDestEntry 4}

trapDestUdpPort OBJECT-TYPE
    SYNTAX      Integer32 ( 1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Determines the UDP port number of the trap that is to be sent to the
                 trap Receiver."
    DEFVAL      { 162 }
    ::= { trapDestEntry 5}

--
-- securityMgt
--
portSecurityMgt     OBJECT IDENTIFIER ::= { securityMgt 2 }
radiusMgt           OBJECT IDENTIFIER ::= { securityMgt 4 }
tacacsMgt           OBJECT IDENTIFIER ::= { securityMgt 5 }
sshMgt              OBJECT IDENTIFIER ::= { securityMgt 6 }
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 intruded, when this variable is set to 
                      none(1), no action will perform, when this variable is 
                      set to trap(2), a swPortSecurityTrap trap will send, 
                      when this variable is set to shutdown(3), the port will 
                      shutdown, when this variable is set to 
                      trapAndShutdown(4), a swPortSecurityTrap will send
                      and the port will shutdown."
        ::= { portSecPortEntry 3  }
        
portSecMaxMacCount OBJECT-TYPE
        SYNTAX       Integer32(0..20)
        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 
--

-- radiusServerAddress OBJECT-TYPE
--         SYNTAX      IpAddress
--         MAX-ACCESS  read-write
--         STATUS      current
--         DESCRIPTION "IP address of RADIUS server."
--         ::= { radiusMgt 1 }

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
        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."
        ::= { 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

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 Integer32,
   radiusMultipleServerTimeout    Integer32,
   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."
        ::= { 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(0..48))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Key for RADIUS. This variable can only be set.
                     When this variable is read, it always returns a
                     zero-length string."
        ::= { radiusMultipleServerEntry 4 }

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

radiusMultipleServerTimeout OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        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 "Key for TACACS."
        ::= { tacacsMgt 3 }

-- sshMgt

-- Management for Secure Shell Configuration

sshServerStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The status of Secure Shell Server, set this value
                     to 1 to enable SSH server, set this value to 2 to 
                     disable the SSH server."
        ::= { sshMgt 1 }

sshServerMajorVersion  OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The major version of the SSH Server."
        ::= { sshMgt 2 }

sshServerMinorVersion  OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The minor version of the SSH Server."
        ::= { sshMgt 3 }
 
sshTimeout OBJECT-TYPE
        SYNTAX      INTEGER(1..120)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The time interval that the router waits for the SSH 
                     client to respond. The range is 1-120."
        ::= { sshMgt 4 }

sshAuthRetries OBJECT-TYPE
        SYNTAX      INTEGER(1..5)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The number of attempts after which the interface is reset.
                     The range is 1-5."
        ::= { sshMgt 5 }

sshConnInfoTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SshConnInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for Secure Shell Connection."
        ::= { sshMgt 6 }

sshConnInfoEntry OBJECT-TYPE
        SYNTAX      SshConnInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for sshConnInfoTable."
        INDEX       { sshConnID }
        ::= { sshConnInfoTable 1 }

SshConnInfoEntry ::= SEQUENCE
{
   sshConnID             Integer32,
   sshConnMajorVersion   Integer32,
   sshConnMinorVersion   Integer32,
   sshConnStatus         INTEGER,   
   sshConnUserName       OCTET STRING,
   sshDisconnect         INTEGER,   
--for sshv2 start   
   sshConnEncryptionTypeStr DisplayString
--for sshv2 end   
}

sshConnID OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The connection ID of the Secure Shell Connection."
        ::= { sshConnInfoEntry 1 }

sshConnMajorVersion OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The SSH major version."
        ::= { sshConnInfoEntry 2 }

sshConnMinorVersion OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The SSH minor version."
        ::= { sshConnInfoEntry 3 }

sshConnStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                      negotiationStart(1),
                      authenticationStart(2),
                      sessionStart(3)
                    }      
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The SSH connection State. negotiationStart(1) mean the
                     SSH is in its negotiation start state, authenticationStart(2)
                     mean the SSH is in authentication start state, sessionStart(3)
                     mean the SSH is in session start State."
        ::= { sshConnInfoEntry 5 }

sshConnUserName OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The user name of the connection."
        ::= { sshConnInfoEntry 6 }

sshDisconnect OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                      noDisconnect(1),
                      disconnect(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set the variables to disconnect to disconnect the connection,
                     when read, this variables always return noDisconnect(1)."
        ::= { sshConnInfoEntry 7 }

sshConnEncryptionTypeStr  OBJECT-TYPE    
SYNTAX      DisplayString(SIZE(0..64))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The encryption type of the SSH."
        ::= { sshConnInfoEntry 8 }
        
--ssh v2  
sshKeySize OBJECT-TYPE
        SYNTAX      INTEGER(512..896)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The SSH server key size."
        ::= { sshMgt 7 }
         

sshRsaHostKey1 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshRsaHostKey1: part 1 of the RSA host key (1-128)
                    sshRsaHostKey2: part 2 of the RSA host key (129-256)
                    sshRsaHostKey3: part 3 of the RSA host key (257-384)
                    sshRsaHostKey4: part 4 of the RSA host key (385-512)
                    sshRsaHostKey5: part 5 of the RSA host key (513-640)
                    sshRsaHostKey6: part 6 of the RSA host key (641-768)
                    sshRsaHostKey7: part 7 of the RSA host key (769-896)
                    sshRsaHostKey8: part 8 of the RSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshRsaHostKey1, and 
                    a string which length is 1 in sshRsaHostKey2, 
                    moreover, sshRsaHostKey3 to sshRsaHostKey8 will all got zero-length string."
        ::= { sshMgt 8 }

sshRsaHostKey2 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshRsaHostKey1: part 1 of the RSA host key (1-128)
                    sshRsaHostKey2: part 2 of the RSA host key (129-256)
                    sshRsaHostKey3: part 3 of the RSA host key (257-384)
                    sshRsaHostKey4: part 4 of the RSA host key (385-512)
                    sshRsaHostKey5: part 5 of the RSA host key (513-640)
                    sshRsaHostKey6: part 6 of the RSA host key (641-768)
                    sshRsaHostKey7: part 7 of the RSA host key (769-896)
                    sshRsaHostKey8: part 8 of the RSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshRsaHostKey1, and 
                    a string which length is 1 in sshRsaHostKey2, 
                    moreover, sshRsaHostKey3 to sshRsaHostKey8 will all got zero-length string."
        ::= { sshMgt 9 }
        
sshRsaHostKey3 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshRsaHostKey1: part 1 of the RSA host key (1-128)
                    sshRsaHostKey2: part 2 of the RSA host key (129-256)
                    sshRsaHostKey3: part 3 of the RSA host key (257-384)
                    sshRsaHostKey4: part 4 of the RSA host key (385-512)
                    sshRsaHostKey5: part 5 of the RSA host key (513-640)
                    sshRsaHostKey6: part 6 of the RSA host key (641-768)
                    sshRsaHostKey7: part 7 of the RSA host key (769-896)
                    sshRsaHostKey8: part 8 of the RSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshRsaHostKey1, and 
                    a string which length is 1 in sshRsaHostKey2, 
                    moreover, sshRsaHostKey3 to sshRsaHostKey8 will all got zero-length string."
        ::= { sshMgt 10 }
        
sshRsaHostKey4 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshRsaHostKey1: part 1 of the RSA host key (1-128)
                    sshRsaHostKey2: part 2 of the RSA host key (129-256)
                    sshRsaHostKey3: part 3 of the RSA host key (257-384)
                    sshRsaHostKey4: part 4 of the RSA host key (385-512)
                    sshRsaHostKey5: part 5 of the RSA host key (513-640)
                    sshRsaHostKey6: part 6 of the RSA host key (641-768)
                    sshRsaHostKey7: part 7 of the RSA host key (769-896)
                    sshRsaHostKey8: part 8 of the RSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshRsaHostKey1, and 
                    a string which length is 1 in sshRsaHostKey2, 
                    moreover, sshRsaHostKey3 to sshRsaHostKey8 will all got zero-length string."
        ::= { sshMgt 11 }

sshRsaHostKey5 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshRsaHostKey1: part 1 of the RSA host key (1-128)
                    sshRsaHostKey2: part 2 of the RSA host key (129-256)
                    sshRsaHostKey3: part 3 of the RSA host key (257-384)
                    sshRsaHostKey4: part 4 of the RSA host key (385-512)
                    sshRsaHostKey5: part 5 of the RSA host key (513-640)
                    sshRsaHostKey6: part 6 of the RSA host key (641-768)
                    sshRsaHostKey7: part 7 of the RSA host key (769-896)
                    sshRsaHostKey8: part 8 of the RSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshRsaHostKey1, and 
                    a string which length is 1 in sshRsaHostKey2, 
                    moreover, sshRsaHostKey3 to sshRsaHostKey8 will all got zero-length string."
        ::= { sshMgt 12 } 

sshRsaHostKey6 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshRsaHostKey1: part 1 of the RSA host key (1-128)
                    sshRsaHostKey2: part 2 of the RSA host key (129-256)
                    sshRsaHostKey3: part 3 of the RSA host key (257-384)
                    sshRsaHostKey4: part 4 of the RSA host key (385-512)
                    sshRsaHostKey5: part 5 of the RSA host key (513-640)
                    sshRsaHostKey6: part 6 of the RSA host key (641-768)
                    sshRsaHostKey7: part 7 of the RSA host key (769-896)
                    sshRsaHostKey8: part 8 of the RSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshRsaHostKey1, and 
                    a string which length is 1 in sshRsaHostKey2, 
                    moreover, sshRsaHostKey3 to sshRsaHostKey8 will all got zero-length string."
        ::= { sshMgt 13 } 

sshRsaHostKey7 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshRsaHostKey1: part 1 of the RSA host key (1-128)
                    sshRsaHostKey2: part 2 of the RSA host key (129-256)
                    sshRsaHostKey3: part 3 of the RSA host key (257-384)
                    sshRsaHostKey4: part 4 of the RSA host key (385-512)
                    sshRsaHostKey5: part 5 of the RSA host key (513-640)
                    sshRsaHostKey6: part 6 of the RSA host key (641-768)
                    sshRsaHostKey7: part 7 of the RSA host key (769-896)
                    sshRsaHostKey8: part 8 of the RSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshRsaHostKey1, and 
                    a string which length is 1 in sshRsaHostKey2, 
                    moreover, sshRsaHostKey3 to sshRsaHostKey8 will all got zero-length string."
        ::= { sshMgt 14 } 

sshRsaHostKey8 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshRsaHostKey1: part 1 of the RSA host key (1-128)
                    sshRsaHostKey2: part 2 of the RSA host key (129-256)
                    sshRsaHostKey3: part 3 of the RSA host key (257-384)
                    sshRsaHostKey4: part 4 of the RSA host key (385-512)
                    sshRsaHostKey5: part 5 of the RSA host key (513-640)
                    sshRsaHostKey6: part 6 of the RSA host key (641-768)
                    sshRsaHostKey7: part 7 of the RSA host key (769-896)
                    sshRsaHostKey8: part 8 of the RSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshRsaHostKey1, and 
                    a string which length is 1 in sshRsaHostKey2, 
                    moreover, sshRsaHostKey3 to sshRsaHostKey8 will all got zero-length string."
        ::= { sshMgt 15 }                         

sshDsaHostKey1 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshDsaHostKey1: part 1 of the DSA host key (1-128)
                    sshDsaHostKey2: part 2 of the DSA host key (129-256)
                    sshDsaHostKey3: part 3 of the DSA host key (257-384)
                    sshDsaHostKey4: part 4 of the DSA host key (385-512)
                    sshDsaHostKey5: part 5 of the DSA host key (513-640)
                    sshDsaHostKey6: part 6 of the DSA host key (641-768)
                    sshDsaHostKey7: part 7 of the DSA host key (769-896)
                    sshDsaHostKey8: part 8 of the DSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshDsaHostKey1, and 
                    a string which length is 1 in sshDsaHostKey2, 
                    moreover, sshDsaHostKey3 to sshDsaHostKey8 will all got zero-length string."
        ::= { sshMgt 16 }

sshDsaHostKey2 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshDsaHostKey1: part 1 of the DSA host key (1-128)
                    sshDsaHostKey2: part 2 of the DSA host key (129-256)
                    sshDsaHostKey3: part 3 of the DSA host key (257-384)
                    sshDsaHostKey4: part 4 of the DSA host key (385-512)
                    sshDsaHostKey5: part 5 of the DSA host key (513-640)
                    sshDsaHostKey6: part 6 of the DSA host key (641-768)
                    sshDsaHostKey7: part 7 of the DSA host key (769-896)
                    sshDsaHostKey8: part 8 of the DSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshDsaHostKey1, and 
                    a string which length is 1 in sshDsaHostKey2, 
                    moreover, sshDsaHostKey3 to sshDsaHostKey8 will all got zero-length string."
        ::= { sshMgt 17 }
        
sshDsaHostKey3 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshDsaHostKey1: part 1 of the DSA host key (1-128)
                    sshDsaHostKey2: part 2 of the DSA host key (129-256)
                    sshDsaHostKey3: part 3 of the DSA host key (257-384)
                    sshDsaHostKey4: part 4 of the DSA host key (385-512)
                    sshDsaHostKey5: part 5 of the DSA host key (513-640)
                    sshDsaHostKey6: part 6 of the DSA host key (641-768)
                    sshDsaHostKey7: part 7 of the DSA host key (769-896)
                    sshDsaHostKey8: part 8 of the DSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshDsaHostKey1, and 
                    a string which length is 1 in sshDsaHostKey2, 
                    moreover, sshDsaHostKey3 to sshDsaHostKey8 will all got zero-length string."
        ::= { sshMgt 18 }
        
sshDsaHostKey4 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshDsaHostKey1: part 1 of the DSA host key (1-128)
                    sshDsaHostKey2: part 2 of the DSA host key (129-256)
                    sshDsaHostKey3: part 3 of the DSA host key (257-384)
                    sshDsaHostKey4: part 4 of the DSA host key (385-512)
                    sshDsaHostKey5: part 5 of the DSA host key (513-640)
                    sshDsaHostKey6: part 6 of the DSA host key (641-768)
                    sshDsaHostKey7: part 7 of the DSA host key (769-896)
                    sshDsaHostKey8: part 8 of the DSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshDsaHostKey1, and 
                    a string which length is 1 in sshDsaHostKey2, 
                    moreover, sshDsaHostKey3 to sshDsaHostKey8 will all got zero-length string."
        ::= { sshMgt 19 }

sshDsaHostKey5 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshDsaHostKey1: part 1 of the DSA host key (1-128)
                    sshDsaHostKey2: part 2 of the DSA host key (129-256)
                    sshDsaHostKey3: part 3 of the DSA host key (257-384)
                    sshDsaHostKey4: part 4 of the DSA host key (385-512)
                    sshDsaHostKey5: part 5 of the DSA host key (513-640)
                    sshDsaHostKey6: part 6 of the DSA host key (641-768)
                    sshDsaHostKey7: part 7 of the DSA host key (769-896)
                    sshDsaHostKey8: part 8 of the DSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshDsaHostKey1, and 
                    a string which length is 1 in sshDsaHostKey2, 
                    moreover, sshDsaHostKey3 to sshDsaHostKey8 will all got zero-length string."
        ::= { sshMgt 20 } 

sshDsaHostKey6 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshDsaHostKey1: part 1 of the DSA host key (1-128)
                    sshDsaHostKey2: part 2 of the DSA host key (129-256)
                    sshDsaHostKey3: part 3 of the DSA host key (257-384)
                    sshDsaHostKey4: part 4 of the DSA host key (385-512)
                    sshDsaHostKey5: part 5 of the DSA host key (513-640)
                    sshDsaHostKey6: part 6 of the DSA host key (641-768)
                    sshDsaHostKey7: part 7 of the DSA host key (769-896)
                    sshDsaHostKey8: part 8 of the DSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshDsaHostKey1, and 
                    a string which length is 1 in sshDsaHostKey2, 
                    moreover, sshDsaHostKey3 to sshDsaHostKey8 will all got zero-length string."
        ::= { sshMgt 21 }

sshDsaHostKey7 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshDsaHostKey1: part 1 of the DSA host key (1-128)
                    sshDsaHostKey2: part 2 of the DSA host key (129-256)
                    sshDsaHostKey3: part 3 of the DSA host key (257-384)
                    sshDsaHostKey4: part 4 of the DSA host key (385-512)
                    sshDsaHostKey5: part 5 of the DSA host key (513-640)
                    sshDsaHostKey6: part 6 of the DSA host key (641-768)
                    sshDsaHostKey7: part 7 of the DSA host key (769-896)
                    sshDsaHostKey8: part 8 of the DSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshDsaHostKey1, and 
                    a string which length is 1 in sshDsaHostKey2, 
                    moreover, sshDsaHostKey3 to sshDsaHostKey8 will all got zero-length string."
        ::= { sshMgt 22 }

sshDsaHostKey8 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA host key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshDsaHostKey1: part 1 of the DSA host key (1-128)
                    sshDsaHostKey2: part 2 of the DSA host key (129-256)
                    sshDsaHostKey3: part 3 of the DSA host key (257-384)
                    sshDsaHostKey4: part 4 of the DSA host key (385-512)
                    sshDsaHostKey5: part 5 of the DSA host key (513-640)
                    sshDsaHostKey6: part 6 of the DSA host key (641-768)
                    sshDsaHostKey7: part 7 of the DSA host key (769-896)
                    sshDsaHostKey8: part 8 of the DSA host key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshDsaHostKey1, and 
                    a string which length is 1 in sshDsaHostKey2, 
                    moreover, sshDsaHostKey3 to sshDsaHostKey8 will all got zero-length string."
        ::= { sshMgt 23 }                
        
sshHostKeyGenAction OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noGen(1),
                        genRsaKey(2),
                        genDsaKey(3),
                        genBothKeys(4)
                    } 
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This variable is for host key generating.
        
                    For the set behavior:
                    set it to genRsaKey(2) to generate the RSA host key,
                    genDsaKey(3) to generate the DSA host key, 
                    if genBothKeys(4) is set, both RSA and DSA host key are 
                    generated. 
                    
                    For the get behavior:
                    you will get genRsaKey(2), genDsaKey(3) or
                    genBothKeys(4) when the key gen action is in progress.
                    otherwise, you will get noGen(1)."
        ::= { sshMgt 24 }

sshHostKeyGenStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        unknown(1), 
                        success(2), 
                        failure(3)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The result of the last KeyGen status.
                     if no Key gen action has been perform
                     you will get unknown(1) status."
        ::= { sshMgt 25 }        

sshHostKeySaveAction OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noSave(1),
                        save(2)
                    }     
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To save host key from memory to flash.
        
                     For the set behavior:                     
                     set it to save(2) to perform the save operation.
                     
                     For the get behavior:
                     you will get save(1) when the save action is in progress.
                     otherwise, you will get noSave(1)."
        ::= { sshMgt 26 }

sshHostKeySaveStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        unknown(1), 
                        success(2), 
                        failure(3)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The result of the last savekey status.
                     if no save action has been perform
                     you will get unknown(1) status."
        ::= { sshMgt 27 }

sshHostKeyDelAction  OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noDel(1),
                        delRsaKey(2),
                        delDsaKey(3), 
                        delBothKeys(4)
                    }    
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To delete the host key.
        
                     For the set behavior:                     
                     set it to delRsaKey(2) to delete the RSA host key,
                     delDsaKey(3) to delete the DSA host key,
                     or delBothKeys(4) to delete both RSA and DSA host key.
                     
                     For the get behavior:
                     you will get delRsaKey(2), delDsaKey(3) or  delBothKeys(4)
                     when the delete operation is in progress.
                     otherwise, you will get noDel(1)."
        ::= { sshMgt 28 } 

sshUserTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SshUserEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual table of all of sshUserEntry "
        ::= { sshMgt 29 }              

sshUserEntry OBJECT-TYPE
        SYNTAX      SshUserEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for sshUserTable."
        INDEX       { IMPLIED sshUserName}
        ::= { sshUserTable 1 }          
 
SshUserEntry ::= SEQUENCE
{
    sshUserName             DisplayString,
    sshUserRsaKey1          DisplayString,    
    sshUserRsaKey2          DisplayString,
    sshUserRsaKey3          DisplayString,
    sshUserRsaKey4          DisplayString,
    sshUserRsaKey5          DisplayString,
    sshUserRsaKey6          DisplayString,
    sshUserRsaKey7          DisplayString,
    sshUserRsaKey8          DisplayString,
    sshUserDsaKey1          DisplayString,
    sshUserDsaKey2          DisplayString,
    sshUserDsaKey3    		DisplayString,
    sshUserDsaKey4    		DisplayString,
    sshUserDsaKey5    		DisplayString,
    sshUserDsaKey6    		DisplayString,
    sshUserDsaKey7    		DisplayString,
    sshUserDsaKey8    		DisplayString,
    sshUserKeyDelAction     INTEGER
}  

sshUserName OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(1..8))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "User Name."
        ::= { sshUserEntry 1 }

sshUserRsaKey1 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the RSA user key (1-128)
                    sshUserRsaKey2: part 2 of the RSA user key (129-256)
                    sshUserRsaKey3: part 3 of the RSA user key (257-384)
                    sshUserRsaKey4: part 4 of the RSA user key (385-512)
                    sshUserRsaKey5: part 5 of the RSA user key (513-640)
                    sshUserRsaKey6: part 6 of the RSA user key (641-768)
                    sshUserRsaKey7: part 7 of the RSA user key (769-896)
                    sshUserRsaKey8: part 8 of the RSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserRsaKey1, and 
                    a string which length is 1 in sshUserRsaKey2, 
                    moreover, sshUserRsaKey3 to sshUserRsaKey8 will all got zero-length string."
        ::= { sshUserEntry 2 }   

sshUserRsaKey2 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the RSA user key (1-128)
                    sshUserRsaKey2: part 2 of the RSA user key (129-256)
                    sshUserRsaKey3: part 3 of the RSA user key (257-384)
                    sshUserRsaKey4: part 4 of the RSA user key (385-512)
                    sshUserRsaKey5: part 5 of the RSA user key (513-640)
                    sshUserRsaKey6: part 6 of the RSA user key (641-768)
                    sshUserRsaKey7: part 7 of the RSA user key (769-896)
                    sshUserRsaKey8: part 8 of the RSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserRsaKey1, and 
                    a string which length is 1 in sshUserRsaKey2, 
                    moreover, sshUserRsaKey3 to sshUserRsaKey8 will all got zero-length string."
        ::= { sshUserEntry 3 }  

sshUserRsaKey3 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the RSA user key (1-128)
                    sshUserRsaKey2: part 2 of the RSA user key (129-256)
                    sshUserRsaKey3: part 3 of the RSA user key (257-384)
                    sshUserRsaKey4: part 4 of the RSA user key (385-512)
                    sshUserRsaKey5: part 5 of the RSA user key (513-640)
                    sshUserRsaKey6: part 6 of the RSA user key (641-768)
                    sshUserRsaKey7: part 7 of the RSA user key (769-896)
                    sshUserRsaKey8: part 8 of the RSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserRsaKey1, and 
                    a string which length is 1 in sshUserRsaKey2, 
                    moreover, sshUserRsaKey3 to sshUserRsaKey8 will all got zero-length string."
        ::= { sshUserEntry 4 }    

sshUserRsaKey4 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the RSA user key (1-128)
                    sshUserRsaKey2: part 2 of the RSA user key (129-256)
                    sshUserRsaKey3: part 3 of the RSA user key (257-384)
                    sshUserRsaKey4: part 4 of the RSA user key (385-512)
                    sshUserRsaKey5: part 5 of the RSA user key (513-640)
                    sshUserRsaKey6: part 6 of the RSA user key (641-768)
                    sshUserRsaKey7: part 7 of the RSA user key (769-896)
                    sshUserRsaKey8: part 8 of the RSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserRsaKey1, and 
                    a string which length is 1 in sshUserRsaKey2, 
                    moreover, sshUserRsaKey3 to sshUserRsaKey8 will all got zero-length string."
        ::= { sshUserEntry 5 } 

sshUserRsaKey5 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the RSA user key (1-128)
                    sshUserRsaKey2: part 2 of the RSA user key (129-256)
                    sshUserRsaKey3: part 3 of the RSA user key (257-384)
                    sshUserRsaKey4: part 4 of the RSA user key (385-512)
                    sshUserRsaKey5: part 5 of the RSA user key (513-640)
                    sshUserRsaKey6: part 6 of the RSA user key (641-768)
                    sshUserRsaKey7: part 7 of the RSA user key (769-896)
                    sshUserRsaKey8: part 8 of the RSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserRsaKey1, and 
                    a string which length is 1 in sshUserRsaKey2, 
                    moreover, sshUserRsaKey3 to sshUserRsaKey8 will all got zero-length string."
        ::= { sshUserEntry 6 } 

sshUserRsaKey6 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the RSA user key (1-128)
                    sshUserRsaKey2: part 2 of the RSA user key (129-256)
                    sshUserRsaKey3: part 3 of the RSA user key (257-384)
                    sshUserRsaKey4: part 4 of the RSA user key (385-512)
                    sshUserRsaKey5: part 5 of the RSA user key (513-640)
                    sshUserRsaKey6: part 6 of the RSA user key (641-768)
                    sshUserRsaKey7: part 7 of the RSA user key (769-896)
                    sshUserRsaKey8: part 8 of the RSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserRsaKey1, and 
                    a string which length is 1 in sshUserRsaKey2, 
                    moreover, sshUserRsaKey3 to sshUserRsaKey8 will all got zero-length string."
        ::= { sshUserEntry 7 }

sshUserRsaKey7 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the RSA user key (1-128)
                    sshUserRsaKey2: part 2 of the RSA user key (129-256)
                    sshUserRsaKey3: part 3 of the RSA user key (257-384)
                    sshUserRsaKey4: part 4 of the RSA user key (385-512)
                    sshUserRsaKey5: part 5 of the RSA user key (513-640)
                    sshUserRsaKey6: part 6 of the RSA user key (641-768)
                    sshUserRsaKey7: part 7 of the RSA user key (769-896)
                    sshUserRsaKey8: part 8 of the RSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserRsaKey1, and 
                    a string which length is 1 in sshUserRsaKey2, 
                    moreover, sshUserRsaKey3 to sshUserRsaKey8 will all got zero-length string."
        ::= { sshUserEntry 8 }

sshUserRsaKey8 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of RSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the RSA user key (1-128)
                    sshUserRsaKey2: part 2 of the RSA user key (129-256)
                    sshUserRsaKey3: part 3 of the RSA user key (257-384)
                    sshUserRsaKey4: part 4 of the RSA user key (385-512)
                    sshUserRsaKey5: part 5 of the RSA user key (513-640)
                    sshUserRsaKey6: part 6 of the RSA user key (641-768)
                    sshUserRsaKey7: part 7 of the RSA user key (769-896)
                    sshUserRsaKey8: part 8 of the RSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserRsaKey1, and 
                    a string which length is 1 in sshUserRsaKey2, 
                    moreover, sshUserRsaKey3 to sshUserRsaKey8 will all got zero-length string."
        ::= { sshUserEntry 9 }                        

sshUserDsaKey1 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the DSA user key (1-128)
                    sshUserRsaKey2: part 2 of the DSA user key (129-256)
                    sshUserRsaKey3: part 3 of the DSA user key (257-384)
                    sshUserRsaKey4: part 4 of the DSA user key (385-512)
                    sshUserRsaKey5: part 5 of the DSA user key (513-640)
                    sshUserRsaKey6: part 6 of the DSA user key (641-768)
                    sshUserRsaKey7: part 7 of the DSA user key (769-896)
                    sshUserRsaKey8: part 8 of the DSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserDsaKey1, and 
                    a string which length is 1 in sshUserDsaKey2, 
                    moreover, sshUserDsaKey3 to sshUserDsaKey8 will all got zero-length string."
        ::= { sshUserEntry 10 }   

sshUserDsaKey2 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the DSA user key (1-128)
                    sshUserRsaKey2: part 2 of the DSA user key (129-256)
                    sshUserRsaKey3: part 3 of the DSA user key (257-384)
                    sshUserRsaKey4: part 4 of the DSA user key (385-512)
                    sshUserRsaKey5: part 5 of the DSA user key (513-640)
                    sshUserRsaKey6: part 6 of the DSA user key (641-768)
                    sshUserRsaKey7: part 7 of the DSA user key (769-896)
                    sshUserRsaKey8: part 8 of the DSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserDsaKey1, and 
                    a string which length is 1 in sshUserDsaKey2, 
                    moreover, sshUserDsaKey3 to sshUserDsaKey8 will all got zero-length string."
        ::= { sshUserEntry 11 } 

sshUserDsaKey3 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the DSA user key (1-128)
                    sshUserRsaKey2: part 2 of the DSA user key (129-256)
                    sshUserRsaKey3: part 3 of the DSA user key (257-384)
                    sshUserRsaKey4: part 4 of the DSA user key (385-512)
                    sshUserRsaKey5: part 5 of the DSA user key (513-640)
                    sshUserRsaKey6: part 6 of the DSA user key (641-768)
                    sshUserRsaKey7: part 7 of the DSA user key (769-896)
                    sshUserRsaKey8: part 8 of the DSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserDsaKey1, and 
                    a string which length is 1 in sshUserDsaKey2, 
                    moreover, sshUserDsaKey3 to sshUserDsaKey8 will all got zero-length string."
        ::= { sshUserEntry 12 } 
        
sshUserDsaKey4 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the DSA user key (1-128)
                    sshUserRsaKey2: part 2 of the DSA user key (129-256)
                    sshUserRsaKey3: part 3 of the DSA user key (257-384)
                    sshUserRsaKey4: part 4 of the DSA user key (385-512)
                    sshUserRsaKey5: part 5 of the DSA user key (513-640)
                    sshUserRsaKey6: part 6 of the DSA user key (641-768)
                    sshUserRsaKey7: part 7 of the DSA user key (769-896)
                    sshUserRsaKey8: part 8 of the DSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserDsaKey1, and 
                    a string which length is 1 in sshUserDsaKey2, 
                    moreover, sshUserDsaKey3 to sshUserDsaKey8 will all got zero-length string."
        ::= { sshUserEntry 13 }       

sshUserDsaKey5 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the DSA user key (1-128)
                    sshUserRsaKey2: part 2 of the DSA user key (129-256)
                    sshUserRsaKey3: part 3 of the DSA user key (257-384)
                    sshUserRsaKey4: part 4 of the DSA user key (385-512)
                    sshUserRsaKey5: part 5 of the DSA user key (513-640)
                    sshUserRsaKey6: part 6 of the DSA user key (641-768)
                    sshUserRsaKey7: part 7 of the DSA user key (769-896)
                    sshUserRsaKey8: part 8 of the DSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserDsaKey1, and 
                    a string which length is 1 in sshUserDsaKey2, 
                    moreover, sshUserDsaKey3 to sshUserDsaKey8 will all got zero-length string."
        ::= { sshUserEntry 14 } 

sshUserDsaKey6 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the DSA user key (1-128)
                    sshUserRsaKey2: part 2 of the DSA user key (129-256)
                    sshUserRsaKey3: part 3 of the DSA user key (257-384)
                    sshUserRsaKey4: part 4 of the DSA user key (385-512)
                    sshUserRsaKey5: part 5 of the DSA user key (513-640)
                    sshUserRsaKey6: part 6 of the DSA user key (641-768)
                    sshUserRsaKey7: part 7 of the DSA user key (769-896)
                    sshUserRsaKey8: part 8 of the DSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserDsaKey1, and 
                    a string which length is 1 in sshUserDsaKey2, 
                    moreover, sshUserDsaKey3 to sshUserDsaKey8 will all got zero-length string."
        ::= { sshUserEntry 15 }

sshUserDsaKey7 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the DSA user key (1-128)
                    sshUserRsaKey2: part 2 of the DSA user key (129-256)
                    sshUserRsaKey3: part 3 of the DSA user key (257-384)
                    sshUserRsaKey4: part 4 of the DSA user key (385-512)
                    sshUserRsaKey5: part 5 of the DSA user key (513-640)
                    sshUserRsaKey6: part 6 of the DSA user key (641-768)
                    sshUserRsaKey7: part 7 of the DSA user key (769-896)
                    sshUserRsaKey8: part 8 of the DSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserDsaKey1, and 
                    a string which length is 1 in sshUserDsaKey2, 
                    moreover, sshUserDsaKey3 to sshUserDsaKey8 will all got zero-length string."
        ::= { sshUserEntry 16 }

sshUserDsaKey8 OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..128))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total length of DSA user key is 1024 characters,
                    it is divided into 8 parts and store in 8 separated mib
                    variables as below:
                    
                    sshUserRsaKey1: part 1 of the DSA user key (1-128)
                    sshUserRsaKey2: part 2 of the DSA user key (129-256)
                    sshUserRsaKey3: part 3 of the DSA user key (257-384)
                    sshUserRsaKey4: part 4 of the DSA user key (385-512)
                    sshUserRsaKey5: part 5 of the DSA user key (513-640)
                    sshUserRsaKey6: part 6 of the DSA user key (641-768)
                    sshUserRsaKey7: part 7 of the DSA user key (769-896)
                    sshUserRsaKey8: part 8 of the DSA user key (897-1024)
                    
                    Please note that if the key string is less then 1024 characters,
                    the remaining part of the string will filled by zero-length string.
                    for example, if the length of the key is 129,
                    we will get a string which length is 128 in sshUserDsaKey1, and 
                    a string which length is 1 in sshUserDsaKey2, 
                    moreover, sshUserDsaKey3 to sshUserDsaKey8 will all got zero-length string."
        ::= { sshUserEntry 17 }                        

sshUserKeyDelAction  OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noDel(1),
                        delRsaKey(2),
                        delDsaKey(3), 
                        delBothKeys(4)
                    }   
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To delete the user key.
        
                     For the set behavior:                     
                     set it to delRsaKey(2) to delete the RSA user key,
                     delDsaKey(3) to delete the DSA user key,
                     or delBothKeys(4) to delete both RSA and DSA user key.
                     
                     For the get behavior:
                     you will get delRsaKey(2), delDsaKey(3) or  delBothKeys(4)
                     when the delete operation is in progress.
                     otherwise, you will get noDel(1)."
        ::= { sshUserEntry 18 }

--
-- 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,
    aclIpAceSourcePortBitmask       Integer32,
    aclIpAceDestPortOp              INTEGER,
    aclIpAceMinDestPort             Integer32,
    aclIpAceMaxDestPort             Integer32,
    aclIpAceDestPortBitmask         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 } 

aclIpAceSourcePortBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "If the aclIpAceSourcePortOp is equal(2),
                    this indicates the bitmask of the aclIpAceMinSourcePort."
        ::= { aclIpAceEntry 16 } 

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 }    

aclIpAceDestPortBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "If the aclIpAceDestPortOp is equal(2),
                     this indicates the bitmask of the aclIpAceMinDestPort."
        ::= { aclIpAceEntry 20 }   

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,
    aclMacAceVidBitmask             Integer32,
    aclMacAceMaxVid                 Integer32,
    aclMacAceEtherTypeOp            INTEGER,
    aclMacAceEtherTypeBitmask       Integer32,
    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  read-create
        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),
                        equal(2),
                        range(3)
                    }
        MAX-ACCESS  read-create
        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)."
        ::= { aclMacAceEntry 10 }     

aclMacAceMinVid OBJECT-TYPE
        SYNTAX      Integer32 (1..4093)
        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)."
        ::= { aclMacAceEntry 11 }        

aclMacAceVidBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'0FFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The bitmask of vid if the aclMacAceVidOp is equal, default value is 0xfff."
        ::= { aclMacAceEntry 12 } 

aclMacAceMaxVid OBJECT-TYPE
        SYNTAX      Integer32 (1..4093)
        MAX-ACCESS  read-create
        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)."
        ::= { aclMacAceEntry 13 } 

aclMacAceEtherTypeOp OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noOperator(1),
                        equal(2),
                        range(3)
                    }
        MAX-ACCESS  read-create
        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 }   

aclMacAceEtherTypeBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The bitmask of vid if the aclMacAceVidOp is equal(2) , default value is 0xFFFF."
        ::= { aclMacAceEntry 15 }  

aclMacAceMinEtherType OBJECT-TYPE
        SYNTAX      Integer32 ('0600'h..'FFFF'h)
        MAX-ACCESS  read-create
        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 ('0600'h..'FFFF'h)
        MAX-ACCESS  read-create
        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."
        ::= { 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."
        ::= { aclAclGroupEntry 5 }   

--aclIngressIpMaskTable
aclIngressIpMaskTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AclIngressIpMaskEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual table of aclIngressIpMaskEntry."
        ::= { aclMgt 4 } 

aclIngressIpMaskEntry OBJECT-TYPE
        SYNTAX      AclIngressIpMaskEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for aclIngressIpMaskTable."
        INDEX       { aclIngressIpMaskIndex }
        ::= { aclIngressIpMaskTable 1 }  

AclIngressIpMaskEntry ::= SEQUENCE
{
    aclIngressIpMaskIndex               Integer32,          
    aclIngressIpMaskPrecedence          Integer32,
    aclIngressIpMaskIsEnableTos         EnabledStatus,
    aclIngressIpMaskIsEnableDscp        EnabledStatus,
    aclIngressIpMaskIsEnablePrecedence  EnabledStatus,
    aclIngressIpMaskIsEnableProtocol    EnabledStatus,
    aclIngressIpMaskSourceIpAddrBitmask Unsigned32,
    aclIngressIpMaskDestIpAddrBitmask   Unsigned32,
    aclIngressIpMaskSourcePortBitmask   Integer32,
    aclIngressIpMaskDestPortBitmask     Integer32,
    aclIngressIpMaskControlCodeBitmask  Integer32,
    aclIngressIpMaskStatus              RowStatus
}    

aclIngressIpMaskIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..16)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Indicates the bitmask of the source IP address. The relative
                    	bitmask must be created before the ACE binds to the interface.
                     This object cannot be configured when the status of the
                     entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 1 }  

aclIngressIpMaskPrecedence OBJECT-TYPE
        SYNTAX      Integer32 (0..16)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates whether to check the IP precedence against the packets,
                     The relative bitmask must be created before the
                     ACE binds to the interface in ingress direction.
                     This object cannot be configured
                     when the status of the entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 2 }  

aclIngressIpMaskIsEnableTos OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates whether to check the IP ToS facility against the packets,
                     The relative bitmask must be created before the
                    ACE binds to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 3 }       

aclIngressIpMaskIsEnableDscp OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates whether to check the IP DSCP against the packets.
                     The relative bitmask must be created before the ACE binds
                     to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 4 }  
                              
aclIngressIpMaskIsEnablePrecedence OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates whether to check the IP precednce against the packets.
                     The relative bitmask must be created before the ACE
                    binds to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 5 }   

aclIngressIpMaskIsEnableProtocol OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates whether to check the IP protocol against the packets.
                     The relative bitmask must be created before the ACE
                    	binds to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 6 }      

aclIngressIpMaskSourceIpAddrBitmask OBJECT-TYPE
        SYNTAX      Unsigned32 (0..'FFFFFFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the source IP bitmask to check against the packets,
                     The relative bitmask must be created before the ACE
                        binds to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 7 }     

aclIngressIpMaskDestIpAddrBitmask OBJECT-TYPE
        SYNTAX      Unsigned32 (0..'FFFFFFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the destination IP bitmask to check against the packets,
                     The relative bitmask must be created before the ACE
                    	binds to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 8 }   

aclIngressIpMaskSourcePortBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the source port bitmask to check against the TCP/UDP packets,
                     The relative bitmask must be created before
                    	the ACE binds to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 9 }   

aclIngressIpMaskDestPortBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the destination port bitmask to check against the TCP/UDP packets,
                     The relative bitmask must be created before
                    	the ACE binds to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 10 }  

aclIngressIpMaskControlCodeBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..63)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the control code bitmask to check against the TCP packets,
                     The relative bitmask must be created before
                    the ACE binds to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressIpMaskStatus, is active(1)."
        ::= { aclIngressIpMaskEntry 11 }  

aclIngressIpMaskStatus 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."
        ::= { aclIngressIpMaskEntry 12 } 

--aclEgressIpMaskTable
aclEgressIpMaskTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AclEgressIpMaskEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual table of aclEgressIpMaskEntry."
        ::= { aclMgt 5 } 

aclEgressIpMaskEntry OBJECT-TYPE
        SYNTAX      AclEgressIpMaskEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for aclEgressIpMaskTable."
        INDEX       { aclEgressIpMaskIndex }
        ::= { aclEgressIpMaskTable 1 }  

AclEgressIpMaskEntry ::= SEQUENCE
{
    aclEgressIpMaskIndex                Integer32,          
    aclEgressIpMaskPrecedence           Integer32,
    aclEgressIpMaskIsEnableTos          EnabledStatus,
    aclEgressIpMaskIsEnableDscp         EnabledStatus,
    aclEgressIpMaskIsEnablePrecedence   EnabledStatus,
    aclEgressIpMaskIsEnableProtocol     EnabledStatus,
    aclEgressIpMaskSourceIpAddrBitmask  Unsigned32,
    aclEgressIpMaskDestIpAddrBitmask    Unsigned32,
    aclEgressIpMaskSourcePortBitmask    Integer32,
    aclEgressIpMaskDestPortBitmask      Integer32,
    aclEgressIpMaskControlCodeBitmask   Integer32,
    aclEgressIpMaskStatus              RowStatus
}    

aclEgressIpMaskIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..16)
        MAX-ACCESS  not-accessible
        STATUS      current
         DESCRIPTION "The index of a mask entry within a mask table."
        ::= { aclEgressIpMaskEntry 1 }  

aclEgressIpMaskPrecedence OBJECT-TYPE
        SYNTAX      Integer32 (0..16)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The created precedence of an mask entry within the mask table."
        ::= { aclEgressIpMaskEntry 2 }  

aclEgressIpMaskIsEnableTos OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates whether to check the IP ToS facility against the packets.
                     The relative bitmask must be created before the
                     ACE binds to the interface in egress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressIpMaskStatus, is active(1)."
        ::= { aclEgressIpMaskEntry 3 }       

aclEgressIpMaskIsEnableDscp OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates whether to check the IP DSCP against the packets.
                     The relative bitmask must be created before the
                    	ACE binds to the interface in egress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressIpMaskStatus, is active(1)."
        ::= { aclEgressIpMaskEntry 4 }  
                              
aclEgressIpMaskIsEnablePrecedence OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates whether to check the IP precedence against the packets.
                     The relative bitmask must be created before the
                    	ACE binds to the interface in egress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressIpMaskStatus, is active(1)."
        ::= { aclEgressIpMaskEntry 5 }   

aclEgressIpMaskIsEnableProtocol OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
         DESCRIPTION "Indicates whether to check the IP protocol against the packets.
                      The relative bitmask must be created before the ACE binds to
                    	the interface in egress direction.
                      This object cannot be configured when the status of the
                      entry, aclEgressIpMaskStatus, is active(1)."
        ::= { aclEgressIpMaskEntry 6 }      

aclEgressIpMaskSourceIpAddrBitmask OBJECT-TYPE
        SYNTAX      Unsigned32 (0..'FFFFFFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the source IP bitmask to check against the packets.
                     The relative bitmask must be created before the
                    	ACE binds to the interface in egress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressIpMaskStatus, is active(1)."
        ::= { aclEgressIpMaskEntry 7 }     

aclEgressIpMaskDestIpAddrBitmask OBJECT-TYPE
        SYNTAX      Unsigned32 (0..'FFFFFFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the destination IP bitmask to check against the packets.
                     The relative bitmask must be created before the
                    	ACE binds to the interface in egress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressIpMaskStatus, is active(1)."
        ::= { aclEgressIpMaskEntry 8 }   

aclEgressIpMaskSourcePortBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the source port bitmask to check against the TCP/UDP packets.
                     The relative bitmask must be created before the
                    	ACE binds to the interface in egress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressIpMaskStatus, is active(1)."
        ::= { aclEgressIpMaskEntry 9 }   

aclEgressIpMaskDestPortBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the destination port bitmask to check against the TCP/UDP packets.
                     The relative bitmask must be created before
                     the ACE binds to the interface in egress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressIpMaskStatus, is active(1)."
        ::= { aclEgressIpMaskEntry 10 }  

aclEgressIpMaskControlCodeBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..63)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the control code bitmask to check against the TCP packets.
                     The relative bitmask must be created before the
                    	ACE binds to the interface in egress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressIpMaskStatus, is active(1)."
        ::= { aclEgressIpMaskEntry 11 }  

aclEgressIpMaskStatus 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."
        ::= { aclEgressIpMaskEntry 12 }

--aclIngressMacMaskTable
aclIngressMacMaskTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AclIngressMacMaskEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual table of aclIngressMacMaskEntry."
        ::= { aclMgt 6 } 

aclIngressMacMaskEntry OBJECT-TYPE
        SYNTAX      AclIngressMacMaskEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for aclIngressMacMaskTable."
        INDEX       { aclIngressMacMaskIndex }
        ::= { aclIngressMacMaskTable 1 } 

AclIngressMacMaskEntry ::= SEQUENCE
{
    aclIngressMacMaskIndex Integer32,
    aclIngressMacMaskPrecedence Integer32,
    aclIngressMacMaskSourceMacAddrBitmask OCTET STRING,
    aclIngressMacMaskDestMacAddrBitmask OCTET STRING,
    aclIngressMacMaskVidBitmask Integer32,
    aclIngressMacMaskEtherTypeBitmask  Integer32,
    aclIngressMacMaskIsEnablePktformat EnabledStatus,
    aclIngressMacMaskStatus RowStatus
}                        

aclIngressMacMaskIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..16)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The index of an mask entry within an ingress mask table."
        ::= { aclIngressMacMaskEntry 1 } 

aclIngressMacMaskPrecedence OBJECT-TYPE
        SYNTAX      Integer32 (0..16)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The created order of an mask entry within an ingress mask table."
        ::= { aclIngressMacMaskEntry 2 } 

aclIngressMacMaskSourceMacAddrBitmask OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (6))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the source MAC bitmask to check against the packets.
                     The relative bitmask must be created before the ACE binds
                    	to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressMacMaskStatus, is active(1)."
        ::= { aclIngressMacMaskEntry 3 }   

aclIngressMacMaskDestMacAddrBitmask OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (6))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the destination MAC bitmask to check against the packets.
                     The relative bitmask must be created before the ACE binds
                    	to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressMacMaskStatus, is active(1)."
        ::= { aclIngressMacMaskEntry 4 } 

aclIngressMacMaskVidBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'0FFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the vid bitmask to check against the packets,
                     The relative bitmask must be created before the ACE binds
                    	to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressMacMaskStatus, is active(1)."
        ::= { aclIngressMacMaskEntry 5 }  

aclIngressMacMaskEtherTypeBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the ethertype bitmask to check against the packets.
                     The relative bitmask must be created before the ACE binds
                    	to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclIngressMacMaskStatus, is active(1)."
        ::= { aclIngressMacMaskEntry 6 }    

aclIngressMacMaskIsEnablePktformat OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
         DESCRIPTION "Indicates whether to check the packet format against the packets.
                      The relative bitmask must be created before the ACE binds
                    	to the interface in ingress direction.
                      This object cannot be configured when the status of the
                      entry, aclIngressMacMaskStatus, is active(1)."
        ::= { aclIngressMacMaskEntry 7 }  

aclIngressMacMaskStatus 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."
        ::= { aclIngressMacMaskEntry 8 } 

--aclEgressMacMaskTable
aclEgressMacMaskTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AclEgressMacMaskEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual table of aclEgressMacMaskEntry."
        ::= { aclMgt 7 } 

aclEgressMacMaskEntry OBJECT-TYPE
        SYNTAX      AclEgressMacMaskEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for aclEgressMacMaskTable."
        INDEX       { aclEgressMacMaskIndex }
        ::= { aclEgressMacMaskTable 1 } 

AclEgressMacMaskEntry ::= SEQUENCE
{
    aclEgressMacMaskIndex                   Integer32,
    aclEgressMacMaskPrecedence              Integer32,
    aclEgressMacMaskSourceMacAddrBitmask    OCTET STRING,
    aclEgressMacMaskDestMacAddrBitmask      OCTET STRING,
    aclEgressMacMaskVidBitmask              Integer32,
    aclEgressMacMaskEtherTypeBitmask        Integer32,
    aclEgressMacMaskIsEnablePktformat       EnabledStatus,
    aclEgressMacMaskStatus                  RowStatus
}                        

aclEgressMacMaskIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..16)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The index of a mask entry within an egress mask table."
        ::= { aclEgressMacMaskEntry 1 } 

aclEgressMacMaskPrecedence OBJECT-TYPE
        SYNTAX      Integer32 (0..16)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The created precedence of a mask entry within an egress mask table."
        ::= { aclEgressMacMaskEntry 2 } 

aclEgressMacMaskSourceMacAddrBitmask OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (6))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the source MAC bitmask to check against the packets,
                     The relative bitmask must be created before the ACE binds
                    	to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressMacMaskStatus, is active(1)."
        ::= { aclEgressMacMaskEntry 3 }   

aclEgressMacMaskDestMacAddrBitmask OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (6))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the destination MAC bitmask to check against the packets,
                     The relative bitmask must be created before the ACE binds
                    	to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressMacMaskStatus, is active(1)."
        ::= { aclEgressMacMaskEntry 4 } 

aclEgressMacMaskVidBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'0FFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the vid bitmask to check against the packets.
                     The relative bitmask must be created before the ACE binds
                    	to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressMacMaskStatus, is active(1)."
        ::= { aclEgressMacMaskEntry 5 }  

aclEgressMacMaskEtherTypeBitmask OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the ethertype bitmask to check against the packets.
                     The relative bitmask must be created before the ACE binds
                    	to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressMacMaskStatus, is active(1)."
        ::= { aclEgressMacMaskEntry 6 }    

aclEgressMacMaskIsEnablePktformat OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates whether to check the packet format against the packets.
                     The relative bitmask must be created before the ACE binds
                    	to the interface in ingress direction.
                     This object cannot be configured when the status of the
                     entry, aclEgressMacMaskStatus, is active(1)."
        ::= { aclEgressMacMaskEntry 7 }  

aclEgressMacMaskStatus 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."
        ::= { aclEgressMacMaskEntry 8 }   
                
--
-- 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 them 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 them 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 } 
        
--ipFilterTelnetTable
ipFilterTelnetTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF IpFilterTelnetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A list of IP address entries."
    ::= { ipFilterMgt 3 }

ipFilterTelnetEntry  OBJECT-TYPE
    SYNTAX     IpFilterTelnetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This entry includes an IP address range which the system will allow them to connect to this device through SNMP."
    INDEX { ipFilterTelnetStartAddress }
    ::= { ipFilterTelnetTable 1 }
    
IpFilterTelnetEntry ::= SEQUENCE {
    ipFilterTelnetStartAddress        IpAddress,
    ipFilterTelnetEndAddress          IpAddress,
    ipFilterTelnetStatus              ValidStatus
}

ipFilterTelnetStartAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The start-ip-address."        
        ::= { ipFilterTelnetEntry 1 }
        
ipFilterTelnetEndAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The end-ip-address."        
        ::= { ipFilterTelnetEntry 2 }     

ipFilterTelnetStatus 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."        
        ::= { ipFilterTelnetEntry 3 }          
        
--
-- sysLogMgt
--

sysLogStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether system log is enabled."
        ::= { sysLogMgt 1 }

sysLogHistoryFlashLevel OBJECT-TYPE
        SYNTAX      INTEGER (0..7)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Severity level for logging to flash."
        ::= { sysLogMgt 2 }

sysLogHistoryRamLevel OBJECT-TYPE
        SYNTAX      INTEGER (0..7)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Severity level for logging to RAM."
        ::= { sysLogMgt 3 }
        
remoteLogMgt OBJECT IDENTIFIER ::= { sysLogMgt 6 }

remoteLogStatus OBJECT-TYPE
       SYNTAX      EnabledStatus
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION "Whether the remote log system is enabled."
       ::= { remoteLogMgt 1 }

remoteLogLevel OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Severity level for remote log."
        ::= { remoteLogMgt 2 }

remoteLogFacilityType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                      localUse0(16),
                      localUse1(17),
                      localUse2(18),
                      localUse3(19),
                      localUse4(20),
                      localUse5(21),
                      localUse6(22),
                      localUse7(23)
                     }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION " The FacilityType for remote log."
        ::= { remoteLogMgt 3 }

remoteLogServerTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteLogServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A Table for storing the remote log Server list."
        ::= { remoteLogMgt 4 }

remoteLogServerEntry OBJECT-TYPE
        SYNTAX      RemoteLogServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptually row for remoteLogServerTable."
        INDEX { remoteLogServerIp }
        ::= { remoteLogServerTable 1 }

RemoteLogServerEntry ::= SEQUENCE
{
    remoteLogServerIp     IpAddress,
    remoteLogServerStatus ValidStatus
}

remoteLogServerIp OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION "The IP address of the remote log Server."
         ::= { remoteLogServerEntry 1 }

remoteLogServerStatus 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."
         ::= { remoteLogServerEntry 2 }
         
--
--smtpMgt
--
smtpMgt   OBJECT IDENTIFIER ::= { sysLogMgt 7 }

smtpStatus OBJECT-TYPE
    SYNTAX       EnabledStatus
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "Set enabled(1) to enable the SMTP, set disabled(2) to disable 
                 the SMTP."
    ::= { smtpMgt 1 }
    
smtpSeverityLevel OBJECT-TYPE
    SYNTAX       Integer32 (0..7)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "specify the SMTP minimum severity level to send the event message."
    ::= { smtpMgt 2 } 

smtpSourceEMail OBJECT-TYPE
    SYNTAX       DisplayString (SIZE(0..41)) 
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "SMTP source email address, 
                the sender's mail address that appears in the 'From' field of the mail."
    ::= { smtpMgt 3 }

--smtpServerIpTable  

smtpServerIpTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmtpServerIpEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The table of SMTP server Ip. 
                    The maximum servers to be added is 3."
       ::= { smtpMgt 4 }

smtpServerIpEntry OBJECT-TYPE
       SYNTAX      SmtpServerIpEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "A conceptual row of the smtpServerIpTable."
       INDEX  { smtpServerIp }
       ::= { smtpServerIpTable 1 }

SmtpServerIpEntry ::= SEQUENCE
{
    smtpServerIp     IpAddress,
    smtpServerIpStatus ValidStatus
}

smtpServerIp OBJECT-TYPE
       SYNTAX      IpAddress
       MAX-ACCESS  accessible-for-notify
       STATUS      current
       DESCRIPTION " SMTP mail servers IP address."
       ::= { smtpServerIpEntry 1 }  

smtpServerIpStatus 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."
       ::= { smtpServerIpEntry 2 }           
       
--smtpDestEMailTable

smtpDestEMailTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmtpDestEMailEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The table of the destination e-mail address.
                    The maximum numbers of destination email address to be added is 5."
       ::= { smtpMgt 5}

smtpDestEMailEntry OBJECT-TYPE
       SYNTAX      SmtpDestEMailEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "A conceptual row of the smtpDestEMailTable."
       INDEX  { smtpDestEMail }
       ::= { smtpDestEMailTable 1 }

SmtpDestEMailEntry ::= SEQUENCE
{
    smtpDestEMail     DisplayString,
    smtpDestEMailStatus ValidStatus
}

smtpDestEMail OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..41)) 
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "SMTP destination e-mail address."
       ::= { smtpDestEMailEntry 1 }  

smtpDestEMailStatus 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."
       ::= { smtpDestEMailEntry 2 }   
                
--
-- lineMgt
--

consoleMgt           OBJECT IDENTIFIER ::= { lineMgt 1 }
telnetMgt            OBJECT IDENTIFIER ::= { lineMgt 2 }


--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 }

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 }
        
consoleAdminBaudRate OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Baud rate. Valid values are 2400, 4800, 9600,
                    19200, 38400, 57600, 115200.

                    Setting this variable to 0 means autobaud.
                    Please read the actual baud rate in the consoleOperBaudRate variable."
        ::= { consoleMgt 8 }

consoleOperBaudRate OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The baud rate currently in use."
        ::= { consoleMgt 9 }
        
-- telnetMgt

telnetExecTimeout OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION  "In a telnet session, to set the interval that the EXEC command interpreter
                     waits until user input is detected, use the telnetExecTimeout
                     variables. "
        ::= { telnetMgt 1 }

telnetPasswordThreshold OBJECT-TYPE
        SYNTAX      INTEGER (0..120)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "In a telnet session, 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."
        ::= { telnetMgt 2 }

telnetStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To enable or disable the telnet function.        			 
        		Any new telnet request will be rejected and all current telnet sessions will be 
        			terminated if this status is set to disabled(2)."
		DEFVAL { enabled }        			        			        			
        ::= { telnetMgt 4 }

telnetPortNumber OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The telnet session port number."
        DEFVAL { 23 }
        ::= { telnetMgt 5 }   
                
--
-- qosMgt
--

-- Management for Quality of Service (QoS) for network traffic.


-- rateLimitMgt

-- optional

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,    
    rlPortInputLimit         Integer32,    
    rlPortOutputLimit        Integer32,        
    rlPortInputStatus        EnabledStatus,     
    rlPortOutputStatus       EnabledStatus
}

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 }

-- non ACD
rlPortInputLimit OBJECT-TYPE 
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Value of the input rate limit. Its unit is megabits per
                     second. For a 100 Mb/s port, the range is 1 to 100.
                     For a 1000 Mb/s port, the range is 1 to 1000."
        ::= { rateLimitPortEntry 2 }        

-- non ACD
rlPortOutputLimit OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Value of the output rate limit. Its unit is megabits per
                     second. For a 100 Mb/s port, the range is 1 to 100.
                     For a 1000 Mb/s port, the range is 1 to 1000."
        ::= { rateLimitPortEntry 3 }

-- all need (both acd and non-acd)
rlPortInputStatus OBJECT-TYPE
        SYNTAX      EnabledStatus                      
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether input rate limit is enabled for this port."
        ::= { rateLimitPortEntry 6 }
        
-- all need (both acd and non-acd)
rlPortOutputStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Whether output rate limit is enabled for this port."
        ::= { rateLimitPortEntry 7 }

--
--markerMgt
--
markerMgt        OBJECT IDENTIFIER ::= { qosMgt 2 }

markerTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MarkerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The marker table."
        ::= { markerMgt 1 }

markerEntry OBJECT-TYPE
        SYNTAX      MarkerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for marker table."
        INDEX       { markerIfIndex,markerAclName }
        ::= { markerTable 1 }
                  
MarkerEntry ::= SEQUENCE
{
    markerIfIndex             Integer32,
    markerAclName             DisplayString,
    markerActionBitList       BITS,
    markerDscp                Integer32,
    markerPrecedence          Integer32,
    markerPriority            Integer32,
    markerStatus              RowStatus  
}

markerIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The interface index of the marker table.
                    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."
        ::= { markerEntry 1 } 

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

markerActionBitList OBJECT-TYPE
        SYNTAX      BITS
                    {
                        dscp(0),
                        precedence(1),
                        priority(2)                        
                    }        
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The marker action bit list,
                     in right to left order. 
                     for example:
                     0x3(11 in binary) means dscp(0) and precedence(1)
                     0x4(100 in binary) means priority(2)"                                         
        ::= { markerEntry 3 }  

markerDscp OBJECT-TYPE
        SYNTAX       Integer32(0..63)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The Dscp value of the marker entry."
        ::= { markerEntry 4 } 

markerPrecedence OBJECT-TYPE
        SYNTAX       Integer32(0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The precedence value of the marker entry."
        ::= { markerEntry 5 }   

markerPriority OBJECT-TYPE
        SYNTAX       Integer32(0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The priority value of the marker entry."
        ::= { markerEntry 6 }     
                          
markerStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The status of this marker conceptual row entry. This object is 
                    used to manage creation, deletion and modification of rows in
                    this table. 
                   
                    An entry may not exist in the active state unless all objects
                    in the entry have an appropriate value. Once a row becomes active, value in any 
                    other column within such row cannot be modified. ip ace created by SNMP basically belong to ip extended ACL.
                    
                    Valid values are:
                    active(1); notInService(2); notReady(3); createAndGo(4); createAndWait(5); destroy(6).
                    
                    Set this value to createAndGo(4) to ceate a new entry and make it active at once, set to createAndWait(5)
                    means create a new entry but not active now, set to destroy(6) to delete an entry
                    
                    You may get one of the following value when you try to read this variable:
                    active(1); notInService(2); notReady(3) 
                    representing the current status of this entry"
        ::= { markerEntry 7 }

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 the
                    name is unique used to identifies
                    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 acl to cos mapping conceptual row entry. This object is 
                    used to manage creation, deletion and modification of rows in
                    this table. 
                   
                    An entry may not exist in the active state unless all objects
                    in the entry have an appropriate value. Once a row becomes active, value in any 
                    other column within such row cannot be modified. ip ace created by SNMP basically belong to ip extended ACL.
                    
                    Valid values are:
                    active(1); notInService(2); notReady(3); createAndGo(4); createAndWait(5); destroy(6).
                    
                    Set this value to createAndGo(4) to ceate a new entry and make it active at once, set to createAndWait(5)
                    means create a new entry but not active now, set to destroy(6) to delete an entry
                    
                    You may get one of the following value when you try to read this variable:
                    active(1); notInService(2); notReady(3) 
                    representing the current status of this entry."
        ::= { prioAclToCosMappingEntry 4 } 
        
--
-- 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),                    
                    anycast(3)
                }
    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(1..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 mangement 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 in which we want to perform to 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 avaiable in stacking system, 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 permuations is as follow: (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 1}
    
fileCopySrcFileName OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(0..127))
    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
        the zero length string when no file name has been specified.
        Note: if the fileCopySrcOperType is runningCfg(2) or startUpCfg(3),
        this varible 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 in which we want to perform from the
                 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 avaiable in stacking system, in which we 
                 can copy files from one unit to another unit and it means
                 we want to perform the 'copy fileCopySrcOperType unit' operation.
                 The possible permuations is as follow: (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(0..127))
    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
        the zero length string when no file name has been specified.
        Note: if the fileCopyDestOperType is runningCfg(2) or startupCfg(3),
        this varible 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
         varible can be ignored. If the fileCopySrcOperType or fileCopyDestOperType
         is unit(5), this varibles 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 "Specify the unit of the switch for stackable device 
                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
          "The tftp error messge, 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 perfrom 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 unit of the switch in a stacking system, in a 
                 non-stacking system, it 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, Setting this
                 object to truth(1) to indicate this is a startup file, setting this 
                 object to false(2) is a invalid operation."
    ::= { fileInfoEntry 4 }

fileInfoFileSize OBJECT-TYPE
    SYNTAX       Integer32
    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."
    ::= { fileInfoEntry 6 }

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

--
--dnsMgt
--

--dnsHostTable
dnsDomainLookup OBJECT-TYPE
    SYNTAX       EnabledStatus
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "To enable the IP Domain Naming System (DNS)-based host name-to-address translation"
    ::= { dnsMgt 1 }
    
dnsDomainName OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(0..255))
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "To define a default domain name to complete 
                unqualified host names (names without a dotted-decimal domain name)"
    ::= { dnsMgt 2 }
            
dnsHostTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DnsHostEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "This table is used to define static host name-to-address mapping."               
    ::= { dnsMgt 3 }
    
dnsHostEntry OBJECT-TYPE
    SYNTAX       DnsHostEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "A conceptual row for the dnsHostTable."
    INDEX       { dnsHostName, dnsHostIndex }
    ::= { dnsHostTable 1 }

DnsHostEntry ::= SEQUENCE
    {   
        dnsHostName           DisplayString,
        dnsHostIndex          Integer32,
        dnsHostIp             IpAddress
    }

dnsHostName OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(1..255))
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The DNS Host name."
    ::= { dnsHostEntry 1 }

dnsHostIndex OBJECT-TYPE
    SYNTAX       Integer32(1..8)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The secondary index of this dnsHostTable, representing the 
                 sequence of the dnsHostIp."
    ::= { dnsHostEntry 2 }
    
dnsHostIp OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION "The DNS Host IP."
    ::= { dnsHostEntry 3 } 
    
--dnsAliasTable
dnsAliasTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DnsAliasEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "This table display the alias of the host name"               
    ::= { dnsMgt 4 }
    
dnsAliasEntry OBJECT-TYPE
    SYNTAX       DnsAliasEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "A conceptually row for dnsAliasTable."
    INDEX       { dnsAliasName, dnaAliasAlias }
    ::= { dnsAliasTable 1 }

DnsAliasEntry ::= SEQUENCE
    {   
        dnsAliasName           DisplayString,
        dnaAliasAlias          DisplayString                
    }

dnsAliasName OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(1..255))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "Host Name"
    ::= { dnsAliasEntry 1 }
    
dnaAliasAlias OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(1..255))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "Alias"
    ::= { dnsAliasEntry 2 }

--dnsDomainListEntry
dnsDomainListTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DnsDomainListEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "This table define a list of default domain names to complete unqualified host names"               
    ::= { dnsMgt 5 }
    
dnsDomainListEntry OBJECT-TYPE
    SYNTAX       DnsDomainListEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "A conceptually row for dnsDomainListTable."
    INDEX       { dnsDomainListName }
    ::= { dnsDomainListTable 1 }

DnsDomainListEntry ::= SEQUENCE
    {   
        dnsDomainListName           DisplayString,
        dnsDomainListStatus             ValidStatus        
    }

dnsDomainListName OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(1..255))
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Domain Name"
    ::= { dnsDomainListEntry 1 }   

dnsDomainListStatus 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."
    ::= { dnsDomainListEntry 2 }

--dnsNameServerEntry
dnsNameServerTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DnsNameServerEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "To specify the address of one or more 
                 name servers to use for name and address resolution"               
    ::= { dnsMgt 6 }
    
dnsNameServerEntry OBJECT-TYPE
    SYNTAX       DnsNameServerEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "A conceptually row for dnsNameServerTable."
    INDEX       { dnsNameServerIp }
    ::= { dnsNameServerTable 1 }

DnsNameServerEntry ::= SEQUENCE
    {   
        dnsNameServerIp           IpAddress,
        dnsNameServerStatus             ValidStatus        
    }

dnsNameServerIp OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Ip address of name server"
    ::= { dnsNameServerEntry 1 }   

dnsNameServerStatus 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."
    ::= { dnsNameServerEntry 2 } 

--dnsCacheEntry
dnsCacheTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DnsCacheEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "To display the RRs in DNS cache"               
    ::= { dnsMgt 7 }
    
dnsCacheEntry OBJECT-TYPE
    SYNTAX       DnsCacheEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "A conceptually row for dnsCacheTable."
    INDEX       { dnsCacheIndex }
    ::= { dnsCacheTable 1 }

DnsCacheEntry ::= SEQUENCE
    {   
        dnsCacheIndex           Integer32,
        dnsCacheFlag            Integer32,
        dnsCacheType            INTEGER,
        dnsCacheIp              IpAddress,
        dnsCacheTtl             Integer32,      
        dnsCacheDomain          DisplayString
    }

dnsCacheIndex OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The sequence number of the entry"
    ::= { dnsCacheEntry 1 }   

dnsCacheFlag OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "Always get 4, means this record is unreliable"
    ::= { dnsCacheEntry 2 }  
    
dnsCacheType OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                    address(1),
                    cname(2)
                 }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "Cache Type: address(1); cname(2)."
    ::= { dnsCacheEntry 3 }     

dnsCacheIp OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "Cache Ip"
    ::= { dnsCacheEntry 4 }   

dnsCacheTtl OBJECT-TYPE
    SYNTAX       Integer32(0..876000)
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "Cache Ttl"
    ::= { dnsCacheEntry 5 }   

dnsCacheDomain OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(1..255))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "Cache domain"
    ::= { dnsCacheEntry 6 } 
                               
--
-- layer3Mgt
--

-- Management for layer 3 settings and protocols.

arpMgt              OBJECT IDENTIFIER ::= { layer3Mgt 1 }
ripMgt              OBJECT IDENTIFIER ::= { layer3Mgt 2 }
ospfMgt             OBJECT IDENTIFIER ::= { layer3Mgt 3 }
dvmrpMgt            OBJECT IDENTIFIER ::= { layer3Mgt 4 }
routeMgt            OBJECT IDENTIFIER ::= { layer3Mgt 5 }

-- arpMgt

arpCacheDeleteAll OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        delete(1),
                        noDelete(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To delete all dynamic entries in the ARP cache,
                     write this variable to delete(1). Writing this variable
                     to noDelete(2) has no effect on the device. When
                     read, this variable always returns noDelete(2)."
        ::= { arpMgt 1 }

arpCacheTimeout OBJECT-TYPE
        SYNTAX      Integer32(300..86400)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The timeout is provided for entries in the
                     ARP Cache. It's for dynamic mapping only. 
                     Static mapping by creating a entry
                     that associates a logical address with a physical
                     address is never age out."
        ::= { arpMgt 2 }

arpTrafficStatistics OBJECT IDENTIFIER ::= { arpMgt 3 }

arpStatSendRequestPackets OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The number of ARP Request packets sent by
                     the ARP process."
        ::= { arpTrafficStatistics 1 }

arpStatRcvRequestPackets OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The number of ARP Request packets received by
                     the ARP process."
        ::= { arpTrafficStatistics 2 }

arpStatSendReplyPackets OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The number of ARP Reply packets sent by
                     the ARP process."
        ::= { arpTrafficStatistics 3 }

arpStatRcvReplyPackets OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The number of ARP Reply packets received by
                     the ARP process."
        ::= { arpTrafficStatistics 4 }


arpProxyArpTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF ArpProxyArpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A list of Proxy ARP status. This table has entries
                     for all static VLANs."
        ::= { arpMgt 4 }

arpProxyArpEntry OBJECT-TYPE
        SYNTAX      ArpProxyArpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry in the table, containing information
                     about Proxy ARP configuration."
        INDEX       { arpProxyArpIfIndex }
        ::= { arpProxyArpTable 1 }

ArpProxyArpEntry ::= SEQUENCE
{
    arpProxyArpIfIndex          Integer32,
    arpProxyArpStatus           EnabledStatus
}

arpProxyArpIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as a VLAN interface.
                     A routing interface is a VLAN binds a IP
                     subnet."
        ::= { arpProxyArpEntry 1 }
        
arpProxyArpStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enable or Disable Proxy ARP process on an interface"
        DEFVAL      { enabled }
        ::= { arpProxyArpEntry 2 }
        
-- ripMgt


ripTimers OBJECT IDENTIFIER ::= { ripMgt 1 }

ripUpdateTime OBJECT-TYPE
        SYNTAX      Integer32 (15..60)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The update time in seconds controls the advertising of regular
                     update messages. The real working model, while using this
                     timer, the time should be offset by a small random time
                     (+/- 0 to 5 seconds each time it is set."
        DEFVAL      { 30 }
        ::= { ripTimers 1 }

ripTimeoutTime OBJECT-TYPE
        SYNTAX      Integer32 (90..360)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The timeout timer in seconds governs the validity of a route.
                     It is initialized when a route is established, and any time
                     an update message is received for the route. If the setting time
                     elapses from the last time the timrout was initialized, the route
                     is considered to have expired, and the hop count of the route is
                     set to infinite. It should be at least three times the value of 
                     update timer."
        DEFVAL      { 180 }
        ::= { ripTimers 2 }

ripGarbageCollectionTime OBJECT-TYPE
        SYNTAX      Integer32 (60..240)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "When the information about a route becomes invalid, the system
                     should not immediately purge that route from its table. Instead,
                     it continues to advertise the route with a metric of infinite.
                     At the same time, the garbage-collection timer is set for that 
                     route. When the count reaches zero, the route is purged from the
                     the table. This timer allows neighbors to become aware of 
                     the invalidity of a route prior to purging."
        DEFVAL      { 120 }
        ::= { ripTimers 3 }

ripRoutingProcessStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enable or Disable RIP routing process on a system."
        DEFVAL      { disabled }
        ::= { ripMgt 2 }
        
ripRouterVersion OBJECT-TYPE
        SYNTAX      INTEGER
                    {   
                        byInterface(1),
                        rip1(2),
                        rip2(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To specify a RIP version used globally by the rourter."
        DEFVAL      { rip2 }
        ::= { ripMgt 3 }
        


ripInstabilityPreventingTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RipInstabilityPreventingEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A list of RIP instability preventing status"
        ::= { ripMgt 4 }

ripInstabilityPreventingEntry OBJECT-TYPE
        SYNTAX      RipInstabilityPreventingEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry in the table, containing information
                     about RIP instability preventing configuration.
                     The ifIndex index is a VLAN's ifIndex"
        INDEX       { ripVlanIndex }
        ::= { ripInstabilityPreventingTable 1 }

RipInstabilityPreventingEntry ::= SEQUENCE
{
    ripVlanIndex             Integer32,
    ripSplitHorizonStatus   INTEGER
}


ripVlanIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as a VLAN interface.
                     A routing interface is a VLAN binds a IP
                     subnet."
        ::= { ripInstabilityPreventingEntry 1 }
        
ripSplitHorizonStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        splitHorizon(1),
                        poisonReverse(2),
                        none(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enable or Disable RIP Poison Reverse on an interface" 
        ::= { ripInstabilityPreventingEntry 2 }


ripStatisticsReset OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        reset(1),
                        noReset(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Write it to reset(1), the following objects in RFC 1724 
                     should be reset: 
                     1. Global Counters:
                        'rip2GlobalRouteChanges',
                        'rip2GlobalQueries'.
                     2. Interface Status Table, for each 'rip2IfStatAddress':
                        'rip2IfStatRcvBadPackets',
                        'rip2IfStatRcvBadRoutes',
                        'rip2IfStatSendUpdates'
                     3. Peer Table, for each 'rip2PeerAddress' and 'rip2PeerDomain',
                        'rip2PeerRcvBadPackets',
                        'rip2PeerRcvBadRoutes'
                     When read it, this value always is noReset(2)."
        ::= { ripMgt 5 }

ripNetworkAddrTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RipNetworkAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION ""
        ::= { ripMgt 6 }

ripNetworkAddrEntry OBJECT-TYPE
        SYNTAX      RipNetworkAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION ""
        INDEX       { ripNetworkAddrAddress }
        ::= { ripNetworkAddrTable 1 }

RipNetworkAddrEntry ::= SEQUENCE
{
    ripNetworkAddrAddress  IpAddress,
    ripNetworkAddrStatus   ValidStatus
}


ripNetworkAddrAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The RIP Network address."
        ::= { ripNetworkAddrEntry 1 }
        
ripNetworkAddrStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set this variable to create or destroy a RIP network address." 
        ::= { ripNetworkAddrEntry 2 }
        
-- ospfMgt
       
ospfSystemGroup OBJECT IDENTIFIER ::= { ospfMgt 1 } 
    
ospfRouterIdType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        auto(1),
                        manual(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Set router ID automatically or  manually."
        DEFVAL { auto }
        ::= { ospfSystemGroup 1 }
 
ospfRfc1583CompatibleState OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION 	"Enable or disable rfc1583 compatibility."
        DEFVAL { disabled }
        ::= { ospfSystemGroup 2 }
 
ospfAutoCost OBJECT-TYPE
        SYNTAX   Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set the reference bandwith of auto cost, the unit is Mbps."
        DEFVAL { 100 }
        ::= { ospfSystemGroup 3 }
 
ospfOriginateDefaultRoute OBJECT-TYPE
        SYNTAX   EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION 	"Enable or disable ASBR to generate a default external
                     	route into an OSPF domain if the default route already 
                     	exists."
        DEFVAL { disabled }
        ::= { ospfSystemGroup 4 }
       
ospfAdvertiseDefaultRoute OBJECT-TYPE
        SYNTAX   INTEGER
            {
                   always(1),
                   notAlways(2)
                }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION 	"If enabled, always advertises the default route regardless 
                     	of whether the default route exists."
        DEFVAL { notAlways }
        ::= { ospfSystemGroup 5 }    
 
ospfExternalMetricType OBJECT-TYPE
        SYNTAX   INTEGER
            {
                   type1 (1),
           type2 (2)
                }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "External link type associated with the default route 
                 advertised into the OSPF routing domain."
        DEFVAL { type2 }
        ::= { ospfSystemGroup 6 }    
 
ospfDefaultExternalMetric OBJECT-TYPE
        SYNTAX      OspfBigMetric
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Metric used for generating the default route."
        DEFVAL { 10 }
        ::= { ospfSystemGroup 7 }    
 
ospfSpfHoldTime OBJECT-TYPE
        SYNTAX   Integer32 (0..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION 	"Sets the hold time between two consecutive SPF calculations."
        DEFVAL { 10 }
        ::= { ospfSystemGroup 8 }  

ospfSpfDelayTime OBJECT-TYPE
        SYNTAX   Integer32 (0..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION	"Sets the delay time to calculate SPF Delay time, in seconds, between 
                         when OSPF receives a topology change and when it starts an SPF calculation." 
        DEFVAL { 5 }
        ::= { ospfSystemGroup 9 }  
        
ospfAreaNumber OBJECT-TYPE
        SYNTAX   Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION	"Records the OSPF area numbers." 
              
        DEFVAL { 0 }
        ::= { ospfSystemGroup 10 }       

ospfNssaTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF OspfNssaEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "A conceptually table for ospfNssaEntry."       
        ::= {ospfMgt 2 }

ospfNssaEntry OBJECT-TYPE
        SYNTAX   OspfNssaEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "A conceptually row for ospfNssaTable."      
      INDEX { ospfNssaAreaId }
      ::= { ospfNssaTable 1 }

OspfNssaEntry ::= SEQUENCE 
      {
        ospfNssaAreaId                     OspfAreaID,
        ospfNssaRedistributeStatus         EnabledStatus,
        ospfNssaOriginateDefaultInfoStatus EnabledStatus,
        ospfNssaStatus                     RowStatus
      }

ospfNssaAreaId OBJECT-TYPE
        SYNTAX       OspfAreaID
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION	"The 32-bit identifier for the NSSA. On creation, 
            this can be derived from the instance."
       ::= { ospfNssaEntry 1 }

ospfNssaRedistributeStatus OBJECT-TYPE
        SYNTAX       EnabledStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "Enabled or disabled to import routes only into the normal areas,
            but not into the NSSA area."
        DEFVAL { enabled }
       ::= { ospfNssaEntry 2 }

ospfNssaOriginateDefaultInfoStatus OBJECT-TYPE
        SYNTAX       EnabledStatus
        MAX-ACCESS   read-create        
        STATUS       current
        DESCRIPTION	"Enable or disable to generate a Type 7 default into the NSSA area."
           
         DEFVAL { disabled }   
       ::= { ospfNssaEntry 3 }

ospfNssaStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
			"The status of this conceptual row entry. This object is used 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."           
       ::= { ospfNssaEntry 4 }
       
ospfRedistributeTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF OspfRedistributeEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "The conceptual table of all of ospfRedistributeEntry."        
        ::= {ospfMgt 3 }


ospfRedistributeEntry OBJECT-TYPE
        SYNTAX       OspfRedistributeEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The conceptual row for ospfRedistributeTable."      
      INDEX { ospfRedistributeProtocol }
      ::= { ospfRedistributeTable 1 }

OspfRedistributeEntry ::= SEQUENCE 
{
         ospfRedistributeProtocol   INTEGER,
         ospfRedistributeMetricType INTEGER,
         ospfRedistributeMetric     OspfBigMetric,
         ospfRedistributeStatus     RowStatus
}
 
ospfRedistributeProtocol OBJECT-TYPE
        SYNTAX      INTEGER
                {
                  rip(1),
                  static(2),
                  connected(3)
                }
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION	"Protocol ID. Static is not supported now."
           
       ::= { ospfRedistributeEntry 1 }

ospfRedistributeMetricType OBJECT-TYPE
        SYNTAX      INTEGER
                {
                      type1(1),
              type2(2)
                    }
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "Metric type."
        DEFVAL {type2}
       ::= { ospfRedistributeEntry 2 }

ospfRedistributeMetric OBJECT-TYPE
        SYNTAX       OspfBigMetric
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "Metric value."
        DEFVAL {10}   
       ::= { ospfRedistributeEntry 3 }

ospfRedistributeStatus 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."          
       ::= { ospfRedistributeEntry 4 }  
       
ospfSummaryAddressTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF OspfSummaryAddressEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "The conceptual table of all of ospfSummaryAddressEntry."     
      ::= {ospfMgt 4}

ospfSummaryAddressEntry OBJECT-TYPE
       SYNTAX       OspfSummaryAddressEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "The conceptual row for ospfSummaryAddressTable."      
       INDEX { ospfSummaryAddress,ospfSummaryMask }
       ::= { ospfSummaryAddressTable 1 }

OspfSummaryAddressEntry ::= SEQUENCE 
{
       ospfSummaryAddress   IpAddress,
       ospfSummaryMask      IpAddress,
       ospfSummaryStatus    RowStatus
}
 
ospfSummaryAddress OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Summary address."
        ::= { ospfSummaryAddressEntry 1 }

ospfSummaryMask OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "Summary mask."
       ::= { ospfSummaryAddressEntry 2 }


ospfSummaryStatus 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."        
       ::= { ospfSummaryAddressEntry 3 }   

ospfNetworkAreaAddressTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF OspfNetworkAreaAddressEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "The conceptual table of all of ospfNetworkAreaAddressEntry."     
        ::= {ospfMgt 5 }

ospfNetworkAreaAddressEntry OBJECT-TYPE
        SYNTAX       OspfNetworkAreaAddressEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "The conceptual row for ospfNetworkAreaAddressTable."       
        INDEX { ospfNetworkAareaAddress,ospfNetworkAreaMask }
        ::= { ospfNetworkAreaAddressTable 1 }

OspfNetworkAreaAddressEntry ::= SEQUENCE
{
       ospfNetworkAareaAddress  IpAddress,
       ospfNetworkAreaMask      IpAddress,
       ospfNetworkAreaAreaId    IpAddress,     
       ospfNetworkAreaStatus    RowStatus
}
 
ospfNetworkAareaAddress OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
           "NetworkArea address."
       ::= { ospfNetworkAreaAddressEntry 1 }

ospfNetworkAreaMask OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "NetworkArea mask."
       ::= { ospfNetworkAreaAddressEntry 2 }
    
ospfNetworkAreaAreaId OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
           "NetworkArea area ID."
       ::= { ospfNetworkAreaAddressEntry 3 }

ospfNetworkAreaStatus 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." 
       ::= { ospfNetworkAreaAddressEntry 4 }   

--
-- dvmrpMgt
--
dvmrpScalar     OBJECT IDENTIFIER ::= { dvmrpMgt 1 }

dvmrpVersionString OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The router's DVMRP version information.  Similar to
            sysDescr in MIB-II, this is a free-form field which can be
            used to display vendor-specific information."
    ::= { dvmrpScalar 1 }
    
-- dvmrpScalar 2 was previously used for a global
-- Generation ID.  However, the DVMRP spec changed it to
-- a per-interface parameter.
dvmrpNumRoutes OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the routing table.  This can be
            used to monitor the routing table size."
    ::= { dvmrpScalar 3 }

dvmrpReachableRoutes OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the routing table with non
            infinite metrics.  This can be used to detect network
            partitions by observing the ratio of reachable routes to
            total routes."
    ::= { dvmrpScalar 4 }

-- The DVMRP Interface Table

dvmrpInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DvmrpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the router's multicast-
            capable interfaces."
    ::= { dvmrpMgt 2 }

dvmrpInterfaceEntry OBJECT-TYPE
    SYNTAX     DvmrpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the dvmrpInterfaceTable.  This
            row augments ipMRouteInterfaceEntry in the IP Multicast MIB,
            where the threshold object resides."
    INDEX      { dvmrpInterfaceIndex }
    ::= { dvmrpInterfaceTable 1 }

DvmrpInterfaceEntry ::= SEQUENCE {
    dvmrpInterfaceIndex                 InterfaceIndex,
    dvmrpInterfaceLocalAddress          IpAddress,
    dvmrpInterfaceMetric                Integer32,
    dvmrpInterfaceStatus                RowStatus,
    dvmrpInterfaceRcvBadPkts            Counter32,
    dvmrpInterfaceRcvBadRoutes          Counter32,
    dvmrpInterfaceSentRoutes            Counter32,
    dvmrpInterfaceKey                   SnmpAdminString,
    dvmrpInterfaceKeyVersion            Integer32,
    dvmrpInterfaceGenerationId          Integer32
}

dvmrpInterfaceIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex value of the interface for which DVMRP is
            enabled."
    ::= { dvmrpInterfaceEntry 1 }

dvmrpInterfaceLocalAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The IP address this system will use as a source address on
            this interface.  On unnumbered interfaces, it must be the
            same value as dvmrpInterfaceLocalAddress for some interface
            on the system."
    ::= { dvmrpInterfaceEntry 2 }

dvmrpInterfaceMetric OBJECT-TYPE
    SYNTAX     Integer32 (1..31)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The distance metric for this interface which is used to
            calculate distance vectors."
    DEFVAL     { 1 }
    ::= { dvmrpInterfaceEntry 3 }

dvmrpInterfaceStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this entry.  Creating the entry enables DVMRP
            on the virtual interface; destroying the entry or setting it
            to notInService disables DVMRP on the virtual interface."
    ::= { dvmrpInterfaceEntry 4 }

dvmrpInterfaceRcvBadPkts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of DVMRP messages received on the interface by
            the DVMRP process which were subsequently discarded as
            invalid (e.g. invalid packet format, or a route report from
            an unknown neighbor)."
    ::= { dvmrpInterfaceEntry 5 }

dvmrpInterfaceRcvBadRoutes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of routes, in valid DVMRP packets, which were
            ignored because the entry was invalid."
    ::= { dvmrpInterfaceEntry 6 }

dvmrpInterfaceSentRoutes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of routes, in DVMRP Report packets, which have
            been sent on this interface.  Together with
            dvmrpNeighborRcvRoutes at a peer, this object is useful for
            detecting routes being lost."
    ::= { dvmrpInterfaceEntry 7 }

dvmrpInterfaceKey OBJECT-TYPE
    SYNTAX     SnmpAdminString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The (shared) key for authenticating neighbors on this
            interface.  This object is intended solely for the purpose
            of setting the interface key, and MUST be accessible only
            via requests using both authentication and privacy.  The
            agent MAY report an empty string in response to get, get-
            next, get-bulk requests."
    ::= { dvmrpInterfaceEntry 8 }

dvmrpInterfaceKeyVersion OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The highest version number of all known interface keys for
            this interface used for authenticating neighbors."
    ::= { dvmrpInterfaceEntry 9 }

dvmrpInterfaceGenerationId OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The generation identifier for the interface.  This is used
            by neighboring routers to detect whether the DVMRP routing
            table should be resent."
    ::= { dvmrpInterfaceEntry 10 }

-- The DVMRP Neighbor Table

dvmrpNeighborTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DvmrpNeighborEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the router's DVMRP
            neighbors, as discovered by receiving DVMRP messages."
    ::= { dvmrpMgt 3 }

dvmrpNeighborEntry OBJECT-TYPE
    SYNTAX     DvmrpNeighborEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the dvmrpNeighborTable."
    INDEX      { dvmrpNeighborIfIndex, dvmrpNeighborAddress }
    ::= { dvmrpNeighborTable 1 }

DvmrpNeighborEntry ::= SEQUENCE {
    dvmrpNeighborIfIndex         InterfaceIndex,
    dvmrpNeighborAddress         IpAddress,
    dvmrpNeighborUpTime          TimeTicks,
    dvmrpNeighborExpiryTime      TimeTicks,
    dvmrpNeighborGenerationId    Integer32,
    dvmrpNeighborMajorVersion    Integer32,
    dvmrpNeighborMinorVersion    Integer32,
    dvmrpNeighborCapabilities    BITS,
    dvmrpNeighborRcvRoutes       Counter32,
    dvmrpNeighborRcvBadPkts      Counter32,
    dvmrpNeighborRcvBadRoutes    Counter32,
    dvmrpNeighborState           INTEGER
}

dvmrpNeighborIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the virtual interface used to
            reach this DVMRP neighbor."
    ::= { dvmrpNeighborEntry 1 }

dvmrpNeighborAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address of the DVMRP neighbor for which this entry
            contains information."
    ::= { dvmrpNeighborEntry 2 }

dvmrpNeighborUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this DVMRP neighbor (last) became a neighbor
            of the local router."
    ::= { dvmrpNeighborEntry 3 }

dvmrpNeighborExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before this DVMRP neighbor will
            be aged out."
    ::= { dvmrpNeighborEntry 4 }

dvmrpNeighborGenerationId OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The neighboring router's generation identifier."
    ::= { dvmrpNeighborEntry 5 }

dvmrpNeighborMajorVersion OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The neighboring router's major DVMRP version number."
    ::= { dvmrpNeighborEntry 6 }

dvmrpNeighborMinorVersion OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The neighboring router's minor DVMRP version number."
    ::= { dvmrpNeighborEntry 7 }

dvmrpNeighborCapabilities OBJECT-TYPE
    SYNTAX     BITS {
                   leaf(0),
                   prune(1),
                   generationID(2),
                   mtrace(3)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object describes the neighboring router's
            capabilities.  The leaf bit indicates that the neighbor has
            only one interface with neighbors.  The prune bit indicates
            that the neighbor supports pruning.  The generationID bit
            indicates that the neighbor sends its generationID in Probe
            messages.  The mtrace bit indicates that the neighbor can
            handle mtrace requests."
    ::= { dvmrpNeighborEntry 8 }

dvmrpNeighborRcvRoutes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of routes received in valid DVMRP packets
            received from this neighbor.  This can be used to diagnose
            problems such as unicast route injection, as well as giving
            an indication of the level of DVMRP route exchange
            activity."
    ::= { dvmrpNeighborEntry 9 }

dvmrpNeighborRcvBadPkts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of packet received from this neighbor which were
            discarded as invalid."
    ::= { dvmrpNeighborEntry 10 }

dvmrpNeighborRcvBadRoutes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of routes, in valid DVMRP packets received from
            this neighbor, which were ignored because the entry was
            invalid."
    ::= { dvmrpNeighborEntry 11 }

dvmrpNeighborState OBJECT-TYPE
    SYNTAX     INTEGER { oneway(1), active(2), ignoring(3), down(4) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "State of the neighbor adjacency."
    ::= { dvmrpNeighborEntry 12 }


-- The DVMRP Route Table

dvmrpRouteTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DvmrpRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The table of routes learned through DVMRP route exchange."
    ::= { dvmrpMgt 4 }

dvmrpRouteEntry OBJECT-TYPE
    SYNTAX     DvmrpRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) containing the multicast routing
            information used by DVMRP in place of the unicast routing
            information."
    INDEX      { dvmrpRouteSource, dvmrpRouteSourceMask }
    ::= { dvmrpRouteTable 1 }

DvmrpRouteEntry ::= SEQUENCE {
    dvmrpRouteSource             IpAddress,
    dvmrpRouteSourceMask         IpAddress,
    dvmrpRouteUpstreamNeighbor   IpAddress,
    dvmrpRouteIfIndex            InterfaceIndexOrZero,
    dvmrpRouteMetric             Integer32,
    dvmrpRouteExpiryTime         TimeTicks,
    dvmrpRouteUpTime             TimeTicks
}

dvmrpRouteSource OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The network address which when combined with the
            corresponding value of dvmrpRouteSourceMask identifies the
            sources for which this entry contains multicast routing
            information."
    ::= { dvmrpRouteEntry 1 }

dvmrpRouteSourceMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The network mask which when combined with the corresponding
            value of dvmrpRouteSource identifies the sources for which
            this entry contains multicast routing information."
    ::= { dvmrpRouteEntry 2 }

dvmrpRouteUpstreamNeighbor OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the upstream neighbor (e.g., RPF neighbor)
            from which IP datagrams from these sources are received."
    ::= { dvmrpRouteEntry 3 }

dvmrpRouteIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the interface on which IP
            datagrams sent by these sources are received.  A value of 0
            typically means the route is an aggregate for which no next-
            hop interface exists."
    ::= { dvmrpRouteEntry 4 }

dvmrpRouteMetric OBJECT-TYPE
    SYNTAX     Integer32 (1..32)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The distance in hops to the source subnet."
    ::= { dvmrpRouteEntry 5 }

dvmrpRouteExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum amount of time remaining before this entry will
            be aged out."
    ::= { dvmrpRouteEntry 6 }

dvmrpRouteUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since the route represented by this entry was
            learned by the router."
    ::= { dvmrpRouteEntry 7 }

-- The DVMRP Routing Next Hop Table

dvmrpRouteNextHopTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DvmrpRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table containing information on the next
            hops on outgoing interfaces for routing IP multicast
            datagrams."
    ::= { dvmrpMgt 5 }

dvmrpRouteNextHopEntry OBJECT-TYPE
    SYNTAX     DvmrpRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the list of next hops on
            outgoing interfaces to which IP multicast datagrams from
            particular sources are routed."
    INDEX      { dvmrpRouteNextHopSource, dvmrpRouteNextHopSourceMask,
                 dvmrpRouteNextHopIfIndex }
    ::= { dvmrpRouteNextHopTable 1 }

DvmrpRouteNextHopEntry ::= SEQUENCE {
    dvmrpRouteNextHopSource             IpAddress,
    dvmrpRouteNextHopSourceMask         IpAddress,
    dvmrpRouteNextHopIfIndex            InterfaceIndex,
    dvmrpRouteNextHopType               INTEGER
}

dvmrpRouteNextHopSource OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The network address which when combined with the
            corresponding value of dvmrpRouteNextHopSourceMask
            identifies the sources for which this entry specifies a next
            hop on an outgoing interface."
    ::= { dvmrpRouteNextHopEntry 1 }

dvmrpRouteNextHopSourceMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The network mask which when combined with the corresponding
            value of dvmrpRouteNextHopSource identifies the sources for
            which this entry specifies a next hop on an outgoing
            interface."
    ::= { dvmrpRouteNextHopEntry 2 }

dvmrpRouteNextHopIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex value of the interface for the outgoing
            interface for this next hop."
    ::= { dvmrpRouteNextHopEntry 3 }

dvmrpRouteNextHopType OBJECT-TYPE
    SYNTAX     INTEGER { leaf(1), branch(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Type is leaf if no downstream dependent neighbors exist on
            the outgoing virtual interface.  Otherwise, type is branch."
    ::= { dvmrpRouteNextHopEntry 4 }

-- The DVMRP Prune Table

dvmrpPruneTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DvmrpPruneEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the router's upstream prune
            state."
    ::= { dvmrpMgt 6 }

dvmrpPruneEntry OBJECT-TYPE
    SYNTAX     DvmrpPruneEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the dvmrpPruneTable."
    INDEX      { dvmrpPruneGroup, dvmrpPruneSource,
                 dvmrpPruneSourceMask }
    ::= { dvmrpPruneTable 1 }

DvmrpPruneEntry ::= SEQUENCE {
    dvmrpPruneGroup              IpAddress,
    dvmrpPruneSource             IpAddress,
    dvmrpPruneSourceMask         IpAddress,
    dvmrpPruneExpiryTime         TimeTicks
}

dvmrpPruneGroup OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The group address which has been pruned."
    ::= { dvmrpPruneEntry 1 }

dvmrpPruneSource OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address of the source or source network which has been
            pruned."
    ::= { dvmrpPruneEntry 2 }

dvmrpPruneSourceMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address of the source or source network which has been
            pruned.  The mask must either be all 1's, or else
            dvmrpPruneSource and dvmrpPruneSourceMask must match
            dvmrpRouteSource and dvmrpRouteSourceMask for some entry in
            the dvmrpRouteTable."
    ::= { dvmrpPruneEntry 3 }

dvmrpPruneExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time remaining before this prune should
            expire at the upstream neighbor.  This value should be the
            minimum of the default prune lifetime and the remaining
            prune lifetimes of the local router's downstream neighbors,
            if any."
    ::= { dvmrpPruneEntry 4 }

--
-- routeMgt
--

ipCidrRouteExtTable OBJECT-TYPE
    SYNTAX   SEQUENCE OF IpCidrRouteExtEntry
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
       "This entity's IP Extension Routing table."
    REFERENCE
        "Rfc2096 Section 9, IP CIDR Route Table."
    ::= { routeMgt 2 }

ipCidrRouteExtEntry OBJECT-TYPE
    SYNTAX   IpCidrRouteExtEntry
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
       "A particular route to  a  particular  destina-
       tion, under a particular policy."
    INDEX {
        ipCidrRouteExtDest,
        ipCidrRouteExtMask,
        ipCidrRouteExtTos,
        ipCidrRouteExtNextHop
        }
    ::= { ipCidrRouteExtTable 1 }

IpCidrRouteExtEntry ::=
    SEQUENCE {
        ipCidrRouteExtDest
            IpAddress,
        ipCidrRouteExtMask
            IpAddress,
        ipCidrRouteExtTos
             Integer32,
        ipCidrRouteExtNextHop
            IpAddress,
        ipCidrRouteExtOspfSubType
            INTEGER
    }

ipCidrRouteExtDest OBJECT-TYPE
    SYNTAX   IpAddress
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
       "The destination IP address of this route.

       This object may not take a Multicast (Class  D)
       address value.

       Any assignment (implicit or  otherwise)  of  an
       instance  of  this  object to a value x must be
       rejected if the bitwise logical-AND of  x  with
       the  value of the corresponding instance of the
       ipCidrRouteMask object is not equal to x."
    ::= { ipCidrRouteExtEntry 1 }

ipCidrRouteExtMask OBJECT-TYPE
    SYNTAX   IpAddress
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
       "Indicate the mask to be logical-ANDed with the
       destination  address  before  being compared to
       the value  in  the  ipCidrRouteDest  field.   For
       those  systems  that  do  not support arbitrary
       subnet masks, an agent constructs the value  of
       the  ipCidrRouteMask  by  reference to the IP Ad-
       dress Class.

       Any assignment (implicit or  otherwise)  of  an
       instance  of  this  object to a value x must be
       rejected if the bitwise logical-AND of  x  with
       the  value of the corresponding instance of the
       ipCidrRouteDest object is not equal to ipCidrRoute-
       Dest."
    ::= { ipCidrRouteExtEntry 2 }

-- The following convention is included for specification
-- of TOS Field contents.  At this time, the Host Requirements
-- and the Router Requirements documents disagree on the width
-- of the TOS field.  This mapping describes the Router
-- Requirements mapping, and leaves room to widen the TOS field
-- without impact to fielded systems.

ipCidrRouteExtTos OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
       "The policy specifier is the IP TOS Field.  The encoding
       of IP TOS is as specified  by  the  following convention.
       Zero indicates the default path if no more  specific
       policy applies.

       +-----+-----+-----+-----+-----+-----+-----+-----+
       |                 |                       |     |
       |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
       |                 |                       |     |
       +-----+-----+-----+-----+-----+-----+-----+-----+

                IP TOS                IP TOS
           Field     Policy      Field     Policy
           Contents    Code      Contents    Code
           0 0 0 0  ==>   0      0 0 0 1  ==>   2
           0 0 1 0  ==>   4      0 0 1 1  ==>   6
           0 1 0 0  ==>   8      0 1 0 1  ==>  10
           0 1 1 0  ==>  12      0 1 1 1  ==>  14
           1 0 0 0  ==>  16      1 0 0 1  ==>  18
           1 0 1 0  ==>  20      1 0 1 1  ==>  22
           1 1 0 0  ==>  24      1 1 0 1  ==>  26
           1 1 1 0  ==>  28      1 1 1 1  ==>  30"
    ::= { ipCidrRouteExtEntry 3 }

ipCidrRouteExtNextHop OBJECT-TYPE
    SYNTAX   IpAddress
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
       "On remote routes, the address of the next sys-
       tem en route; Otherwise, 0.0.0.0."
    ::= { ipCidrRouteExtEntry 4 }
       
ipCidrRouteExtOspfSubType OBJECT-TYPE
    SYNTAX   INTEGER
             {
              none(1),
              ospfInter(2),
              ospfIntra(3),
              ospfNssa1(4),
              ospfNssa2(5),
              ospfType1(6),
              ospfType2(7)
             }
    MAX-ACCESS read-only
    STATUS   current
    DESCRIPTION
       "The OSPF SubType, when the ipCidrRouteProto in IP-FORWARD MIB is 
        ospf(13), this object has value (2)-(7), otherwises, this object
        will always show none(1)."
    REFERENCE " Rfc2096 Section 9, IP CIDR Route Table."
    ::= { ipCidrRouteExtEntry 5 }    

--
-- hsrpMgt                       
--

-- Subgroups
cHsrpGlobalConfig OBJECT IDENTIFIER ::= { hsrpMgt 1 }
cHsrpGroup        OBJECT IDENTIFIER ::= { hsrpMgt 2 }

-- Global Config Objects

cHsrpConfigTimeout OBJECT-TYPE
	SYNTAX Unsigned32(1..60)
	UNITS  "minutes"
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
                "The amount of time in minutes a row in cHsrpGrpTable can 
                 remain in a state other than active before being timed out."
	DEFVAL { 5 }
	::= { cHsrpGlobalConfig 1 }
-- HSRP Tables

cHsrpGrpTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CHsrpGrpEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
                "A table containing information on each HSRP group
                for each interface."
	::= { cHsrpGroup 1 }
	

cHsrpGrpEntry OBJECT-TYPE
	SYNTAX     CHsrpGrpEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
                "Information about an HSRP group. Management applications
                use cHsrpGrpRowStatus to control entry modification, creation
                and deletion.
		
                Setting cHsrpGrpRowStatus to 'active' causes the router to 
                communicate using HSRP.

                The value of cHsrpGrpRowStatus may be set to 'destroy' at any
                time. 

                Entries may not be created via SNMP without explicitly setting
                cHsrpGrpRowStatus to either 'createAndGo' or 'createAndWait'.

                Entries can be created and modified via the management 
                protocol or by the device's local management interface.

                A management application wishing to create an entry should
                choose the ifIndex of the interface which is to be added
                as part of an HSRP group. Also, a cHsrpGrpNumber should
                be chosen. A group number is unique only amongst the groups 
                on a particular interface. The value of the group number 
                appears in packets which are transmitted and received on a 
                LAN segment to which the router is connected. The application 
                must select the group number as explained in the description 
                for cHsrpGrpNumber.

                If the row is not active, and a local management interface
                command modifies that row, the row may transition to active 
                state.

                A row which is not in active state will timeout after a
                configurable period (five minutes by default). This timeout 
                period can be changed by setting cHsrpConfigTimeout."
	INDEX { ifIndex, cHsrpGrpNumber }
	::= { cHsrpGrpTable 1 }

CHsrpGrpEntry ::=
	SEQUENCE {
                -- index
                cHsrpGrpNumber			Unsigned32,
                -- configuration items
                cHsrpGrpAuth			DisplayString,
                cHsrpGrpPriority 		Unsigned32,
                cHsrpGrpPreempt			TruthValue,
                cHsrpGrpPreemptDelay		Unsigned32,

                cHsrpGrpUseConfiguredTimers 	TruthValue,
                -- timers
                cHsrpGrpConfiguredHelloTime	Unsigned32,
                cHsrpGrpConfiguredHoldTime	Unsigned32,
                cHsrpGrpLearnedHelloTime	Unsigned32,
                cHsrpGrpLearnedHoldTime		Unsigned32,
                -- status items
                cHsrpGrpVirtualIpAddr		IpAddress,
                cHsrpGrpUseConfigVirtualIpAddr	TruthValue,
                cHsrpGrpActiveRouter		IpAddress,
                cHsrpGrpStandbyRouter		IpAddress,
                cHsrpGrpStandbyState		HsrpState,
                cHsrpGrpVirtualMacAddr		MacAddress,
                cHsrpGrpEntryRowStatus		RowStatus
	}
		
cHsrpGrpNumber OBJECT-TYPE
	SYNTAX     Unsigned32(0..255)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
                "This object along with the ifIndex of a particular interface
                uniquely identifies an HSRP group.

                Group numbers 0,1 and 2 are the only valid group numbers 
                for TokenRing interfaces. For other media types, numbers
                range from 0 to 255. Each interface has its own set of group 
                numbers. There's no relationship between the groups configured 
                on different interfaces. Using a group number on one interface 
                doesn't preclude using the same group number on a different 
                interface. For example, there can be a group 1 on an Ethernet
                and a group 1 on Token Ring. More details can be found from
                RFC 2281."
  
	::= { cHsrpGrpEntry 1 }

cHsrpGrpAuth OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (0..8))
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                "This is an unencrypted authentication string which is
                carried in all HSRP messages. An authentication string
                mismatch prevents a router interface from learning the
                designated IP address or HSRP timer values from
                other HSRP-enabled routers with the same group number.

                The function of this object is not to supply any sort of 
                security-like authentication but rather to confirm that what's 
                happening is what's intended. In other words, this is meant for
                sanity checking only."
	DEFVAL { "cisco" } 
	::= { cHsrpGrpEntry 2 }

cHsrpGrpPriority OBJECT-TYPE
	SYNTAX     Unsigned32(0..255)
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                "The cHsrpGrpPriority helps to select the active
                and the standby routers. The router with the highest priority 
                is selected as the active router. In the priority range of
                0 to 255, 0 is the lowest priority and 255 is the highest 
                priority.

                If two (or more) routers in a group have the same priority, 
                the one with the highest ip address of the interface is the 
                active router. When the active router fails to send a Hello
                message within a configurable period of time, the standby
                router with the highest priority becomes the active router.

                A router with highest priority will only attempt to overthrow 
                a lower priority active router if it is configured to preempt.
                But, if there is more than one router which is not active, the 
                highest priority non-active router becomes the standby router."
	DEFVAL { 100 }
	::= { cHsrpGrpEntry 3 }

cHsrpGrpPreempt OBJECT-TYPE
	SYNTAX     TruthValue
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                "This object, if TRUE, indicates that the current router
                should attempt to overthrow a lower priority active
                router and attempt to become the active router. If this 
                object is FALSE, the router will become the active router only
                if there is no such router (or if an active router fails)."
	DEFVAL { false }
	::= { cHsrpGrpEntry 4 }

cHsrpGrpPreemptDelay OBJECT-TYPE
	SYNTAX     Unsigned32 (0..3600)
	UNITS      "seconds"
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                 "This delay is the time difference between a router power up
                  and the time it can actually start preempting the currently
                  active router. 

                  When a router first comes up, it doesn't have a complete 
                  routing table. If it's configured to preempt, then it will 
                  become the Active router, but it will not be able to provide
                  adequate routing services. The solution to this is to allow 
                  for a configurable delay before the router actually preempts
                  the currently active router."
	DEFVAL { 0 }
	::= { cHsrpGrpEntry 5 }

cHsrpGrpUseConfiguredTimers OBJECT-TYPE
	SYNTAX     TruthValue
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "HSRP routers learn a group's Hellotime or Holdtime from hello
                messages.

                The Hellotime is used to determine the frequency of
                generating hello messages when this router becomes the active
                or standby router. The Holdtime is the interval between the 
                receipt of a Hello message and the presumption that the 
                sending router has failed. 

                If this object is TRUE, the cHsrpGrpConfiguredHelloTime and 
                cHsrpGrpConfiguredHoldTime will be used. If it is FALSE,
                the Hellotime and Holdtime values are learned."
        ::= { cHsrpGrpEntry 6 }
        
cHsrpGrpConfiguredHelloTime OBJECT-TYPE
	SYNTAX     Unsigned32
	UNITS      "milliseconds"
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                "If cHsrpGrpUseConfiguredTimers is true, 
                cHsrpGrpConfiguredHelloTime is used when this router is an
                active router. Otherwise, the Hellotime learned from the 
                current active router is used. All routers on a particular 
                LAN segment must use the same Hellotime."
	DEFVAL { 3000 }
	::= { cHsrpGrpEntry 7 }

cHsrpGrpConfiguredHoldTime OBJECT-TYPE
	SYNTAX     Unsigned32
	UNITS      "milliseconds"
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                "If cHsrpGrpUseConfiguredTimers is true, 
                cHsrpGrpConfiguredHoldTime is used when this router is an
                active router. Otherwise, the Holdtime learned from the 
                current active router is used. All routers on a particular 
                LAN segment should use the same Holdtime. Also, the Holdtime 
                should be at least three times the value of the Hellotime and 
                must be greater than the Hellotime."
	DEFVAL { 10000 }
	::= { cHsrpGrpEntry 8 }

cHsrpGrpLearnedHelloTime OBJECT-TYPE
	SYNTAX     Unsigned32
	UNITS      "milliseconds"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
                "If the Hellotime is not configured on a router, it can be 
                learned from the Hello messages from active router, provided 
                the Hello message is authenticated. If the Hellotime is not
                learned from a Hello message from the active router and it
                is not manually configured, a default value of 3 seconds is
                recommended."
	DEFVAL { 3000 }
	::= { cHsrpGrpEntry 9 }

cHsrpGrpLearnedHoldTime OBJECT-TYPE
	SYNTAX     Unsigned32
	UNITS      "milliseconds"
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
                "If the Holdtime is not configured on a router, it can be
                learned from the Hello message from the active router.
                Holdtime should be learned only if the Hello message is
                authenticated. If the Holdtime is not learned and it is not
                manually configured, a default value of 10 seconds is 
                recommended."
	DEFVAL { 10000 }
	::= { cHsrpGrpEntry 10 }

cHsrpGrpVirtualIpAddr OBJECT-TYPE
	SYNTAX     IpAddress
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                "This is the primary virtual IP address used by this group.
                If this address is configured (i.e a non zero ip address), 
                this value is used. Otherwise, the agent will attempt to 
                discover the virtual address through a discovery process
                (which scans the hello messages)."
        DEFVAL { '00000000'H }
	::= { cHsrpGrpEntry 11 }

cHsrpGrpUseConfigVirtualIpAddr OBJECT-TYPE
	SYNTAX     TruthValue
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "If this object is TRUE, cHsrpGrpVirtualIpAddr was a
                configured one. Otherwise, it indicates that 
                cHsrpGrpVirtualIpAddr was a learned one."
	::= { cHsrpGrpEntry 12 }

cHsrpGrpActiveRouter OBJECT-TYPE
	SYNTAX     IpAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
                "Ip Address of the currently active router for this group."
	::= { cHsrpGrpEntry 13 }

cHsrpGrpStandbyRouter OBJECT-TYPE
	SYNTAX     IpAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
                "Ip Address of the currently standby router for this group."
	::= { cHsrpGrpEntry 14 }

cHsrpGrpStandbyState OBJECT-TYPE
	SYNTAX     HsrpState
	MAX-ACCESS read-only
	STATUS	   current
	DESCRIPTION
                 "The current HSRP state of this group on this interface."
	::= { cHsrpGrpEntry 15 }

cHsrpGrpVirtualMacAddr OBJECT-TYPE
	SYNTAX     MacAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
                "Mac Addresses used are as specified in RFC 2281. For ethernet 
                and fddi interfaces, a MAC address will be in the range 
                00:00:0c:07:ac:00 through 00:00:0c:07:ac:ff. The last octet is 
                the hexadecimal equivalent of cHsrpGrpNumber (0-255).

                Some Ethernet and FDDI interfaces allow a unicast MAC address
                for each HSRP group. Certain Ethernet chipsets(LANCE Ethernet, 
                VGANYLAN and QUICC Ethernet) only support a single Unicast 
                Mac Address. In this case, only one HSRP group is allowed.

                For TokenRing interfaces, the following three MAC addresses
                are permitted (functional addresses):
                             C0:00:00:01:00:00
                             C0:00:00:02:00:00
                             C0:00:00:04:00:00."

	::= { cHsrpGrpEntry 16 }

cHsrpGrpEntryRowStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                "The control that allows modification, creation, and deletion
                of entries.  For detailed rules see the DESCRIPTION for
                cHsrpGrpEntry."
	::= {cHsrpGrpEntry 17 }

-- Extention group info
cHsrpExtGroup OBJECT IDENTIFIER ::= { hsrpMgt 3 }

cHsrpExtIfTrackedTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CHsrpExtIfTrackedEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		 "A table containing information about tracked interfaces per 
                  HSRP group."
	::= { cHsrpExtGroup 1 }

cHsrpExtIfTrackedEntry OBJECT-TYPE
	SYNTAX     CHsrpExtIfTrackedEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
                "The cHsrpExtIfTrackedEntry allows an HSRP group 
                interface to track one or more interfaces. Weight(priority)
                is given to each and every interface tracked. When a tracked 
                interface is unavailable, the HSRP priority of the router is 
                decreased. i.e cHsrpGrpPriority value assigned to an HSRP 
                group will reduce by the value assigned to
                cHsrpExtIfTrackedPriority. This reduces the likelihood 
                of a router with a failed key interface becoming the 
                active router.
                 
                Setting cHsrpExtIfTrackedRowStatus to active starts
                the tracking of cHsrpExtIfTracked by the HSRP group. 
                The value of cHsrpExtIfTrackedRowStatus may be set 
                to destroy at any time.

                Entries may not be created via SNMP without explicitly setting
                cHsrpExtIfTrackedRowStatus to either 'createAndGo' 
                or 'createAndWait'.

                Entries can be created and modified via the management
                protocol or by the device's local management interface.

                If the row is not active, and a local management interface
                command modifies that row, the row may transition to active
                state.

                A row entry in the cHsrpExtIfTrackedTable can not be created
                unless the corresponding row in the cHsrpGrpTable has been 
                created. If that corresponding row in cHsrpGrpTable is 
                deleted, the interfaces it tracks also get deleted.

                A row which is not in active state will timeout after a
                configurable period (five minutes by default). This timeout
                period can be changed by setting cHsrpConfigTimeout."
	INDEX { ifIndex, cHsrpGrpNumber, cHsrpExtIfTracked }
	::= { cHsrpExtIfTrackedTable 1 }

CHsrpExtIfTrackedEntry ::=
	SEQUENCE {
                -- interface which is getting tracked
                cHsrpExtIfTracked  		InterfaceIndex,
                -- Priority 
                cHsrpExtIfTrackedPriority	Unsigned32,
                cHsrpExtIfTrackedRowStatus 	RowStatus
	}

cHsrpExtIfTracked OBJECT-TYPE
	SYNTAX     InterfaceIndex
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
                  "Index into the cHsrpExtIfTrackedTable for the
                  corresponding { ifIndex, cHsrpGrpNumber } pair i.e for an
                  HSRP group. This is the ifIndex of the tracked interface."
	::= { cHsrpExtIfTrackedEntry 1 }

cHsrpExtIfTrackedPriority OBJECT-TYPE
	SYNTAX     Unsigned32 (0..255)
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                "Priority of the tracked interface for the corresponding
                { ifIndex, cHsrpGrpNumber } pair. In the range of 0 to 255, 0
                is the lowest priority and 255 is the highest. When a tracked 
                interface is unavailable, the cHsrpGrpPriority of the router 
                is decreased by the value of this object instance (If the 
                cHsrpGrpPriority is less than the 
                cHsrpExtIfTrackedPriority, then the HSRP priority 
                becomes 0). This allows a standby router to be configured 
                with a priority such that if the currently active router's 
                priority is lowered because the tracked interface goes down, 
                the standby router can takeover." 
        DEFVAL { 0 }
	::= { cHsrpExtIfTrackedEntry 2 }

cHsrpExtIfTrackedRowStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                "The control that allows modification, creation, and deletion
                 of entries. For detailed rules see the DESCRIPTION for
                 cHsrpExtIfTrackedEntry."
	::= { cHsrpExtIfTrackedEntry 3 }

cHsrpExtSecAddrTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CHsrpExtSecAddrEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
                "A table containing information about secondary HSRP IP 
                Addresses per interface and group."
	::= { cHsrpExtGroup 2 }

cHsrpExtSecAddrEntry OBJECT-TYPE
	SYNTAX     CHsrpExtSecAddrEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
                "The CHsrpExtSecAddrEntry allows creation of secondary 
                IP Addresses for each cHsrpGrpEntry row.

                Secondary addresses can be added by setting 
                cHsrpExtSecAddrRowStatus to be active. The value of
                cHsrpExtSecAddrRowStatus may be set to destroy at any
                time.

                Entries may not be created via SNMP without explicitly setting
                cHsrpExtSecAddrRowStatus to either 'createAndGo'
                or 'createAndWait'.

                Entries can be created and modified via the management
                protocol or by the device's local management interface.
 
                If the row is not active, and a local management interface
                command modifies that row, the row may transition to active
                state.

                A row which is not in active state will timeout after a
                configurable period (five minutes by default). This timeout
                period can be changed by setting cHsrpConfigTimeout.

                Before creation of a cHsrpExtSecAddrEntry row,
                either cHsrpGrpConfiguredVirtualIpAddr or 
                cHsrpGrpLearnedVirtualIpAddr must have a valid IP Address.
                This is because a secondary ip address cannot be created
                unless the primary ip address has already been set.

                To create a new cHsrpExtSecAddrEntry row, a management 
                station should choose the ifIndex of the interface which is to 
                be added as part of an HSRP group. Also, an HSRP group number 
                and a cHsrpExtSecAddrAddress should be chosen.

                Deleting a {ifIndex, cHsrpGrpNumber} row in the
                cHsrpGrpTable will delete all corresponding
                rows in the cHsrpExtSecAddrTable.
                Deleting a primary address value in the cHsrpGrpEntry row
                will delete all secondary addresses for the same
                {ifIndex, cHsrpGrpNumber} pair."

	INDEX { ifIndex, cHsrpGrpNumber, cHsrpExtSecAddrAddress }
	::= { cHsrpExtSecAddrTable 1 }

CHsrpExtSecAddrEntry ::=
	SEQUENCE {
                cHsrpExtSecAddrAddress		IpAddress,
                cHsrpExtSecAddrRowStatus 	RowStatus
	}

cHsrpExtSecAddrAddress OBJECT-TYPE
       SYNTAX     IpAddress
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
              "A secondary IpAddress for the {ifIndex, cHsrpGrpNumber} pair.
               As explained in the DESCRIPTION for cHsrpExtSecAddrEntry, a
               primary address must exist before a secondary address for 
               the same {ifIndex, cHsrpGrpNumber} pair can be created."
       ::= { cHsrpExtSecAddrEntry 1 }

cHsrpExtSecAddrRowStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
                "The control that allows modification, creation, and deletion
                 of entries. For detailed rules see the DESCRIPTION for
                 cHsrpExtSecAddrEntry."
	::= { cHsrpExtSecAddrEntry 2 }
	
--
--mvrMgt
--

mvrStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable MVR(Multicast VLAN
                     Registration) on the device. NOTE: IGMP Snooping
                     must be enabled first before enabling MVR and MVR
                     will be disabled when IGMP Snooping is disabled."
        ::= { mvrMgt 1 }

mvrVlanId OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To set VLAN for MVR.The VLAN identified by a particular
                     value of this index is the same VLAN as identified by the
                     same value of dot1qVlanIndex in the Q-BRIDGE-MIB."
        ::= { mvrMgt 2 }

mvrMaxGroups  OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The maximum number of MVR groups."
        ::= { mvrMgt 3 }

mvrCurrentGroups   OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The current number of MVR groups."
        ::= { mvrMgt 4}

mvrGroupsCtl      OBJECT IDENTIFIER   ::= { mvrMgt 5 }

mvrGroupsCtlId   OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The start of a contiguous range of MVR group
                     addresses."
        ::= { mvrGroupsCtl 1 }

mvrGroupsCtlCount   OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The range count for configuring MVR group addresses."
        ::= { mvrGroupsCtl 2 }

mvrGroupsCtlAction   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            noAction(0),
            create(1),
            destory(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Sets the configure action for a contiguous range of MVR group
                     addresses. The start addresses is the current value of
                     mvrGroupsCtlId and the range count is the current value of
                     mvrGroupsCtlCount. Set this object to create(2) to
                     create MVR group addresses. Set this object
                     to destory(3) to delete MVR group addresses. When
                     the action is complete, this object becomes noAction(1)."
        ::= { mvrGroupsCtl 3 }

mvrGroupTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF MvrGroupEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The table for configuring the MVR group."
       ::= { mvrMgt 6 }

mvrGroupEntry OBJECT-TYPE
       SYNTAX      MvrGroupEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR group."
       INDEX  {mvrGroupId}
       ::= { mvrGroupTable 1 }

MvrGroupEntry ::=
    SEQUENCE {
        mvrGroupId IpAddress,
        mvrGroutActive INTEGER,
        mvrGroupStatus INTEGER
    }

mvrGroupId OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The multicast address of the MVR group."
        ::= { mvrGroupEntry 1 }

mvrGroutActive   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            active(1),
            inactive(2)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "To indicate if the group has a member or not. If there are no
                     members, the status is inactive(2); otherwise the status
                     is active(1)."
        ::= { mvrGroupEntry 2 }

mvrGroupStatus   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            valid(1),
            invalid(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Setting this to valid(1) creates an entry. Setting this
                     to invalid(2) destroys an entry."
        ::= { mvrGroupEntry 3 }

mvrGroupStaticTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF MvrGroupStaticEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for configuring the static members of the
                     MVR group."
        ::= { mvrMgt 7 }

mvrGroupStaticEntry OBJECT-TYPE
       SYNTAX      MvrGroupStaticEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the static members of the
                    MVR group."
       INDEX  {mvrGroupStaticAddress}
       ::= { mvrGroupStaticTable 1 }

MvrGroupStaticEntry ::=
    SEQUENCE {
        mvrGroupStaticAddress   IpAddress,
        mvrGroupStaticPorts     PortList,
        mvrGroupStaticStatus    INTEGER
    }

mvrGroupStaticAddress  OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The multicast address of the MVR group."
        ::= { mvrGroupStaticEntry 1 }

mvrGroupStaticPorts  OBJECT-TYPE
        SYNTAX      PortList
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The set of ports configured by management in this entry.
                     Ports entered in this list will be the static members
                     of this MVR group."
        ::= { mvrGroupStaticEntry 2 }

mvrGroupStaticStatus  OBJECT-TYPE
        SYNTAX      INTEGER
        {
            valid(1),
            invalid(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Setting this to valid(1) creates an entry. Setting this
                     to invalid(2) destroys an entry."
        ::= { mvrGroupStaticEntry 3 }

mvrGroupCurrentTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF MvrGroupCurrentEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for the current members of the MVR group."
        ::= { mvrMgt 8 }

mvrGroupCurrentEntry OBJECT-TYPE
       SYNTAX      MvrGroupCurrentEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for the current members of the MVR group."
       INDEX  {mvrGroupCurrentAddress}
       ::= { mvrGroupCurrentTable 1 }

MvrGroupCurrentEntry ::=
    SEQUENCE {
        mvrGroupCurrentAddress  IpAddress,
        mvrGroupCurrentPorts    PortList
    }

mvrGroupCurrentAddress   OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The multicast address of the MVR group."
        ::= { mvrGroupCurrentEntry 1 }

mvrGroupCurrentPorts   OBJECT-TYPE
        SYNTAX      PortList
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The complete set of ports currently associated with this
                     MVR group."
        ::= { mvrGroupCurrentEntry 2 }

mvrPortTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF MvrPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for configuring the MVR port."
        ::= { mvrMgt 9 }

mvrPortEntry OBJECT-TYPE
       SYNTAX      MvrPortEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR port."
       INDEX  {mvrIfIndex}
       ::= { mvrPortTable 1 }

MvrPortEntry ::=
    SEQUENCE {
        mvrIfIndex  InterfaceIndex,
        mvrPortType INTEGER,
        mvrPortImmediateLeave   EnabledStatus,
        mvrPortActive   INTEGER
    }

mvrIfIndex   OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port 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."
        ::= { mvrPortEntry 1 }

mvrPortType   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            none(0),
            source(1),
            receiver(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "For configuring the MVR port type. To disable the MVR
                     port type, use the none(0)."
        ::= { mvrPortEntry 2 }

mvrPortImmediateLeave   OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To enable immediate leave on MVR port."
        ::= { mvrPortEntry 3 }

mvrPortActive   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            active(1),
            inactive(2)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "To indicate if the port is associated with the MVR group.
                     If the port is the MVR receiver port or the MVR source
                     port in MVR vlan, the status is active(1); otherwise
                     the status is inactive(2)."
        ::= { mvrPortEntry 4 }

mvrRunningStatus OBJECT-TYPE
        SYNTAX  TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Describes the running status of MVR (Multicast VLAN Registration)
                     to the switch. A value of true(1) indicates that all necessary
                     conditions in the MVR environment are satisfied. A value of false(2)
                     indicates that some necessary conditions in the MVR environment are
                     not satisfied."
        ::= { mvrMgt 10 }

--
-- trap definitions
--

    es4612Traps  OBJECT IDENTIFIER ::= { es4612MIBNotifications 1 }
    es4612TrapsPrefix OBJECT IDENTIFIER ::= { es4612Traps 0 }

      swPowerStatusChangeTrap NOTIFICATION-TYPE
          OBJECTS     { swIndivPowerUnitIndex, swIndivPowerIndex, swIndivPowerStatus }
          STATUS      current
          DESCRIPTION "This trap is sent when the power status of
                      an individual power changes."
          ::= { es4612TrapsPrefix 1 }

      swFanFailureTrap NOTIFICATION-TYPE
          OBJECTS     { switchUnitIndex, switchFanIndex }
          STATUS   current
          DESCRIPTION "This trap is sent when the fan is failure."
          ::= { es4612TrapsPrefix 17 }
      
      swFanRecoverTrap NOTIFICATION-TYPE
          OBJECTS     { switchUnitIndex, switchFanIndex }
          STATUS   current
          DESCRIPTION "This trap is sent when fan failure has recovered."
          ::= { es4612TrapsPrefix 18 }
                
      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 portSecActionTrap is enabled." 
          ::= { es4612TrapsPrefix 36 } 
    
      swSmtpConnFailureTrap NOTIFICATION-TYPE 
          OBJECTS     { smtpServerIp }        
          STATUS   current
          DESCRIPTION "This trap will be triggered if the SMTP system 
                       cannot open a connection to the mail server successfully."            
          ::= { es4612TrapsPrefix 41 }             


END
