--------------------------------------------------
-- Version Number: 200602192200
--------------------------------------------------

ES4650F-MIB DEFINITIONS ::= BEGIN

IMPORTS

    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Integer32, Counter32, IpAddress,    
    NOTIFICATION-TYPE, enterprises, TimeTicks
        FROM SNMPv2-SMI
    DisplayString, RowStatus, TruthValue, RowPointer
        FROM SNMPv2-TC
    PortList, VlanIndex
        FROM Q-BRIDGE-MIB
    InterfaceIndex, ifIndex
        FROM IF-MIB
    diffServClfrEntry, diffServMultiFieldClfrEntry, IndexIntegerNextFree, 
    IndexInteger
        FROM DIFFSERV-MIB
    EnabledStatus
        FROM P-BRIDGE-MIB
    MacAddress
        FROM TOKEN-RING-RMON-MIB
    BridgeId, Timeout, dot1dStpPort,dot1dStpPortEntry
        FROM BRIDGE-MIB
    InetAddressType, InetAddress, InetAddressPrefixLength, InetPortNumber
        FROM INET-ADDRESS-MIB;


accton              OBJECT IDENTIFIER ::= { enterprises 259 }
edgecore            OBJECT IDENTIFIER ::= { accton 8 }
cheetahSwitchMgt    OBJECT IDENTIFIER ::= { edgecore 1 }

es4650fMIB MODULE-IDENTITY
        LAST-UPDATED "200902070000Z"
        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
                 Fax: +886-3-5780764 

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


es4650fMIBObjects       OBJECT IDENTIFIER ::= { es4650fMIB 1 }
es4650fNotifications    OBJECT IDENTIFIER ::= { es4650fMIB 2 }
es4650fConformance      OBJECT IDENTIFIER ::= { es4650fMIB 3 }

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

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

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

--sshv2 only start
KeySegment ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
    "The total length of the key is 1024 characters,
     it is divided into 8 parts and stored in 8 separated mib
     variables as below:

         Key1: part 1 of the key (1-128)
         Key2: part 2 of the key (129-256)
         Key3: part 3 of the key (257-384)
         Key4: part 4 of the key (385-512)
         Key5: part 5 of the key (513-640)
         Key6: part 6 of the key (641-768)
         Key7: part 7 of the key (769-896)
         Key8: part 8 of the key (897-1024)

     Please note that if the key string is less then 1024 characters,
     the remaining part of the string will be filled by a zero-length string.
     For example, if the length of the key is 129,
     we will get a string of length 128 in Key1, and
     a string of length 1 in Key2,
     moreover, Key3 to Key8 will all be zero-length strings."
    SYNTAX  DisplayString (SIZE (0..128))
--sshv2 only end

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

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

FileCopyStatus ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION
           "The file copy result status."
       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)
           }
-- End of private TCs


--
-- switchMgt
--

-- Management for the switch system, or individual units
-- in a stackable switch system. For a non-stackable system,
-- only unit 1 exists.


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
             the switch units in this system."
    ::= { switchMgt 3 }

switchInfoEntry OBJECT-TYPE
    SYNTAX      SwitchInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table providing descriptions and status information for
             switch units."
    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,
    swEpldVer           DisplayString,
    swExpectedModuleOpCodeVer 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 number of ports on this switch."
    ::= { switchInfoEntry 7 }

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

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

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

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

swExpansionSlot2 OBJECT-TYPE
    SYNTAX      INTEGER
            {
            notPresent(1),
            other(2),
            hundredBaseFxScMmf(3),
            hundredBaseFxScSmf(4),
            hundredBaseFxMtrjMmf(5),
            thousandBaseSxScMmf(6),
            thousandBaseSxMtrjMmf(7),
            thousandBaseXGbic(8),
            thousandBaseLxScSmf(9),
            thousandBaseT(10),
            stackingModule(11),
            thousandBaseSfp(12),
            tenHundredBaseT4port(13),
            tenHundredBaseFxMtrj4port(14),
            comboStackingSfp(15),
            tenHundredBaseT(16),
            comboThousandBaseTxSfp(17),
            eightPortSfpModule(18),
            tenGigaPortModule(19)
            }
    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 }

swEpldVer OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The EPLD version of the switch."
    ::= { switchInfoEntry 15 }

swExpectedModuleOpCodeVer OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..15))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The module opcode version reside in the switch, note that
             this variable represent the desired version of the
             module which might plug in. For version validation, only
             the swExpectedModuleOpCodeVer of the master
             is used. This object is compared with
             the swModuleOpCodeVer of the master and all slaves."
    ::= { switchInfoEntry 16 }

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 "The product name of this switch."
    ::= { switchProductId 1 }

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

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

swProdVersion OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..127))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The runtime code version of this switch."
    ::= { switchProductId 4 }

swProdUrl OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..127))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The URL of this switch, which we can connect through
             a web browser."
    ::= { switchProductId 5 }

swIdentifier OBJECT-TYPE
    SYNTAX      Integer32
    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 the status of individual powers."
    ::= { switchMgt 6 }

switchIndivPowerEntry OBJECT-TYPE
    SYNTAX      SwitchIndivPowerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table about the status of individual power."
    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
            {
              internalPower(1),
              externalPower(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 fan status table."
       ::= { 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,
    switchFanAdminSpeed        Integer32,
    switchFanFailureCount Integer32,
    switchFanOperSpeed    Integer32
}

switchUnitIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  accessible-for-notify
       STATUS      current
       DESCRIPTION "The unit of the switch for the 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 }

switchFanAdminSpeed OBJECT-TYPE
       SYNTAX   Integer32
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION "The speed of the fan, measured in rpm (rotations per
            minute). Set this object to 0 to enter auto mode,
            set to other values to enter manual mode."
       ::= { switchFanEntry 4 }

switchFanFailureCount OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION "The total failure count of the fan since the switch
            has reboot."
       ::= { switchFanEntry 5 }

switchFanOperSpeed OBJECT-TYPE
       SYNTAX   Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION "The operational value of the fan speed, measured in rpm (rotations per
            minute)."
       ::= { switchFanEntry 6 }

-- switchThermalTempTable

switchThermalTempTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SwitchThermalTempEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The table which collects temperature infomration of the
            switch."
       ::= { switchMgt 11 }

switchThermalTempEntry OBJECT-TYPE
       SYNTAX      SwitchThermalTempEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "A conceptual row of the switchThermalTempTable."
       INDEX  { switchThermalTempUnitIndex,switchThermalTempThermalIndex}
       ::= { switchThermalTempTable 1 }

SwitchThermalTempEntry ::= SEQUENCE
{
    switchThermalTempUnitIndex      Integer32,
    switchThermalTempThermalIndex   Integer32,
    switchThermalTempValue      Integer32
}

switchThermalTempUnitIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The unit of the switch for stackable device."
       ::= { switchThermalTempEntry 1 }

switchThermalTempThermalIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The thermal index of the switch."
       ::= { switchThermalTempEntry 2 }

switchThermalTempValue OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION "The temperature value in the device in grade Celsius."
       ::= { switchThermalTempEntry 3 }

--switchThermalActionTable
switchThermalActionTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SwitchThermalActionEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The table for configuring the thermal action."
       ::= { switchMgt 12 }

switchThermalActionEntry OBJECT-TYPE
       SYNTAX      SwitchThermalActionEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "A conceptual row of the switchThermalActionTable."
       INDEX  { switchThermalActionUnitIndex,switchThermalActionThermalIndex,
        switchThermalActionIndex }
       ::= { switchThermalActionTable 1 }

SwitchThermalActionEntry ::= SEQUENCE
{
    switchThermalActionUnitIndex    Integer32,
    switchThermalActionThermalIndex Integer32,
    switchThermalActionIndex        Integer32,
    switchThermalActionRisingThreshold  Integer32,
    switchThermalActionFallingThreshold Integer32,
    switchThermalActionAction       BITS,
    switchThermalActionStatus       ValidStatus
}

switchThermalActionUnitIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  accessible-for-notify
       STATUS      current
       DESCRIPTION "The unit of the switch for stackable device."
       ::= { switchThermalActionEntry 1 }

switchThermalActionThermalIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  accessible-for-notify
       STATUS      current
       DESCRIPTION "The thermal index of the switch."
       ::= { switchThermalActionEntry 2 }

switchThermalActionIndex OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  accessible-for-notify
       STATUS      current
       DESCRIPTION "The action index of the switchTheramlActionTable."
       ::= { switchThermalActionEntry 3 }

switchThermalActionRisingThreshold OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION "The rising threshold of the switch temperature."
       ::= { switchThermalActionEntry 4 }

switchThermalActionFallingThreshold OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION "The falling threshold of the switch temperature."
       ::= { switchThermalActionEntry 5 }

switchThermalActionAction OBJECT-TYPE
       SYNTAX      BITS {
                trap(0)
            }
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION "The action that will be taken when the
                temperature exceeds the rising threshold
                or falls below the falling threshold."
       ::= { switchThermalActionEntry 6 }

switchThermalActionStatus OBJECT-TYPE
       SYNTAX      ValidStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION "Set valid(1) to create an entry, Set Invalid(2) to delete an entry."
       ::= { switchThermalActionEntry 7 }

switchModuleInfoTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SwitchModuleInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table of descriptive and status information about
             the switch modules in this system."
    ::= { switchMgt 13 }

switchModuleInfoEntry OBJECT-TYPE
    SYNTAX      SwitchModuleInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table providing descriptions and status information for
             switch modules."
    INDEX       { swModuleUnitIndex, swModuleModuleIndex }
    ::= { switchModuleInfoTable 1 }

SwitchModuleInfoEntry ::= SEQUENCE
{
    swModuleUnitIndex       Integer32,
    swModuleModuleIndex     Integer32,
    swModuleHardwareVer     DisplayString,
    swModuleMicrocodeVer    DisplayString,
    swModuleLoaderVer       DisplayString,
    swModuleBootRomVer      DisplayString,
    swModuleOpCodeVer       DisplayString,
    swModulePortNumber      Integer32,
    swModuleSerialNumber    DisplayString,
    swModuleType        INTEGER,
    swModuleModelNumber     DisplayString,
    swModuleEpldVer     DisplayString,
    swModuleDescr       DisplayString
}

swModuleUnitIndex 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."
    ::= { switchModuleInfoEntry 1 }

swModuleModuleIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This object identifies the module within the switch
             for which this entry contains information."
    ::= { switchModuleInfoEntry 2 }

swModuleHardwareVer OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Hardware version of the module board."
    ::= { switchModuleInfoEntry 3 }

swModuleMicrocodeVer OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Microcode version of the module board."
    ::= { switchModuleInfoEntry 4 }

swModuleLoaderVer OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Loader version of the module board."
    ::= { switchModuleInfoEntry 5 }

swModuleBootRomVer OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Boot ROM code version of the module board."
    ::= { switchModuleInfoEntry 6 }

swModuleOpCodeVer OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Operation code version of the module board."
    ::= { switchModuleInfoEntry 7 }

swModulePortNumber OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The number of ports of this module."
    ::= { switchModuleInfoEntry 8 }

swModuleSerialNumber OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..80))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Serial number of the module."
    ::= { switchModuleInfoEntry 9 }

swModuleType OBJECT-TYPE
    SYNTAX      INTEGER
            {
            notPresent(1),
            other(2),
            hundredBaseFxScMmf(3),
            hundredBaseFxScSmf(4),
            hundredBaseFxMtrjMmf(5),
            thousandBaseSxScMmf(6),
            thousandBaseSxMtrjMmf(7),
            thousandBaseXGbic(8),
            thousandBaseLxScSmf(9),
            thousandBaseT(10),
            stackingModule(11),
            thousandBaseSfp(12),
            tenHundredBaseT4port(13),
            tenHundredBaseFxMtrj4port(14),
            comboStackingSfp(15),
            tenHundredBaseT(16),
            comboThousandBaseTxSfp(17),
            eightPortSfpModule(18),
            tenGigaPortModule(19)
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Type of module."
    ::= { switchModuleInfoEntry 10 }

swModuleModelNumber OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..15))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Model number of the module."
    ::= { switchModuleInfoEntry 11 }

swModuleEpldVer  OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The EPLD version of the module."
    ::= { switchModuleInfoEntry 12 }

swModuleDescr OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION " A textual description of the entity to describe the
             module."
    ::= { switchModuleInfoEntry 13 }

 switchRenumberUnitID OBJECT-TYPE
    SYNTAX      INTEGER
            {
            renumber(1),
            noRenumber(2)
            }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The value renumber will automatically assign an ID to
             units in the stack; all UNIT IDs will be contiguous.
             The system configurations are not changed but the system
             will restart after renumbering is completed."
    ::= { switchMgt 14 }

--
-- portMgt
--

-- Management ports. This group also provides information
-- related to trunks because they share the same properties.

portTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table of descriptive and status information describing
             the configuration of each switch port. This table also
             contains information about each trunk."
    ::= { portMgt 1 }

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

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

portIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The port and the trunk (including 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."
    ::= { portEntry 1 }

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

portType OBJECT-TYPE
    SYNTAX      INTEGER
            {
            other(1),
            hundredBaseTX(2),
            hundredBaseFX(3),
            thousandBaseSX(4),
            thousandBaseLX(5),
            thousandBaseT(6),
            thousandBaseGBIC(7),
            thousandBaseSfp(8),
            hundredBaseFxScSingleMode(9),
            hundredBaseFxScMultiMode(10),
            thousandBaseCX(11),
            tenG(12),
            tenGBaseT(13),
            hundredBaseBX(14),
            thousandBaseBX(15)
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Indicates the port type of the configuration of the switch."
    ::= { portEntry 3 }

portSpeedDpxCfg OBJECT-TYPE
    SYNTAX      INTEGER
            {
            reserved(1),
            halfDuplex10(2),
            fullDuplex10(3),
            halfDuplex100(4),
            fullDuplex100(5),
            halfDuplex1000(6),
            fullDuplex1000(7),
            halfDuplex10g(8),
            fullDuplex10g(9)
            }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Configures the speed and duplex mode for a port or trunk,
             according to:
             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
             halfDuplex10g(8)   - 10g and half duplex mode
             fullDuplex10g(9)   - 10g and full duplex mode

            hundredBaseTX  port can be set as:
                halfDuplex10(2)
                fullDuplex10(3)
                halfDuplex100(4)
                fullDuplex100(5)
            hundredBaseFX  port can be set as:
                fullDuplex100(5)
            thousandBaseSX port can be set as:
                fullDuplex1000(7)
            thousandBaseLX port can be set as:
                fullDuplex1000(7)
            thousandBaseT port can be set as:
                halfDuplex10(2)
                fullDuplex10(3)
                halfDuplex100(4)
                fullDuplex100(5)
            thousandBaseGBIC port can be set as:
                fullDuplex1000(7)
            thousandBaseSfp port can be set as:
                fullDuplex1000(7)
            hundredBaseFxScSingleMode port can be set as:
                fullDuplex100(5)
            hundredBaseFxScMultiMode port can be set as:
                fullDuplex100(5)
            thousandBaseCX port can be set as:
                fullDuplex1000(7)
            tenG port can be set as:
                halfDuplex10g(8)
                fullDuplex10g(9)

             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),
            tx(5),
            rx(6)
            }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "(1) Flow control mechanism is enabled with tx and rx pause
             mechansim.
             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.
             (5) Flow control mechanism is enabled with tx pause
             mechanism only.
             (6) Flow control mechansim is enabled with rx pause
             mechansim only.

             Fast ethernet ports can be set as:
             enabled(1),
             disabled(2).
             Gigabit ethernet ports can be set as:
             enabled(1),
             disabled(2),
             tx(5),
             rx(6).
             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),
            portCap10gHalf(6),
            portCap10gFull(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 or trunk capabilities."
    ::= { portEntry 6 }

portAutonegotiation OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether auto-negotiation is enabled."
    ::= { portEntry 7 }

portSpeedDpxStatus OBJECT-TYPE
    SYNTAX      INTEGER
            {
            error(1),
            halfDuplex10(2),
            fullDuplex10(3),
            halfDuplex100(4),
            fullDuplex100(5),
            halfDuplex1000(6),
            fullDuplex1000(7),
            halfDuplex10g(8),
            fullDuplex10g(9)
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The operating speed and duplex mode of the
             switched port or trunk. If the entry represents a trunk,
             the speed is that of its individual members unless
             the member ports have been inconsistently configured
             in which case the 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 mechanism is used.
             (3) IEEE 802.3 flow control mechanism is used.
             (4) Flow control mechanism is disabled.
             If the entry represents a trunk and the member ports
             have been inconsistently configured then 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 a trunk in the 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 running 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. copperForced(2) is set if user want to force
            this combo port running in copper mode. copperPreferredAuto(3)
            is obsoleted, and user shall not set this state. sfpForced(4)
            is set if user want to force this combo port running in fiber
            mode. sfpPreferredAuto(5) is set if user want to change copper or
            fiber mode automatically by SFP transceiver present state. If SFP
            transceiver is present, this combo port will run in fiber mode, and
            if SFP transceiver is not present, this combo port will run in
            copper mode."
       ::= { portEntry 12}

--
-- trunkMgt
--

-- Trunks: Provides additional information for Trunks


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

trunkValidNumber OBJECT-TYPE
    SYNTAX  Integer32
    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 describing the configuration and status of each
             trunk."
    ::= { trunkMgt 3 }

trunkEntry OBJECT-TYPE
    SYNTAX      TrunkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An entry describing the configuration and status of a
             particular trunk."
    INDEX       { trunkIndex }
    ::= { trunkTable 1 }

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

trunkIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Identifies the trunk within the switch that is
             described by the table entry."
    ::= { 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  ValidStatus
    MAX-ACCESS  read-create
    STATUS  current
    DESCRIPTION
    "Writing this to valid(1) creates an entry.
     Writing this to invalid(2) destroys an entry.
     A trunk created by LACP cannot be manually destroyed
     or (re)configured."
    ::= { trunkEntry 4 }

trunkBalanceMode OBJECT-TYPE
    SYNTAX  INTEGER
    {
        macSrc(1),
        macDst(2),
        macSrcDst(3),
        ipSrc(4),
        ipDst(5),
        ipSrcDst(6)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This defines the load balancing mode of trunks
                in the system. It may be based on source and/or
                destination MAC address or IP address.
                macSrc(1) means source MAC address.
                macDst(2) means destination MAC address.
                macSrcDst(3) means source and destination MAC address.
                ipSrc(4) means source IP address.
                ipDst(5) means destination IP address.
                ipSrcDst(6) means source and destination IP address."
    ::= { trunkMgt 4 }
---
--- lacpMgt
---

-- Management for Link Aggregation Control Protocol (LACP, 802.3ad),
-- that is dynamic trunking.

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. While an entry may
             exist for a particular port, the port may not support
             LACP and an attempt to enable LACP may result in
             failure."
    INDEX       { lacpPortIndex }
    ::= { lacpPortTable 1 }

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

lacpPortIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The port interface of the lacpPortTable. 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."
    ::= { lacpPortEntry 1 }

lacpPortStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    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."
    AUGMENTS       { dot1dStpPortEntry }
    ::= { staPortTable 1 }

StaPortEntry ::= SEQUENCE
{
    staPortFastForward        EnabledStatus,
-- for MST, RSTP
    staPortProtocolMigration  TruthValue,
    staPortAdminEdgePort      TruthValue,
    staPortOperEdgePort       TruthValue,
    staPortAdminPointToPoint  INTEGER,
    staPortOperPointToPoint   TruthValue,
    staPortSystemStatus       EnabledStatus,
    staPortLongAdminPathCost  Integer32,
    staPortAdminEdgePortWithAuto	INTEGER,
    staPortLongOperPathCost   Integer32
}

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 }

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 }

staPortLongAdminPathCost OBJECT-TYPE
    SYNTAX  Integer32 (1..200000000)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
      "The admin value of the RSTP path cost or MST external pathcost.
      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 10 }

staPortLongOperPathCost OBJECT-TYPE
    SYNTAX  Integer32 (1..200000000)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
      "The oper value of the RSTP path cost or MST external pathcost.
      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 11 }

staPortAdminEdgePortWithAuto OBJECT-TYPE
    SYNTAX      INTEGER 
                {
                    true(1),
                    false(2),
                    auto(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The administrative value of the edge port parameter.  
    		A value of enable(1) indicates that this port should be 
    		assumed as an edge-port, a value of disable(2) indicates 
    		that this port should be assumed as a non-edge-port and 
    		a value of auot (3) indicates this port in RSPT or MSTP mode 
    		should be assumed as an edge-port after migration or max age expire 
    		without receiving any BPDU and sending BPDU with proposal flag on."
    ::= { staPortEntry 17 }

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 (SIZE (0..32))
    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 (1..64)
      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   { xstInstanceCfgIndex, dot1dStpPort }
     ::= { xstInstancePortTable 1 }

XstInstancePortEntry ::= SEQUENCE
{
  xstInstancePortPriority       Integer32,
  xstInstancePortState          INTEGER,
  xstInstancePortEnable         EnabledStatus,
  xstInstancePortDesignatedRoot     BridgeId,
  xstInstancePortDesignatedCost     Integer32,
  xstInstancePortDesignatedBridge   BridgeId,
  xstInstancePortDesignatedPort     OCTET STRING,
  xstInstancePortForwardTransitions Counter32,
  xstInstancePortPortRole       INTEGER,
  xstInstancePortAdminPathCost      Integer32,
  xstInstancePortOperPathCost       Integer32
}

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 }

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 }

xstInstancePortAdminPathCost OBJECT-TYPE
     SYNTAX  Integer32 (1..200000000)
     MAX-ACCESS  read-write
     STATUS  current
     DESCRIPTION "The admin value of the RST pathcost or MST internal pathcost,
          in the range of 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 13 }

xstInstancePortOperPathCost OBJECT-TYPE
     SYNTAX  Integer32 (1..200000000)
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION "The oper value of the RST pathcost or MST internal pathcost,
          in the range of 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 14 }

mstInstanceEditTable OBJECT-TYPE
     SYNTAX  SEQUENCE OF MstInstanceEditEntry
     MAX-ACCESS  not-accessible
     STATUS  current
     DESCRIPTION "The instance table for the Multiple Spanning Tree region"
     ::= { 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 (1..64)
      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
--

-- Management for restarting the switch.


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

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

restartControl  OBJECT-TYPE
    SYNTAX     INTEGER {
            running(1),
            warmBoot(2),
            coldBoot(3)
          }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
     "Setting this object to warmBoot(2) causes the device to
     reinitialize itself such that neither the agent configuration
     nor the protocol entity implementation is altered. Setting this
     object to coldBoot(3) causes the device to reinitialize itself such
     that the agent's configuration or the protocol entity implementation
     may be altered. When the device is running normally, this
     variable has a value of running(1)."
    ::= { restartMgt 3 }

--
-- mirrorMgt
--

-- Management for port mirroring.

mirrorTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MirrorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table for port mirroring, enabling a port to be mirrored
             to/from another port. Not all ports can be mirrored and
             limitations may apply as to which ports can be used as either
             source or destination ports."
    ::= { mirrorMgt 1 }

mirrorEntry OBJECT-TYPE
    SYNTAX      MirrorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The conceptual row of mirrorTable."
    INDEX       { mirrorDestinationPort, mirrorSourcePort }
    ::= { mirrorTable 1 }

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

mirrorDestinationPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The destination port interface for mirrored packets.
             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."
    ::= { mirrorEntry 1 }

mirrorSourcePort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The source port interface for mirrored packets.
             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."
    ::= { 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 will be mirrored."
    ::= { mirrorEntry 3 }

mirrorStatus 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."
    ::= { mirrorEntry 4 }

--
-- igmpSnoopMgt
--

-- Management for Internet Group Management Protocol (IGMP)
-- Snooping.


igmpSnoopStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    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      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Enables (disables) whether the switch acts as an IGMP
             querier."
    DEFVAL      { enabled }
    ::= { igmpSnoopMgt 2 }

igmpSnoopQueryCount OBJECT-TYPE
    SYNTAX      Integer32 (2..10)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The query count from a querier, during which a response is
             expected from an endstation. If a querier has sent a
             number of counts defined by igmpSnoopQueryCount, but an
             endstation has not responded, a countdown timer is
             started using the time defined by igmpSnoopQueryMaxResponseTime.
             If the countdown finishes, and the endstation still has
             not responded, then that endstation is deemed to have left
             the multicast group."
    DEFVAL      { 2 }
    ::= { igmpSnoopMgt 3 }


igmpSnoopQueryInterval OBJECT-TYPE
    SYNTAX      Integer32 (60..125)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The interval (in seconds) between IGMP host-query
             messages sent by the switch."
    DEFVAL      { 125 }
    ::= { igmpSnoopMgt 4 }

igmpSnoopQueryMaxResponseTime OBJECT-TYPE
    SYNTAX      Integer32 (5..25)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The time after a query, during which a response is
             expected from an endstation. If a querier has sent
             a number of queries defined by igmpSnoopQueryCount,
             but an endstation has not responded, a countdown
             timer is started using an initial value set by
             igmpSnoopQueryMaxResponseTime.  If the countdown
             finishes, and the endstation still has not responded,
             then that the endstation is deemed to have
             left the multicast group."
    DEFVAL      { 10 }
    ::= { igmpSnoopMgt 5 }

igmpSnoopRouterPortExpireTime OBJECT-TYPE
    SYNTAX      Integer32 (300..500)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Sets the time (in seconds) the switch waits after
             the previous querier has stopped querying before
             the router port (which received query packets from
             previous querier) expires."
    DEFVAL      { 300 }
    ::= { igmpSnoopMgt 6 }

igmpSnoopVersion OBJECT-TYPE
    SYNTAX      Integer32 (1..3)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "IGMP version snooped"
    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
    "The interface identified by a particular value of
     this index is the same interface as identified by
     the same value of dot1qVlanIndex in the Q-BRIDGE-MIB.
     The entry will only appear here after a configure to
     igmpSnoopRouterStaticTable."
    ::= { igmpSnoopRouterCurrentEntry 1 }

igmpSnoopRouterCurrentPorts OBJECT-TYPE
    SYNTAX  PortList
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION "The set of ports which are current router ports, including 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 multicast 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
        ValidStatus
    }

igmpSnoopRouterStaticVlanIndex OBJECT-TYPE
    SYNTAX  Unsigned32
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
    "The interface identified by a particular value of
     this index is the same interface as identified by
     the same value of dot1qVlanIndex in the Q-BRIDGE-MIB.
     The entry will only appear here after a configure to
     igmpSnoopRouterStaticTable."
    ::= { 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  ValidStatus
    MAX-ACCESS  read-create
    STATUS  current
    DESCRIPTION
    "Setting this to valid(1) creates an entry.
     Setting 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
        "The interface identified by a particular value of
         this index is the same interface as identified by
         the same value of dot1qVlanIndex in the Q-BRIDGE-MIB.
         The entry will only appear here after a configure to
         igmpSnoopMulticastStaticTable."
        ::= { 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 of a multicast group, including
         static members. Please refer to igmpSnoopMulticastStaticTable."
        ::= { igmpSnoopMulticastCurrentEntry 3 }

    igmpSnoopMulticastCurrentStatus OBJECT-TYPE
        SYNTAX      PortList
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
        "The set of ports which are static IGMP member ports."
        ::= { 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
        ValidStatus
    }

    igmpSnoopMulticastStaticVlanIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
        "The interface identified by a particular value of
         this index is the same interface as identified by
         the same value of dot1qVlanIndex in the Q-BRIDGE-MIB.
         The entry will only appear here after a configure to
         igmpSnoopMulticastStaticTable."
        ::= { 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      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
        "Setting this to valid(1) creates an entry.
         Setting this to invalid(2) destroys an entry."
        ::= { igmpSnoopMulticastStaticEntry 4 }

igmpSnoopCurrentVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF IgmpSnoopCurrentVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for enabling or disabling IGMP snooping per VLAN."
        ::= { igmpSnoopMgt 14 }

igmpSnoopCurrentVlanEntry OBJECT-TYPE
        SYNTAX      IgmpSnoopCurrentVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for enabling or disabling IGMP snooping."
        INDEX       { igmpSnoopCurrentVlanIndex }
        ::= { igmpSnoopCurrentVlanTable 1 }

IgmpSnoopCurrentVlanEntry ::= SEQUENCE
{
    igmpSnoopCurrentVlanIndex     Unsigned32,
    igmpSnoopCurrentVlanImmediateLeave    EnabledStatus
}

igmpSnoopCurrentVlanIndex 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."
        ::= { igmpSnoopCurrentVlanEntry 1 }

igmpSnoopCurrentVlanImmediateLeave OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The parameter to enable or disable the Immediate-Leave feature on this VLAN."
        ::= { igmpSnoopCurrentVlanEntry 3 }
--
-- The IpMgt Group
--

-- Management for Internet Protocol (IP).

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

ipHttpPort OBJECT-TYPE
   SYNTAX     Integer32 (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 "When set to restart(1) the DHCP server will restart. When read,
         this value always returns noRestart(2)."
    ::= { ipMgt 5 }

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

-- New added. Robie@May12,2005
ipv6EnableStatus OBJECT-TYPE
     SYNTAX  TruthValue
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION
       "This object has the value 'true(1)', if ipv6 processing
       is enabled, 'false(2)' otherwise."
     ::= { ipMgt 8 }

ipv6netConfigTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF Ipv6NetConfigEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of netConfigEntry."
    ::= { ipMgt 9 }

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

        The index is composed of the ifIndex assigned to the
        corresponding interface."
    INDEX  { ipv6netConfigIfIndex, ipv6netConfigIpAddressType, ipv6netConfigIpAddress, ipv6netConfigPrefixLength }
    ::= { ipv6netConfigTable 1 }

Ipv6NetConfigEntry ::= SEQUENCE {
    ipv6netConfigIfIndex       		Integer32,
    ipv6netConfigIpAddressType     	InetAddressType,
    ipv6netConfigIpAddress     		InetAddress,
    ipv6netConfigPrefixLength  		InetAddressPrefixLength,
    ipv6netConfigAddrType      		INTEGER,
    ipv6netConfigAddrAnycastFlag	TruthValue,
    ipv6netConfigAddrStatus   		INTEGER,
    ipv6netConfigAddrFlag  		INTEGER,
    ipv6netConfigGeneralPrefixBased	INTEGER,
    ipv6netConfigStatus        		RowStatus
}

ipv6netConfigIfIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    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."
    ::= { ipv6netConfigEntry 1 }

ipv6netConfigIpAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "The address type of the address associated with this agent.
        Only ipv6 and ipv6z types are supported."
    ::= { ipv6netConfigEntry 2 }

ipv6netConfigIpAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "The IPv6 address to which this entry's addressing
      information pertains."
    ::= { ipv6netConfigEntry 3 }

ipv6netConfigPrefixLength OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    UNITS       "bits"
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "The length of the prefix (in bits) associated with
      the IPv6 address of this entry."
    ::= { ipv6netConfigEntry 4 }

 ipv6netConfigAddrType OBJECT-TYPE
    SYNTAX      INTEGER {
                        -- address has been formed
                        -- using stateless
         stateless(1),  -- autoconfiguration
                        -- address has been acquired
                        -- by stateful means
                        -- (e.g. DHCPv6, manual
         stateful(2),   -- configuration)
                        -- type can not be determined
         unknown(3)     -- for some reason.
       }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The type of address. Note that 'stateless(1)'
       refers to an address that was statelessly
       autoconfigured; 'stateful(2)' refers to a address
       which was acquired by via a stateful protocol
       (e.g. DHCPv6, manual configuration)."
    ::= { ipv6netConfigEntry 5 }

 ipv6netConfigAddrAnycastFlag OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
       "This object has the value 'true(1)', if this
       address is an anycast address and the value
       'false(2)' otherwise."
     ::= { ipv6netConfigEntry 6 }

 ipv6netConfigAddrStatus OBJECT-TYPE
    SYNTAX      INTEGER {
             preferred(1),
             deprecated(2),
             invalid(3),
             inaccessible(4),
             unknown(5),
             tentative(6),
             duplicate(7)
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "The status of an address.  Most of the states correspond to
       states from the IPv6 Stateless Address Autoconfiguration
       protocol.

       The preferred(1) state indicates that this is a valid
       address that can appear as the destination or source address
       of a packet.

       The deprecated(2) state indicates that this is a valid but
       deprecated address that should no longer be used as a source
       address in new communications, but packets addressed to such
       an address are processed as expected.

       The invalid(3) state indicates that this isn't a valid
       address and it shouldn't appear as the destination or source
       address of a packet.

       The inaccessible(4) state indicates that the address is not
       accessible because the interface to which this address is
       assigned is not operational.

       The unknown(5) state indicates that the status cannot be
       determined for some reason.

       The tentative(6) state indicates that the uniqueness of the
       address on the link is being verified.  Addresses in this
       state should not be used for general communication and
       should only be used to determine the uniqueness of the
       address.

       The duplicate(7) state indicates the address has been
       determined to be non-unique on the link and so must not be
       used."
    ::= { ipv6netConfigEntry 7 }

ipv6netConfigAddrFlag OBJECT-TYPE
    SYNTAX      INTEGER {
	other  (1),
	eui-64 (2) -- specify an eui-64 address based on 64 bits long interface identifier,
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "Determine the way by which final address is generated."
    ::= { ipv6netConfigEntry 8 }

ipv6netConfigGeneralPrefixBased OBJECT-TYPE
    SYNTAX      INTEGER (0..256)
    UNITS       "bits"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
      "The general prefix index associated with
      the IPv6 address of this entry, and zero value means this address entry is not
      configurated by any general prefix."
    ::= { ipv6netConfigEntry 9 }

ipv6netConfigStatus 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."
     ::= { ipv6netConfigEntry 10 }

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

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

dhcpcInterfaceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DhcpcInterfaceEntry
        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      DhcpcInterfaceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for DHCP client information listed by interface."
        INDEX       { dhcpcIfIndex }
        ::= { dhcpcInterfaceTable 1 }

DhcpcInterfaceEntry ::= 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 }

-- JBOS only
dhcpRelayIfTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpRelayIfEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "The table to record the status of dhcpRelay."
          ::= { dhcpRelay 1 }

dhcpRelayIfEntry OBJECT-TYPE
          SYNTAX      DhcpRelayIfEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpRelayIfTable."
          INDEX { dhcpRelayIfIndex }
          ::= { dhcpRelayIfTable 1 }

DhcpRelayIfEntry ::= SEQUENCE
{
     dhcpRelayIfIndex  Integer32,
     dhcpRelayIfStatus EnabledStatus
}

dhcpRelayIfIndex OBJECT-TYPE
          SYNTAX      Integer32
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "VLAN interface on which this entry is defined."
          ::= { dhcpRelayIfEntry 1 }

dhcpRelayIfStatus OBJECT-TYPE
          SYNTAX      EnabledStatus
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "The status of the dhcpRelay. Set this variable to enabled(1)
                       to enable dhcpRelay. Set this variable to disabled(2) to
                       disable dhcpRelay."
          ::= { dhcpRelayIfEntry 2 }

--dhcpRelayServerAddrTable
dhcpRelayServerAddrTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpRelayServerAddrEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "The role of the 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 the user needs to
                        specify relay server IP address and then restart DHCP relay.
                        This table is to specify relay server IP address,
                        the maximum number of server IP addresses 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 this object 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 configurations 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 neither (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 with
                      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 "The DHCP pool address."
          ::= { dhcpPoolEntry 3 }

dhcpPoolSubnetMask OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION "The DHCP pool subnet mask."
          ::= { dhcpPoolEntry 4 }

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

dhcpPoolMacAddress OBJECT-TYPE
          SYNTAX      OCTET STRING(SIZE(6))
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION "The DHCP pool MAC address."
          ::= { dhcpPoolEntry 6 }

dhcpPoolstatus OBJECT-TYPE
          SYNTAX      ValidStatus
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION "Setting this object to valid(1) creates an entry.
                       Setting this object 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,
                       the user can specify option configurations 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) or hex(3)
                        to specify the mode of the client ID,
                        which is useful for the CLI to determine the display method of the
                        client ID.
                        You will get default value 'notSpecify(1)'if this variable
                        has 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 the 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 with
                      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 with
                      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 addresses 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 with
                      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
                        should 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 }

-- For dhcp active pool range
dhcpPoolActivePoolAddressTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpPoolActivePoolAddressIpAddrEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "To specify IP addresses that a DHCP Server
                        should not assign to DHCP clients."
          ::= { dhcpServerMgt 9 }

dhcpPoolActivePoolAddressIpAddrEntry OBJECT-TYPE
          SYNTAX      DhcpPoolActivePoolAddressIpAddrEntry 
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpPoolActivePoolAddressTable."
          INDEX { dhcpPoolActivePoolName, dhcpPoolActivePoolAddressLowIp }
          ::= { dhcpPoolActivePoolAddressTable 1 }

DhcpPoolActivePoolAddressIpAddrEntry ::= SEQUENCE
{
     dhcpPoolActivePoolName            DisplayString,
     dhcpPoolActivePoolAddressLowIp    IpAddress,
     dhcpPoolActivePoolAddressHiIp     IpAddress
}

dhcpPoolActivePoolName OBJECT-TYPE
          SYNTAX      DisplayString(SIZE(1..8))
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "PoolName; simply specify a string with
                       string size no more than 8."
          ::= { dhcpPoolActivePoolAddressIpAddrEntry 1 }

dhcpPoolActivePoolAddressLowIp OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "The first IP address in an active poll address range."
          ::= { dhcpPoolActivePoolAddressIpAddrEntry 2 }

dhcpPoolActivePoolAddressHiIp OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION "The last IP address in the active poll address range."
          ::= { dhcpPoolActivePoolAddressIpAddrEntry 3 }

-- general prefix management

ipv6GeneralPrefixTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF Ipv6GeneralPrefixEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
    	"A list of general prefix entries."
    ::= { ipMgt 13 }

ipv6GeneralPrefixEntry OBJECT-TYPE
    SYNTAX     Ipv6GeneralPrefixEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
    	"One general prefix entry describes an address prefixes list."
    INDEX { ipv6GeneralPrefixIndex }
    ::= { ipv6GeneralPrefixTable 1 }

Ipv6GeneralPrefixEntry ::= SEQUENCE
{
    ipv6GeneralPrefixIndex          INTEGER,
    ipv6GeneralPrefixName           DisplayString,
    ipv6GeneralPrefixStatus         RowStatus
}

ipv6GeneralPrefixIndex  OBJECT-TYPE
    SYNTAX     INTEGER
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The index of the general prefix entry in this table."
    ::= { ipv6GeneralPrefixEntry 1 }

ipv6GeneralPrefixName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
    	"The name for this general prefix entry. "
    ::= { ipv6GeneralPrefixEntry 2 }

ipv6GeneralPrefixStatus 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."
    ::= { ipv6GeneralPrefixEntry 3 }

ipv6GeneralPrefixAddrTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF Ipv6GeneralPrefixAddrEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
    	"A list of general prefix address entries."
    ::= { ipMgt 14 }

ipv6GeneralPrefixAddrEntry OBJECT-TYPE
    SYNTAX     Ipv6GeneralPrefixAddrEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
    	"One general prefix address entry describes an address prefix."
    INDEX { ipv6GeneralPrefixAddrIndex, ipv6GeneralPrefixAddrAddress, ipv6GeneralPrefixAddrLength}
    ::= { ipv6GeneralPrefixAddrTable 1 }

Ipv6GeneralPrefixAddrEntry ::= SEQUENCE
{
    ipv6GeneralPrefixAddrIndex   		INTEGER,
    ipv6GeneralPrefixAddrAddress   		InetAddress,
    ipv6GeneralPrefixAddrLength     	InetAddressPrefixLength,
    ipv6GeneralPrefixAddrStatus    		RowStatus
}

ipv6GeneralPrefixAddrIndex  OBJECT-TYPE
    SYNTAX     INTEGER
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The index in the ipv6GeneralPrefixTable."
    ::= { ipv6GeneralPrefixAddrEntry 1 }

ipv6GeneralPrefixAddrAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
    	"Address prefix value for this general prefix address entry. "
    ::= { ipv6GeneralPrefixAddrEntry 2 }

ipv6GeneralPrefixAddrLength OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    UNITS       "bits"
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "The length (in bits) associated with
      the IPv6 address prefix of this entry."
    ::= { ipv6GeneralPrefixAddrEntry 3 }

ipv6GeneralPrefixAddrStatus 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."
     ::= { ipv6GeneralPrefixAddrEntry 4 }


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

-- Management for broadcast storm control for ports.


bcastStormTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BcastStormEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table to manage the control of broadcast storms for ports."
    ::= { bcastStormMgt 1 }

bcastStormEntry OBJECT-TYPE
    SYNTAX      BcastStormEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The conceptual row of bcastStormTable."
    INDEX       { bcastStormIfIndex }
    ::= { bcastStormTable 1 }

BcastStormEntry ::= SEQUENCE
{
    bcastStormIfIndex      Integer32,
    bcastStormStatus       EnabledStatus,
    bcastStormPktRate      Integer32
}

bcastStormIfIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The port and the trunk (including 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."
    ::= { bcastStormEntry 1 }

bcastStormStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Whether broadcast storm protection is enabled."
    ::= { bcastStormEntry 2 }

bcastStormPktRate OBJECT-TYPE
    SYNTAX      Integer32 (500..262143)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Broadcast storm threshold as packets per second.
             If this entry is for a trunk, this is the value
             for each member port."
    ::= { bcastStormEntry 4 }

--
-- vlanMgt
--

-- Management for Virtual Local Area Network (VLAN).
-- This has variables not already defined in the implemented
-- standard MIB(s).

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 "Based on 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 "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 dot1qPvid in the Q-BRIDGE-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 }

vlanDot1qTunnelGlobalConfig OBJECT IDENTIFIER ::= { vlanMgt 5 }

vlanDot1qTunnelStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This parameter is used to globally enable/disable
			   802.1Q Tunneling on the device."
        ::= { vlanDot1qTunnelGlobalConfig 1 }

vlanDot1qTunnelPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VlanDot1qTunnelPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port configuration in 802.1Q Tunneling."
        ::= { vlanMgt 6 }

vlanDot1qTunnelPortEntry OBJECT-TYPE
        SYNTAX      VlanDot1qTunnelPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port configuration in 802.1Q Tunneling."
        INDEX       { vlanDot1qTunnelPortIndex }
        ::= { vlanDot1qTunnelPortTable 1 }

VlanDot1qTunnelPortEntry ::= SEQUENCE
{       
    vlanDot1qTunnelPortIndex                Integer32,    
    vlanDot1qTunnelPortMode                 INTEGER,    
    vlanDot1qTunnelPortEtherType            Unsigned32
}

vlanDot1qTunnelPortIndex 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."
        ::= { vlanDot1qTunnelPortEntry 1 }

vlanDot1qTunnelPortMode OBJECT-TYPE
        SYNTAX      INTEGER
                    {         
                        none(1),
                        dot1qTunnel(2),
                        dot1qTunnelUplink(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This variable sets the 802.1Q Tunneling mode.
                     Setting it to none(1) indicates no mode in this port.
                     Setting it to dot1qTunnel(2) sets as dot1q-tunnel mode port which link to customer.
                     Setting it to dot1qTunnelUplink(3) sets as dot1q-tunnel mode port which link to service-provider.
                     If vlanDot1qTunnelStatus is disabled, it means vlanDot1qTunnelPortMode is inactive."
        ::= { vlanDot1qTunnelPortEntry 2 }

vlanDot1qTunnelPortEtherType  OBJECT-TYPE
       SYNTAX     Unsigned32 ('8000'h..'ffff'h)
       MAX-ACCESS read-write
       STATUS     current
       DESCRIPTION "TPID for 802.1Q encapsulation. It's used to select a nonstandard
                    (nondefault) 2-byte ethertype to identify 802.1Q tagged frames."
       ::= { vlanDot1qTunnelPortEntry 3 }

--
-- priorityMgt
--

-- Management for traffic priority. This allows a user
-- to specify which data packets have greater precedence
-- when traffic is buffered in the switch due to congestion.

prioIpPrecDscpStatus OBJECT-TYPE
    SYNTAX      INTEGER
            {
            disabled(1),
            precedence(2),
            dscp(3)
            }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Selects whether no frame priority mapping, IP ToS
             precedence mapping or DSCP mapping is performed."
    ::= { 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 precedence priority mapping."
    INDEX       { prioIpPrecPort, prioIpPrecValue }
    ::= { prioIpPrecTable 1 }

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

prioIpPrecPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The port or 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."
    ::= { prioIpPrecEntry 2 }

prioIpPrecValue OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Value of IP ToS Precedence as specified in the packet
             header."
    ::= { prioIpPrecEntry 3 }

prioIpPrecCos OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Class of Service (CoS) as defined by
             dot1dTrafficClassPriority in the P-BRIDGE-MIB.
             The IP ToS precedence value in the same
             table row will be mapped to this CoS. This CoS is then
             further mapped to the hardware queue according to
             dot1dTrafficClassTable."
    REFERENCE  "P-BRIDGE-MIB.dot1dPriority.dot1dTrafficClassTable."
    ::= { prioIpPrecEntry 4 }

prioIpPrecRestoreDefault OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Enables the IP Precedence settings of a port to be restored
             to their default values. To reset the settings of a port,
             assign prioIpPrecRestoreDefault to the value of ifIndex
             defined by the ifIndex in the IF-MIB. For example,  if 1 is
             written to it, then the IP priorities of port 1 will be
             restored to default. 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        Integer32
}

prioIpDscpPort 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."
    ::= { prioIpDscpEntry 1 }

prioIpDscpValue OBJECT-TYPE
    SYNTAX      Integer32 (0..63)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Value of IP DSCP as specified in the packet header."
    ::= { prioIpDscpEntry 2 }

prioIpDscpCos OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Class of Service as defined by dot1dTrafficClassPriority
             in the P-BRIDGE-MIB. The prioIpDscpValue value in the same
             table row will be mapped to this Class of Service (CoS).
             This CoS is then further mapped to the hardware
             queue according to dot1dTrafficClassTable."
    REFERENCE   "P-BRIDGE-MIB.dot1dPriority.dot1dTrafficClassTable."
    ::= { prioIpDscpEntry 3 }

prioIpDscpRestoreDefault OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Enables the IP DSCP settings of a port to be reset to their
             defaults. To reset the IP DSCP settings of a port, assign
             the value of the relevant ifIndex defined by the ifIndex in
             the IF-MIB. For example, assigning the value 1 will result in
             the IP DSCP settings of port 1 being restored to their default.
             0 will always be obtained when reading this variable"
    ::= { 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 or 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 the 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 the 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 the 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..15)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Weight for this entry."
    ::= { prioWrrPortEntry 3 }

--
-- trapDestMgt
--

-- Management for SNMP traps and trap destinations.

trapDestTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF TrapDestEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
    "A list of trap destination entries."
    REFERENCE "RMON2-MIB, mib2(1).rmon(16).probeConfig(19).trapDestTable(13)."
    ::= { trapDestMgt 1 }

trapDestEntry  OBJECT-TYPE
    SYNTAX     TrapDestEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION  "A destination entry describes the destination IP address,
          the community string, and SNMP version to use when sending
          a trap."
    INDEX
    {
        trapDestAddressType,
        trapDestAddress
    }
    ::= { trapDestTable 1 }

TrapDestEntry ::= SEQUENCE {
    trapDestAddressType     InetAddressType,
    trapDestAddress         InetAddress,
    trapDestCommunity       OCTET STRING,
    trapDestStatus          ValidStatus,
    trapDestVersion         INTEGER,
    trapDestUdpPort         InetPortNumber
}

trapDestAddressType  OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The address type of the address associated with this agent.
        Only ipv4(1),ipv6(2) and ipv6z(4) types are supported."
    ::= { trapDestEntry 1 }

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

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

trapDestStatus  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."
    ::= { trapDestEntry 4 }

trapDestVersion OBJECT-TYPE
    SYNTAX  INTEGER
        {
           version1(1),
           version2(2)
        }
    MAX-ACCESS   read-create
    STATUS   current
    DESCRIPTION "Determines the version of the trap that is to be sent to the
         trap receiver. If the value is 1, then an SNMP version 1 trap
         is sent and if the value is 2, an SNMP version 2 trap is
         sent."
    ::= { trapDestEntry 5}

trapDestUdpPort OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  read-create
    STATUS  current
    DESCRIPTION "Determines the UDP port number that the trap will be sent to."
    DEFVAL  { 162 }
    ::= { trapDestEntry 6}

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

trapIpFilterRejectMode OBJECT-TYPE
     SYNTAX  INTEGER
         {
             web(1),
             snmp(2),
             telnet(3)
         }
     MAX-ACCESS  accessible-for-notify
     STATUS  current
     DESCRIPTION "This variable is for trap var binding,
          indicated the ipfilter reject mode.
          web(1),
          snmp(2),
          telnet(3)."
     ::= { trapVar 6 }

trapIpFilterRejectIpType OBJECT-TYPE
     SYNTAX      InetAddressType
     MAX-ACCESS  accessible-for-notify
     STATUS      current
     DESCRIPTION "This variable is for trap var binding,
         indicating the IP address that rejected by the ipfilter."
     ::= { trapVar 7 }

trapIpFilterRejectIp OBJECT-TYPE
     SYNTAX      InetAddress
     MAX-ACCESS  accessible-for-notify
     STATUS      current
     DESCRIPTION "This variable is for trap var binding,
         indicating the IP address that rejected by the ipfilter."
     ::= { trapVar 8 }

trapVarLoginUserName OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(1..8))
     MAX-ACCESS  accessible-for-notify
     STATUS      current
     DESCRIPTION "The name of the user who logs into the switch."
     ::= { trapVar 11 }

trapVarLoginMethod OBJECT-TYPE
     SYNTAX      INTEGER
                 {
                     web(1),
                     snmp(2),
                     telnet(3),
                     console(4),
                     ssh(5)
                 }
     MAX-ACCESS  accessible-for-notify
     STATUS      current
     DESCRIPTION "The method by which the user logs in to control the 
                  switch."        
     ::= { trapVar 12 } 

trapVarLoginTime OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(20))
     MAX-ACCESS  accessible-for-notify
     STATUS      current
     DESCRIPTION "The date and time when the user logs into the switch.
                 The format of this variables follows that of sysCurrentTime in this MIB file."
     ::= { trapVar 14 }

trapVarLoginInetAddressType OBJECT-TYPE
     SYNTAX      InetAddressType
     MAX-ACCESS  accessible-for-notify
     STATUS      current
     DESCRIPTION "The address type of the address associated with this agent.
                  Only IPv4 and IPv6 types are supported."
     ::= { trapVar 15 }

trapVarLoginInetAddress OBJECT-TYPE
     SYNTAX      InetAddress
     MAX-ACCESS  accessible-for-notify
     STATUS      current
     DESCRIPTION "The IP address from which the user logs into the switch."
     ::= { trapVar 16 }     

-- For Port Security

trapPortSecurityIntrusionMac OBJECT-TYPE
     SYNTAX      MacAddress
     MAX-ACCESS  accessible-for-notify
     STATUS      current
     DESCRIPTION "This variable indicates the intrusion MAC address."
     ::= { trapVar 29 }

--
-- 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 Mbps port, the range is 1 to 100.
             For a 1000 Mbps 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 Mbps port, the range is 1 to 100.
             For a 1000 Mbps 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 }

--
--diffServMgt
--
diffServMgt    OBJECT IDENTIFIER ::= { qosMgt 4 }

diffServPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for differentiated services on each port."
        ::= { diffServMgt 9 }

diffServPortEntry OBJECT-TYPE
        SYNTAX      DiffServPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for differentiated services on each port."
        INDEX       { diffServPortIfIndex }
        ::= { diffServPortTable 1 }

DiffServPortEntry ::= SEQUENCE
{
    diffServPortIfIndex             Integer32,
    diffServPortPolicyMapIndex      Integer32,
    diffServPortIngressIpAclIndex   Integer32,
    diffServPortIngressMacAclIndex  Integer32,
    diffServPortIngressIpv6AclIndex Integer32
}

diffServPortIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object is the interface index of diffServPortEntry.
                     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."
        ::= { diffServPortEntry 1 }

diffServPortPolicyMapIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the policy map binding to the interface. The policy
                 map identified by a particular value of this index is
                 associated with the same DiffServPolicyMapEntry as identified
                 by the same value of diffServPolicyMapIndex."
    ::= { diffServPortEntry 2 }

diffServPortIngressIpAclIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the ingress IP ACL binding to the interface. The
                 ingress IP ACL identified by a particular value of this index
                 is associated with the same diffServAclEntry as identified by
                 the same value of diffServAclIndex."
    ::= { diffServPortEntry 3 }

diffServPortIngressMacAclIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the ingress MAC ACL binding to the interface. The
                 ingress MAC ACL identified by a particular value of this
                 index is associated with the same diffServAclEntry as
                 identified by the same value of diffServAclIndex."
    ::= { diffServPortEntry 4 }

diffServPortIngressIpv6AclIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the ingress IPv6 ACL binding to the interface. The
                 ingress IPv6 ACL identified by a particular value of this
                 index is associated with the same diffServAclEntry as
                 identified by the same value of diffServAclIndex."
    ::= { diffServPortEntry 5 }

diffServPolicyMapTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServPolicyMapEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for policy map."
        ::= { diffServMgt 10 }

diffServPolicyMapEntry OBJECT-TYPE
        SYNTAX      DiffServPolicyMapEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for policy map."
        INDEX       { diffServPolicyMapIndex }
        ::= { diffServPolicyMapTable 1 }

DiffServPolicyMapEntry ::= SEQUENCE
{
    diffServPolicyMapIndex              Integer32,
    diffServPolicyMapName               DisplayString,
    diffServPolicyMapDescription        DisplayString,
    diffServPolicyMapElementIndexList   OCTET STRING,
    diffServPolicyMapStatus             RowStatus
}

diffServPolicyMapIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry in this table."
        ::= { diffServPolicyMapEntry 1 }

diffServPolicyMapName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The name of this entry."
    ::= { diffServPolicyMapEntry 2 }

diffServPolicyMapDescription OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..64))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The description of this entry."
    ::= { diffServPolicyMapEntry 3 }

diffServPolicyMapElementIndexList OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The octet string containes the diffServPolicyMapElementEntry
                 indexes. Two octets express one index and it is represented
                 in network order. This index list indicates the
                 diffServPolicyMapEntrys which belong to this entry."
    ::= { diffServPolicyMapEntry 4 }

diffServPolicyMapStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used to create a new row, or modify or delete
                 an existing row, in this table. The status column has six
                 defined values:
                 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 the 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 the 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 the value 'notReady').

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

diffServPolicyMapAttachCtl  OBJECT IDENTIFIER   ::= { diffServMgt 11 }

diffServPolicyMapAttachCtlIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Index for attachment control.
                     Specifies the policy map as the target to relate with
                     the policy map element. The policy map identified by
                     a particular value of this index is associated with
                     the same diffServPolicyMapEntry as identified by the
                     same value of diffServPolicyMapIndex."
        ::= { diffServPolicyMapAttachCtl 1 }

diffServPolicyMapAttachCtlElementIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Element Index for attachment control.Specifies the policy map
                 element to relate with the policy map. The policy map element
                 identified by a particular value of this index is associated
                 with the same diffServPolicyMapElementEntry as identified by
                 the same value of diffServPolicyMapElementIndex."
    ::= { diffServPolicyMapAttachCtl 2 }

diffServPolicyMapAttachCtlAction OBJECT-TYPE
    SYNTAX      INTEGER
                    {
                        noAction(1),
                        attach(2),
                        detach(3)
                    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Action for attachment control. When setting this object to
                 attach(2) to begin the attaching operation, a particular
                 policy map element is attached to a particular policy map.
                 When setting this object to detach(3) to begin the not
                 attached operation, a particular policy map element is not
                 attached to a particular policy map. When the action is
                 finshed or no action is taken, the value of this object is
                 noAction(1). A particular policy map is specified in the
                 diffServPolicyMapAttachCtlIndex. A particularpolicy map
                 element is specified in the
                 diffServPolicyMapAttachCtlElementIndex."
    ::= { diffServPolicyMapAttachCtl 3 }

diffServPolicyMapElementTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServPolicyMapElementEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for policy map element."
        ::= { diffServMgt 12 }

diffServPolicyMapElementEntry OBJECT-TYPE
        SYNTAX      DiffServPolicyMapElementEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for policy map element."
        INDEX       { diffServPolicyMapElementIndex }
        ::= { diffServPolicyMapElementTable 1 }

DiffServPolicyMapElementEntry ::= SEQUENCE
{
    diffServPolicyMapElementIndex           Integer32,
    diffServPolicyMapElementClassMapIndex   Integer32,
    diffServPolicyMapElementMeterIndex      Integer32,
    diffServPolicyMapElementActionIndex     Integer32,
    diffServPolicyMapElementStatus          RowStatus
}

diffServPolicyMapElementIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry in this table."
        ::= { diffServPolicyMapElementEntry 1 }

diffServPolicyMapElementClassMapIndex OBJECT-TYPE
    SYNTAX      Integer32(1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the class map binding to this entry. The class map
                 identified by a particular value of this index is associated
                 with the same diffServClassMapEntry as identified by the same
                 value of diffServClassMapIndex."
    ::= { diffServPolicyMapElementEntry 2 }

diffServPolicyMapElementMeterIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the meter binding to this entry. The meter
                 identified by a particular value of this index is associated
                 with the same diffServMeterEntry as identified by the same
                 value of diffServMeterIndex. If this value is 
                 zero, no associated meter will be associated, as zero is not a 
                 valid meter index."
    ::= { diffServPolicyMapElementEntry 3 }

diffServPolicyMapElementActionIndex OBJECT-TYPE
    SYNTAX      Integer32(1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the action binding to this entry. The action
                 identified by a particular value of this index is associated
                 with the same diffServActionEntry as identified by the same
                 value of diffServActionIndex."
    ::= { diffServPolicyMapElementEntry 4 }

diffServPolicyMapElementStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used to create a new row, or modify or delete
                 an existing row, in this table. The status column has six
                 defined values:

                 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 the 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 the 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 the value 'notReady').

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

diffServClassMapTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServClassMapEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for class map."
        ::= { diffServMgt 13 }

diffServClassMapEntry OBJECT-TYPE
        SYNTAX      DiffServClassMapEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for class map."
        INDEX       { diffServClassMapIndex }
        ::= { diffServClassMapTable 1 }

DiffServClassMapEntry ::= SEQUENCE
{
    diffServClassMapIndex                Integer32,
    diffServClassMapName                 DisplayString,
    diffServClassMapDescription          DisplayString,
    diffServClassMapMatchType            INTEGER,
    diffServClassMapElementIndexTypeList OCTET STRING,
    diffServClassMapElementIndexList     OCTET STRING,
    diffServClassMapStatus               RowStatus
}

diffServClassMapIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry in this table."
        ::= { diffServClassMapEntry 1 }

diffServClassMapName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The name of this entry."
    ::= { diffServClassMapEntry 2 }

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

diffServClassMapMatchType OBJECT-TYPE
    SYNTAX       INTEGER {
                     matchAny(1),
                     matchAll(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The map match type of this entry."
    ::= { diffServClassMapEntry 4 }

diffServClassMapElementIndexTypeList OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The octet string containes the type of class map element
                 indexes. Two octets which are represented in network order
                 express one type of the class map element index in network
                 order and it maps the index of
                 differServClasssMapElementIndexList in order. When the type is
                 macAce(1), the maping index of 
                 differServClasssMapElementIndexList is the
                 diffServMacAceEntry. When the type is ipAce(2), the maping
                 index of differServClasssMapElementIndexList is the
                 diffServIpAceEntry. When the type is acl(3), the maping index
                 of differServClasssMapElementIndexList is the
                 diffServAclEntry. When the type is ipv6Ace(4), the maping
                 index of differServClasssMapElementIndexList is the
                 diffServIpv6AceEntry."
    ::= { diffServClassMapEntry 5 }

diffServClassMapElementIndexList OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The octet string containes the class map element indexes. Two
                 octets express one index and it is represented in
                 network order. This index list indicates the particular
                 class map elements which belong to this table. The class map 
                 element uses type to indicate diffServAclEntry, the
                 diffServIpAceEntry, the diffServMacAceEntry or 
                 diffServIpv6AceEntry. The type is two octet specified in
                 differServClasssMapElementIndexTypeList in order. When the 
                 type is macAce(1), the maping index of       
                 differServClasssMapElementIndexList is the     
                 diffServMacAceEntry. When the type is ipAce(2), the maping
                 index of differServClasssMapElementIndexList is the
                 diffServIpAceEntry. When the type is acl(3), the maping index
                 of differServClasssMapElementIndexList is the
                 diffServAclEntry. When the type is ipv6Ace(4), the maping
                 index of differServClasssMapElementIndexList is the
                 diffServIpv6AceEntry."
    ::= { diffServClassMapEntry 6 }

diffServClassMapStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used to create a new row or modify or delete
                 an existing row in this table.The status column has six
                 defined values:

                 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 the 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 the 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 the value 'notReady').

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

diffServClassMapAttachCtl  OBJECT IDENTIFIER   ::= { diffServMgt 14 }

diffServClassMapAttachCtlIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Index for attachment control. Specifies the class map as
                     the target to relate with class map elements. The class
                     map identified by a particular value of this index is
                     associated with the same diffServClassMapEntry as
                     identified by the same value of diffServClassMapIndex."
        ::= { diffServClassMapAttachCtl 1 }

diffServClassMapAttachCtlElementIndexType OBJECT-TYPE
    SYNTAX    INTEGER {
                     macAce(1),
                     ipAce(2),
                     acl(3),
                     ipv6Ace(4)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Element Index for attachment control. Specifies the type of
                 class map element to relate with the class map. When type is
                 macAce(1), the index of diffServClassMapAttachCtlElementIndex
                 is the index of diffServMacAceEntry. When the type is
                 ipAce(2), the index of diffServClassMapAttachCtlElementIndex
                 is the index of diffServIpAceEntry. When the type is acl(3),
                 the index of diffServClassMapAttachCtlElementIndex is the
                 index of diffServAclEntry. When the type is ipv6Ace(4), the
                 index of diffServClassMapAttachCtlElementIndex is the index of
                 diffServIpv6AceEntry."
    ::= { diffServClassMapAttachCtl 2 }

diffServClassMapAttachCtlElementIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Element Index for attachment control. Specifies the class map 
                 element related with the class map. The class map element uses 
                 type to indicate diffServAclEntry, the diffServIpAceEntry, the 
                 diffServMacAceEntry or the diffServIpv6AceEntry. The type is
                 specified in diffServClassMapAttachCtlElementIndexType. When
                 the type is macAce(1), the maping index of
                 differServClasssMapElementIndexList is the
                 diffServMacAceEntry. When the type is ipAce(2), the maping
                 index of differServClasssMapElementIndexList is the
                 diffServIpAceEntry. When the type is acl(3), the maping index
                 of differServClasssMapElementIndexList is the
                 diffServAclEntry. When the type is ipv6Ace(4), the maping
                 index of differServClasssMapElementIndexList is the
                 diffServIpv6AceEntry."
    ::= { diffServClassMapAttachCtl 3 }

diffServClassMapAttachCtlAction OBJECT-TYPE
    SYNTAX      INTEGER
                    {
                        noAction(1),
                        attach(2),
                        detach(3)
                    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Action for attachment control. When setting this object to 
                 attach(2) to begin the attaching operation, a particular class 
                 map element is attached to a particular class map. When 
                 setting this object to detach(3) to begin the not attached 
                 operation, then a particular class map element is not attached 
                 to a particular class map. When the action is finshed or no 
                 action is taken, the value of this object is noAction(1). The 
                 value of a particular class map is specified in the
                 AclAttachCtlTargetIndex. The class map element is specified
                 by diffServClassMapAttachCtlElementIndexType and
                 diffServClassMapAttachCtlElementIndex."
    ::= { diffServClassMapAttachCtl 4 }

diffServAclTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServAclEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for ACL."
        ::= { diffServMgt 15 }

diffServAclEntry OBJECT-TYPE
        SYNTAX      DiffServAclEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for ACL."
        INDEX       { diffServAclIndex }
        ::= { diffServAclTable 1 }

DiffServAclEntry ::= SEQUENCE
{
    diffServAclIndex        Integer32,
    diffServAclName         DisplayString,
    diffServAclType         INTEGER,
    diffServAclAceIndexList OCTET STRING,
    diffServAclStatus       RowStatus
}

diffServAclIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry in the ACL
                     table."
        ::= { diffServAclEntry 1 }

diffServAclName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The name of this entry."
    ::= { diffServAclEntry 2 }

diffServAclType OBJECT-TYPE
    SYNTAX      INTEGER {
                    mac(1),
                    ipstandard(2),
                    ipextended(3),
                    ipv6standard(4),
                    ipv6extended(5)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The type of this entry. When the value of ACL type is
                 modified, then the ACEs in the diffServAclAceIndexList of
                 this entry will be auto-removed, and this entry will be aoto-
                 unbound from the diffServPortTable and the
                 diffServClassMapTable."
    ::= { diffServAclEntry 3 }

diffServAclAceIndexList OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The octet string containes the ACE indexes. Two octets
                 express one index and it is represented in network
                 order. This index list indicates the particular ACEs which
                 belong to this table. The ACE uses type to indicate the
                 diffServIpAceEntry, the diffServMacAceEntry or the
                 diffServIpv6AceEntry. The type is specified in
                 diffServAclType. When the type is macAce(1), the index of
                 diffServAclAceIndexList is the diffServMacAceEntry. When the
                 type is ipAce(2), the index of diffServAclAceIndexList is
                 the diffServIpAceEntry. When the type is ipv6Ace(3), the
                 index of diffServAclAceIndexListis the
                 diffServIpv6AceEntry."
    ::= { diffServAclEntry 4 }

diffServAclStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used to create a new row or modify or delete
                 an existing row in this table. 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 the 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 the 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 the value 'notReady').

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

diffServAclAttachCtl  OBJECT IDENTIFIER   ::= { diffServMgt 16 }

diffServAclAttachCtlIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Index for attachment control. Specifies the ACL as the 
                     target to relate with the IP ACE, the MAC ACE or IPv6 ACE. 
                     The ACL identified by a particular value of this index  is 
                     associated with the same diffServAclEntry as identified by 
                     the same value of diffServAclIndex."
        ::= { diffServAclAttachCtl 1 }

diffServAclAttachCtlAceType OBJECT-TYPE
    SYNTAX    INTEGER {
        macAce(1),
        ipAce(2),
        ipv6Ace(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Type for attachment control. Specifies the type of 
                 diffServAclAttachCtlAceIndex to relate with the 
                 diffServAclAttachCtlIndex. When the type is macAce(1), the 
                 index of diffServAclAceIndexList is the diffServMacAceEntry. 
                 When the type is ipAce(2), the index of 
                 diffServAclAceIndexList is the diffServIpAceEntry. When the
                 type is ipv6Ace(3), the index of diffServAclAceIndexList
                 is the diffServIpv6AceEntry."
    ::= { diffServAclAttachCtl 2 }

diffServAclAttachCtlAceIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Index for attachment control. Specifies the ACE to relate with 
                 the diffServAclAttachCtlIndex. When 
                 diffServAclAttachCtlAceType is macAce(1), the value of 
                 diffServAclAttachCtlIndex is the diffServMacAceEntry. When 
                 diffServAclAttachCtlAceType is ipAce(2), the value of 
                 diffServAclAttachCtlIndex is the diffServIpAceEntry. When 
                 diffServAclAttachCtlAceType is ipv6Ace(3), the value of 
                 diffServAclAttachCtlIndex is the diffServIpv6AceEntry."
    ::= { diffServAclAttachCtl 3 }

diffServAclAttachCtlAction OBJECT-TYPE
    SYNTAX      INTEGER
                    {
                        noAction(1),
                        attach(2),
                        detach(3)
                    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Action for attachment control. When setting this object to 
                 attach(2) to begin the attaching operation, a particular ACE 
                 is attached to a particular ACL. When setting this object to 
                 detach(3) to begin the not attached operation, then a 
                 particular ACE is not attached to a particular ACL. When the 
                 action is finshed or no action is taken, the value of this 
                 object is noAction(1), The value of a particular ACL is 
                 specified in the diffServAclAttachCtlAceType and
                 diffServAclAttachCtlAceIndex."
    ::= { diffServAclAttachCtl 4 }

diffServIpAceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServIpAceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for IP ACE."
        ::= { diffServMgt 17 }

diffServIpAceEntry OBJECT-TYPE
        SYNTAX      DiffServIpAceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for IP ACE."
        INDEX       { diffServIpAceIndex }
        ::= { diffServIpAceTable 1 }

DiffServIpAceEntry ::= SEQUENCE
{
    diffServIpAceIndex                  Integer32,
    diffServIpAceType                   INTEGER,
    diffServIpAceAccess                 INTEGER,
    diffServIpAceSourceIpAddr           Integer32,
    diffServIpAceSourceIpAddrBitmask    Integer32,
    diffServIpAceDestIpAddr             Integer32,
    diffServIpAceDestIpAddrBitmask      Integer32,
    diffServIpAceProtocol               Integer32,
    diffServIpAcePrec                   Integer32,
    diffServIpAceTos                    Integer32,
    diffServIpAceDscp                   Integer32,
    diffServIpAceSourcePortOp           INTEGER,
    diffServIpAceMinSourcePort          Integer32,
    diffServIpAceMaxSourcePort          Integer32,
    diffServIpAceSourcePortBitmask      Integer32,
    diffServIpAceDestPortOp             INTEGER,
    diffServIpAceMinDestPort            Integer32,
    diffServIpAceMaxDestPort            Integer32,
    diffServIpAceDestPortBitmask        Integer32,
    diffServIpAceControlCode            Integer32,
    diffServIpAceControlCodeBitmask     Integer32,
    diffServIpAceStatus                 RowStatus
}

diffServIpAceIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry in the IP ACE
                     table."
        ::= { diffServIpAceEntry 1 }

diffServIpAceType OBJECT-TYPE
    SYNTAX  INTEGER {
      standard(1),
      extended(2)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The specified IP ACE type. When the type of this entry is
                 modified, then this entry will be auto-unbound from the
                 diffServAclEntry and the not supporting field of this entry
                 will be set 0."
    ::= { diffServIpAceEntry 2 }

diffServIpAceAccess 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."
    ::= { diffServIpAceEntry 3 }

diffServIpAceSourceIpAddr OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The specified source IP address. The packet's source address
                 is AND-ed with the value of IpAceSourceIpAddrBitmask and then
                 compared against the value of this object."
    ::= { diffServIpAceEntry 4 }

diffServIpAceSourceIpAddrBitmask OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The specified source IP address mask. The packet's source
                 address is AND-ed with the value of IpAceSourceIpAddr and
                 then compared against the value of this object."
    ::= { diffServIpAceEntry 5 }

diffServIpAceDestIpAddr OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The specified destination IP address. The packet's
                 destination address is AND-ed with the value of
                 diffServIpAceDestIpAddrBitmask and then compared against the
                 value of this object. This object may not be modified if the 
                 associated diffServIpAceType object is equal to standard(1)."
    ::= { diffServIpAceEntry 6 }

diffServIpAceDestIpAddrBitmask OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified destination IP address mask. This object may 
                     not be modified if the associated diffServIpAceType object 
                     is equal to standard(1)."
        ::= { diffServIpAceEntry 7 }

diffServIpAceProtocol 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
                 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. This object 
                 may not be modified if the associated diffServIpAceType object 
                 is equal to standard(1)."
    ::= { diffServIpAceEntry 8 }

diffServIpAcePrec OBJECT-TYPE
    SYNTAX      Integer32 (0..8)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the IP precedence value to match against. The value
                 of this object is ignored whenever the value of
                 diffServIpAcePrec object is 8. This object may not be modified 
                 if the associated diffServIpAceType object is equal to 
                 standard(1)."
    ::= { diffServIpAceEntry 9 }

diffServIpAceTos OBJECT-TYPE
    SYNTAX      Integer32 (0..16)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the IP ToS facility value to match against. The
                 value of this object is ignored whenever the value of
                 diffServIpAcePrec object is 9. This object may not be modified 
                 if the associated diffServIpAceType object is equal to 
                 standard(1)."
    ::= { diffServIpAceEntry 10 }

diffServIpAceDscp OBJECT-TYPE
    SYNTAX      Integer32 (0..64)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the DSCP value to match against. The value of this
                 object is ignored whenever the value of diffServIpAcePrec
                 object is 64. This object may not be modified if the 
                 associated diffServIpAceType object is equal to standard(1)."
    ::= { diffServIpAceEntry 11 }

diffServIpAceSourcePortOp 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. equal(2), which is used the
                 diffServIpAceSourcePortBitmask and the
                 diffServIpAceMinSourcePort to match against. range(3),which is
                 used the diffServIpAceMinSourcePort and the
                 diffServIpAceMaxSourcePort to match against. This object may 
                 not be modified if the associated diffServIpAceType object is 
                 equal to standard(1)."
    ::= { diffServIpAceEntry 12 }

diffServIpAceMinSourcePort OBJECT-TYPE
        SYNTAX      Integer32 (0..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "If the diffServIpAceSourcePortOp is range(3), this
                     indicates the lower bound of the TCP/UDP port number
                     value range. This object may not be modified if the 
                     associated diffServIpAceType object is equal to 
                     standard(1)."
        ::= { diffServIpAceEntry 13 }

diffServIpAceMaxSourcePort OBJECT-TYPE
    SYNTAX      Integer32 (0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServIpAceSourcePortOp is range(3), this indicates
                 the upper bound of the TCP/UDP port number value range. This 
                 object may not be modified if the associated
                 diffServIpAceType object is equal to standard(1)."
    ::= { diffServIpAceEntry 14 }

diffServIpAceSourcePortBitmask OBJECT-TYPE
    SYNTAX      Integer32 (0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServIpAceSourcePortOp is equal(2), this indicates
                 the bitmask of the diffServIpAceMinSourcePort. This object may 
                 not be modified if the associated diffServIpAceType object is 
                 equal to standard(1)."
    ::= { diffServIpAceEntry 15 }

diffServIpAceDestPortOp 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. equal(2), which is used the
                 diffServIpAceSourcePortBitmask and the
                 diffServIpAceMinDestPort to match against. range(3),which is
                 used the diffServIpAceMinDestPort and the
                 diffServIpAceMaxDestPort to match against. This object may not 
                 be modified if the associated diffServIpAceType object is 
                 equal to standard(1)."
    ::= { diffServIpAceEntry 16 }

diffServIpAceMinDestPort OBJECT-TYPE
    SYNTAX      Integer32 (0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServIpAceDestPortOp is range(3), this indicates
                 the lower bound of the TCP/UDP port number value range. This 
                 object may not be modified if the associated 
                 diffServIpAceType object is equal to standard(1)."
    ::= { diffServIpAceEntry 17 }

diffServIpAceMaxDestPort OBJECT-TYPE
    SYNTAX      Integer32 (0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServIpAceDestPortOp is range(3), this indicates
                 the upper bound of the TCP/UDP port number value range. This 
                 object may not be modified if the associated 
                 diffServIpAceType object is equal to standard(1)."
    ::= { diffServIpAceEntry 18 }

diffServIpAceDestPortBitmask OBJECT-TYPE
    SYNTAX      Integer32 (0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServIpAceDestPortOp is equal(2), this indicates
                 the bitmask of the diffServIpAceMinDestPort. This object may 
                 not be modified if the associated diffServIpAceType object
                 is equal to standard(1)."
    ::= { diffServIpAceEntry 19 }

diffServIpAceControlCode OBJECT-TYPE
    SYNTAX      Integer32 (0..64)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates how the control flags of TCP packets are to be
                 compared. diffServIpAceControlCode is AND-ed with
                 diffServIpAceControlCodeBitmask. This object may not be 
                 modified if the associated diffServIpAceType object is 
                 equal to standard(1)."
    ::= { diffServIpAceEntry 20 }

diffServIpAceControlCodeBitmask 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. This object may not be modified if the 
                 associated diffServIpAceType object is equal to standard(1)."
    ::= { diffServIpAceEntry 21 }

diffServIpAceStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used to create a new row or modify or delete
                 an existing row in this table. The status column has six
                 defined values:

                 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 the 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 the 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 the value 'notReady').

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

diffServMacAceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServMacAceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for MAC ACE."
        ::= { diffServMgt 18 }

diffServMacAceEntry OBJECT-TYPE
        SYNTAX      DiffServMacAceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for MAC ACE."
        INDEX       { diffServMacAceIndex }
        ::= { diffServMacAceTable 1 }

DiffServMacAceEntry ::= SEQUENCE
{
    diffServMacAceIndex                 Integer32,
    diffServMacAceAccess                INTEGER,
    diffServMacAcePktformat             INTEGER,
    diffServMacAceSourceMacAddr         MacAddress,
    diffServMacAceSourceMacAddrBitmask  MacAddress,
    diffServMacAceDestMacAddr           MacAddress,
    diffServMacAceDestMacAddrBitmask    MacAddress,
    diffServMacAceVidOp                 INTEGER,
    diffServMacAceMinVid                Integer32,
    diffServMacAceVidBitmask            Integer32,
    diffServMacAceMaxVid                Integer32,
    diffServMacAceEtherTypeOp           INTEGER,
    diffServMacAceEtherTypeBitmask      Integer32,
    diffServMacAceMinEtherType          Integer32,
    diffServMacAceMaxEtherType          Integer32,
    diffServMacAceStatus                RowStatus
}

diffServMacAceIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry in the MAC ACE
                     table."
        ::= { diffServMacAceEntry 1 }

diffServMacAceAccess 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."
        ::= { diffServMacAceEntry 2 }

diffServMacAcePktformat 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,
                 diffServMacAceStatus, is active(1)."
    ::= { diffServMacAceEntry 3 }

diffServMacAceSourceMacAddr OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates the 48-bit source MAC address. The specified source
                 MAC of the packet. The packet's source MAC address is AND-ed
                 with the value of diffServMacAceSourceMacAddrBitmask
                 and then compared against the value of this object."
    ::= { diffServMacAceEntry 4 }

diffServMacAceSourceMacAddrBitmask OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The specified source MAC address mask."
    ::= { diffServMacAceEntry 5 }

diffServMacAceDestMacAddr OBJECT-TYPE
    SYNTAX      MacAddress
    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
                 diffServMacAceDestMacAddrBitmask and then compared against
                 the value of this object."
    ::= { diffServMacAceEntry 6 }

diffServMacAceDestMacAddrBitmask OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The specified destination MAC address mask."
    ::= { diffServMacAceEntry 7 }

diffServMacAceVidOp 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,
                     diffServMacAceStatus, is active(1)."
        ::= { diffServMacAceEntry 8 }

diffServMacAceMinVid OBJECT-TYPE
    SYNTAX      Integer32 (1..4093)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates the lower bound of the VID value range if the
                 diffServMacAceVidOp is range(3)."
    ::= { diffServMacAceEntry 9 }

diffServMacAceVidBitmask OBJECT-TYPE
    SYNTAX      Integer32 (0..'0FFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The bitmask of the VID if the diffServMacAceVidOp is
                 equal(2). Default value is 0xfff."
    ::= { diffServMacAceEntry 10 }

diffServMacAceMaxVid OBJECT-TYPE
    SYNTAX      Integer32 (1..4093)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates the upper bound of the VID value range if the
                 diffServMacAceVidOp is range(3). This object cannot be
                 configured when the status of the entry,
                 diffServMacAceStatus, is active(1)."
    ::= { diffServMacAceEntry 11 }

diffServMacAceEtherTypeOp OBJECT-TYPE
    SYNTAX    INTEGER {
        noOperator(1),
        equal(2),
        range(3)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates how a packet's ether type is to be compared."
    ::= { diffServMacAceEntry 12 }

diffServMacAceEtherTypeBitmask OBJECT-TYPE
    SYNTAX      Integer32 (0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The bitmask of ether type if the diffServMacAceEtherTypeOp is
                 equal(2). The default value is 'FFFF'h."
    ::= { diffServMacAceEntry 13 }

diffServMacAceMinEtherType OBJECT-TYPE
        SYNTAX      Integer32 ('0600'h..'FFFF'h)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the lower bound of the ether type value range
                     if the diffServMacAceEtherTypeOp is range(3)."
        ::= { diffServMacAceEntry 14 }

diffServMacAceMaxEtherType OBJECT-TYPE
    SYNTAX      Integer32 ('0600'h..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates the upper bound of the ether type value range if
                 the diffServMacAceEtherTypeOp is range(3)."
    ::= { diffServMacAceEntry 15 }

diffServMacAceStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used to create a new row or modify or delete
                 an existing row in this table. The status column has six
                 defined values:

                 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 the 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 the 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 the value 'notReady').

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

diffServActionTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServActionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for action."
        ::= { diffServMgt 19 }

diffServActionEntry OBJECT-TYPE
        SYNTAX      DiffServActionEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for action."
        INDEX       { diffServActionIndex }
        ::= { diffServActionTable 1 }

DiffServActionEntry ::= SEQUENCE
{
    diffServActionIndex                 Integer32,
    diffServActionList                  BITS,
    diffServActionPktNewPri             Integer32,
    diffServActionPktNewIpPrec          Integer32,
    diffServActionPktNewDscp            Integer32,
    diffServActionRedPktNewDscp         Integer32,
    diffServActionRedDrop               EnabledStatus,
    diffServActionStatus                RowStatus
}

diffServActionIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry in the
                     action table."
        ::= { diffServActionEntry 1 }

diffServActionList OBJECT-TYPE
        SYNTAX      BITS 
                    {
                        actionPktNewPri(0),
                        actionPktNewIpPrec(1),
                        actionPktNewDscp(2),
                        actionRedPktNewDscp(3),
                        actionRedDrop(4)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The bitmap value used to identify which action
                     capabilities are enabled on the entry. The
                     actionPktNewPri, actionPktNewIpPrec and
                     actionPktNewDscp can not be enabled at the 
                     same time on the entry. The actionRedPktNewDscp and
                     actionRedDrop can not be enabled at the same 
                     time on the entry."
        ::= { diffServActionEntry 2 }

diffServActionPktNewPri OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the new priority value for the packet when 
                     the action is satisfied. If the actionPktNewPri bit of 
                     the diffServActionList is not enabled, this object can 
                     not be set."
        ::= { diffServActionEntry 3 }

diffServActionPktNewIpPrec  OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the new IP precedence facility value for 
                     the packet when the action is satisfied. If the 
                     actionPktNewIpPrec bit of the diffServActionList is not 
                     enabled, this object can not be set."
        ::= { diffServActionEntry 4 }

diffServActionPktNewDscp OBJECT-TYPE
        SYNTAX      Integer32 (0..63)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the new DSCP value for the packet when 
                     the action is satisfied. If the actionPktNewDscp bit of 
                     the diffServActionList is not enabled, this object 
                     can not be set."
        ::= { diffServActionEntry 5 }

diffServActionRedPktNewDscp OBJECT-TYPE
        SYNTAX      Integer32 (0..63)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the new DSCP value for the red
                     marking packet when the action is satisfied. If the
                     actionRedPktNewDscp bit of the diffServActionList is 
                     not enabled, this object can not be set."
        ::= { diffServActionEntry 6 }

diffServActionRedDrop OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The actionRedDrop bit of the            
                     diffServActionList is for configuring this 
                     object. If the value of this object is enabled, the 
                     red marking packet will be dropped."
        ::= { diffServActionEntry 7 }

diffServActionStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "This object is used to create a new row, modify or
                     delete an existing row in this table.
                 The status column has six defined values:

                 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 the 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 the 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 the value 'notReady').

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

diffServMeterTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServMeterEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for meter."
        ::= { diffServMgt 20 }

diffServMeterEntry OBJECT-TYPE
        SYNTAX      DiffServMeterEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for meter."
        INDEX       { diffServActionIndex }
        ::= { diffServMeterTable 1 }

DiffServMeterEntry ::= SEQUENCE
{
    diffServMeterIndex       Integer32,
    diffServMeterModel       INTEGER,
    diffServMeterRate        Integer32,
    diffServMeterBurstSize   Integer32,
    diffServMeterInterval    Integer32,
    diffServMeterStatus      RowStatus
}

diffServMeterIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry that describes a single set of token bucket
                     parameters."
        ::= { diffServMeterEntry 1 }

diffServMeterModel OBJECT-TYPE
    SYNTAX    INTEGER {
            default(1),
            flow(2),
            trTcmColorBlind(3),
            trTcmColorAware(4),
            srTcmColorBlind(5),
            srTcmColorAware(6)
        }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The Metering algorithm associated with the Token Bucket
                 parameters. The zeroDotZero indicates this is unknown."
    ::= { diffServMeterEntry 2 }

diffServMeterRate OBJECT-TYPE
    SYNTAX      Integer32 (1..100000)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The token-bucket rate, in kilobits per second (kbps)."
    ::= { diffServMeterEntry 3 }

diffServMeterBurstSize OBJECT-TYPE
    SYNTAX      Integer32 (64..1522)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum number of bytes in a single transmission burst."
    ::= { diffServMeterEntry 4 }

diffServMeterInterval OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The time interval used with the token bucket. "
    ::= { diffServMeterEntry 5 }

diffServMeterStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used to create a new row or modify or delete
                 an existing row in this table. The status column has six
                 defined values:

                 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 the 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 the 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 the value 'notReady').

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

diffServIpv6AceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServIpv6AceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for IPv6 ACE."
        ::= { diffServMgt 21 }

diffServIpv6AceEntry OBJECT-TYPE
        SYNTAX      DiffServIpv6AceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry fo IPv6 ACE."
        INDEX       { diffServIpv6AceIndex }
        ::= { diffServIpv6AceTable 1 }

DiffServIpv6AceEntry ::= SEQUENCE
{
   diffServIpv6AceIndex                 Integer32,
   diffServIpv6AceType                  INTEGER,
   diffServIpv6AceAccess                INTEGER,
   diffServIpv6AceSourceIpAddr          OCTET STRING,
   diffServIpv6AceSourceIpAddrPrefixLen Integer32,
   diffServIpv6AceDestIpAddr            OCTET STRING,
   diffServIpv6AceDestIpAddrPrefixLen   Integer32,
   diffServIpv6AceNextHeader            Integer32,
   diffServIpv6AceDscp                  Integer32,
   diffServIpv6AceFlowLabel             Unsigned32,
   diffServIpv6AceStatus                RowStatus
}

diffServIpv6AceIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry in the IPv6
                     table."
        ::= { diffServIpv6AceEntry 1 }

diffServIpv6AceType OBJECT-TYPE
    SYNTAX  INTEGER {
      standard(1),
      extended(2)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The specified IP v6 ACE type. When the type of this entry is
                 modified, then this entry will be auto-unbound from the
                 diffServAclEntry and the not supporting field of this entry
                 will be set 0."
    ::= { diffServIpv6AceEntry 2 }

diffServIpv6AceAccess 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."
    ::= { diffServIpv6AceEntry 3 }

diffServIpv6AceSourceIpAddr OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the source IPv6 address."
    ::= { diffServIpv6AceEntry 4 }

diffServIpv6AceSourceIpAddrPrefixLen OBJECT-TYPE
    SYNTAX      Integer32 (0..128)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The length (in bits) associated with the source IPv6 address
                 prefix of this entry."
    ::= { diffServIpv6AceEntry 5 }

diffServIpv6AceDestIpAddr OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the destination IPv6 address. This object may not be 
                 modified if the associated diffServIpv6AceType object is equal 
                 to standard(1)."
    ::= { diffServIpv6AceEntry 6 }

diffServIpv6AceDestIpAddrPrefixLen OBJECT-TYPE
    SYNTAX      Integer32 (0..64)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The length (in bits) associated with the destination IPv6
                 address prefix of this entry. This object may not be modified 
                 if the associated diffServIpv6AceType object is equal to 
                 standard(1)."
    ::= { diffServIpv6AceEntry 7 }

diffServIpv6AceNextHeader OBJECT-TYPE
    SYNTAX      Integer32 (0..256)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the IPv6 next header. This object may not be 
                 modified if the associated diffServIpv6AceType object is equal
                 to standard(1)."
    ::= { diffServIpv6AceEntry 8 }

diffServIpv6AceDscp OBJECT-TYPE
    SYNTAX      Integer32 (0..64)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the DSCP value to match against. This object may not 
                 be modified if the associated diffServIpv6AceType object is 
                 equal to standard(1)."
    ::= { diffServIpv6AceEntry 9 }

diffServIpv6AceFlowLabel OBJECT-TYPE
    SYNTAX      Unsigned32 ('00000000'h..'01000000'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the IPv6 flow label. This object may not be modified 
                 if the associated diffServIpv6AceType object is equal to 
                 standard(1)."
    ::= { diffServIpv6AceEntry 10 }

diffServIpv6AceStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This object is used to create a new row or modify or delete
                 an existing row in this table. The status column has six
                 defined values:

                 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 the 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 the 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 the value 'notReady').

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

--
-- securityMgt
--

-- Management for security, e.g. user security and port security.

privateVlanMgt      OBJECT IDENTIFIER ::= { securityMgt 1 }
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 }

--
-- PrivateVlanMgt
--

-- Management for Private VLAN.
--SYS_CPNT_PORT_TRAFFIC_SEGMENTATION(use SWCTRL api) start

privateVlanStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This controls whether private VLAN is enabled."
    ::= { privateVlanMgt 1 }

privateVlanUplinkPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This is the list of uplink ports for private VLAN.
            They should not overlap with privateVlanDownlinkPorts.
            Only one port can be set, no multiple ports.
            0 will be displayed if the privateVlanStatus is disabled.
            You must enable the privateVlanStatus before setting this variable."
    ::= { privateVlanMgt 2 }

privateVlanDownlinkPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This is the list of downlink ports for private VLAN.
            They should not overlap with privateVlanUplinkPorts.
            Multiple port setting is permitted.
            0 will be displayed if the privateVlanStatus is disabled.
            You must enable the privateVlanStatus before setting this variable."
    ::= { privateVlanMgt 3 }

--SYS_CPNT_PORT_TRAFFIC_SEGMENTATION(use SWCTRL api) end

-- PortSecurityMgt

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



portSecPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PortSecPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The port security(MAC binding) Table."
    ::= { portSecurityMgt 1 }

portSecPortEntry OBJECT-TYPE
    SYNTAX      PortSecPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The entry of portSecPortTable."
    INDEX       { portSecPortIndex }
    ::= { portSecPortTable 1 }

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

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

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

portSecAction OBJECT-TYPE
    SYNTAX        INTEGER
              {
            none(1),
            trap(2),
            shutdown(3),
            trapAndShutdown(4)
              }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION  "The corresponding actions that will take place when a
              port is under intrusion, when this variable is set to
              none(1), no action will be performed, when this variable is
              set to trap(2), a swPortSecurityTrap trap will be sent,
              when this variable is set to shutdown(3), the port will
              shutdown, when this variable is set to
              trapAndShutdown(4), a swPortSecurityTrap will be sent
              and the port will shutdown."
    ::= { portSecPortEntry 3  }

portSecMaxMacCount OBJECT-TYPE
    SYNTAX       Integer32 (0..1024)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION  "The maximun number of MAC addresses that will be learned and locked.
              When we change the value of this variable, if the
              portSecPortStatus is enabled, we will discard all secure MAC
              and begin to learn again, until the number of MAC has reached
              this value, and only the secure MAC addresses can enter
              this port. If the portSecPortStatus is disabled, we will begin
              to learn the MAC, and auto enabled the portSecPortStatus when
              the MAC has reached this value."
    ::= { portSecPortEntry 4 }

--
-- radiusMgt
--

-- Management for Remote Authentication Dial-In User Service (RADIUS).
--SYS_ADPT_MAX_NBR_OF_RADIUS_SERVERS=1: single server
--SYS_ADPT_MAX_NBR_OF_RADIUS_SERVERS>1: multiple server

--radiusServerTable

radiusServerTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RadiusServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table for RADIUS server."
    ::= { radiusMgt 1 }

radiusServerEntry OBJECT-TYPE
    SYNTAX      RadiusServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The conceptual row for radiusServerTable."
    INDEX
    {
        radiusServerIndex
    }
    ::= { radiusServerTable 1 }

RadiusServerEntry ::= SEQUENCE
{
    radiusServerIndex        Integer32,
    radiusServerAddressType  InetAddressType,
    radiusServerAddress      InetAddress,
    radiusServerPortNumber   InetPortNumber,
    radiusServerKey          DisplayString,
    radiusServerRetransmit   Integer32,
    radiusServerTimeout      Integer32,
    radiusServerStatus       ValidStatus
}

radiusServerIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The RADIUS server index."
    ::= { radiusServerEntry 1 }

radiusServerAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "IP address of a RADIUS server."
    ::= { radiusServerEntry 2 }

radiusServerAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "IP address of a RADIUS server."
    ::= { radiusServerEntry 3 }

radiusServerPortNumber OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "IP port number of a RADIUS server."
    ::= { radiusServerEntry 4 }

radiusServerKey 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."
    ::= { radiusServerEntry 5 }

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

radiusServerTimeout OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Timeout for RADIUS."
    ::= { radiusServerEntry 7 }

radiusServerStatus 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."
    ::= { radiusServerEntry 8 }

--
-- tacacsMgt
--

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

tacacsServerTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF TacacsServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table for TACACS server."
    ::= { tacacsMgt 1 }

tacacsServerEntry OBJECT-TYPE
    SYNTAX      TacacsServerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The conceptual row for tacacsServerTable."
    INDEX
    {
        tacacsServerIndex
    }
    ::= { tacacsServerTable 1 }

TacacsServerEntry ::= SEQUENCE
{
    tacacsServerIndex        Integer32,
    tacacsServerAddressType  InetAddressType,
    tacacsServerAddress      InetAddress,
    tacacsServerPortNumber   InetPortNumber,
    tacacsServerKey          DisplayString,
    tacacsServerStatus       ValidStatus
}

tacacsServerIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The RADIUS server index."
    ::= { tacacsServerEntry 1 }

tacacsServerAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The address type of the address associated with this agent.
        Only ipv4 and ipv6 types are supported."
    ::= { tacacsServerEntry 2 }

tacacsServerAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "IP address of TACACS server."
    ::= { tacacsServerEntry 3 }

tacacsServerPortNumber OBJECT-TYPE
    SYNTAX      InetPortNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "IP port number of TACACS server."
    ::= { tacacsServerEntry 4 }

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

tacacsServerStatus 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."
    ::= { tacacsServerEntry 6 }

--
-- 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
             enabled(1) to enable SSH server, set this value to
             disabled(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)
    UNITS       "seconds"
    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
{
--both sshv1 & sshv2 start
   sshConnID         Integer32,
   sshConnMajorVersion   Integer32,
   sshConnMinorVersion   Integer32,
   sshConnStatus     INTEGER,
--both sshv1 & sshv2 end
--both sshv1 & sshv2 start
   sshConnUserName   DisplayString,
   sshDisconnect     INTEGER,
--both sshv1 & sshv2 end
--sshv2 only start
   sshConnEncryptionTypeStr DisplayString
--sshv2 only end
}

--both sshv1 & sshv2 start
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) means the
             SSH is in its negotiation start state, authenticationStart(2)
             means the SSH is in authentication start state, sessionStart(3)
             means the SSH is in session start State."
    ::= { sshConnInfoEntry 5 }

--both sshv1 & sshv2 end

sshConnUserName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..8))
    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 variable to disconnect the connection,
             noDisconnect(1) will always be obtained when reading this variable."
    ::= { sshConnInfoEntry 7 }

--both sshv1 & sshv2 end

--sshv2 only start
sshConnEncryptionTypeStr  OBJECT-TYPE
SYNTAX      DisplayString (SIZE (0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The encryption type of the SSH."
    ::= { sshConnInfoEntry 8 }


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      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA host key segment 1."
    ::= { sshMgt 8 }

sshRsaHostKey2 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA host key segment 2."
    ::= { sshMgt 9 }

sshRsaHostKey3 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA host key segment 3."
    ::= { sshMgt 10 }

sshRsaHostKey4 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA host key segment 4."
    ::= { sshMgt 11 }

sshRsaHostKey5 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA host key segment 5."
    ::= { sshMgt 12 }

sshRsaHostKey6 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA host key segment 6."
    ::= { sshMgt 13 }

sshRsaHostKey7 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA host key segment 7."
    ::= { sshMgt 14 }

sshRsaHostKey8 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA host key segment 8."
    ::= { sshMgt 15 }

sshDsaHostKey1 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA host key segment 1."
    ::= { sshMgt 16 }

sshDsaHostKey2 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA host key segment 2."
    ::= { sshMgt 17 }

sshDsaHostKey3 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA host key segment 3."
    ::= { sshMgt 18 }

sshDsaHostKey4 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA host key segment 4."
    ::= { sshMgt 19 }

sshDsaHostKey5 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA host key segment 5."
    ::= { sshMgt 20 }

sshDsaHostKey6 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA host key segment 6."
    ::= { sshMgt 21 }

sshDsaHostKey7 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA host key segment 7."
    ::= { sshMgt 22 }

sshDsaHostKey8 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA host key segment 8."
    ::= { 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,
            and to 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 performed.
             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 performed,
             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,
             to delDsaKey(3) to delete the DSA host key,
             or to 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      KeySegment,
    sshUserRsaKey2      KeySegment,
    sshUserRsaKey3      KeySegment,
    sshUserRsaKey4      KeySegment,
    sshUserRsaKey5      KeySegment,
    sshUserRsaKey6      KeySegment,
    sshUserRsaKey7      KeySegment,
    sshUserRsaKey8      KeySegment,
    sshUserDsaKey1      KeySegment,
    sshUserDsaKey2      KeySegment,
    sshUserDsaKey3      KeySegment,
    sshUserDsaKey4      KeySegment,
    sshUserDsaKey5      KeySegment,
    sshUserDsaKey6      KeySegment,
    sshUserDsaKey7      KeySegment,
    sshUserDsaKey8      KeySegment,
    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      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA user key segment 1."
    ::= { sshUserEntry 2 }

sshUserRsaKey2 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA user key segment 2."
    ::= { sshUserEntry 3 }

sshUserRsaKey3 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA user key segment 3."
    ::= { sshUserEntry 4 }

sshUserRsaKey4 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA user key segment 4."
    ::= { sshUserEntry 5 }

sshUserRsaKey5 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA user key segment 5."
    ::= { sshUserEntry 6 }

sshUserRsaKey6 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA user key segment 6."
    ::= { sshUserEntry 7 }

sshUserRsaKey7 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA user key segment 7."
    ::= { sshUserEntry 8 }

sshUserRsaKey8 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The RSA user key segment 8."
    ::= { sshUserEntry 9 }

sshUserDsaKey1 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA user key segment 1."
    ::= { sshUserEntry 10 }

sshUserDsaKey2 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA user key segment 2."
    ::= { sshUserEntry 11 }

sshUserDsaKey3 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA user key segment 3."
    ::= { sshUserEntry 12 }

sshUserDsaKey4 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA user key segment 4."
    ::= { sshUserEntry 13 }

sshUserDsaKey5 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA user key segment 5."
    ::= { sshUserEntry 14 }

sshUserDsaKey6 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA user key segment 6."
    ::= { sshUserEntry 15 }

sshUserDsaKey7 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA user key segment 7."
    ::= { sshUserEntry 16 }

sshUserDsaKey8 OBJECT-TYPE
    SYNTAX      KeySegment
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DSA user key segment 8."
    ::= { 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,
             to delDsaKey(3) to delete the DSA user key,
             or to 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 }

--
-- ipFilterMgt
--

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

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

IpFilterSnmpEntry ::= SEQUENCE
{
    ipFilterSnmpStartAddressType    InetAddressType,
    ipFilterSnmpStartAddress        InetAddress,
    ipFilterSnmpEndAddressType      InetAddressType,
    ipFilterSnmpEndAddress          InetAddress,
    ipFilterSnmpStatus              ValidStatus
}

ipFilterSnmpStartAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The start IP address."
    ::= { ipFilterSnmpEntry 1 }

ipFilterSnmpStartAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The start IP address."
    ::= { ipFilterSnmpEntry 2 }

ipFilterSnmpEndAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The end IP address."
    ::= { ipFilterSnmpEntry 3 }

ipFilterSnmpEndAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The end IP address."
    ::= { ipFilterSnmpEntry 4 }

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

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

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

IpFilterHTTPEntry ::= SEQUENCE
{
    ipFilterHTTPStartAddressType    InetAddressType,
    ipFilterHTTPStartAddress        InetAddress,
    ipFilterHTTPEndAddressType      InetAddressType,
    ipFilterHTTPEndAddress          InetAddress,
    ipFilterHTTPStatus              ValidStatus
}

ipFilterHTTPStartAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The start IP address."
    ::= { ipFilterHTTPEntry 1 }

ipFilterHTTPStartAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The start IP address."
    ::= { ipFilterHTTPEntry 2 }

ipFilterHTTPEndAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The end IP address."
    ::= { ipFilterHTTPEntry 3 }

ipFilterHTTPEndAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The end IP address."
    ::= { ipFilterHTTPEntry 4 }

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

--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
    {
        ipFilterTelnetStartAddressType,
        ipFilterTelnetStartAddress
    }
    ::= { ipFilterTelnetTable 1 }

IpFilterTelnetEntry ::= SEQUENCE {
    ipFilterTelnetStartAddressType    InetAddressType,
    ipFilterTelnetStartAddress        InetAddress,
    ipFilterTelnetEndAddressType      InetAddressType,
    ipFilterTelnetEndAddress          InetAddress,
    ipFilterTelnetStatus              ValidStatus
}

ipFilterTelnetStartAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The start IP address."
    ::= { ipFilterTelnetEntry 1 }

ipFilterTelnetStartAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The start IP address."
    ::= { ipFilterTelnetEntry 2 }

ipFilterTelnetEndAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The end IP address."
    ::= { ipFilterTelnetEntry 3 }

ipFilterTelnetEndAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The end IP address."
    ::= { ipFilterTelnetEntry 4 }

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

--
-- layer3Mgt
--

-- Management for layer 3 settings and protocols.

ripMgt              OBJECT IDENTIFIER ::= { layer3Mgt 2 }
ospfMgt             OBJECT IDENTIFIER ::= { layer3Mgt 3 }

-- 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. In the real implemention, the actual timer is
                    this value 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 timeout 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
                    the 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
                    does not immediately purge that route from its table. Instead,
                    it continues to advertise the route with an infinite metric
                    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 an RIP version used globally by the router."
        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 and an IP subnet bound to it."
        ::= { 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 this value always is noReset(2)."
        ::= { ripMgt 5 }

ripNetworkAddrTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RipNetworkAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The RIF network address table."
        ::= { ripMgt 6 }

ripNetworkAddrEntry OBJECT-TYPE
        SYNTAX      RipNetworkAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row of the ripNetworkAddrTable."
        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 an 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 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."
       ::= { 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)
                }
        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 }
--
-- sysLogMgt
--

-- Management for system log. This configures the logging
-- of events inside the switch.

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

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

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

--
--remoteLogMgt
--

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 facility type for remote log."
    ::= { remoteLogMgt 3 }

--remoteLogServerTable

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
    {
        remoteLogServerIpType,
        remoteLogServerIp
    }
    ::= { remoteLogServerTable 1 }

RemoteLogServerEntry ::= SEQUENCE
{
    remoteLogServerIpType     InetAddressType,
    remoteLogServerIp         InetAddress,
    remoteLogServerStatus     ValidStatus
}

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

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

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

-- Management for line. This includes management for
-- serial line (RS232 port) and Telnet.

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 "Defines 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 console stop bits, valid values are stopbits1(1) or stopbits2(2)"
    ::= { consoleMgt 4 }

consoleExecTimeout OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "In a serial console, use the consoleExecTimeout
             variable 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      Integer32 (0..120)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The number of failed console logon attempts that may be
             made before the system will not accept a further attempt
             in the time specified by consoleSilentTime. A value of 0
             disables the functionality."
    ::= { consoleMgt 6 }

consoleSilentTime OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The length of time that the management console is
             inaccessible after the number of failed logon
             attempts has reached consolePasswordThreshold. A value
             of 0 disables the functionality."

    ::= { consoleMgt 7 }

consoleAdminBaudRate OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Baud rate. Valid values are 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 }

--to set login timeout seconds
consoleLoginResponseTimeout OBJECT-TYPE
    SYNTAX      Integer32 (0..300)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION  "Console login response timeout setting.
             Valid range is 0 to 300. Setting to 0 means disabled."
    ::= { consoleMgt 10 }

-- telnetMgt

telnetExecTimeout OBJECT-TYPE
    SYNTAX      Integer32 (1..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION  "Specifies the interval that the system waits for user input
              before terminating the current telnet session."
    ::= { telnetMgt 1 }

telnetPasswordThreshold OBJECT-TYPE
    SYNTAX      Integer32 (0..120)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The number of failed telnet logon attempts that may be made
             before the system will not accept a further attempt to logon
             with telnet."
    ::= { telnetMgt 2 }

--to set login timeout seconds
telnetLoginResponseTimeout OBJECT-TYPE
    SYNTAX      Integer32 (1..300)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION  "Telnet login response timeout setting.
             Valid range is 1 to 300.
             This timout setting cannot be disbled."
    ::= { telnetMgt 3 }

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 }

--
-- sysTimeMgt
--

sntpMgt          OBJECT IDENTIFIER ::= { sysTimeMgt 1 }
sysSummerTimeMgt OBJECT IDENTIFIER ::= { sysTimeMgt 7 }

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

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

sntpPollInterval OBJECT-TYPE
    SYNTAX  Integer32 (1..24)
    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,
    sntpServerIpAddressType InetAddressType,
    sntpServerIpAddress     InetAddress
}


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 }

sntpServerIpAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    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 are 0."
    ::= { sntpServerEntry 2 }

sntpServerIpAddress OBJECT-TYPE
    SYNTAX      InetAddress
    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 are 0."
    ::= { sntpServerEntry 3 }


sysCurrentTime OBJECT-TYPE
     SYNTAX  DisplayString (SIZE (20))
     MAX-ACCESS  read-write
     STATUS  current
     DESCRIPTION "This is a text string in the following form, based on Unix:
          'Mmm _d hh:mm:ss yyyy'. 'Mmm' are the first three letters
          of the English name of the month. '_d' is the day of month.
          A single-digit day is preceded by a space. 'hh:mm:ss' is
          a 24-hour representations of hours, minutes, and seconds.
          A single-digit hour is preceded by a zero. 'yyyy' is a
          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 "This 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. When
                  sysTimeZonePredefined object is set to any value other than
                  none(1), this object will be empty string."
     ::= { sysTimeMgt 3 }

sysTimeZoneName OBJECT-TYPE
     SYNTAX  DisplayString (SIZE (1..30))
     MAX-ACCESS  read-write
     STATUS  current
     DESCRIPTION "The name of the time zone. When sysTimeZonePredefined object
                  is set to any value other than none(1), this object will be
                  empty string."
     ::= { sysTimeMgt 4 }

sysTimeZonePredefined OBJECT-TYPE
     SYNTAX      INTEGER
                 {
                     none(1),
                     minus1200InternationalDateLineWest(8000),
                     minus1100MidwayIslandSamoa(9000),
                     minus1000Hawaii(10000),
                     minus0930Taiohae(10300),
                     minus0900Alaska(11000),
                     minus0800PacificTimeTijuana(12000),
                     minus0700Arizona(13000),
                     minus0700ChihuahuaLaPazMazatlan(13001),
                     minus0700MountainTimeUSCanada(13002),
                     minus0600CentralAmerica(14000),
                     minus0600CentralTimeUSCanada(14001),
                     minus0600GuadalajaraMexicoCityMonterrey(14002),
                     minus0600Saskatchewan(14003),
                     minus0500BogotaLimaQuito(15000),
                     minus0500EasternTimeUSCanada(15001),
                     minus0500IndianaEast(15002),
                     minus0400AtlanticTimeCanada(16000),
                     minus0400CaracasLaPaz(16001),
                     minus0400Santiago(16002),
                     minus0330Newfoundland(16700),
                     minus0300Brasilia(17000),
                     minus0300BuenosAiresGeorgetown(17001),
                     minus0300Greenland(17002),
                     minus0200MidAtlantic(18000),
                     minus0100Azores(19000),
                     minus0100CapeVerdeIs(19001),
                     gmtDublinEdinburghLisbonLondon(20000),
                     gmtCasablancaMonrovia(20001),
                     plus0100AmsterdamBerlinBernRomeStockholmVienna(21000),
                     plus0100BelgradeBratislavaBudapestLjubljanaPrague(21001),
                     plus0100BrusselsCopenhagenMadridParis(21002),
                     plus0100SarajevoSkopjeWarsawZagreb(21003),
                     plus0100WestCentralAfrica(21004),
                     plus0200AthensBeirutIstanbulMinsk(22000),
                     plus0200Bucharest(22001),
                     plus0200Cairo(22002),
                     plus0200HararePretoria(22003),
                     plus0200HelsinkiKyivRigaSofiaTallinnVilnius(22004),
                     plus0200Jerusalem(22005),
                     plus0300Baghdad(23000),
                     plus0300KuwaitRiyadh(23001),
                     plus0300MoscowStPetersburgVolgograd(23002),
                     plus0300Nairobi(23003),
                     plus0330Tehran(23300),
                     plus0400AbuDhabiMuscat(24000),
                     plus0400BakuTbilisiYerevan(24001),
                     plus0430Kabul(24300),
                     plus0500Ekaterinburg(25000),
                     plus0500IslamabadKarachiTashkent(25001),
                     plus0530ChennaiCalcutaMumbaiNewDelhi(25300),
                     plus0545Kathmandu(25450),
                     plus0600AlmatyNovosibirsk(26000),
                     plus0600AstanaDhaka(26001),
                     plus0600SriJayawardenepura(26002),
                     plus0630Rangoon(26300),
                     plus0700BangkokHanoiJakarta(27000),
                     plus0700Krasnoyarsk(27001),
                     plus0800BeijingChongqingHongKongUrumqi(28000),
                     plus0800IrkutskUlaanBataar(28001),
                     plus0800KualaLumpurSingapore(28002),
                     plus0800Perth(28003),
                     plus0800Taipei(28004),
                     plus0900OsakaSapporoTokyo(29000),
                     plus0900Seoul(29001),
                     plus0900Yakutsk(29002),
                     plus0930Adelaide(29300),
                     plus0930Darwin(29301),
                     plus1000Brisbane(30000),
                     plus1000CanberraMelbourneSydney(30001),
                     plus1000GuamPortMoresby(30002),
                     plus1000Hobart(30003),
                     plus1000Vladivostok(30004),
                     plus1030LordHoweIsland(30300),
                     plus1100MagadanSolomonIsNewCaledonia(31000),
                     plus1130Kingston(31300),
                     plus1200AucklandWellington(32000),
                     plus1200FijiKamchatkaMarshallIs(32001),
                     plus1245ChathamIsland(32450),
                     plus1300Nukualofa(33000),
                     plus1400Kiritimati(34000)
                 }
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "Specifies the time zone predefined mode. If time zone is
                  configured by sysTimeZone object, the value field will be
                  none(1). When this variable is set to any value other than
                  none(1), sysTimeZone and sysTimeZoneName will become empty
                  strings. This object can be set to none(1) only when it is
                  already equal to none(1)."
     ::= { sysTimeMgt 6 }

sysSummerTimeMode OBJECT-TYPE
     SYNTAX      INTEGER
                 {
                     disabled(1),
                     recurring(2),
                     date(3),
                     predefined(4)
                 }
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "The mode of the summer time."
     ::= { sysSummerTimeMgt 2 }

sysSummerTimeRecurringTime OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(37))
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "This is a text string in the following form, based on Unix:
                  'www Ddd Mmm hh:mm - www Ddd Mmm hh:mm'. 'www' is the week
                  number of the month. The range of 'www' is 1 to 5. The 5th
                  week is the last week of the month. 'Ddd' are the first three
                  letters of day of the week. 'Mmm' are the first three letters
                  of the month. 'hh:mm' is a 24-hour representation of hours
                  and minutes. A single-digit hour or minute is preceded by a
                  zero. An example is: '1st Sun Jul 00:00 - 4th Sun Oct 00:00'.
                  When sysSummerTimeMode is recurring(2), the object can be
                  modified. Empty string will be shown when sysSummerTimeMode
                  is not recurring(2)."
     ::= { sysSummerTimeMgt 3 }

sysSummerTimeDateTime OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(37))
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "This is a text string in the following form, based on Unix:
                  'Mmm _d yyyy hh:mm - Mmm _d yyyy hh:mm'. 'Mmm' are the first
                  three letters of the month. '_d' is the day of month.
                  A single-digit day is preceded by a space. 'yyyy' is a
                  four-digit year. The range is from 2001 to 2100. 'hh:mm' is
                  a 24-hour representation of hours and minutes. A single-digit
                  hour or minute is preceded by a zero. An example is:
                  'Jul  1 2002 00:00 - Oct  1 2002 00:00'. When
                  sysSummerTimeMode is date(3), the object can be modified.
                  Empty string will be shown when sysSummerTimeMode is not
                  date(3)."
     ::= { sysSummerTimeMgt 4 }

sysSummerTimePredefinedRegion OBJECT-TYPE
     SYNTAX      INTEGER
                 {
                     none(1),
                     usa(2),
                     europe(3),
                     australia(4),
                     newZealand(5)
                 }
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "The region of the summer time predefined mode. The offset of
                  predefined mode is 60 minutes. When sysSummerTimeMode is
                  predefined(4), the object can be modified. When
                  sysSummerTimeMode is not predefined(4), none(1) will be
                  shown. This object can be set to none(1) only when it is
                  already equal to none(1)."
     ::= { sysSummerTimeMgt 5 }

sysSummerTimeOffset OBJECT-TYPE
     SYNTAX      Integer32 (1..90)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "Specifies the number of minutes to add during summer time.
                  When sysSummerTimeMode is recurring(2) or date(3), offset
                  time can be modified. Zero will be shown when
                  sysSummerTimeMode is disabled(1). This object can only be set
                  to zero when sysSummerTimeMode is disabled(1). This object
                  can only be set to 60 when sysSummerTimeMode is
                  predefined(4)."
     ::= { sysSummerTimeMgt 6 }

sysSummerTimeEffect OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "This flag indicates whether summer time is in effect.
                 A value of true(1) indicates summer time is in effect.
                 A value of false(2) indicates summer time is not in effect."
    ::= { sysSummerTimeMgt 7 }

--
-- fileMgt
--

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


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

fileCopySrcOperType OBJECT-TYPE
    SYNTAX     INTEGER
           {
         file(1),
         runningCfg(2),
         startUpCfg(3),
         tftp(4),
         unit(5)
        }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "The Copy Operation that we want to perform on the
         fileCopyDestOperType, this operation is similar to the CLI
         command 'copy fileCopySrcOperType fileCopyDestOperType'.
         file(1) means we want to perform the 'copy file fileCopyDestType'
         operation, runningCfg(2) means we want to perform the
         'copy running-config fileCopyDestOperType' operation,
         startUpCfg(3) means we want to perform the
         'copy startup-config fileCopyDestOperType' operation, tftp(4) means
         we want to perform the 'copy tftp fileCopyDestOperType' operation,
         unit(5) is only available in stacking systems, in which we
         can copy files from one unit to another unit and it means
         we want to perform the 'copy unit fileCopyDestOperType' operation.
         The possible permutations are as follows: (1)copy file file
         (2)copy file runningCfg (3) copy file startUpCfg
         (4)copy file tftp (5) copy file unit(for stacking systems only)
         (6)copy runningCfg file (7)copy runningCfg startUpCfg
         (8)copy runningCfg tftp (9)copy startupCfg file
         (10)copy startupCfg runningCfg (11)copy startupCfg tftp
         (12)copy tftp file (13)copy tftp runningCfg
         (14)copy tftp startUpCfg (15)copy unit file."
    ::= { fileCopyMgt 1}

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

fileCopyDestOperType OBJECT-TYPE
    SYNTAX     INTEGER
           {
         file(1),
         runningCfg(2),
         startUpCfg(3),
         tftp(4),
         unit(5)
        }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "The Copy Operation that we want to perform on
         fileCopySrcOperType, this operation is similar to the CLI
         command 'copy fileCopySrcOperType fileCopyDestOperType'.
         file(1) means we want to perform the 'copy fileCopySrcType file '
         operation, runningCfg(2) means we want to perform the
         'copy fileCopySrcOperType running-config ' operation,
         startUpCfg(3) means we want to perform the
         'copy fileCopySrcOperType startup-config ' operation, tftp(4) means
         we want to perform the 'copy fileCopySrcOperType tftp' operation,
         unit(5) is only available in stacking systems in which we
         can copy files from one unit to another unit. It means
         we want to perform the 'copy fileCopySrcOperType unit' operation.
         The possible permutations are as follows: (1)copy file file
         (2)copy file runningCfg (3) copy file startUpCfg
         (4)copy file tftp (5) copy file unit(for stacking system only)
         (6)copy runningCfg file (7)copy runningCfg startUpCfg
         (8)copy runningCfg tftp (9)copy startupCfg file
         (10)copy startupCfg runningCfg (11)copy startupCfg tftp
         (12)copy tftp file (13)copy tftp runningCfg
         (14)copy tftp startUpCfg (15)copy unit file."
    ::= { fileCopyMgt 3 }

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

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

fileCopyTftpServerType  OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
    "The Internet Address Type of the TFTP server used for a file transfer
    when next requested via this MIB. This value is set to unknown(0) when 
    no Internet Address has been specified. If neither fileCopySrcOperType 
    nor fileCopyDestOperType are set to tftp(4), this variable can be ignored."
    ::= { fileCopyMgt 6 }

fileCopyTftpServer  OBJECT-TYPE
    SYNTAX     InetAddress
    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.
    If neither fileCopySrcOperType nor fileCopyDestOperType
    is tftp(4), this variable can be ignored."
    ::= { fileCopyMgt 7 }

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

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


fileCopyStatus  OBJECT-TYPE
    SYNTAX     FileCopyStatus
    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 10 }


fileInfoMgt OBJECT IDENTIFIER ::= { fileMgt 2 }
--
-- This mangement performs the display and delete operation.
--


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

    ::= { fileInfoMgt 1 }

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

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

    }

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

fileInfoFileName OBJECT-TYPE
    SYNTAX   DisplayString (SIZE (1..32))
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION "The file Name of the file System in the device."
    ::= { fileInfoEntry 2 }

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

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

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

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

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

--fileAutoDownloadResultTable

fileAutoDownloadResultTable OBJECT-TYPE
    SYNTAX   SEQUENCE OF FileAutoDownloadResultEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION "This table contains file auto download result information."
    ::= { fileMgt 3 }

fileAutoDownloadResultEntry OBJECT-TYPE
    SYNTAX   FileAutoDownloadResultEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION "A conceptual row for fileAutoDownloadResultTable."
    INDEX   {fileAutoDownloadResultUnitID}
    ::= { fileAutoDownloadResultTable 1 }

FileAutoDownloadResultEntry ::= SEQUENCE
    {
    fileAutoDownloadResultUnitID              Integer32,
    fileAutoDownloadResultAction                  INTEGER,
    fileAutoDownloadResultStatus              FileCopyStatus
    }

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

fileAutoDownloadResultAction OBJECT-TYPE
    SYNTAX   INTEGER
         {
              notCopying(1),
              copying(2)
         }
    MAX-ACCESS   read-only
    STATUS   current
    DESCRIPTION "The status of the auto download action.
             value copying(2) will be obtained if the auto download action is currently processing,
             or value notCopying(1) will be obtained if no auto download action is currently processing.

             You can check the download result through the fileAutoDownloadResultStatus object
             after the download action has finished.

             Please note that this object is read-only, since the auto download action is triggered
             automatically by the system when an image file or a config file is set as startup setting
             through the fileInfoIsStartUp, restartOpCodeFile or restartConfigFile objects,
             but not set by the user manually through this fileAutoDownloadResultAction object."
    ::= { fileAutoDownloadResultEntry 2 }

fileAutoDownloadResultStatus OBJECT-TYPE
    SYNTAX   FileCopyStatus
    MAX-ACCESS   read-only
    STATUS   current
    DESCRIPTION "The last auto download result status.
            value fileCopyUnknown(18) will be obtained
            if no download action has been performed before."
    ::= { fileAutoDownloadResultEntry 3 }

--
--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,
    dnsHostIpType     InetAddressType,
    dnsHostIp         InetAddress
}

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 }

dnsHostIpType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The DNS Host IP."
    ::= { dnsHostEntry 3 }

dnsHostIp OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The DNS Host IP."
    ::= { dnsHostEntry 4 }

--dnsAliasTable
dnsAliasTable OBJECT-TYPE
    SYNTAX   SEQUENCE OF DnsAliasEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION "This table displays the alias of the host name."
    ::= { dnsMgt 4 }

dnsAliasEntry OBJECT-TYPE
    SYNTAX   DnsAliasEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION "A conceptual row for the 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 defines 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 conceptual row for the 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.
         This table has fixed size, will get 0.0.0.0 dnsNameServerIp
         if this entry is not existed."
    ::= { dnsMgt 6 }

dnsNameServerEntry OBJECT-TYPE
    SYNTAX   DnsNameServerEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION "A conceptual row for dnsNameServerTable."
    INDEX   { dnsNameServerIndex }
    ::= { dnsNameServerTable 1 }

DnsNameServerEntry ::= SEQUENCE
{
    dnsNameServerIndex        Integer32,
    dnsNameServerIpType       InetAddressType,
    dnsNameServerIp           InetAddress
}

dnsNameServerIndex  OBJECT-TYPE
    SYNTAX       Integer32 (1..6)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Index of this dnsNameServerTable,
         representing the sequence of the dnsNameServerIp."
    ::= { dnsNameServerEntry 1 }


dnsNameServerIpType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS   read-write
    STATUS   current
    DESCRIPTION "IP address of name server."
    ::= { dnsNameServerEntry 2 }

dnsNameServerIp OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "IP address of name server."
    ::= { dnsNameServerEntry 3 }

--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 conceptual row for the dnsCacheTable."
    INDEX   { dnsCacheIndex }
    ::= { dnsCacheTable 1 }

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

dnsCacheIndex OBJECT-TYPE
    SYNTAX   Integer32
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION "The entry sequence number."
    ::= { 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 }

dnsCacheIpType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DNS cache IP."
    ::= { dnsCacheEntry 4 }

dnsCacheIp OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DNS cache IP."
    ::= { dnsCacheEntry 5 }

dnsCacheTtl OBJECT-TYPE
    SYNTAX      Integer32 (0..876000)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DNS cache TTL."
    ::= { dnsCacheEntry 6 }

dnsCacheDomain OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The DNS cache domain."
    ::= { dnsCacheEntry 7 }

--
--smtpMgt
--

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 SMTP server IP table.
            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
       {
           smtpServerIpType,
           smtpServerIp
       }
       ::= { smtpServerIpTable 1 }

SmtpServerIpEntry ::= SEQUENCE
{
    smtpServerIpType     InetAddressType,
    smtpServerIp         InetAddress,
    smtpServerIpStatus   ValidStatus
}

smtpServerIpType OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  accessible-for-notify
       STATUS      current
       DESCRIPTION "SMTP mail server's IP address."
       ::= { smtpServerIpEntry 1 }

smtpServerIp OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  accessible-for-notify
       STATUS      current
       DESCRIPTION "SMTP mail server's IP address."
       ::= { smtpServerIpEntry 2 }

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

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


--
-- trap definitions
--

    es4650fTraps  OBJECT IDENTIFIER ::= { es4650fNotifications 1 }
    es4650fTrapsPrefix OBJECT IDENTIFIER ::= { es4650fTraps 0 }

      swPowerStatusChangeTrap NOTIFICATION-TYPE
      OBJECTS     { swIndivPowerUnitIndex, swIndivPowerIndex, swIndivPowerStatus }
      STATUS      current
      DESCRIPTION "This trap is sent when the power state changes."
      ::= { es4650fTrapsPrefix 1 }

    swFanFailureTrap NOTIFICATION-TYPE
      OBJECTS     { switchUnitIndex, switchFanIndex }
      STATUS   current
      DESCRIPTION "This trap is sent when the fan is failure."
      ::= { es4650fTrapsPrefix 17 }

    swFanRecoverTrap NOTIFICATION-TYPE
      OBJECTS     { switchUnitIndex, switchFanIndex }
      STATUS   current
      DESCRIPTION "This trap is sent when fan failure has recovered."
      ::= { es4650fTrapsPrefix 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."
      ::= { es4650fTrapsPrefix 36 }

    swIpFilterRejectTrap NOTIFICATION-TYPE
      OBJECTS
      {
          trapIpFilterRejectMode,
          trapIpFilterRejectIpType,
          trapIpFilterRejectIp
      }
      STATUS   current
      DESCRIPTION "This trap is sent when an incorrect IP address is rejected by
            the ipfilter."
      ::= { es4650fTrapsPrefix 40 }

    swSmtpConnFailureTrap NOTIFICATION-TYPE
      OBJECTS
      {
          smtpServerIpType,
          smtpServerIp
      }
      STATUS   current
      DESCRIPTION "This trap is triggered if the SMTP system
               cannot open a connection to the mail server successfully."
      ::= { es4650fTrapsPrefix 41 }

    swMainBoardVerMismatchNotificaiton NOTIFICATION-TYPE
    OBJECTS       { swOpCodeVer, swOpCodeVer}
    STATUS        current
    DESCRIPTION
        "This trap is sent when the slave version is mismatch with the
         master version. This trap will binds two object, the first object
         indicate the master version, whereas the second represent the
         slave version. "
    ::= { es4650fTrapsPrefix 56 }

    swModuleVerMismatchNotificaiton NOTIFICATION-TYPE
    OBJECTS  { swExpectedModuleOpCodeVer, swModuleOpCodeVer }
    STATUS    current
    DESCRIPTION
      "This trap is sent when the module version is mismatch with the
       main board version. "
    ::= { es4650fTrapsPrefix 57 }

    swThermalRisingNotification NOTIFICATION-TYPE
    OBJECTS  { switchThermalTempValue, switchThermalActionRisingThreshold }
    STATUS   current
    DESCRIPTION
     "This trap is sent when the temperature is over the
     switchThermalActionRisingThreshold."
     ::= { es4650fTrapsPrefix 58 }

    swThermalFallingNotification NOTIFICATION-TYPE
    OBJECTS  { switchThermalTempValue, switchThermalActionFallingThreshold }
    STATUS   current
    DESCRIPTION
     "This trap is sent when the temperature is below the
     switchThermalActionFallingThreshold."
     ::= { es4650fTrapsPrefix 59 }

    swModuleInsertionNotificaiton NOTIFICATION-TYPE
    OBJECTS       { swModuleOpCodeVer}
    STATUS        current
    DESCRIPTION
        "This trap is sent when the module is inserted."
    ::= { es4650fTrapsPrefix 60 }

    swModuleRemovalNotificaiton NOTIFICATION-TYPE
    OBJECTS  { swModuleOpCodeVer }
    STATUS    current
    DESCRIPTION
      "This trap is sent when the module is removed."
    ::= { es4650fTrapsPrefix 61 }
    
    swStartupConfigChangedTrap NOTIFICATION-TYPE        
         OBJECTS     { trapVarLoginUserName, trapVarLoginMethod, trapVarLoginTime  }
         STATUS   current
         DESCRIPTION "This trap will be triggered if the startup configuration is changed."
         ::= { es4650fTrapsPrefix 65 }  
     
    swAuthenticationFailureWithTimeAndInetAddress NOTIFICATION-TYPE 
         OBJECTS     { trapVarLoginUserName, trapVarLoginMethod, trapVarLoginTime, trapVarLoginInetAddressType, trapVarLoginInetAddress }
         STATUS   current
         DESCRIPTION "This trap will be triggered if authentication is fail."            
         ::= { es4650fTrapsPrefix 105 } 
    swAuthenticationSuccessWithTimeAndInetAddress NOTIFICATION-TYPE 
         OBJECTS     { trapVarLoginUserName, trapVarLoginMethod, trapVarLoginTime, trapVarLoginInetAddressType, trapVarLoginInetAddress }
         STATUS   current
         DESCRIPTION "This trap will be triggered if authentication is successful."            
         ::= { es4650fTrapsPrefix 106 } 
END
