SIXNET-MIB DEFINITIONS ::= BEGIN

--
-- SIXNET enterprise MIB tree
--

IMPORTS
    Integer32, MODULE-IDENTITY, OBJECT-TYPE, enterprises,
    TimeTicks, Counter32, Unsigned32, IpAddress, NOTIFICATION-TYPE
                FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
    TEXTUAL-CONVENTION, TruthValue FROM SNMPv2-TC
    PortList, VlanIndex
                FROM Q-BRIDGE-MIB
    DisplayString, RowStatus, TruthValue
                FROM SNMPv2-TC
    EnabledStatus
                FROM P-BRIDGE-MIB
    BridgeId, Timeout, dot1dStpPortEntry, MacAddress
                FROM BRIDGE-MIB
    InetAddressType, InetAddress
                FROM INET-ADDRESS-MIB
    dot1xAuthConfigEntry
                FROM IEEE8021-PAE-MIB
    ifIndex
                FROM IF-MIB
    InterfaceIndex FROM IF-MIB;

sixnet MODULE-IDENTITY
    LAST-UPDATED "201002260000Z"
    ORGANIZATION "www.sixnet.com"
    CONTACT-INFO    
         "postal:   SIXNET, LLC
                    331 Ushers Road
                    Ballston Lake, NY 12019

          email:    support@sixnet.com"
    DESCRIPTION
        "Enterprise MIB for SIXNET products"

    REVISION     "201002260000Z"
    DESCRIPTION
        "Added dual-image firmware support"

    REVISION     "201002250000Z"
    DESCRIPTION
        "Added EL228 support, revised RTR status objects"

    REVISION     "200912070000Z"
    DESCRIPTION
        "Fixed IMPORTS and ring table, add ring to conformance group"

    REVISION     "200904270000Z"
    DESCRIPTION
        "Updated contact addresses"

    REVISION     "200812160000Z"
    DESCRIPTION
        "Added real-time ring status items"

    REVISION     "200607260000Z"
    DESCRIPTION
	"Top-level infrastructure of the SIXNET enterprise MIB tree"

    REVISION     "200607140000Z"
    DESCRIPTION
	"Revised testing section"

    REVISION     "200512120000Z"
    DESCRIPTION
	"et9ms -> etms with backwards-compatible aliases
	add PPP
	add conformance group"

    ::= { enterprises 20540}

--
--  SIXNET enterprise-specific management objects
--

sixnetObjects               OBJECT IDENTIFIER ::= {sixnet 1}
sixnetDevices               OBJECT IDENTIFIER ::= {sixnet 2}
-- sixnetEnumerations         OBJECT IDENTIFIER ::= {sixnet 3}
sixnetRTR                   OBJECT IDENTIFIER ::= {sixnet 4}
-- sixnetModuleIDs            OBJECT IDENTIFIER ::= {sixnetEnumerations 1}
-- sixnetAgentOIDs            OBJECT IDENTIFIER ::= {sixnetEnumerations 2}
sixnetExperimental          OBJECT IDENTIFIER ::= {sixnet 9999}

--
-- A subtree specifically designed for private testing purposes.
-- No "public" management objects should ever be defined within this tree.
--
-- It is provided for private experimentation, prior to transferring a MIB
-- structure to another part of the overall OID tree
--
sixnetPlaypen              OBJECT IDENTIFIER ::= {sixnetExperimental 9999}


--
--  Notifications
--

sixnetNotificationPrefix   OBJECT IDENTIFIER ::= {sixnet 5}
sixnetNotifications        OBJECT IDENTIFIER ::= {sixnetNotificationPrefix 0}
sixnetNotificationObjects  OBJECT IDENTIFIER ::= {sixnetNotificationPrefix 1}


--
--  Conformance
--

sixnetConformance          OBJECT IDENTIFIER ::= {sixnet 6}
sixnetCompliances          OBJECT IDENTIFIER ::= {sixnetConformance 1}
sixnetGroups               OBJECT IDENTIFIER ::= {sixnetConformance 2}


--
-- Devices
--

etms              OBJECT IDENTIFIER ::= { sixnetDevices 1 }
etmsScalars       OBJECT IDENTIFIER ::= { etms 1 }
etmsTables        OBJECT IDENTIFIER ::= { etms 2 }
-- etmsNotifications OBJECT IDENTIFIER ::= { etms 3 }
etmsTest          OBJECT IDENTIFIER ::= { etms 9999 }

--
-- Scalars
--

SixnetDiscrete ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "A discrete input or output value which may be turned on
            or off or may have an unknown state."
    SYNTAX  INTEGER {
                off(0),
                on(1),
                unknown(2)
            }

p1status OBJECT-TYPE
    SYNTAX SixnetDiscrete
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The current operational state of P1 power input."
    ::= { etmsScalars 1 }

p2status OBJECT-TYPE
    SYNTAX  SixnetDiscrete
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The current operational state of P2 power input."
    ::= { etmsScalars 2 }

oKstatus OBJECT-TYPE
    SYNTAX  SixnetDiscrete
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The current operational state of OK relay output."
    ::= { etmsScalars 3 }

serialNumber OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The serial number of the device."
    ::= { etmsScalars 4 }

sxid OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE(0..16))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The SXID of the device."
    ::= { etmsScalars 5 }

firmwareRevision OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE(0..16))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The firmware revision."
    ::= { etmsScalars 6 }

fromPLCstatus OBJECT-TYPE
    SYNTAX  SixnetDiscrete
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The current operational state of From PLC input."
    ::= { etmsScalars 7 }

-- The following two scalars are summary flags that can be calculated
-- from sxRingTable below.
-- These two are only implemented on MS and SL switches, not on EL
sxAllRingsGood OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "True if all rings configured for this switch are complete."
    ::= { etmsScalars 8 }

sxAllRingNeighborsGood OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "True if all neighbors in all configured rings for this switch are
        complete."
    ::= { etmsScalars 9 }

firmwareUpdate OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..128))
    MAX-ACCESS  write-only
    STATUS      current
    DESCRIPTION
            "Write a URL (ftp, tftp, http, https) to this property to
            begin a firmware update on the inactive location. The firmware
            update will proceed in the background, and may be monitored with
            firmwareTable.firmwareHealth. This may fail if the URL is not
            correct, the server is unreachable, or the download of the file
            from the server fails."
    ::= { etmsScalars 10 }


--
-- PPP
---

pppTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PppEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of interface entries."
    ::= { etmsTables 1 }

pppEntry OBJECT-TYPE
    SYNTAX      PppEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing management information applicable to a
            particular interface."
    INDEX   { pppifIndex }
    ::= { pppTable 1 }

PppEntry ::=
    SEQUENCE {
        pppifIndex              InterfaceIndex,
        pppifOperStatus		INTEGER
    }

pppifIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "A unique value, greater than zero, for each interface.  It
            is recommended that values are assigned contiguously
           starting from 1.  The value for each interface sub-layer
            must remain constant at least from one re-initialization of
            the entity's network management system to the next re-
            initialization."
    ::= { pppEntry 1 }

pppifOperStatus OBJECT-TYPE
    SYNTAX  INTEGER {
		unknown(0),
                down(1),
                up(2)
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The current operational state of the interface."
    ::= { pppEntry 2 }


--
-- Ring table
--

-- There are two scalar summary flags, sxAllRingsGood and sxAllNeighborsGood,
-- which are calculated from the data in this table.

SxRingIndex ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "d"
    STATUS          current
    DESCRIPTION
        "A unique value, greater than zero, identifying a ring in which this
        switch participates."
    SYNTAX          Integer32 (1..2147483647)

sxRingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF sxRingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of configured rings."
    ::= { etmsTables 2 }

sxRingEntry OBJECT-TYPE
    SYNTAX      SxRingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row containing status and configuration information for a
        particular ring."
    INDEX       { sxRingIndex }
    ::= { sxRingTable 1 }

SxRingEntry ::=
    SEQUENCE {
        sxRingIndex             SxRingIndex,
        sxRingName              DisplayString,
        sxRingGood              TruthValue,
        sxRingPrimarySeen       TruthValue,
        sxRingBackupSeen        TruthValue,
        sxRingPrimaryIf         InterfaceIndex,
        sxRingBackupIf          InterfaceIndex
    }

sxRingIndex OBJECT-TYPE
    SYNTAX      SxRingIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A unique value, greater than zero, identifying a ring in which this
        switch participates."
    ::= { sxRingEntry 1 }

sxRingName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255)) -- current limit is 33 chars
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A name describing the ring, unique among configured rings. The name
        has no inherent meaning to the switch."
    ::= { sxRingEntry 2 }

sxRingGood OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "True if the ring is complete, false otherwise."
    ::= { sxRingEntry 3 }

sxRingPrimarySeen OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "True if the switch has recently seen RPDUs from its primary neighbor
        on this ring."
    ::= { sxRingEntry 4 }

sxRingBackupSeen OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "True if the switch has recently seen RPDUs from its backup neighbor
        on this ring."
    ::= { sxRingEntry 5 }

sxRingPrimaryIf OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the interface configured as the primary port for this
        ring. Unique among all ports for all configured rings on this switch."
    ::= { sxRingEntry 6 }

sxRingBackupIf OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the interface configured as the backup port for this
        ring. Unique among all ports for all configured rings on this switch."
    ::= { sxRingEntry 7 }


--
-- Dual-image firmware entries
--

firmwareTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FirmwareEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of installed firmware images."
    ::= { etmsTables 3 }

firmwareEntry OBJECT-TYPE
    SYNTAX      FirmwareEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing management information applicable to a
            particular firmware image."
    INDEX       { firmwareIndex }
    ::= { firmwareTable 1 }

FirmwareEntry ::=
    SEQUENCE {
        firmwareIndex           INTEGER,
        firmwareDefault         INTEGER,
        firmwareRunning         INTEGER,
        firmwareVersion         OCTET STRING,
        firmwareHealth          INTEGER
    }

firmwareIndex OBJECT-TYPE
    SYNTAX      INTEGER {
                    first(1),
                    second(2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A value, either 1 or 2, identifying a specific firmware image location."
    ::= { firmwareEntry 1 }

firmwareDefault OBJECT-TYPE
    SYNTAX      INTEGER {
                    yes(1),
                    no(2),
                    unknown(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Whether the specified firmware location is the default for booting a
        normal switch. If the switch has failed to boot and has fallen back to
        the alternate image, this will remain the same. To attempt to boot the
        switch into the default image again, this must be set explicitly."
    ::= { firmwareEntry 2 }

firmwareRunning OBJECT-TYPE
    SYNTAX      INTEGER {
                    yes(1),
                    no(2),
                    unknown(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Whether the specified firmware location provided the firmware which is
        currently running in the switch."
    ::= { firmwareEntry 3 }

firmwareVersion OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The firmware revision of the firmware in this location, or '(Unknown)'
        if it cannot be determined."
    ::= { firmwareEntry 4 }

firmwareHealth OBJECT-TYPE
    SYNTAX      INTEGER {
                    healthy(1),
                    broken(2),
                    loading(3),
                    unknown(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The status of this firmware location. Healthy(1) means that the image
        is either running currently, or should be able to run. Broken(2) means
        the image is known to not be bootable, and cannot be set as the default
        image. Loading(3) means that a firmware load is currently taking place
        on that image. Unknown(4) means that the image was expected to boot, but
        did not, so the bootability of that image cannot be determined."
    ::= { firmwareEntry 5 }


--
-- Conformance information
-- 

sixnetCompliance1 MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION 
	   "This really just keeps MIB verification programs happy
	   because there is no external standard to which our private
	   MIB must conform."
    MODULE -- this module
         MANDATORY-GROUPS { sixnetSwitchGroup, sixnetTestGroup }
    GROUP sixnetSwitchGroup
    DESCRIPTION
        "Public objects in SIXNET switches"
    ::= { sixnetCompliances 1 }

sixnetSwitchGroup OBJECT-GROUP
    OBJECTS { p1status, p2status, oKstatus, 
              serialNumber, sxid, firmwareRevision, 
              fromPLCstatus, pppifOperStatus }
    STATUS current
    DESCRIPTION
            "A collection of objects providing information about
            SIXNET switches"
    ::= { sixnetGroups 1}

sixnetTestGroup OBJECT-GROUP
    OBJECTS { ifAdminSpeed, ifAdminPower, ledTestTrigger, 
              sixnetConfigState, sixnetConfigResult, sixnetConfigServer,
	      sixnetConfigFile }
    STATUS current
    DESCRIPTION
            "A collection of objects for testing."
    ::= { sixnetGroups 2}


--
-- EL228 objects
--

stakable            OBJECT IDENTIFIER ::= { sixnetDevices 2 }
el228MIB            OBJECT IDENTIFIER ::= { stakable 1 }

el228MIBObjects       OBJECT IDENTIFIER ::= { el228MIB 1 }
el228Notifications    OBJECT IDENTIFIER ::= { el228MIB 2 }
el228Conformance      OBJECT IDENTIFIER ::= { el228MIB 3 }

--supported groups
switchMgt           OBJECT IDENTIFIER ::= { el228MIBObjects 1 }
portMgt             OBJECT IDENTIFIER ::= { el228MIBObjects 2 }
trunkMgt            OBJECT IDENTIFIER ::= { el228MIBObjects 3 }
lacpMgt             OBJECT IDENTIFIER ::= { el228MIBObjects 4 }
staMgt              OBJECT IDENTIFIER ::= { el228MIBObjects 5 }
restartMgt          OBJECT IDENTIFIER ::= { el228MIBObjects 7 }
mirrorMgt           OBJECT IDENTIFIER ::= { el228MIBObjects 8 }
igmpSnoopMgt        OBJECT IDENTIFIER ::= { el228MIBObjects 9 }
ipMgt               OBJECT IDENTIFIER ::= { el228MIBObjects 10 }
vlanMgt             OBJECT IDENTIFIER ::= { el228MIBObjects 12 }
priorityMgt         OBJECT IDENTIFIER ::= { el228MIBObjects 13 }
trapDestMgt         OBJECT IDENTIFIER ::= { el228MIBObjects 14 }
qosMgt              OBJECT IDENTIFIER ::= { el228MIBObjects 16 }
securityMgt         OBJECT IDENTIFIER ::= { el228MIBObjects 17 }
sysLogMgt           OBJECT IDENTIFIER ::= { el228MIBObjects 19 }
lineMgt             OBJECT IDENTIFIER ::= { el228MIBObjects 20 }
sysTimeMgt          OBJECT IDENTIFIER ::= { el228MIBObjects 23 }
fileMgt             OBJECT IDENTIFIER ::= { el228MIBObjects 24 }
dnsMgt              OBJECT IDENTIFIER ::= { el228MIBObjects 26 }
stormMgt            OBJECT IDENTIFIER ::= { el228MIBObjects 33 }
mvrMgt              OBJECT IDENTIFIER ::= { el228MIBObjects 44 }
dhcpSnoopMgt        OBJECT IDENTIFIER ::= { el228MIBObjects 46 }
clusterMgt          OBJECT IDENTIFIER ::= { el228MIBObjects 47 }
ipSrcGuardMgt       OBJECT IDENTIFIER ::= { el228MIBObjects 48 }
upnpMgt             OBJECT IDENTIFIER ::= { el228MIBObjects 49 }
oamMgt              OBJECT IDENTIFIER ::= { el228MIBObjects 52 }
remoteMgt           OBJECT IDENTIFIER ::= { el228MIBObjects 53 }
sFlowMgt            OBJECT IDENTIFIER ::= { el228MIBObjects 55 }

-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------
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      OCTET STRING (SIZE(0..128))

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

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

--
-- switchMgt
--

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

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

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

switchInfoTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwitchInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table of descriptive and status information about
                     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             Unsigned32,
    swHardwareVer           DisplayString,
    swMicrocodeVer          DisplayString,
    swLoaderVer             DisplayString,
    swBootRomVer            DisplayString,
    swOpCodeVer             DisplayString,
    swPortNumber            Integer32,
    swPowerStatus           INTEGER,
    swRoleInSystem          INTEGER,
    swSerialNumber          DisplayString,
    swServiceTag            DisplayString,
    swModelNumber           DisplayString,
    swEpldVer               DisplayString
}

swUnitIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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 }

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 }

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

swIndivPowerUnitIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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 }

--
-- 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                Unsigned32,
    portName                 DisplayString,
    portType                 INTEGER,
    portSpeedDpxCfg          INTEGER,
    portFlowCtrlCfg          INTEGER,
    portCapabilities         BITS,
    portAutonegotiation      EnabledStatus,
    portSpeedDpxStatus       INTEGER,
    portFlowCtrlStatus       INTEGER,
    portTrunkIndex           Integer32,
    portComboForcedMode      INTEGER,
    portMasterSlaveModeCfg   INTEGER
}

portIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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..32))
        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)
                    }
        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      { disabled }
        ::= { 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}

portMasterSlaveModeCfg OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        master(1),
                        slave(2),
                        auto(3),
                        autoPreferMaster(4),
                        autoPreferSlave(5)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Configures the PHY mode when auto negotiation is disabled and
                     speed-duplex is 1000full for giga copper port."
        ::= { portEntry 15 }

--
-- 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                Unsigned32,
    trunkPorts                PortList,
    trunkCreation             INTEGER,
    trunkStatus               ValidStatus
}

trunkIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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 }

---
--- 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            Unsigned32,
    lacpPortStatus           EnabledStatus
}

lacpPortIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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,
    staPortOperEdgePort       TruthValue,
    staPortAdminPointToPoint  INTEGER,
    staPortOperPointToPoint   TruthValue,
    staPortSystemStatus       EnabledStatus,
    staPortLongAdminPathCost  Integer32,
    staPortLongOperPathCost   Integer32,
-- for Root Guard
    staPortRootGuardAdminStatus     EnabledStatus,
    staPortRootGuardOperStatus      EnabledStatus,
    staPortBpduGuard                EnabledStatus,
    staPortAdminEdgePortWithAuto	INTEGER,
    staPortBpduFilter               EnabledStatus
}

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 }


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(0..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.

          Setting this to 0 means that the path cost is automatically
          determined. In this case, read staPortLongOperPathCost to get
          the oper value."
    ::= { 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 }

-- for Root Guard
staPortRootGuardAdminStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the desired status of the root guard. This variable configures the root
                 guard feature to enforce the root bridge placement in the network."
    ::= { staPortEntry 13 }

staPortRootGuardOperStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The current operational status of the root guard which provides a
                 way to enforce the root bridge placement in the network."
    ::= { staPortEntry 14 }

staPortBpduGuard         OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "A value of enabled(1) indicates that BPDU port guard feature
                 is enabled for each port. A value of disabled(2) indicates
                 that the feature is disabled."
    ::= { staPortEntry 15 }

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 }

staPortBpduFilter  OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The administrative value of the BPDU filter parameter.
                 A value of enabled(1) indicates that this port will avoid
                 transmitting BPDUs on edge-port and the value of disabled(2)
                 indicates that this port will not avoid transmitting BPDUs
                 on edge-port."
    ::= { staPortEntry 18 }

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}

-- for 1s(MSTP) start
--
-- 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 (0..4094)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "An arbitrary integer within the range from 1 to the value of
          the maximum instance that uniquely identifies a spanning
          tree instance."
      ::= {xstInstanceCfgEntry 1 }

xstInstanceCfgPriority OBJECT-TYPE
     SYNTAX      Integer32 (0..61440)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "The priority of a specific spanning tree instance.
                  The value assigned should be in the range 0-61440
                  in steps of 4096."
     ::= { xstInstanceCfgEntry 2 }


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

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


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

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


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

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


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

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

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

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

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


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

xstInstanceCfgTxHoldCount OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION  "For RST or MST protocol, the value used by the port transmit
                  state machine to limit the maximum transmission rate."
     ::= { xstInstanceCfgEntry 15 }

xstInstanceCfgPathCostMethod OBJECT-TYPE
     SYNTAX      StaPathCostMode
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
       "For RST or MST protocol, this indicates the type of spanning tree path
       cost mode used by the switch. The mode applies to all instances of the
       Spanning Tree protocol running on the switch.

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

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

       When the value of this MIB object is set to short(1),
       the dot1dStpPortPathCost in BRIDGE-MIB must be used."
     ::= { xstInstanceCfgEntry 16 }

xstInstancePortTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF XstInstancePortEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION "The extension table for dot1dStpPortEntry to provide
                 additional Spanning Tree information and configuration."
     ::= { xstMgt 5 }

xstInstancePortEntry OBJECT-TYPE
     SYNTAX      XstInstancePortEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION "The conceptual row for xstInstancePortTable."
     INDEX       { xstInstancePortInstance, xstInstancePortPort }
     ::= { xstInstancePortTable 1 }

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

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

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

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

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

                  For ports which are disabled (see xstInstancePortEnable),
                  this object will have a value of discarding(1)."
              ::= { xstInstancePortEntry 4}

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

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

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

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

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

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

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

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

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 Multiple Spanning Tree region instance vlan configuration table.
                  Please read the actual instance vlan mapped in the mstInstanceOperTable."
     ::= { xstMgt 6 }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

mstInstanceEditRemainingHops OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION "The remaining hop count for this MST instance."
     ::= { mstInstanceEditEntry 6 }

--mstInstanceOperTable
mstInstanceOperTable OBJECT-TYPE
     SYNTAX      SEQUENCE OF MstInstanceOperEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION "The Multiple Spanning Tree region instance vlan mapped table."
     ::= { xstMgt 7 }

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

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

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

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

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

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

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

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

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

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

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

-- for 1s(MSTP) end

staLoopbackDetectionPortTable    OBJECT-TYPE
        SYNTAX      SEQUENCE OF StaLoopbackDetectionPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table provides the mechanism to configure the
                     spanning tree loopback detection of each port or trunk"
        ::= { staMgt 7 }

staLoopbackDetectionPortEntry    OBJECT-TYPE
        SYNTAX      StaLoopbackDetectionPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row of staLoopbackDetectionPortTable."
        INDEX       { staLoopbackDetectionPortIfIndex}
        ::= { staLoopbackDetectionPortTable  1 }

StaLoopbackDetectionPortEntry    ::= SEQUENCE
{
        staLoopbackDetectionPortIfIndex            InterfaceIndex,
        staLoopbackDetectionPortStatus             EnabledStatus,
        staLoopbackDetectionPortTrapStatus         EnabledStatus,
        staLoopbackDetectionPortReleaseMode        INTEGER,
        staLoopbackDetectionPortRelease            INTEGER
}

staLoopbackDetectionPortIfIndex        OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION "The port and the trunk interfaces 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."
        ::= { staLoopbackDetectionPortEntry  1 }

staLoopbackDetectionPortStatus    OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Status of the port on whether spanning tree loopback detection is enabled."
        ::= { staLoopbackDetectionPortEntry  2 }

staLoopbackDetectionPortTrapStatus    OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The parameter indicates whether the trap has
                     to be sent when the loopback BPDUs have been detected."
        ::= { staLoopbackDetectionPortEntry  3 }

staLoopbackDetectionPortReleaseMode   OBJECT-TYPE
        SYNTAX     INTEGER
        {
            auto(1),
            manual(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Setting it to auto(1) indicates that this port can be released
                     from discarding state automatically after loopback has occurred.
                     Setting it to manual(2) indicates that this port can be released
                     from discarding state manually after loopback has occurred."
        ::= { staLoopbackDetectionPortEntry  4 }

staLoopbackDetectionPortRelease    OBJECT-TYPE
        SYNTAX     INTEGER
        {
            noRelease(1),
            release(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this to release(2) to release the port from discarding state.
                     noRelease(1) will always be obtained when reading this variable."
        ::= { staLoopbackDetectionPortEntry  5 }

--
-- restartMgt
--

-- Management for restarting the switch.


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

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

restartControl  OBJECT-TYPE
    SYNTAX     INTEGER {
                    running(1),
                    warmBoot(2),
                    coldBoot(3)
              }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
         "Setting this object to warmBoot(2) causes the device to
         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  Unsigned32,
    mirrorSourcePort       Unsigned32,
    mirrorType             INTEGER,
    mirrorStatus           ValidStatus
}

mirrorDestinationPort OBJECT-TYPE
        SYNTAX      Unsigned32
        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      Unsigned32
        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 }

vlanMirrorTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VlanMirrorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for VLAN mirroring, enabling a VLAN to be mirrored
                     to a port."
        ::= { mirrorMgt 2 }

vlanMirrorEntry OBJECT-TYPE
        SYNTAX      VlanMirrorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row of vlanMirrorTable."
        INDEX       { vlanMirrorDestinationPort, vlanMirrorSourceVlan }
        ::= { vlanMirrorTable 1 }

VlanMirrorEntry ::= SEQUENCE
{
    vlanMirrorDestinationPort  Unsigned32,
    vlanMirrorSourceVlan       Unsigned32,
    vlanMirrorStatus           ValidStatus
}

vlanMirrorDestinationPort OBJECT-TYPE
        SYNTAX      Unsigned32
        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."
        ::= { vlanMirrorEntry 1 }

vlanMirrorSourceVlan OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The source VLAN for mirrored packets. 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."
        ::= { vlanMirrorEntry 2 }

vlanMirrorStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set this to valid(1) to create an entry. Set this to
                     invalid(2) to destroy an entry."
        ::= { vlanMirrorEntry 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 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 members."
    ::= { igmpSnoopMulticastCurrentEntry 4 }

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

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

IgmpSnoopMulticastStaticEntry ::=
    SEQUENCE {
        igmpSnoopMulticastStaticVlanIndex
            Unsigned32,
        igmpSnoopMulticastStaticIpAddress
            IpAddress,
        igmpSnoopMulticastStaticPorts
            PortList,
        igmpSnoopMulticastStaticStatus
            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 }

igmpSnoopLeaveProxy OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This enables or disables Leave Proxy for IGMP Snooping."
        ::= { igmpSnoopMgt 15 }

igmpSnoopFilterStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Parameter to enable or disable IGMP filtering on the device."
    ::= { igmpSnoopMgt 17 }

igmpSnoopProfileTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF IgmpSnoopProfileEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for configuring the IGMP snooping profile."
        ::= { igmpSnoopMgt 18 }

igmpSnoopProfileEntry OBJECT-TYPE
        SYNTAX      IgmpSnoopProfileEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The entry for configuring the IGMP snooping profile."
        INDEX       { igmpSnoopProfileId }
        ::= { igmpSnoopProfileTable 1 }

IgmpSnoopProfileEntry ::= SEQUENCE
{
    igmpSnoopProfileId               Unsigned32,
    igmpSnoopProfileAction           INTEGER,
    igmpSnoopProfileStatus           ValidStatus
}

igmpSnoopProfileId OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The ID of the IGMP snooping profile."
        ::= { igmpSnoopProfileEntry 1 }

igmpSnoopProfileAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    permit(1),
                    deny(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The access mode of the IGMP snooping profile."
    DEFVAL      { deny }
    ::= { igmpSnoopProfileEntry 2 }

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

igmpSnoopProfileCtl      OBJECT IDENTIFIER   ::= { igmpSnoopMgt 19 }

igmpSnoopProfileCtlId   OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The ID of the IGMP snooping profile."
        ::= { igmpSnoopProfileCtl 1 }

igmpSnoopProfileCtlInetAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
      "The address type is associated with this agent.
       Only ipv4(1) type is supported."
    ::= { igmpSnoopProfileCtl 2 }

igmpSnoopProfileCtlStartInetAddress OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The specified addresses in the start of the controlled IP multicast addresses."
        ::= { igmpSnoopProfileCtl 3 }

igmpSnoopProfileCtlEndInetAddress OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The specified addresses in the end of the controlled IP multicast addresses."
        ::= { igmpSnoopProfileCtl 4 }

igmpSnoopProfileCtlAction   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            noAction(1),
            create(2),
            destroy(3)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Setting it to create(2) creates the range of the controlled IP multicast addresses.
                     Setting it to destroy(3) destroys the range of the controlled IP multicast addresses.
                     When the action is completed, this object becomes noAction(1)."
        ::= { igmpSnoopProfileCtl 5 }

igmpSnoopProfileRangeTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF IgmpSnoopProfileRangeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for configuring the range of the IGMP snooping profile."
        ::= { igmpSnoopMgt 20 }

igmpSnoopProfileRangeEntry OBJECT-TYPE
        SYNTAX      IgmpSnoopProfileRangeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The entry for configuring the range of the IGMP snooping profile."
        INDEX       { igmpSnoopProfileRangeProfileId ,igmpSnoopProfileRangeInetAddressType,igmpSnoopProfileRangeStartInetAddress }
        ::= { igmpSnoopProfileRangeTable 1 }

IgmpSnoopProfileRangeEntry ::= SEQUENCE
{
    igmpSnoopProfileRangeProfileId           Unsigned32,
    igmpSnoopProfileRangeInetAddressType     InetAddressType,
    igmpSnoopProfileRangeStartInetAddress    InetAddress,
    igmpSnoopProfileRangeEndInetAddress      InetAddress,
    igmpSnoopProfileRangeAction              INTEGER
}

igmpSnoopProfileRangeProfileId  OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as igmpSnoopProfileId."
        ::= { igmpSnoopProfileRangeEntry 1 }

igmpSnoopProfileRangeInetAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
      "The address type is associated with this agent.
        Only ipv4(1) type is supported."
    ::= { igmpSnoopProfileRangeEntry 2 }

igmpSnoopProfileRangeStartInetAddress OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The specified addresses in the start of the controlled IP multicast addresses."
        ::= { igmpSnoopProfileRangeEntry 3 }

igmpSnoopProfileRangeEndInetAddress OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The specified addresses in the end of the controlled IP multicast addresses."
        ::= { igmpSnoopProfileRangeEntry 4 }

igmpSnoopProfileRangeAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    permit(1),
                    deny(2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The access mode of the IGMP snooping profile."
    DEFVAL      { deny }
    ::= { igmpSnoopProfileRangeEntry 5 }

igmpSnoopFilterPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF IgmpSnoopFilterPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port configuration in IGMP filtering."
        ::= { igmpSnoopMgt 21 }

igmpSnoopFilterPortEntry OBJECT-TYPE
        SYNTAX      IgmpSnoopFilterPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port configuration in IGMP filtering."
        INDEX       { igmpSnoopFilterPortIndex }
        ::= { igmpSnoopFilterPortTable 1 }

IgmpSnoopFilterPortEntry ::= SEQUENCE
{
    igmpSnoopFilterPortIndex              Unsigned32,
    igmpSnoopFilterPortProfileId          Integer32
}

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

igmpSnoopFilterPortProfileId OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "The igmpSnoopProfileEntry identified by a particular value of this index
             is the same interface identified by the same value of the igmpSnoopProfileId
             object. If there is no corresponding entry in the igmpSnoopProfileTable,
             then no association exists. In particular, if this value is zero, no
             associated profile will be generated, as zero is not a valid profile index."
        ::= { igmpSnoopFilterPortEntry 2 }

igmpSnoopThrottlePortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF IgmpSnoopThrottlePortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port configuration in IGMP throttling."
        ::= { igmpSnoopMgt 22 }

igmpSnoopThrottlePortEntry OBJECT-TYPE
        SYNTAX      IgmpSnoopThrottlePortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port configuration in IGMP throttling."
        INDEX       { igmpSnoopThrottlePortIndex }
        ::= { igmpSnoopThrottlePortTable 1 }

IgmpSnoopThrottlePortEntry ::= SEQUENCE
{
    igmpSnoopThrottlePortIndex            Unsigned32,
    igmpSnoopThrottlePortRunningStatus    TruthValue,
    igmpSnoopThrottlePortAction           INTEGER,
    igmpSnoopThrottlePortMaxGroups        Integer32,
    igmpSnoopThrottlePortCurrentGroups    Integer32
}

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

igmpSnoopThrottlePortRunningStatus OBJECT-TYPE
        SYNTAX  TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Describes the running status of the IGMP throttling to the switch.
                     A value of true(1) indicates the IGMP throttling mechanism is active.
                     A value of false(2) indicates the IGMP throttling mechanism is inactive."
        ::= { igmpSnoopThrottlePortEntry 2 }

igmpSnoopThrottlePortAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    replace(1),
                    deny(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The action mode of the IGMP throttling. A value of replace(1)
                 means to replace a joined multicast group randomly when an interface
                 receives an IGMP report and the number of current joined multicast groups
                 is equal to the maximum number of IGMP groups that the interface can join.
                 A value of deny(2) means to deny the IGMP report request when an interface
                 receives an IGMP report and the number of current joined multicast groups
                 is equal to the maximum number of IGMP groups that the interface can join."
    DEFVAL      { deny }
    ::= { igmpSnoopThrottlePortEntry 3 }

igmpSnoopThrottlePortMaxGroups  OBJECT-TYPE
        SYNTAX      Integer32(0..256)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The maximum number of IGMP groups that the interface can join."
        ::= { igmpSnoopThrottlePortEntry 4 }

igmpSnoopThrottlePortCurrentGroups   OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The current number of IGMP groups that the interface has joined."
        ::= { igmpSnoopThrottlePortEntry 5}

--
-- The IpMgt Group
--

-- Management for Internet Protocol (IP).

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

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

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

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

netConfigIfIndex  OBJECT-TYPE
    SYNTAX     Unsigned32
    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."
    ::= { netConfigEntry 1 }

netConfigIPAddress  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The IP address of this Net interface.  The default value
        for this object is 0.0.0.0.  If either the netConfigIPAddress
        or netConfigSubnetMask 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)."
    ::= { netConfigEntry 2 }

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

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

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

netConfigStatus  OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
			"The status of this 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."
    ::= { netConfigEntry 6 }

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

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

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         Unsigned32,
   dhcpcIfClientIdMode  INTEGER,
   dhcpcIfClientId      OCTET STRING
}

dhcpcIfIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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 }



--
-- 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            Unsigned32,
    vlanPortMode             INTEGER,
    vlanPortPrivateVlanType  INTEGER
}

vlanPortIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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),
                        access(3)
                    }
        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.
                    Setting it to access(3) sets an access link."
        ::= { vlanPortEntry 2 }

--¡@SYS_CPNT_COMMUNITY_PRIVATE_VLAN¡@(use PVLAN_MGR API) start
vlanPortPrivateVlanType OBJECT-TYPE
        SYNTAX     INTEGER
                   {
                       normal(1),
                       isolated(2),
                       community(3),
                       promiscous(4)
                   }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The port type defined for private VLAN."
       ::= { vlanPortEntry 3 }
-- SYS_CPNT_COMMUNITY_PRIVATE_VLAN (use PVLAN_MGR API) end

--
-- protocolVlanMgt
--
protocolVlanTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF ProtocolVlanEntry
    MAX-ACCESS  not-accessible
	STATUS      current
	DESCRIPTION "The configuration table which contains the binding entry
	             of the protocol-group and VLANs."
	::= { vlanMgt 5 }

protocolVlanEntry   OBJECT-TYPE
    SYNTAX      ProtocolVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The binding entry of the protocol-group and VLANs."
    INDEX       { protocolVlanGroupId }
    ::= { protocolVlanTable 1 }

ProtocolVlanEntry ::= SEQUENCE
{
    protocolVlanGroupId      Unsigned32,
    protocolVlanGroupVid     Integer32
}

protocolVlanGroupId     OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The specified protocol group of a binding entry."
    ::= { protocolVlanEntry 1 }

protocolVlanGroupVid    OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The vlan index of the binding entry. The vid zero is
                 used to delete the binding entry."
    ::= { protocolVlanEntry 2 }

vlanDot1qTunnelGlobalConfig OBJECT IDENTIFIER ::= { vlanMgt 7 }

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

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                Unsigned32,
    vlanDot1qTunnelPortMode                 INTEGER,
    vlanDot1qTunnelPortEtherType            Unsigned32
}

vlanDot1qTunnelPortIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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 ('0800'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 }

--
-- voiceVlanMgt
--
voiceVlanMgt        OBJECT IDENTIFIER ::= { vlanMgt 6 }

voiceVlanOuiTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF VoiceVlanOuiEntry
    MAX-ACCESS  not-accessible
	STATUS      current
	DESCRIPTION "A table containing the mac address which can be identified
	             by voice vlan."
	::= { voiceVlanMgt 1 }

voiceVlanOuiEntry OBJECT-TYPE
		SYNTAX  VoiceVlanOuiEntry
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION "A table containing the mac address which can be identified
		             by voice vlan."
        INDEX   { voiceVlanOuiAddress }
        ::= { voiceVlanOuiTable 1 }

VoiceVlanOuiEntry	::=
	SEQUENCE {
              voiceVlanOuiAddress	    MacAddress,
              voiceVlanOuiMask	        MacAddress,
              voiceVlanOuiDescription	DisplayString,
              voiceVlanOuiStatus  	    ValidStatus
		     }

voiceVlanOuiAddress OBJECT-TYPE
        SYNTAX      MacAddress
		MAX-ACCESS  not-accessible
		STATUS      current
		DESCRIPTION "MAC address can be identified by voice vlan."
		::= { voiceVlanOuiEntry 1 }

voiceVlanOuiMask OBJECT-TYPE
		SYNTAX      MacAddress
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION "The mask of MAC address."
		::= { voiceVlanOuiEntry 2 }

voiceVlanOuiDescription OBJECT-TYPE
		SYNTAX      DisplayString (SIZE(0..30))
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION "The description of oui."
		::= { voiceVlanOuiEntry 3 }

voiceVlanOuiStatus OBJECT-TYPE
		SYNTAX      ValidStatus
		MAX-ACCESS  read-create
		STATUS      current
		DESCRIPTION "Current operation status of the row."
		::= { voiceVlanOuiEntry 4 }

voiceVlanEnabledId  OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Voice vlan enable status: enabled (2..4095), disabled (-1)."
        ::= { voiceVlanMgt 2 }

voiceVlanAgingTime  OBJECT-TYPE
        SYNTAX  Integer32 (5..43200)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION " Voice vlan aging time, the unit of which is minute."
	DEFVAL      { 1440 }
        ::= { voiceVlanMgt 3 }

voiceVlanPortTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF VoiceVlanPortEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION " A list of voice vlan mode entries."
        ::= { voiceVlanMgt 7 }

voiceVlanPortEntry OBJECT-TYPE
        SYNTAX      VoiceVlanPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry containing voice vlan mode information,
                    which is applicable to a voice vlan enabled interface."
        INDEX   { voiceVlanPortIfIndex }
        ::= { voiceVlanPortTable 1 }

VoiceVlanPortEntry ::=
        SEQUENCE {
         voiceVlanPortIfIndex   Integer32 ,
         voiceVlanPortMode      INTEGER,
         voiceVlanPortSecurity  EnabledStatus,
         voiceVlanPortPriority  Integer32,
         voiceVlanPortRuleOui   EnabledStatus,
         voiceVlanPortRuleLldp  EnabledStatus
		 }

voiceVlanPortIfIndex OBJECT-TYPE
        SYNTAX      Integer32(1..2147483647)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The index of interface on which voice vlan function
                    is enabled."
        REFERENCE "IfIndex in RFC1213"
	::= { voiceVlanPortEntry 1 }

voiceVlanPortMode OBJECT-TYPE
        SYNTAX      INTEGER
                	{
                	auto (1),
                	manual (2),
                	none (3)
                	}
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Voice vlan configuration mode status."
        ::= { voiceVlanPortEntry 2 }

voiceVlanPortSecurity OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "If the security is enabled, the port is only allow voice
                     traffuc for the voice vlan."
        ::= { voiceVlanPortEntry 3 }

voiceVlanPortPriority OBJECT-TYPE
        SYNTAX      Integer32(0..6)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The priority of the voice vlan traffic in the port."
        ::= { voiceVlanPortEntry 4 }

voiceVlanPortRuleOui OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The address of voice device is learned from
                     Oui table."
        ::=  { voiceVlanPortEntry 5 }

voiceVlanPortRuleLldp OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The address of voice device is learned from
                     LLDP discovery."
        ::= { voiceVlanPortEntry 6 }

--
-- macVlanMgt
--

macVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MacVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table that contains the settings for MAC-based VLAN."
        ::= { vlanMgt 11 }

macVlanEntry OBJECT-TYPE
        SYNTAX      MacVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the macVlanTable."
        INDEX       { macVlanMacAddress }
        ::= { macVlanTable 1 }

MacVlanEntry ::= SEQUENCE
{
        macVlanMacAddress       MacAddress,
        macVlanId               Integer32,
        macVlanStatus           ValidStatus
}

macVlanMacAddress OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The MAC address that may specify an entry in the table
                     which contains MAC-based VLAN information."
        ::= { macVlanEntry 1 }

macVlanId OBJECT-TYPE
        SYNTAX      Integer32 (1..4092)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the VLAN ID which the MAC address associates
                     with."
        ::= { macVlanEntry 2 }

macVlanStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set this to valid(1) to create an entry. Set this to
                     invalid(2) to destroy an entry."
        ::= { macVlanEntry 4 }

macVlanClearAction OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noClear(1),
                        clear(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Action for clearing macVlanTable. When this object is set
                     to clear(2), all entries in macVlanTable will be cleared.
                     When this object is read, the value of this object is
                     always noClear(1)."
        ::= { vlanMgt 12 }

--
-- subnetVlanMgt
--

subnetVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SubnetVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table that contains the settings for IP subnet-based
                     VLAN."
        ::= { vlanMgt 13 }

subnetVlanEntry OBJECT-TYPE
        SYNTAX      SubnetVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the subnetVlanTable."
        INDEX       { subnetVlanMask, subnetVlanIpAddress }
        ::= { subnetVlanTable 1 }

SubnetVlanEntry ::= SEQUENCE
{
        subnetVlanIpAddress IpAddress,
        subnetVlanMask      IpAddress,
        subnetVlanId        Integer32,
        subnetVlanPriority  Integer32,
        subnetVlanStatus    ValidStatus
}

subnetVlanIpAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The IPv4 address of a subnet. Any assignment (implicit or
                     otherwise) of an instance of this object to a value x must
                     be rejected if the bitwise logical-AND of x with the value
                     of the corresponding instance of the subnetVlanMask object
                     is not equal to x."
        ::= { subnetVlanEntry 1 }

subnetVlanMask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The netmask of a subnet. Any assignment (implicit or
                     otherwise) of an instance of this object to a value x must
                     be rejected if the bitwise logical-AND of x with the value
                     of the corresponding instance of the subnetVlanIpAddress
                     object is not equal to subnetVlanIpAddress."
        ::= { subnetVlanEntry 2 }

subnetVlanId OBJECT-TYPE
        SYNTAX      Integer32 (1..4094)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the VLAN ID which the subnet associates with."
        ::= { subnetVlanEntry 3 }

subnetVlanPriority OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the priority whcich the subnet associates with."
        ::= { subnetVlanEntry 4 }

subnetVlanStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set this to valid(1) to create an entry. Set this to
                     invalid(2) to destroy an entry."
        ::= { subnetVlanEntry 5 }

subnetVlanClearAction OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noClear(1),
                        clear(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Action for clearing subnetVlanTable. When this object is
                     set to clear(2), all entries in subnetVlanTable will be
                     cleared. When this object is read, the value of this object
                     is always noClear(1)."
        ::= { vlanMgt 14 }

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

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           Unsigned32,
    prioIpDscpValue          Integer32,
    prioIpDscpCos            Integer32
}

prioIpDscpPort OBJECT-TYPE
        SYNTAX      Unsigned32
        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
prioCopy            OBJECT IDENTIFIER ::= { priorityMgt 8 }

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 }

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

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

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

prioWrrTrafficClass 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|P-BRIDGE-MIB.dot1dTrafficClass."
        ::= { prioWrrEntry 1 }

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

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

-- trapDestMgt
--

-- 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 { trapDestAddress }
    ::= { trapDestTable 1 }

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

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

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

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

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

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

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

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)
                 }
     MAX-ACCESS  accessible-for-notify
     STATUS      current
     DESCRIPTION "The method by which the user logs in to control the
                  switch."
     ::= { trapVar 12 }

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

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 }

--For Auto Upgrade

trapAutoUpgradeResult OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    succeeded(1),
                    failed(2)
                }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates which result triggers the trap."
    ::= { trapVar 18 }

trapAutoUpgradeNewVer OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..20))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates new version which was upgraded to.
                 When trapAutoUpgradeResult was failed(2), it would be
                 null string."
    ::= { trapVar 19 }

--
-- 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              Unsigned32,
    rlPortInputStatus        EnabledStatus,
    rlPortOutputStatus       EnabledStatus,
    rlPortInputLimitInKilo   Integer32,
    rlPortOutputLimitInKilo  Integer32
}

rlPortIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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 }

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

rlPortInputLimitInKilo OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Value of the input rate limit. Its unit is kilobits per
                     second. For a 100 Mbps port, the range is 64 to 100000.
                     For a 1000 Mbps port, the range is 64 to 1000000."
        ::= { rateLimitPortEntry 10 }

rlPortOutputLimitInKilo OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Value of the output rate limit. Its unit is kilobits per
                     second. For a 100 Mbps port, the range is 64 to 100000.
                     For a 1000 Mbps port, the range is 64 to 1000000."
        ::= { rateLimitPortEntry 11 }

--
--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             Unsigned32,
    diffServPortPolicyMapIndex      Integer32,
    diffServPortIngressIpAclIndex   Integer32,
    diffServPortIngressMacAclIndex  Integer32,
    diffServPortIngressIpv6AclIndex Integer32
}

diffServPortIfIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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              Unsigned32,
    diffServPolicyMapName               DisplayString,
    diffServPolicyMapDescription        DisplayString,
    diffServPolicyMapElementIndexList   OCTET STRING,
    diffServPolicyMapStatus             RowStatus
}

diffServPolicyMapIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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           Unsigned32,
    diffServPolicyMapElementClassMapIndex   Integer32,
    diffServPolicyMapElementMeterIndex      Integer32,
    diffServPolicyMapElementActionIndex     Integer32,
    diffServPolicyMapElementStatus          RowStatus
}

diffServPolicyMapElementIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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                Unsigned32,
    diffServClassMapName                 DisplayString,
    diffServClassMapDescription          DisplayString,
    diffServClassMapMatchType            INTEGER,
    diffServClassMapElementIndexTypeList OCTET STRING,
    diffServClassMapElementIndexList     OCTET STRING,
    diffServClassMapStatus               RowStatus
}

diffServClassMapIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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."
    ::= { 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 or diffServMacAceEntry. 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."
    ::= { 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)
                }
    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."
    ::= { 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 or
                 diffServMacAceEntry. 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."
    ::= { 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 whether
                 successfully or not, or no action is taken, the value of this
                 object always 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        Unsigned32,
    diffServAclName         DisplayString,
    diffServAclType         INTEGER,
    diffServAclAceIndexList OCTET STRING,
    diffServAclStatus       RowStatus
}

diffServAclIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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 whether successfully or not, or no action
                 is taken, the value of this object always 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                  Unsigned32,
    diffServIpAceType                   INTEGER,
    diffServIpAceAccess                 INTEGER,
    diffServIpAceSourceIpAddr           IpAddress,
    diffServIpAceSourceIpAddrBitmask    IpAddress,
    diffServIpAceDestIpAddr             IpAddress,
    diffServIpAceDestIpAddrBitmask      IpAddress,
    diffServIpAceProtocol               Integer32,
    diffServIpAcePrec                   Integer32,
    diffServIpAceTos                    Integer32,
    diffServIpAceDscp                   Integer32,
    diffServIpAceSourcePortOp           INTEGER,
    diffServIpAceMinSourcePort          Integer32,
    diffServIpAceSourcePortBitmask      Integer32,
    diffServIpAceDestPortOp             INTEGER,
    diffServIpAceMinDestPort            Integer32,
    diffServIpAceDestPortBitmask        Integer32,
    diffServIpAceControlCode            Integer32,
    diffServIpAceControlCodeBitmask     Integer32,
    diffServIpAceStatus                 RowStatus
}

diffServIpAceIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The specified source IP address. The packet's source address
                 is AND-ed with the value of IpAceSourceIpAddrBitmask and then
                 compared against the value of this object."
    ::= { diffServIpAceEntry 4 }

diffServIpAceSourceIpAddrBitmask OBJECT-TYPE
    SYNTAX      IpAddress
    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      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The specified destination IP address. The packet's
                 destination address is AND-ed with the value of
                 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      IpAddress
        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 }

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 }

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..63)
    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                 Unsigned32,
    diffServMacAceAccess                INTEGER,
    diffServMacAcePktformat             INTEGER,
    diffServMacAceSourceMacAddr         MacAddress,
    diffServMacAceSourceMacAddrBitmask  MacAddress,
    diffServMacAceDestMacAddr           MacAddress,
    diffServMacAceDestMacAddrBitmask    MacAddress,
    diffServMacAceVidOp                 INTEGER,
    diffServMacAceMinVid                Integer32,
    diffServMacAceVidBitmask            Integer32,
    diffServMacAceEtherTypeOp           INTEGER,
    diffServMacAceEtherTypeBitmask      Integer32,
    diffServMacAceMinEtherType          Integer32,
    diffServMacAceCosOp                 INTEGER,
    diffServMacAceCosBitmask            Integer32,
    diffServMacAceMinCos                Integer32,
    diffServMacAceStatus                RowStatus
}

diffServMacAceIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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..4094)
    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 bit mask of the VID. The default value is 0."
    DEFVAL     { 0 }
    ::= { diffServMacAceEntry 10 }

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 bit mask of Ether type. The default value is 0."
    DEFVAL     { 0 }
    ::= { diffServMacAceEntry 13 }

diffServMacAceMinEtherType OBJECT-TYPE
        SYNTAX      Integer32 ('0000'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 }

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 }

diffServMacAceCosOp OBJECT-TYPE
    SYNTAX    INTEGER {
        noOperator(1),
        equal(2),
        range(3)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates how a packet's CoS is compared.
                 If the object type of diffServMacAceCosOp is equal(2),
                 diffServMacAceMinCos indicates the CoS value for comparing, and
                 diffServMacAceCosBitmask is used as the bitmask of the CoS value.
                 If the object type of diffServMacAceCosOp is range(3),
                 diffServMacAceMinCos should be used as the lower bound of the CoS value."

    ::= { diffServMacAceEntry 17 }

diffServMacAceCosBitmask OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates the bitmask of the CoS value if the object type of
                 diffServMacAceCosOp is equal(2). The default value is 0."
    ::= { diffServMacAceEntry 18 }

diffServMacAceMinCos OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "If the object type of diffServMacAceCosOp is equal(2),
                     diffServMacAceMinCos indicates the CoS value for comparing.
                     If the object type of diffServMacAceCosOp is range(3),
                     diffServMacAceMinCos indicates the lower bound of the CoS value."
    ::= { diffServMacAceEntry 19 }

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                 Unsigned32,
    diffServActionList                  BITS,
    diffServActionPktNewPri             Integer32,
    diffServActionPktNewDscp            Integer32,
    diffServActionRedPktNewDscp         Integer32,
    diffServActionRedDrop               EnabledStatus,
    diffServActionStatus                RowStatus
}

diffServActionIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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),
                        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 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 }

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       Unsigned32,
    diffServMeterModel       INTEGER,
    diffServMeterRate        Integer32,
    diffServMeterBurstSize   Integer32,
    diffServMeterInterval    Integer32,
    diffServMeterStatus      RowStatus
}

diffServMeterIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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..1000000)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The token-bucket rate, in kilobits per second (kbps)."
    ::= { diffServMeterEntry 3 }

diffServMeterBurstSize OBJECT-TYPE
    SYNTAX      Integer32 (64..524288)
    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                 Unsigned32,
    diffServIpv6AceType                  INTEGER,
    diffServIpv6AceAccess                INTEGER,
    diffServIpv6AceSourceIpAddr          OCTET STRING,
    diffServIpv6AceSourceIpAddrPrefixLen Integer32,
    diffServIpv6AceDestIpAddr            OCTET STRING,
    diffServIpv6AceDestIpAddrPrefixLen   Integer32,
    diffServIpv6AceDscp                  Integer32,
    diffServIpv6AceStatus                RowStatus
}

diffServIpv6AceIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    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..8)
    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 }

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 }

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 }
ipFilterMgt         OBJECT IDENTIFIER ::= { securityMgt 9 }
dot1xMgt            OBJECT IDENTIFIER ::= { securityMgt 11}
aaaMgt              OBJECT IDENTIFIER ::= { securityMgt 12}
networkAccessMgt    OBJECT IDENTIFIER ::= { securityMgt 13}
macAuthMgt          OBJECT IDENTIFIER ::= { securityMgt 14}
webAuthMgt          OBJECT IDENTIFIER ::= { securityMgt 15}

--
-- SYS_CPNT_COMMUNITY_PRIVATE_VLAN (use PVLAN_MGR API) start

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

privateVlanVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PrivateVlanVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION   "A table containing private VLAN information on the
                       VLANs which currently exist."
        ::= { privateVlanMgt 4 }

privateVlanVlanEntry OBJECT-TYPE
        SYNTAX      PrivateVlanVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION  "A conceptual row containing the private VLAN
                      information on the VLANs for a particular management
                      domain."
        INDEX       { privateVlanVlanIndex }
        ::= { privateVlanVlanTable 1 }

PrivateVlanVlanEntry ::= SEQUENCE
{
   privateVlanVlanIndex             Integer32,
   privateVlanVlanType              INTEGER,
   privateVlanAssoicatedPrimaryVlan Integer32
}

privateVlanVlanIndex OBJECT-TYPE
         SYNTAX      Integer32(1..4094)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION "The VLAN ID of this private VLAN."
         ::= { privateVlanVlanEntry 1 }

privateVlanVlanType OBJECT-TYPE
         SYNTAX     INTEGER
                    {
                     invalid(1),
                     primary(2),
                     isolated(3),
                     community(4)
                     }
         MAX-ACCESS read-create
         STATUS     current
         DESCRIPTION "The VLAN type as defined for Private VLAN feature.
                      Set the value to invalid(1) to destroy an entry. Set
                      other values to create an entry. If an index
                      already exists, set others to modifiy it. Note that a VLAN's
                      private VLAN type cannot be changed once it has
                      any port members."
         ::= { privateVlanVlanEntry 2 }

privateVlanAssoicatedPrimaryVlan OBJECT-TYPE
         SYNTAX      Integer32(0..4094)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The VLAN ID of the associated primary VLAN used for
            the private VLAN feature if privateVlanVlanType has the
            value of isolated(3), community(4). If privateVlanVlanType
            has the value of primary(2), then this object has the value of 0.

            Note that one isolated VLAN can only be associated
            with one unique primary VLAN. One primary VLAN can only
            be associated with one isolated VLAN.

            One primary VLAN can be associated with multiple community VLANs;
            one community VLAN can only be associated with one unique primary VLAN."
         ::= { privateVlanVlanEntry 3 }


--
-- Table for configuring secondary VLAN on private ports
--

privateVlanPrivatePortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PrivateVlanPrivatePortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
             "A table containing information on the configuration of
              secondary VLANs on the device ports."
        ::= { privateVlanMgt 5 }

privateVlanPrivatePortEntry OBJECT-TYPE
        SYNTAX      PrivateVlanPrivatePortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A conceptual row containing information of the
            configuration of secondary VLANs for each port. An entry
            is created by the managed system for each interface which
            can be configured as a private port for Private VLAN
            feature."
        INDEX      { privateVlanPrivatePortIfIndex }
        ::= { privateVlanPrivatePortTable 1 }

PrivateVlanPrivatePortEntry ::= SEQUENCE
{
     privateVlanPrivatePortIfIndex        Unsigned32,
     privateVlanPrivatePortSecondaryVlan  Integer32
}

privateVlanPrivatePortIfIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as the ifIndex."
        ::= { privateVlanPrivatePortEntry 1 }

privateVlanPrivatePortSecondaryVlan OBJECT-TYPE
        SYNTAX      Integer32(0..4094)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
              "The VLAN ID of the secondary VLAN configured on this
              private port. A private port is a port that allows
              ingress traffic of the secondary VLAN as well as
              egress traffic of its associated primary VLAN, but
              blocks the egress traffic of the isolated VLAN while
              allowing the egress traffic of the community
              or twoWayCommunity VLAN depending on the type of the
              secondary VLAN.

              Note that a port can join a secondary VLAN only after
              this secondary VLAN has been associated with a primary
              VLAN, i.e., the cpvlanVlanAssociatedPrimaryVlan has a
              non-zero value. The default value of 0 for this object
              means this port has not yet joined a secondary VLAN."
        DEFVAL     { 0 }
        ::= { privateVlanPrivatePortEntry 2 }

--
-- Table for remapping secondary VLAN to primary VLAN on promiscuous
-- ports for Private VLAN feature
--

privateVlanPromPortTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF PrivateVlanPromPortEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION "A table containing secondary VLAN to primary VLAN remapping
                    information on ports of the device."
        ::= { privateVlanMgt 6 }

privateVlanPromPortEntry OBJECT-TYPE
        SYNTAX      PrivateVlanPromPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row containing secondary VLAN to primary
                    VLAN remapping information for each port.
                    An entry is created by the managed system for each interface
                     which can be configured as a promiscuous port for the
                     private VLAN feature."
        INDEX      { privateVlanPromPortIfIndex }
        ::= { privateVlanPromPortTable 1 }

PrivateVlanPromPortEntry ::= SEQUENCE
{
    privateVlanPromPortIfIndex          Unsigned32,
    privateVlanPromPortPrimaryVlanId    Integer32,
    privateVlanPromPortSecondaryRemap   OCTET STRING,
    privateVlanPromPortSecondaryRemap2k OCTET STRING,
    privateVlanPromPortSecondaryRemap3k OCTET STRING,
    privateVlanPromPortSecondaryRemap4k OCTET STRING
}

privateVlanPromPortIfIndex OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION  "This is defined as ifIndex."
    ::= { privateVlanPromPortEntry 1 }

privateVlanPromPortPrimaryVlanId OBJECT-TYPE
    SYNTAX      Integer32(0..4094)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The primary VLAN ID of the promiscous port."
    ::= { privateVlanPromPortEntry 2 }

privateVlanPromPortSecondaryRemap OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE (0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A string of octets containing one bit per VLAN in the
            management domain on this port. The first octet
            corresponds to VLANs with VlanIndexOrZero 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 VlanIndexOrZero in that octet.

            Note that if the length of this string is less than
            128 octets, any 'missing' octets are assumed to contain
            the value zero. An NMS may omit any zero-valued octets
            from the end of this string in order to reduce SetPDU
            size, and the agent may also omit zero-valued trailing
            octets, to reduce the size of GetResponse PDUs."
    ::= { privateVlanPromPortEntry 3 }

privateVlanPromPortSecondaryRemap2k 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 VlanIndexOrZero values of 1024 through 2047
            in the management domain on this port. The first octet
            corresponds to VLANs with VlanIndexOrZero 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 VlanIndexOrZero in
            that octet.

            Note that if the length of this string is less than
            128 octets, any 'missing' octets are assumed to contain
            the value zero. An NMS may omit any zero-valued octets
            from the end of this string in order to reduce SetPDU
            size, and the agent may also omit zero-valued trailing
            octets, to reduce the size of GetResponse PDUs.

            This object is only instantiated on devices which support
            the range of VlanIndexOrZero up to 4095."
    ::= { privateVlanPromPortEntry 4 }

privateVlanPromPortSecondaryRemap3k 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 VlanIndexOrZero values of 2048 through 3071
            in the management domain on this port. The first octet
            corresponds to VLANs with VlanIndexOrZero 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 VlanIndexOrZero in
            that octet.

            Note that if the length of this string is less than
            128 octets, any 'missing' octets are assumed to contain
            the value zero. An NMS may omit any zero-valued octets
            from the end of this string in order to reduce SetPDU
            size, and the agent may also omit zero-valued trailing
            octets, to reduce the size of GetResponse PDUs.

            This object is only instantiated on devices which support
            the range of VlanIndexOrZero up to 4095."
    ::= { privateVlanPromPortEntry 5 }

privateVlanPromPortSecondaryRemap4k 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 VlanIndexOrZero values of 3072 through 4095
            in the management domain on this port. The first octet
            corresponds to VLANs with VlanIndexOrZero 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 VlanIndexOrZero in
            that octet.

            Note that if the length of this string is less than
            128 octets, any 'missing' octets are assumed to contain
            the value zero. An NMS may omit any zero-valued octets
            from the end of this string in order to reduce SetPDU
            size, and the agent may also omit zero-valued trailing
            octets, to reduce the size of GetResponse PDUs.

            This object is only instantiated on devices which support
            the range of VlanIndexOrZero up to 4095."
    ::= { privateVlanPromPortEntry 6 }
-- SYS_CPNT_COMMUNITY_PRIVATE_VLAN (use PVLAN_MGR API) end

privateVlanSessionTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF PrivateVlanSessionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Contains the settings for private VLAN Session."
    ::= { privateVlanMgt 8 }

privateVlanSessionEntry   OBJECT-TYPE
    SYNTAX      PrivateVlanSessionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A conceptual row in the privateVlanSession table."
    INDEX { privateVlanSessionId }
    ::= { privateVlanSessionTable 1 }

PrivateVlanSessionEntry::= SEQUENCE
{
    privateVlanSessionId                            Unsigned32,
    privateVlanSessionUplinkPorts                   PortList,
    privateVlanSessionDownlinkPorts                 PortList,
    privateVlanSessionStatus                        ValidStatus
}

privateVlanSessionId              OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The session ID that may specifiy certain entry in the table which contains private
                 VLAN session information."
    ::= { privateVlanSessionEntry 1 }

privateVlanSessionUplinkPorts      OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is the list of uplink ports for a session of private VLAN. They should not
                 overlap with the privateVlanSessionPortDownlink of the same session, and they
                 also should not overlap with the privateVlanSessionPortUplink and the
                 privateVlanSessionPortDownlink of other session."
    ::= { privateVlanSessionEntry 2 }

privateVlanSessionDownlinkPorts      OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is the list of downlink ports for a session of private VLAN. They should not
                 overlap with the privateVlanSessionPortUplink of the same session, and they also
                 should not overlap with the privateVlanSessionPortUplink and the
                 privateVlanSessionPortDownlink of other session."
    ::= { privateVlanSessionEntry 3 }

privateVlanSessionStatus     OBJECT-TYPE
    SYNTAX      ValidStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this to valid(1) to create an entry. Sets this to
                 invalid(2) to destroy an entry."
    ::= { privateVlanSessionEntry 4 }

privateVlanUplinkToUplink     OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    blocking(1),
                    forwarding(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Sets this to blocking(2) to deny the traffic of uplink
                 ports between different sessions. Set this to forwarding(1)
                 to allow the traffic of uplink ports between different
                 sessions."
    ::= { privateVlanMgt 9 }

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      Unsigned32,
      portSecPortStatus     EnabledStatus,
      portSecAction         INTEGER,
      portSecMaxMacCount       Integer32
}

portSecPortIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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

radiusServerGlobalAuthPort OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Aauthentication port number for RADIUS server.
                     When specified radius server do not set
                     aauthentication port number, this value is used."
        ::= { radiusMgt 1 }

radiusServerGlobalAcctPort OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Accounting port number of RADIUS server.
                    When specified radius server do not set
                    accounting port number, this value is used."
        ::= { radiusMgt 2 }

radiusServerGlobalKey OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..48))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Key for RADIUS. This variable can only be written.
                     When this variable is read, it always returns a
                     zero-length string.
                     When specified radius server do not set
                     key, this this value is used."
        ::= { radiusMgt 3 }

radiusServerGlobalRetransmit OBJECT-TYPE
        SYNTAX      Integer32 (1..30)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Maximum number of retransmissions for RADIUS.
                     When specified radius server do not set
                     maximum number of retransmissions, this value is used."
        ::= { radiusMgt 4 }

radiusServerGlobalTimeout OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Timeout for RADIUS.
                     When specified radius server do not set
                     timeout, this value is used."
        ::= { radiusMgt 5 }

--radiusServerTable

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

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

RadiusServerEntry ::= SEQUENCE
{
   radiusServerIndex                  Unsigned32,
   radiusServerAddress                IpAddress,
   radiusServerAuthPortNumber         Integer32,
   radiusServerAcctPortNumber         Integer32,
   radiusServerKey                    DisplayString,
   radiusServerRetransmit             Integer32,
   radiusServerTimeout                Integer32,
   radiusServerStatus                 ValidStatus
}

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

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

radiusServerAuthPortNumber OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Authentication port number of RADIUS server."
        ::= { radiusServerEntry 3 }

radiusServerAcctPortNumber OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Accounting port number of RADIUS server."
        ::= { radiusServerEntry 4 }

radiusServerKey OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..48))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Key for RADIUS. This variable can only be written.
                     When this variable is read, it always returns a
                     zero-length string."
        ::= { radiusServerEntry 5 }

radiusServerRetransmit OBJECT-TYPE
        SYNTAX      Integer32 (1..30)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Timeout for RADIUS."
        ::= { radiusServerEntry 6 }

radiusServerTimeout OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-write
        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+).

-- Global server setting
tacacsPlusServerGlobalPortNumber OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "TCP port number of TACACS+ server.
                     When specified TACACS+ server do not set
                     TCP port number, this this value is used."
        ::= { tacacsMgt 2 }

tacacsPlusServerGlobalKey OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..48))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION  "The encryption key used to encrpt the traffic between client and
                  TACACS+ server. 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.When specified TACACS+ server do not set
                  the encryption key , this this value is used."
        ::= { tacacsMgt 3 }

tacacsPlusServerTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF TacacsPlusServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for TACACS+ server."
        ::= { tacacsMgt 4 }

tacacsPlusServerEntry OBJECT-TYPE
        SYNTAX      TacacsPlusServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for tacacsPlusServerTable."
        INDEX       { tacacsPlusServerIndex }
        ::= { tacacsPlusServerTable 1 }

TacacsPlusServerEntry ::= SEQUENCE
{
   tacacsPlusServerIndex            Unsigned32,
   tacacsPlusServerAddress          IpAddress,
   tacacsPlusServerPortNumber       Integer32,
   tacacsPlusServerKey	            DisplayString,
   tacacsPlusServerStatus           ValidStatus,
   tacacsPlusServerRetransmit       Integer32,
   tacacsPlusServerTimeout          Integer32
}

tacacsPlusServerIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "TACACS+ server index."
        ::= { tacacsPlusServerEntry 1 }

tacacsPlusServerAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "IP address of a TACACS+ server."
        ::= { tacacsPlusServerEntry 2 }

tacacsPlusServerPortNumber OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "TCP port number of a TACACS+ server."
        ::= { tacacsPlusServerEntry 3 }

tacacsPlusServerKey OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..48))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The encryption key used to encrpt the traffic between client and
                     TACACS+ server. 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."
        ::= { tacacsPlusServerEntry 4 }

tacacsPlusServerStatus 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."
        ::= { tacacsPlusServerEntry 8 }

tacacsPlusServerRetransmit OBJECT-TYPE
        SYNTAX      Integer32 (1..30)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The maximum number of retransmissions for TACACS+."
        ::= { tacacsPlusServerEntry 9 }

tacacsPlusServerTimeout OBJECT-TYPE
        SYNTAX      Integer32 (1..540)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Timeout for TACACS+."
        ::= { tacacsPlusServerEntry 10 }

tacacsPlusServerGlobalRetransmit OBJECT-TYPE
        SYNTAX      Integer32 (1..30)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The maximum number of retransmissions for TACACS+ global server."
        ::= { tacacsMgt 5 }

tacacsPlusServerGlobalTimeout OBJECT-TYPE
        SYNTAX      Integer32 (1..540)
        UNITS       "seconds"
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION " Timeout for TACACS+ global server."
        ::= { tacacsMgt 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      Integer32(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      Integer32(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             Unsigned32,
   sshConnMajorVersion   Integer32,
   sshConnMinorVersion   Integer32,
   sshConnStatus         INTEGER,
--both sshv1 & sshv2 end
--sshv1 only start
   sshConnEncryptionType INTEGER,
--sshv1 only 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      Unsigned32
        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 }

--both sshv1 & sshv2 end
--sshv1 only start
sshConnEncryptionType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                      none(1),
                      des(2),
                      tribeDes(3)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The encryption type of the SSH. none(1) means no encryption
                     , des(2) means using DES encryption, tribeDes means using
                     3DES encryption."
        ::= { sshConnInfoEntry 4 }
--sshv1 only end

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


--both sshv1 & sshv2 start


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

sshRsaHostKeySHA1FingerPrint OBJECT-TYPE
       SYNTAX     DisplayString(SIZE(65))
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION "The SHA1 finger print of the RSA host key."
       ::= { sshMgt 30 }

sshRsaHostKeyMD5FingerPrint OBJECT-TYPE
       SYNTAX     DisplayString(SIZE(47))
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION "The MD5 finger print of RSA host key."
       ::= { sshMgt 31 }

sshDsaHostKeySHA1FingerPrint OBJECT-TYPE
       SYNTAX     DisplayString(SIZE(65))
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION "The SHA1 finger print of the DSA host key."
       ::= { sshMgt 32 }

sshDsaHostKeyMD5FingerPrint OBJECT-TYPE
       SYNTAX     DisplayString(SIZE(47))
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION "The MD5 finger print of the DSA host key."
       ::= { sshMgt 33 }
--sshv2 only end

--
-- aaaMgt
--

aaaMethodTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AaaMethodEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Contains the settings needed for accounting."
        ::= { aaaMgt 1 }

aaaMethodEntry OBJECT-TYPE
        SYNTAX      AaaMethodEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the aaaMethodTable."
        INDEX      { aaaMethodIndex }
        ::= { aaaMethodTable 1 }

AaaMethodEntry ::= SEQUENCE {
        aaaMethodIndex                  Unsigned32,
        aaaMethodName                   DisplayString,
        aaaMethodGroupName              DisplayString,
        aaaMethodMode                   INTEGER,
        aaaMethodStatus                 ValidStatus,
        aaaMethodClientType             INTEGER,
        aaaMethodPrivilegeLevel         Integer32
}

aaaMethodIndex OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION  "Specifies the index for the entry."
        ::= { aaaMethodEntry 1 }

aaaMethodName OBJECT-TYPE
        SYNTAX       DisplayString(SIZE(1..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION "Name for the method."
        ::= { aaaMethodEntry 2 }

aaaMethodGroupName OBJECT-TYPE
        SYNTAX       DisplayString(SIZE(1..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION "Name for the server to use, pointing to aaaRadiusGroupName
                     or aaaTacacsPlusGroupName."
        ::= { aaaMethodEntry 3 }

aaaMethodMode OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                       startStop(1)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "startStop(1),sends a 'start' accounting notice at the beginning of a process and
        a 'stop' accounting notice at the end of a process. The 'start' accounting record
        is sent in the background. The requested user process begins regardless of whether or not
        the 'start' accounting notice was received by the accounting server."
        ::= { aaaMethodEntry 4 }

aaaMethodStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set to 1 to initiate the aaaMethodTable, 2 to destroy the table."
        ::= { aaaMethodEntry 5 }

aaaMethodClientType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                       dot1x(1), exec(2), commands(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "dot1x(1): Provides accounting service for 802.1x activity;
                     exec(2): Provides accounting service for EXEC connection
                     such as Telnet, SSH or console; commands(3): Provides
                     accounting service for command privileges."
        ::= { aaaMethodEntry 6 }

aaaMethodPrivilegeLevel OBJECT-TYPE
        SYNTAX       Integer32 (0..15)
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION  "Specifies the privilege level for the entry.
                      When aaaMethodClientType is in the mode of command(3),
                      the privilege level is enabled to be accessed."
        ::= { aaaMethodEntry 7 }

aaaRadiusGroupTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AaaRadiusGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Uses a subset of RADIUS servers for accounting as defined by the server group"
        ::= { aaaMgt 2 }

aaaRadiusGroupEntry OBJECT-TYPE
        SYNTAX      AaaRadiusGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row of aaaRadiusGroupEntry."
        INDEX      { aaaRadiusGroupIndex }
        ::= { aaaRadiusGroupTable 1 }

AaaRadiusGroupEntry ::= SEQUENCE
{
        aaaRadiusGroupIndex          Unsigned32,
        aaaRadiusGroupServerBitMap   OCTET STRING,
        aaaRadiusGroupName           DisplayString,
        aaaRadiusGroupStatus         ValidStatus
}

aaaRadiusGroupIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Specifies the index for the entry."
        ::= { aaaRadiusGroupEntry 1 }

aaaRadiusGroupServerBitMap OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (1))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Identifies which RADIUS sever to use, each bit points to each radius server.
        80 (1000 0000) point to radius server 1, C0 (11000000) points to radius 1 and radius 2."
        ::= { aaaRadiusGroupEntry 2 }

aaaRadiusGroupName OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Uses a subset of servers for accounting as
        defined by the server group. The same name as aaaTacasPlusGroupName is not allowed."
        ::= { aaaRadiusGroupEntry 3 }

aaaRadiusGroupStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set to 1 to initiate the aaaRadiusGroupTable, 2 to destroy the table."
        ::= { aaaRadiusGroupEntry 4 }

aaaTacacsPlusGroupTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AaaTacacsPlusGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Uses a subset of TACACS+ servers for accounting as defined by the server group"
        ::= { aaaMgt 3 }

aaaTacacsPlusGroupEntry OBJECT-TYPE
        SYNTAX      AaaTacacsPlusGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row of aaaTacacsPlusGroupEntry."
        INDEX      { aaaTacacsPlusGroupIndex }
        ::= { aaaTacacsPlusGroupTable 1 }

AaaTacacsPlusGroupEntry ::= SEQUENCE
{
        aaaTacacsPlusGroupIndex          Unsigned32,
        aaaTacacsPlusGroupServerBitMap   OCTET STRING,
        aaaTacacsPlusGroupName           DisplayString,
        aaaTacacsPlusGroupStatus         ValidStatus
}

aaaTacacsPlusGroupIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Specifies the index for the entry."
        ::= { aaaTacacsPlusGroupEntry 1 }

aaaTacacsPlusGroupServerBitMap OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (1))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Identifies which TACACS+ sever to use."
        ::= { aaaTacacsPlusGroupEntry 2 }

aaaTacacsPlusGroupName OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Uses a subset of servers for accounting as
        defined by the server group. We can't have the same name as aaaRadiusGroupName"
        ::= { aaaTacacsPlusGroupEntry 3 }

aaaTacacsPlusGroupStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set to 1 to initiate the aaaRadiusGroupTable, 2 to destroy the table."
        ::= { aaaTacacsPlusGroupEntry 4 }

aaaUpdate OBJECT-TYPE
        SYNTAX      Integer32 (1..2147483647)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies the periodic interim accounting records to be sent
        to the accounting server and periodic intervals to send accounting update records(in minutes)."
        ::= { aaaMgt 4 }

aaaAccountTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AaaAccountEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Specifies an interface or a set of interfaces that the
                     accounting method list will be applied to."
        ::= { aaaMgt 5 }

aaaAccountEntry OBJECT-TYPE
        SYNTAX      AaaAccountEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row of aaaAccountTable."
        INDEX      { aaaAccountIfIndex }
        ::= { aaaAccountTable 1 }

AaaAccountEntry ::= SEQUENCE {
        aaaAccountIfIndex          Unsigned32,
        aaaAccountMethodName       DisplayString,
        aaaAccountProtocol         Integer32,
        aaaAccountStatus           ValidStatus
}

aaaAccountIfIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Defined as the ifIndex"
        ::= { aaaAccountEntry 1 }

aaaAccountMethodName OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the name of the list of accounting methods to use.
        If no method name is specified, the system uses the default."
        ::= { aaaAccountEntry 2 }

aaaAccountProtocol OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Get the protocol type of a list method to know which server (RADIUS or TACACS+) is in use."
        ::= { aaaAccountEntry 3 }

aaaAccountStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set to 1 to initiate the aaaRadiusGroupTable, 2 to destroy the table."
        ::= { aaaAccountEntry 4 }

aaaCommandPrivilegesTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AaaCommandPrivilegesEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Contains the settings needed for command privileges."
        ::= { aaaMgt 8 }

aaaCommandPrivilegesEntry OBJECT-TYPE
        SYNTAX      AaaCommandPrivilegesEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the aaaCommandPrivilegesTable."
        INDEX      { aaaCommandPrivilegesLevel, aaaCommandPrivilegesInterfaceIndex }
        ::= { aaaCommandPrivilegesTable 1 }

AaaCommandPrivilegesEntry ::= SEQUENCE {
        aaaCommandPrivilegesLevel            Integer32,
        aaaCommandPrivilegesInterfaceIndex   INTEGER,
        aaaCommandPrivilegesMethodName       DisplayString
}

aaaCommandPrivilegesLevel OBJECT-TYPE
        SYNTAX       Integer32 (0..15)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION  "Specifies the privilege level index for the entry."
        ::= { aaaCommandPrivilegesEntry 1 }

aaaCommandPrivilegesInterfaceIndex OBJECT-TYPE
        SYNTAX       INTEGER { console(1), vty(2) }
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION  "Specifies the interface index for the entry."
        ::= { aaaCommandPrivilegesEntry 2 }

aaaCommandPrivilegesMethodName OBJECT-TYPE
        SYNTAX       DisplayString(SIZE(1..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION "Specifies the method name in the lists under
                     the mode of command privileges."
        ::= { aaaCommandPrivilegesEntry 3 }

aaaAccExecTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AaaAccExecEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Specifies an interface or a set of interfaces that the
                     accounting method list will be applied to."
        ::= { aaaMgt 9 }

aaaAccExecEntry OBJECT-TYPE
        SYNTAX      AaaAccExecEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row of aaaAccExecTable."
        INDEX      { aaaAccExecIndex }
        ::= { aaaAccExecTable 1 }

AaaAccExecEntry ::= SEQUENCE {
        aaaAccExecIndex            INTEGER,
        aaaAccExecMethodName       DisplayString
}

aaaAccExecIndex OBJECT-TYPE
        SYNTAX    INTEGER
                  {
                  console(1), vty(2)
                  }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The method of accessing CLI management."
        ::= { aaaAccExecEntry 1 }

aaaAccExecMethodName OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the name of the list of accounting methods to use.
        If no method name is specified, the system uses the default."
        ::= { aaaAccExecEntry 2 }

--
-- ipFilterMgt
--

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

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

IpFilterSnmpEntry ::= SEQUENCE {
    ipFilterSnmpStartAddress        IpAddress,
    ipFilterSnmpEndAddress          IpAddress,
    ipFilterSnmpStatus              ValidStatus
    }

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

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

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

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

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

IpFilterHTTPEntry ::= SEQUENCE {
    ipFilterHTTPStartAddress        IpAddress,
    ipFilterHTTPEndAddress          IpAddress,
    ipFilterHTTPStatus              ValidStatus
}

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

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

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

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

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

IpFilterTelnetEntry ::= SEQUENCE {
    ipFilterTelnetStartAddress        IpAddress,
    ipFilterTelnetEndAddress          IpAddress,
    ipFilterTelnetStatus              ValidStatus
}

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

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

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

--
-- dot1xMgt
--

-- The extension table of dot1xAuthConfigTable

dot1xAuthConfigExtTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF Dot1xAuthConfigExtEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The extension table of dot1xAuthConfigTable."
        ::= { dot1xMgt 1 }

dot1xAuthConfigExtEntry OBJECT-TYPE
        SYNTAX      Dot1xAuthConfigExtEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The entry of dot1xAuthConfigExtTable."
        AUGMENTS       { dot1xAuthConfigEntry }
        ::= { dot1xAuthConfigExtTable 1 }

Dot1xAuthConfigExtEntry ::= SEQUENCE
{
      dot1xAuthConfigExtOperMode              INTEGER,
      dot1xAuthConfigExtMultiHostMaxCnt       Integer32,
      dot1xAuthConfigExtPortIntrusionAction   INTEGER
}

dot1xAuthConfigExtOperMode OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        singleHost(1),
                        multiHost(2),
                        macBasedAuth(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The operation mode of dot1x port which allows host
                     connection to 802.1x-authorized ports."
        ::= { dot1xAuthConfigExtEntry 1 }

dot1xAuthConfigExtMultiHostMaxCnt OBJECT-TYPE
        SYNTAX      Integer32(1..1024)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The maximum number of hosts when the
                     dot1xAuthConfigExtOperMode is multiHost(2). When the
                     operation Mode is singleHost(1), we can ignore this
                     variables."
        DEFVAL      { 5 }
        ::= { dot1xAuthConfigExtEntry 2  }

dot1xAuthConfigExtPortIntrusionAction      OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    blockTraffic(1),
                    guestVlan(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Responses to intrusion when the authentication is failed;
                 blockTraffic(1) means that to block traffic when the authentication is failed and
                 guestVlan(2) means that to join to a guest VLAN when the authentication is failed."
    ::= { dot1xAuthConfigExtEntry 3 }


--
-- networkAccessPortTable
--

networkAccessPortTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF NetworkAccessPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A table contains the information of network access about every port."
    ::= { networkAccessMgt 2 }

networkAccessPortEntry   OBJECT-TYPE
    SYNTAX      NetworkAccessPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A conceptual row in the networkAccessPort table."
    INDEX { networkAccessPortPortIndex }
    ::= { networkAccessPortTable 1 }

NetworkAccessPortEntry ::= SEQUENCE
{
    networkAccessPortPortIndex        Unsigned32,
    networkAccessPortMaxMacCount      Integer32,
    networkAccessPortMacFilter              Integer32,
    networkAccessPortGuestVlan              Integer32,
    networkAccessPortLinkDetectionStatus    EnabledStatus,
    networkAccessPortLinkDetectionMode      INTEGER,
    networkAccessPortLinkDetectionAciton    INTEGER,
    networkAccessPortDynamicQos             EnabledStatus
}

networkAccessPortPortIndex      OBJECT-TYPE
    SYNTAX      Unsigned32
    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 port
                 index is the same interface identified by the same value of
                 ifIndex in the IF-MIB."
    ::= { networkAccessPortEntry 1 }

networkAccessPortMaxMacCount      OBJECT-TYPE
    SYNTAX      Integer32 (0..1024)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the maximum number of authenticated MAC address."
    ::= { networkAccessPortEntry 3 }

networkAccessPortMacFilter OBJECT-TYPE
    SYNTAX      Integer32 (0..64)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the MAC filter ID, Set this variable to zero to
                 disable MAC filter."
    ::= { networkAccessPortEntry 5 }

networkAccessPortGuestVlan      OBJECT-TYPE
    SYNTAX      Integer32 (0..4094)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the guest VLAN ID. To disable the VLAN, set the value to 0."
    ::= { networkAccessPortEntry 6 }

networkAccessPortLinkDetectionStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Set this object to enabled(1) to enable link detection.
                 Set this object to disabled(2) to disable link detection."
    ::= { networkAccessPortEntry 7 }

networkAccessPortLinkDetectionMode OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    linkUp(1),
                    linkDown(2),
                    linkUpDown(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the detection event for a port. Set this object
                 to linkUp(1) to detect a link-up event. Set this object
                 to linkDown(2) to detect a link-down event. Set this
                 object to linkUpDown(3) to detect both link up and
                 link down events."
    ::= { networkAccessPortEntry 8 }

networkAccessPortLinkDetectionAciton OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    trap(1),
                    shutDown(2),
                    trapAndShutDown(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the action to take when a networkAccessPortLinkDetection
                 event is triggered. Set this object to trap(1) to send a trap
                 when a networkAccessPortLinkDetection event is triggered.
                 Set this object to shutDown(2) to shut down the port when a
                 networkAccessPortLinkDetection event is triggered. Set this object
                 to trapAndShutDown(3) to send a trap and shut down the port when a
                 networkAccessPortLinkDetection event is triggered."
    ::= { networkAccessPortEntry 9 }

networkAccessPortDynamicQos OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Set this object to enabled(1) to enable Dynamic QoS.
                 Set this object to disabled(2) to disable Dynamic QoS."
    ::= { networkAccessPortEntry 10 }

--
-- networkAccessClearMacAddressMgt
--

networkAccessClearMacAddressMgt           OBJECT IDENTIFIER ::= { networkAccessMgt 3 }

networkAccessClearMacAddressAttribute     OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    all        (1),
                    static     (2),
                    dynamic    (3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Attribute for clearing Mac address. Specifies the certain attribute
                 in Mac address table. all(1) indicates both reauthorized and learnt
                 secure MAC address; static(2) indicates reauthorized MAC address;
                 dynamic(3) indicates learnt secure MAC address."
    ::= { networkAccessClearMacAddressMgt 1 }

networkAccessClearMacAddressMacAddress     OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies MAC address in the MAC address table for clearing
                 MAC address. '000000' represents that no MAC address is specified."

    ::= { networkAccessClearMacAddressMgt 2 }

networkAccessClearMacAddressPort     OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The specifies port in the MAC address table for clearing MAC address.
                 '0' represents that no port is specified."

    ::= { networkAccessClearMacAddressMgt 3 }

networkAccessClearMacAddressAction     OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    noclear     (1),
                    clear       (2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Action for clearing MAC address . When setting this object to clear(2)
                           to begin the clearing MAC address operation, a particular MAC address
                           is cleared from the MAC address table. When the action is finshed whether
                           or not it is successful or no action is taken, the value of this object
                           is always noclear(1)."

    ::= { networkAccessClearMacAddressMgt 4 }

--
-- networkAccessMacAddressTable
--

networkAccessMacAddressTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF NetworkAccessMacAddressEntry
    MAX-ACCESS  not-accessible
	STATUS      current
	DESCRIPTION "Contains the information of network access MAC addresses."
	::= { networkAccessMgt  4}

networkAccessMacAddressEntry   OBJECT-TYPE
    SYNTAX      NetworkAccessMacAddressEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A conceptual row in the networkAccessMacAddress table."
    INDEX { networkAccessMacAddressAddress, networkAccessMacAddressPort }
    ::= { networkAccessMacAddressTable  1 }

NetworkAccessMacAddressEntry ::= SEQUENCE
{
    networkAccessMacAddressAddress                       MacAddress,
    networkAccessMacAddressPort                          Unsigned32,
    networkAccessMacAddressInetAddressType               InetAddressType,
    networkAccessMacAddressRadiusServerInetAddress       InetAddress,
    networkAccessMacAddressTime                          DisplayString,
    networkAccessMacAddressAttribute                     INTEGER
}

networkAccessMacAddressAddress      OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the authenticated MAC address."
    ::= { networkAccessMacAddressEntry 1 }

networkAccessMacAddressPort      OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the port of authenticated MAC address."
    ::= { networkAccessMacAddressEntry 2 }

networkAccessMacAddressInetAddressType   OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This object indicates the type of IP address denoted in
                 networkAccessMacAddressRadiusServerInetAddress type."
    ::= { networkAccessMacAddressEntry 3 }

networkAccessMacAddressRadiusServerInetAddress      OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Displays the IP address of radius server that authenticates
                 the specified Mac address."
    ::= { networkAccessMacAddressEntry 4 }

networkAccessMacAddressTime      OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(12))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Displays the authentication time of the authenticated MAC address.
                 The following form is a text string; 'yyyy MMm DDd HHh MMm SSs'.
                 'yyyy' is a four-digit year. 'MM' is a month. A single-digit month is
                 preceded by a zero. 'DD' is the day of a month. A single-digit day
                 is preceded by the value zero. 'HH', 'MM' and 'SS' are hour,
                 minute, and second respectively. A single-digit hour, minute,
                 and second are preceded by a zero value. An example is:
                 '2001y 01m 01d 00h 04m 43s'."
    ::= { networkAccessMacAddressEntry 5 }

networkAccessMacAddressAttribute       OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    static     (1),
                    dynamic    (2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Displays the attribute of an authenticated MAC address.
                 static(1) indicates resauthorized secure MAC address.
                 dynamic(2) indicates learnt secure MAC address."
    ::= { networkAccessMacAddressEntry 6 }

networkAccessAging       OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Set this object to enabled(1) to enable MAC address aging feature.
                 Set this object to disabled(2) to disable MAC address aging feature."
    ::= { networkAccessMgt 5 }

--
-- networkAccessMacFilterWithMaskTable
--

networkAccessMacFilterWithMaskTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NetworkAccessMacFilterWithMaskEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Contains the settings for MAC filter."
 ::= { networkAccessMgt  6}

networkAccessMacFilterWithMaskEntry OBJECT-TYPE
    SYNTAX      NetworkAccessMacFilterWithMaskEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A conceptual row in the networkAccessMacFilterWithMaskTable."
    INDEX { networkAccessMacFilterWithMaskID,
            networkAccessMacFilterWithMaskMacAddress,
            networkAccessMacFilterWithMaskMacAddressMask }
    ::= { networkAccessMacFilterWithMaskTable 1 }

NetworkAccessMacFilterWithMaskEntry ::= SEQUENCE
{
    networkAccessMacFilterWithMaskID                Unsigned32,
    networkAccessMacFilterWithMaskMacAddress        MacAddress,
    networkAccessMacFilterWithMaskMacAddressMask    MacAddress,
    networkAccessMacFilterWithMaskStatus            ValidStatus
}

networkAccessMacFilterWithMaskID OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the MAC filter ID."
    ::= { networkAccessMacFilterWithMaskEntry 1 }

networkAccessMacFilterWithMaskMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the MAC address to be filtered."
    ::= { networkAccessMacFilterWithMaskEntry 2 }

networkAccessMacFilterWithMaskMacAddressMask OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the MAC mask to be filtered."
    ::= { networkAccessMacFilterWithMaskEntry 3 }

networkAccessMacFilterWithMaskStatus OBJECT-TYPE
    SYNTAX      ValidStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this object to valid(1) to create an entry.
                 Set this object to invalid(2) to destroy an entry."
    ::= { networkAccessMacFilterWithMaskEntry 4 }

macAuthReauthTime     OBJECT-TYPE
    SYNTAX      Integer32 (120..1000000)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the reauthentication time period."
    ::= { macAuthMgt 1 }

--
-- macAuthPortTable
--

macAuthPortTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF MacAuthPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Contains the settings for mac authentication of each port."
    ::= { macAuthMgt 2 }

macAuthPortEntry   OBJECT-TYPE
    SYNTAX      MacAuthPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A conceptual row in the macAuthPort table."
    INDEX { macAuthPortIndex }
    ::= { macAuthPortTable  1 }

MacAuthPortEntry ::= SEQUENCE
{
    macAuthPortIndex              Unsigned32,
    macAuthPortMaxMacCount        Integer32,
    macAuthPortIntrusionAction    INTEGER
}

macAuthPortIndex      OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The port and the trunk (including trunk members) interface of the
                 port table. The interface identified by a particular value of this
                 index is the same interface identified by the same value
                 of ifIndex in the IF-MIB."
    ::= { macAuthPortEntry  1 }

macAuthPortMaxMacCount      OBJECT-TYPE
    SYNTAX      Integer32 (0..1024)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the maximum number of authenticated MAC addresses for MAC authentication."
    ::= { macAuthPortEntry 2 }

macAuthPortIntrusionAction      OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    blockTraffic(1),
                    passTraffic(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Responses to intrusion when the authentication is failed.
                 blockTraffic(1) : denies network access to an unauthorized client;
                 passTraffic(2) : allows unauthorized clients to the access network."
    ::= { macAuthPortEntry  3 }

webAuthSystemAuthControl     OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Sets enabled(1) to enable WebAuth feature and
                 sets disabled(2) to disable WebAuth feature."
    ::= { webAuthMgt 1 }

webAuthSessionTimeout     OBJECT-TYPE
    SYNTAX      Integer32 (300..3600)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "For authenticated success users, they can use internet
                 service during a certain period. Whenever this period expires,
                 users need to be re-authenticated again. This period is
                 called session time."
    ::= { webAuthMgt 5 }

webAuthQuietPeriod    OBJECT-TYPE
    SYNTAX      Integer32 (1..180)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the re-authentication interval when the authentication
             fail attempts reach the webAuthLoginAttempts value. Unauthenticated
             user won't be authenticated during this period."
    ::= { webAuthMgt 6 }

webAuthLoginAttempts    OBJECT-TYPE
    SYNTAX      Integer32 (1..3)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the counter that configures the authentication fail times
                 for a client. If authentication fail times reaches the specified
                 value, the client are not allowed to login for some period."
    ::= { webAuthMgt 7 }

--
-- webAuthReauthenticateMgt
--

webAuthReauthenticateMgt             OBJECT IDENTIFIER ::= { webAuthMgt 8 }

webAuthReauthenticatePort     OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the port to re-authenticate for all of its
                 authenticated hosts."
    ::= { webAuthReauthenticateMgt 1 }

webAuthReauthenticateInetAddressType     OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies host type to re-authenticate."
    ::= { webAuthReauthenticateMgt 2 }

webAuthReauthenticateInetAddress     OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specificies host to re-authenticate."
    ::= { webAuthReauthenticateMgt 3 }

webAuthReauthenticateAction     OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    noReauth     (1),
                    reauth       (2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Action for WebAuth re-authenication. When setting this object to
                 reauth(2) to begin the re-authenticated operation, a particular
                 user is re-authenticated. When the action is finshed whether it is
                 successfully, or no action is taken, the value of this
                 object is always noReauth(1)."
    ::= { webAuthReauthenticateMgt 4 }

--
-- webAuthPortConfigTable
--

webAuthPortConfigTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF WebAuthPortConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Contains the settings for web authentication of each port."
    ::= { webAuthMgt 9 }

webAuthPortConfigEntry   OBJECT-TYPE
    SYNTAX      WebAuthPortConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A conceptual row in the webAuthPortConfigTable."
    INDEX { webAuthPortConfigPortIndex }
    ::= { webAuthPortConfigTable  1 }

WebAuthPortConfigEntry ::= SEQUENCE
{
    webAuthPortConfigPortIndex                     Unsigned32,
    webAuthPortConfigStatus                        EnabledStatus,
    webAuthPortConfigAuthenticatedHostCount        Integer32
}

webAuthPortConfigPortIndex      OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The port number of the port that may specify certain entry in the table which contains web                            authentication information."
    ::= { webAuthPortConfigEntry  1 }

webAuthPortConfigStatus     OBJECT-TYPE
    SYNTAX     EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Sets enabled(1) to enable web authentication feature for each port and
                 sets disabled(2) to disable web authentication for each port."
    ::= { webAuthPortConfigEntry 2 }

webAuthPortConfigAuthenticatedHostCount      OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Displays the authenticated host counts for each port"
    ::= { webAuthPortConfigEntry 3 }

--
-- webAuthPortInfoTable
--

webAuthPortInfoTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF WebAuthPortInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Contains the information for web authentication of each port."
    ::= { webAuthMgt 10 }

webAuthPortInfoEntry   OBJECT-TYPE
    SYNTAX      WebAuthPortInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A conceptual row in the webAuthPortTable."
    INDEX { webAuthPortInfoPortIndex, webAuthPortInfoPortAuthSuccessIndex}
    ::= { webAuthPortInfoTable 1 }

WebAuthPortInfoEntry ::= SEQUENCE
{
    webAuthPortInfoPortIndex                  Unsigned32,
    webAuthPortInfoPortAuthSuccessIndex       Unsigned32,
    webAuthPortInfoInetAddressType            InetAddressType,
    webAuthPortInfoInetAddress                InetAddress,
    webAuthPortInfoRemainingSessiontime       Integer32,
    webAuthPortInfoStatus                     INTEGER
}

webAuthPortInfoPortIndex      OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The port number for which this entry contains web authentication information."
    ::= { webAuthPortInfoEntry  1 }

webAuthPortInfoPortAuthSuccessIndex      OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The authentication success number of port for which this entry contains web authentication information."
    ::= { webAuthPortInfoEntry  2 }

webAuthPortInfoInetAddressType      OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This object indicates the type of IP address denoted in webAuthPortInfoIpAddress type."
    ::= { webAuthPortInfoEntry  3 }

webAuthPortInfoInetAddress      OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IP address which may specify the entry containing web authentication information."
    ::= { webAuthPortInfoEntry  4 }

webAuthPortInfoRemainingSessiontime      OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
   DESCRIPTION "The remaining session time for authenticated hosts. During this
                period, they may use internet resource. When the session time expires, they
                will need to re-authenticate again."

    ::= { webAuthPortInfoEntry 5 }

webAuthPortInfoStatus    OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    authenticated      (1)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Displays the web authentication status for each port.
                 authenticated (1) means the user is authenticated."
    ::= { webAuthPortInfoEntry 6 }

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

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

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

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

--
--smtpMgt
--
smtpMgt   OBJECT IDENTIFIER ::= { sysLogMgt 7 }

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

smtpSeverityLevel OBJECT-TYPE
    SYNTAX       Integer32 (0..7)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "Specify the SMTP minimum severity level to send the event message."
    ::= { smtpMgt 2 }

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

--smtpServerIpTable

smtpServerIpTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmtpServerIpEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The 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  { smtpServerIp }
       ::= { smtpServerIpTable 1 }

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

smtpServerIp OBJECT-TYPE
       SYNTAX      IpAddress
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "SMTP mail server's IP address."
       ::= { smtpServerIpEntry 1 }

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

--smtpDestEMailTable

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

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

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

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

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

-- 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 2400, 4800, 9600,
                    19200, 38400, 57600, 115200.

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

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

--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 }
ntpMgt  OBJECT IDENTIFIER ::= { sysTimeMgt 5 }
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(16..16384)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Polling interval."
    ::= { sntpMgt 3 }

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

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

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


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

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

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 }

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

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

ntpPollInterval OBJECT-TYPE
    	SYNTAX      Integer32
    	MAX-ACCESS  read-only
    	STATUS      current
    	DESCRIPTION "Polling interval in seconds."
    	::= { ntpMgt 3 }

ntpAuthenticateStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set enabled(1) to enable the NTP Authenticate, set disabled(2) to
                     disable  the NTP."
	::= { ntpMgt 4 }

ntpServerTable OBJECT-TYPE
       	SYNTAX      SEQUENCE OF NtpServerEntry
       	MAX-ACCESS  not-accessible
       	STATUS      current
       	DESCRIPTION "Table for NTP servers"
       	::= { ntpMgt 5 }

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 }

sysSummerTimeZoneName OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..30))
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "The name of the summer time zone. If sysSummerTimeMode is
                  disabled, empty string will be shown."
     ::= { sysSummerTimeMgt 1 }

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 (0..99)
     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 }

ntpServerEntry OBJECT-TYPE
        SYNTAX      NtpServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for NTP servers."
        INDEX       { ntpServerIpAddress }
        ::= { ntpServerTable 1 }

NtpServerEntry ::= SEQUENCE
	{
	    ntpServerIpAddress    IpAddress,
	    ntpServerVersion      Integer32,
	    ntpServerKeyId        Integer32,
	    ntpServerStatus       INTEGER
	}

ntpServerIpAddress OBJECT-TYPE
    	SYNTAX      IpAddress
    	MAX-ACCESS  not-accessible
    	STATUS      current
    	DESCRIPTION "The IP address of a server. Valid IP addresses
                 must occupy contiguous indexes.
                 All IP addresses after the last valid index is 0."
    	::= { ntpServerEntry 1 }

ntpServerVersion OBJECT-TYPE
        SYNTAX      Integer32 (1..3)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "NTP version."
        ::= { ntpServerEntry 2 }

ntpServerKeyId       OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Key for a NTP server.  This variable can only be written."
        ::= { ntpServerEntry 3 }

ntpServerStatus OBJECT-TYPE
        SYNTAX     INTEGER
                   {
                       create(1),
                       active(2),
                       destroy(3)
                   }
        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;

		     - 'create', 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;

		     - 'destroy', which is supplied by a management station
		     wishing to delete all of the instances associated with
		     an existing conceptual row."
        ::= { ntpServerEntry 4 }

ntpAuthKeyTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF NtpAuthKeyEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for NTP Authentication keys"
        ::= { ntpMgt 6 }

ntpAuthKeyEntry OBJECT-TYPE
        SYNTAX      NtpAuthKeyEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for NTP Authentication keys."
        INDEX       { ntpAuthKeyId }
        ::= { ntpAuthKeyTable 1 }

NtpAuthKeyEntry::= SEQUENCE
	{
	    ntpAuthKeyId        Integer32,
	    ntpAuthKeyWord      OCTET STRING,
	    ntpAuthKeyStatus    INTEGER
	}

ntpAuthKeyId OBJECT-TYPE
    	SYNTAX      Integer32 (1..65536)
    	MAX-ACCESS  not-accessible
    	STATUS      current
    	DESCRIPTION "The index of a Authentication key. This table has fixed size."
    	::= { ntpAuthKeyEntry 1 }

ntpAuthKeyWord OBJECT-TYPE
    	SYNTAX      OCTET STRING (SIZE (1..32))
    	MAX-ACCESS  read-create
    	STATUS      current
    	DESCRIPTION "The Authentication key word is used to created a key  by the MD5
	And the max length is 32."
    	::= { ntpAuthKeyEntry 2 }

ntpAuthKeyStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        create(1),
                        active(2),
                        destroy(3)
                    }
        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;

	             - 'create', 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;

		     - 'destroy', which is supplied by a management station
		     wishing to delete all of the instances associated with
		     an existing conceptual row."
        ::= { ntpAuthKeyEntry 3 }

--
-- fileMgt
--

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


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

fileCopySrcOperType OBJECT-TYPE
    SYNTAX     INTEGER
               {
                 file(1),
                 runningCfg(2),
                 startUpCfg(3),
                 tftp(4),
                 unit(5),
                 http(6),
                 ftp(7)
                }
    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.
                 http(6) means we can read the status of the transfer via
                 HTTP protocol, but can not change the status.
                 ftp(7) means we want to perform 'copy ftp 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;
                 (16) copy file ftp; (17) copy running-config ftp;
                 (18) copy startup-config ftp; (19) copy ftp file;
                 (20) copy ftp running-config; (21) copy ftp startup-config;
                 (22) copy tftp cluster-member; (23) copy tftp oam-remote."
    ::= { fileCopyMgt 1}

fileCopySrcFileName OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(0..127))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The source file name for fileCopyMgt when a copy
        operation is next requested via this MIB.  This value is set to
        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),
                 http(6),
                 ftp(7),
                 oamRemote(9)
                }
    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.
                 http(6) means we can read the status of the transfer via
                 HTTP protocol, but can not change the status.
                 ftp(7) means we want to perform 'copy fileCopySrcOperType ftp'
                 operation.oamRemote(9) means we want to perform
                 'copy fileCopySrcOperType oam-remote' 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;
                 (16) copy file ftp; (17) copy running-config ftp;
                 (18) copy startup-config ftp; (19) copy ftp file;
                 (20) copy ftp running-config; (21) copy ftp startup-config;
                 (22) copy tftp cluster-member; (23) copy tftp oam-remote."
    ::= { fileCopyMgt 3 }

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

fileCopyFileType  OBJECT-TYPE
    SYNTAX     INTEGER {
                  opcode(1),
                  config(2),
                  bootRom(3),
                  loader(5),
                  oamRemoteFirmware(6)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Type of file to copy in fileCopyMgt. opcode(1) indicates operation
         code, config(2) indicates configuration file, bootRom(3) indicates
         diagnostic image file and loader(5) indicates loader image file. If
         the fileCopySrcOperType or fileCopyDestOperType is either runningCfg(2)
         or startupCfg(3), this variable can be ignored. bootRom(3) and
         loader(5) can be set only when the fileCopySrcOperType is tftp(4) and
         fileCopyDestOperType is file(1). If the fileCopyDestOperType is oamRemote(9), this variable
         should be oamRemoteFirmware(4)."
    ::= { fileCopyMgt 5 }

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

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

fileCopyAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                  notCopying(1),
                  copy(2)
                }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "Setting this object to copy(2) to begin the copy operation. When
                 the device is not copying, this object will have a value of
                 notCopying(1)."
    ::= { fileCopyMgt 8 }


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

fileCopyFtpLoginUsername OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(1..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Login username of the FTP server. If neither
                 fileCopySrcOperType nor fileCopyDestOperType is ftp(7),
                 this variable can be ignored."
    ::= { fileCopyMgt 12 }

fileCopyFtpLoginPassword OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Login password of the FTP server. If neither
                 fileCopySrcOperType nor fileCopyDestOperType is ftp(7),
                 this variable can be ignored. This variable can only be
                 written. When this variable is read, it always returns a
                 zero-length string."
    ::= { fileCopyMgt 13 }

fileCopyOam        OBJECT IDENTIFIER ::= { fileCopyMgt 15 }

fileCopyOamPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The port list which ports on the bitmap perform remote
                 firmware upgrade. Note: If the fileCopyDestOperType is not
                 oamRemote(9), this variable can be ignored."
    ::= { fileCopyOam 1 }

fileCopyOamResultTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF FileCopyOamResultEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table for OAM remote firmware upgrade result."
    ::= { fileCopyOam 2 }

fileCopyOamResultEntry OBJECT-TYPE
    SYNTAX      FileCopyOamResultEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A result entry for OAM remote firmware upgrade."
    INDEX       { fileCopyOamLocalIfIndex }
    ::= { fileCopyOamResultTable 1 }

FileCopyOamResultEntry       ::= SEQUENCE
{
    fileCopyOamLocalIfIndex     InterfaceIndex,
    fileCopyOamResult           INTEGER
}

fileCopyOamLocalIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The ifIndex value of the port excluding trunk. 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."
    ::= { fileCopyOamResultEntry 1 }

fileCopyOamResult OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    oamSuccess(1),
                    oamStatusUnknown(2),
                    oamTransmissionTerminated(3),
                    oamTerminatedByPeer(4),
                    oamTimeout(5),
                    oamResourceNotAvailable(6),
                    oamFileFormatNotSupported(7),
                    oamChecksumError(8),
                    oamWriteFlashError(9),
                    oamLinkDown(10),
                    oamUpgradeFailed(11),
                    oamDownloadFailed(12)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The status of the last firmware upgrade procedure. This
                 object will have a value of oamStatusUnknown(2) if no
                 firmware upgrade operation has been performed.

                 The oamSuccess(1) indicates that the remote firmware
                 upgrade is success. The oamTransmissionTerminated(3)
                 indicates that the transmission is terminated by local device.
                 The oamTerminatedByPeer(4) indicates that the transmission
                 is terminated by peer. The oamTimeout(5) indicates that the
                 acknowledge or packets is not received from the peer. The
                 oamResouceNotAvailable(6) indicates that the resource is
                 not available to do firmware upgrade. The
                 oamFileFormatNotSupported(7) indicates that the file format
                 is not accepted by remote device. The oamChecksumError(8)
                 indicates that the checksum is wrong. The
                 oamWriteFlashError(9) indicates that it is failed to write
                 the firmware to flash. The oamLinkDown(10) indicates that
                 the OAM link is disconnected. The oamUpgradeFailed(11)
                 indicates that the upgrade result is failed. The
                 oamDownloadFailed(12) indicates that download firmware from
                 TFTP server is failed."
    ::= { fileCopyOamResultEntry 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                  Unsigned32,
        fileInfoFileName                DisplayString,
        fileInfoFileType                INTEGER,
        fileInfoIsStartUp               TruthValue,
        fileInfoFileSize                Integer32,
        fileInfoCreationTime            DisplayString,
        fileInfoDelete                  INTEGER
    }

fileInfoUnitID OBJECT-TYPE
    SYNTAX       Unsigned32
    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                  Unsigned32,
        fileAutoDownloadResultAction				  INTEGER,
        fileAutoDownloadResultStatus                  INTEGER
    }

fileAutoDownloadResultUnitID OBJECT-TYPE
    SYNTAX       Unsigned32
    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  INTEGER {
                    fileCopyTftpUndefError(1),
                    fileCopyTftpFileNotFound(2),
                    fileCopyTftpAccessViolation(3),
                    fileCopyTftpDiskFull(4),
                    fileCopyTftpIllegalOperation(5),
                    fileCopyTftpUnkownTransferId(6),
                    fileCopyTftpFileExisted(7),
                    fileCopyTftpNoSuchUser(8),
                    fileCopyTftpTimeout(9),
                    fileCopyTftpSendError(10),
                    fileCopyTftpReceiverError(11),
                    fileCopyTftpSocketOpenError(12),
                    fileCopyTftpSocketBindError(13),
                    fileCopyTftpUserCancel(14),
                    fileCopyTftpCompleted(15),
                    fileCopyParaError(16),
                    fileCopyBusy(17),
                    fileCopyUnknown(18),
                    fileCopyReadFileError(19),
                    fileCopySetStartupError(20),
                    fileCopyFileSizeExceed(21),
                    fileCopyMagicWordError(22),
                    fileCopyImageTypeError(23),
                    fileCopyHeaderChecksumError(24),
                    fileCopyImageChecksumError(25),
                    fileCopyWriteFlashFinish(26),
                    fileCopyWriteFlashError(27),
                    fileCopyWriteFlashProgramming(28),
                    fileCopyError(29),
                    fileCopySuccess(30),
                    fileCopyCompleted(31)
               }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "The last auto download result status.
    			value fileCopyUnknown(18) will be obtained
    			if no download action has been performed before."
    ::= { fileAutoDownloadResultEntry 3 }

--
--dnsMgt
--

dnsDomainLookup OBJECT-TYPE
    SYNTAX       EnabledStatus
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "To enable the IP Domain Naming System (DNS)-based host name-to-address translation."
    ::= { dnsMgt 1 }

dnsDomainName OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(0..255))
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "To define a default domain name to complete
                unqualified host names (names without a dotted-decimal domain name)."
    ::= { dnsMgt 2 }

dnsHostTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DnsHostEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "This table is used to define static host name-to-address mapping."
    ::= { dnsMgt 3 }

dnsHostEntry OBJECT-TYPE
    SYNTAX       DnsHostEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "A conceptual row for the dnsHostTable."
    INDEX       { dnsHostName, dnsHostIndex }
    ::= { dnsHostTable 1 }

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

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

dnsHostIndex OBJECT-TYPE
    SYNTAX       Integer32(1..8)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The secondary index of this dnsHostTable, representing the
                 sequence of the dnsHostIp."
    ::= { dnsHostEntry 2 }

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

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

--dnsNameServerTable
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 does not exist."
    ::= { 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,
    dnsNameServerIp           IpAddress
}

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 }

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

--dnsCacheTable
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           Unsigned32,
        dnsCacheFlag            Integer32,
        dnsCacheType            INTEGER,
        dnsCacheIp              IpAddress,
        dnsCacheTtl             Integer32,
        dnsCacheDomain          DisplayString
    }

dnsCacheIndex OBJECT-TYPE
    SYNTAX       Unsigned32
    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 }

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

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

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

--
-- This mangement automatically upgrades image.
--

fileAutoUpgradeOpCodeStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Set this variable to enabled(1) to enable the device to
                 automatically upgrade the current software image when a new
                 version is detected. Set this variable to disabled(2) to
                 disable this feature."
    ::= { fileAutoUpgradeMgt 1 }

fileAutoUpgradeOpCodePath OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..255))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The URL (Universal Resource Location) of the image file
                 location for automatic upgrades. The URL schema can be set to
                 TFTP or FTP. The Hostname is the IP address of the server. The
                 last character of the URL is always a '/' and the filename must
                 not be included in the URL."
    ::= { fileAutoUpgradeMgt 2 }

--
-- mcastStormMgt
--
mcastStormMgt OBJECT IDENTIFIER ::= { stormMgt 1 }
mcastStormTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF McastStormEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table to manage the control of multicast storms for ports."
        ::= { mcastStormMgt 1 }

mcastStormEntry OBJECT-TYPE
        SYNTAX      McastStormEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row of multiStormTable."
        INDEX       { mcastStormIfIndex }
        ::= { mcastStormTable 1 }

McastStormEntry ::= SEQUENCE
{
    mcastStormIfIndex      Unsigned32,
    mcastStormStatus       EnabledStatus,
    mcastStormPktRate      Integer32
}

mcastStormIfIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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."
        ::= { mcastStormEntry 1 }

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

mcastStormPktRate OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Multicast storm threshold as packets per second.
                     If this entry is for a trunk, this is the value
                     for each member port."
        ::= { mcastStormEntry 4 }

--
-- bcastStormMgt
--

-- Management for broadcast storm control for ports.

bcastStormMgt OBJECT IDENTIFIER ::= { stormMgt 3 }
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            Unsigned32,
    bcastStormStatus             EnabledStatus,
    bcastStormPktRate      Integer32
}

bcastStormIfIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        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
        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. For a 10 Gbps port, the range
                     is 1042 to 262143."
        ::= { bcastStormEntry 4 }

--
-- unknownUcastStormMgt
--
unknownUcastStormMgt OBJECT IDENTIFIER ::=  {stormMgt 4 }

unknownUcastStormTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF UnknownUcastStormEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table to manage the unknown unicast storm control."
    ::= { unknownUcastStormMgt 1 }

unknownUcastStormEntry  OBJECT-TYPE
    SYNTAX      UnknownUcastStormEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The conceptual row of unknownUcastStormTable."
    INDEX       { unknownUcastStormIfIndex }
    ::= { unknownUcastStormTable 1 }

UnknownUcastStormEntry  ::= SEQUENCE
{
    unknownUcastStormIfIndex    Unsigned32,
    unknownUcastStormStatus     EnabledStatus,
    unknownUcastStormSampleType INTEGER,
    unknownUcastStormPktRate    Integer32
}

unknownUcastStormIfIndex    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The port or trunk 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."
    ::= { unknownUcastStormEntry 1 }

unknownUcastStormStatus     OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates that the unknown unicast
                 storm protection is enabled/disabled."
    ::= { unknownUcastStormEntry 2 }

unknownUcastStormSampleType OBJECT-TYPE
    SYNTAX      INTEGER {packetRate(1)}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates which storm protection mode is used."
    ::= { unknownUcastStormEntry 3 }

unknownUcastStormPktRate    OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates the packet rate of the storm protection."
    ::= { unknownUcastStormEntry 4 }

--
--mvrMgt
--

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

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

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

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

mvrGroupsCtl      OBJECT IDENTIFIER   ::= { mvrMgt 5 }

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

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

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

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

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

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

mvrGroupCurrentReceiverVlan   OBJECT-TYPE
        SYNTAX      Integer32(0..4094)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates the receiver VLAN of the MVR group.
                     None of receiver VLAN belong to the MVR group when
                     the value of this object is 0."
        ::= { mvrGroupCurrentEntry 3 }

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

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

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

}

mvrIfIndex   OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface of the portTable. The interface
                     identified by a particular value of this index is the
                     same interface as identified by the same value of ifIndex
                     in the IF-MIB."
        ::= { mvrPortEntry 1 }

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

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

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

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

mvrReceiverVlanId OBJECT-TYPE
        SYNTAX      Integer32(0..4094)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To set receiver VLAN for MVR.The VLAN identified by a particular
                     value of this index is the same VLAN as identified by the
                     same value of dot1qVlanIndex in the Q-BRIDGE-MIB. To disable the
                     VLAN, set the value to 0."
        ::= { mvrMgt 12 }

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

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

mvrReceiverGroupTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF MvrReceiverGroupEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The table for configuring the MVR receiver group."
       ::= { mvrMgt 15 }

mvrReceiverGroupEntry OBJECT-TYPE
       SYNTAX      MvrReceiverGroupEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR receiver group."
       INDEX  {mvrReceiverGroupId}
       ::= { mvrReceiverGroupTable 1 }

MvrReceiverGroupEntry ::= SEQUENCE
{
    mvrReceiverGroupId      IpAddress,
    mvrReceiverGroupActive  INTEGER,
    mvrReceiverGroupStatus  INTEGER
}

mvrReceiverGroupId OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The multicast address of a MVR receiver group."
        ::= { mvrReceiverGroupEntry 1 }

mvrReceiverGroupActive   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            active(1),
            inactive(2)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicate whether the receiver group has a member or not. If there
                     are no members, the status will be inactive(2); if there are members,
                     the status will be active(1)."
        ::= { mvrReceiverGroupEntry 2 }

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

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

mvrReceiverGroupStaticEntry OBJECT-TYPE
       SYNTAX      MvrReceiverGroupStaticEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring static members of the
                    MVR receiver group."
       INDEX  {mvrReceiverGroupStaticAddress}
       ::= { mvrReceiverGroupStaticTable 1 }

MvrReceiverGroupStaticEntry ::= SEQUENCE
{
    mvrReceiverGroupStaticAddress   IpAddress,
    mvrReceiverGroupStaticPorts     PortList,
    mvrReceiverGroupStaticStatus    INTEGER

}

mvrReceiverGroupStaticAddress  OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The multicast address of a MVR receiver group."
        ::= { mvrReceiverGroupStaticEntry 1 }

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

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

mvrReceiverGroupCurrentTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF MvrReceiverGroupCurrentEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for the current members of a MVR receiver group."
        ::= { mvrMgt 17 }

mvrReceiverGroupCurrentEntry OBJECT-TYPE
       SYNTAX      MvrReceiverGroupCurrentEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for the current members of a MVR receiver group."
       INDEX  {mvrReceiverGroupCurrentAddress}
       ::= { mvrReceiverGroupCurrentTable 1 }

MvrReceiverGroupCurrentEntry ::= SEQUENCE
{
    mvrReceiverGroupCurrentAddress  IpAddress,
    mvrReceiverGroupCurrentPorts    PortList
}

mvrReceiverGroupCurrentAddress   OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The multicast address of a MVR receiver group."
        ::= { mvrReceiverGroupCurrentEntry 1 }

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

--
-- dhcpSnoopMgt
--

-- Management of DHCP snooping and IP souce guard.

dhcpSnoopGlobal         OBJECT IDENTIFIER ::= { dhcpSnoopMgt 1 }
dhcpSnoopVlan           OBJECT IDENTIFIER ::= { dhcpSnoopMgt 2 }
dhcpSnoopInterface      OBJECT IDENTIFIER ::= { dhcpSnoopMgt 3 }
dhcpSnoopBindings       OBJECT IDENTIFIER ::= { dhcpSnoopMgt 4 }
dhcpSnoopStatistics     OBJECT IDENTIFIER ::= { dhcpSnoopMgt 5 }

dhcpSnoopEnable  OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether the DHCP Snooping feature is
                     enabled."
        ::= { dhcpSnoopGlobal 1 }

dhcpSnoopVerifyMacAddressEnable     OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether DHCP Snooping Mac address
                     verification is enabled."
        ::= { dhcpSnoopGlobal 2 }

dhcpSnoopInformationOptionEnable  OBJECT-TYPE

        SYNTAX     EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether the DHCP snooping information option(option 82) feature is
                     enabled."
        ::= { dhcpSnoopGlobal 3 }

dhcpSnoopInformationOptionPolicy     OBJECT-TYPE
        SYNTAX     INTEGER
                    {
                        drop(1),
                        keep(2),
                        replace(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates which reforwarding policy shall be used for DHCP
                     snooping information option(option 82). A value of drop(1) means to drop
                     the DHCP request packet which has the information option(option 82).
                     A value of keep(2) means to keep the existing information option(option 82)
                     of the DHCP request packet. A value of replace(3), which is the default value,
                     means to replace the existing information option(option 82) of the DHCP
                     request packet."
        ::= { dhcpSnoopGlobal 4 }

dhcpSnoopBindingsTableCtlAction OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noAction(1),
                        store(2),
                        clear(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this to store(2) to store DHCP snooping binding entries to flash.
                     Set this to clear(3) to clear DHCP snooping binding entries from flash.
                     noAction(1) will always be obtained when reading this variable."
        ::= { dhcpSnoopGlobal 5 }

--
dhcpSnoopVlanConfigTable    OBJECT-TYPE
        SYNTAX      SEQUENCE OF DhcpSnoopVlanConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains DHCP Snooping configurations of existing VLANs."
        ::= { dhcpSnoopVlan 1 }

dhcpSnoopVlanConfigEntry    OBJECT-TYPE
        SYNTAX      DhcpSnoopVlanConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance contains the configuration to enable
                     or disable DHCP Snooping at each existing VLAN."
        INDEX       { dhcpSnoopVlanIndex }
        ::= { dhcpSnoopVlanConfigTable 1 }

DhcpSnoopVlanConfigEntry  ::= SEQUENCE
{
        dhcpSnoopVlanIndex      VlanIndex,
        dhcpSnoopVlanEnable     EnabledStatus
}

dhcpSnoopVlanIndex      OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the VLAN ID on which DHCP Snooping
                     feature is configured."
        ::= { dhcpSnoopVlanConfigEntry 1 }

dhcpSnoopVlanEnable     OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether DHCP Snooping is enabled in
                     this VLAN."
        ::= { dhcpSnoopVlanConfigEntry 2 }

--
dhcpSnoopPortConfigTable    OBJECT-TYPE
        SYNTAX      SEQUENCE OF DhcpSnoopPortConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table provides the mechanism to configure the trust
                     state of each port or trunk for DHCP Snooping purpose."
        ::= { dhcpSnoopInterface 1 }

dhcpSnoopPortConfigEntry    OBJECT-TYPE
        SYNTAX      DhcpSnoopPortConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance contains the configuration to enable or disable
                     trust state of each port or trunk for DHCP Snooping purpose."
        INDEX       { dhcpSnoopPortIfIndex }
        ::= { dhcpSnoopPortConfigTable 1 }

DhcpSnoopPortConfigEntry    ::= SEQUENCE
{
        dhcpSnoopPortIfIndex        InterfaceIndex,
        dhcpSnoopPortTrustEnable    EnabledStatus
}

dhcpSnoopPortIfIndex        OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The ifIndex value of the port or trunk."
        ::= { dhcpSnoopPortConfigEntry 1 }

dhcpSnoopPortTrustEnable    OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether the port or trunk is trusted
                     for DHCP Snooping purpose."
        ::= { dhcpSnoopPortConfigEntry 2 }
--
dhcpSnoopBindingsTable      OBJECT-TYPE
        SYNTAX      SEQUENCE OF DhcpSnoopBindingsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the DHCP bindings information learnt by
                     the device."
        ::= { dhcpSnoopBindings 1 }

dhcpSnoopBindingsEntry      OBJECT-TYPE
        SYNTAX      DhcpSnoopBindingsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance contains the Mac address, IP address type,
                     IP address, VLAN number, interface number, leased time and
                     status."
        INDEX       { dhcpSnoopBindingsVlanIndex, dhcpSnoopBindingsMacAddress }
        ::= { dhcpSnoopBindingsTable 1 }

DhcpSnoopBindingsEntry      ::= SEQUENCE
{
        dhcpSnoopBindingsVlanIndex      VlanIndex,
        dhcpSnoopBindingsMacAddress     MacAddress,
        dhcpSnoopBindingsAddrType       InetAddressType,
        dhcpSnoopBindingsEntryType      INTEGER,
        dhcpSnoopBindingsIpAddress      IpAddress,
        dhcpSnoopBindingsPortIfIndex    InterfaceIndex,
        dhcpSnoopBindingsLeaseTime      Unsigned32
}

dhcpSnoopBindingsVlanIndex      OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the VLAN which a DHCP client host
                     belongs to."
        ::= { dhcpSnoopBindingsEntry 1 }

dhcpSnoopBindingsMacAddress     OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the MAC address of a DHCP client
                     host."
        ::= { dhcpSnoopBindingsEntry 2 }

dhcpSnoopBindingsAddrType       OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates the type of IP address denoted in
                     dhcpSnoopBindingsIpAddress type."
        ::= { dhcpSnoopBindingsEntry 3 }

dhcpSnoopBindingsEntryType      OBJECT-TYPE
        SYNTAX      INTEGER { dynamic(1), static(2) }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates that this binding is obtained from
                     dynamically learning or is a static configuraion."
        ::= { dhcpSnoopBindingsEntry 4 }

dhcpSnoopBindingsIpAddress      OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates the allocated IP address of
                     a DHCP client host."
        ::= { dhcpSnoopBindingsEntry 5 }

dhcpSnoopBindingsPortIfIndex    OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates the port or trunk where a DHCP client
                     host connects to."
        ::= { dhcpSnoopBindingsEntry 6 }

dhcpSnoopBindingsLeaseTime      OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates the leased time of this DHCP
                     bindings."
        ::= { dhcpSnoopBindingsEntry 7 }

--

dhcpSnoopTotalForwardedPkts     OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of packets subjected to
                     DHCP Snooping is forwarded."
        ::= { dhcpSnoopStatistics 1 }

dhcpSnoopUntrustedPortDroppedPkts   OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the number of packets subjected to DHCP Snooping
                     is dropped because they come from untrusted interface."
        ::= { dhcpSnoopStatistics 3 }


--
-- clusterMgt
--

clusterEnable  OBJECT-TYPE
    SYNTAX     EnabledStatus
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Enables or disables clustering on the device."
    ::= { clusterMgt 1 }

clusterCommanderEnable  OBJECT-TYPE
    SYNTAX     EnabledStatus
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Enables or disables the device as commander in a cluster."
    ::= { clusterMgt 2 }

clusterIpPool  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The start internal IP address of a cluster pool."
    ::= { clusterMgt 4 }

clusterClearCandidateTable  OBJECT-TYPE
    SYNTAX     INTEGER
    					 {
    					     noClear(1),
    					     clear(2)
    					 }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Setting this object to clear(2) starts to clear the candidate table."
    ::= { clusterMgt 5 }

clusterRole  OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   commander(1),
                   candidate(2),
                   activeMember(3),
                   disabled(5)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The current role of the device in a cluster.
             commander(1)   : The switch is the controlling device in a
                              cluster.
             candidate(2)   : The switch has been discovered by the commander,
                              but it has not been manually configured
                              for access from the commander.
             activeMember(3): The switch has been manually configured for access
                              from the commander and it is active
                              in the cluster.
             disabled(5)     : The switch has clustering disabled."
    ::= { clusterMgt 6 }

clusterMemberCount  OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total number of members in a cluster."
    ::= { clusterMgt 7 }

clusterCandidateCount  OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total number of candidates in a cluster."
    ::= { clusterMgt 8 }

clusterCandidateTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ClusterCandidateEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table listing cluster candidates."
    ::= { clusterMgt 9 }

clusterCandidateEntry OBJECT-TYPE
    SYNTAX     ClusterCandidateEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A conceptual row containing the information of the candidate."
    INDEX { clusterCandidateMacAddr}
    ::= { clusterCandidateTable 1 }

ClusterCandidateEntry ::=
    SEQUENCE {
                clusterCandidateMacAddr  MacAddress,
                clusterCandidateDesc     DisplayString,
                clusterCandidateRole     INTEGER
    }

clusterCandidateMacAddr OBJECT-TYPE
       SYNTAX     MacAddress
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The MAC address of the candidate."
       ::= {clusterCandidateEntry  1 }

clusterCandidateDesc OBJECT-TYPE
       SYNTAX     DisplayString (SIZE (0..42))
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The description of the candidate."
       ::= {clusterCandidateEntry  3 }

clusterCandidateRole OBJECT-TYPE
       SYNTAX     INTEGER
                  {
                      candidate(2),
                      activeMember(3),
                      inactiveMember(4)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The role of the candidate.
                candidate(2)     : The switch is discovered by the commander,
                                   but it has not been manually configured for
                                   access from the commander.
                activeMember(3)  : The switch is manually configured for access
                                   from the commander and it is active in the
                                   cluster.
                inactiveMember(4): The switch is manually configured for access
                                   from the commander, but it is inactive in
                                   the cluster."
       ::= {clusterCandidateEntry  4 }

clusterMemberTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ClusterMemberEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table listing clustering members."
    ::= { clusterMgt 10 }

clusterMemberEntry OBJECT-TYPE
    SYNTAX     ClusterMemberEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
          "A conceptual row containing the information of the member."
    INDEX { clusterMemberId}
    ::= { clusterMemberTable 1 }

ClusterMemberEntry ::=
    SEQUENCE {
                clusterMemberId       Unsigned32,
                clusterMemberMacAddr  MacAddress,
                clusterMemberDesc     DisplayString,
                clusterMemberActive   INTEGER
             }

clusterMemberId OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The ID of the member."
       ::= {clusterMemberEntry  1 }

clusterMemberMacAddr OBJECT-TYPE
       SYNTAX     MacAddress
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The MAC address of the member."
       ::= {clusterMemberEntry  2 }

clusterMemberDesc OBJECT-TYPE
       SYNTAX     DisplayString(SIZE (0..42))
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The description of the member."
       ::= {clusterMemberEntry  3 }

clusterMemberActive OBJECT-TYPE
       SYNTAX     INTEGER
                  {
                      activeMember(3),
                      inactiveMember(4)
                  }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The active status of the member.
                activeMember(3)  : The switch is manually configured for access
                                   from the commander and it is active in the
                                   cluster.
                inactiveMember(4): The switch is manually configured for access
                                   from the commander, but it is inactive in
                                   the cluster."
       ::= {clusterMemberEntry  4 }

clusterMemberAddCtl  OBJECT IDENTIFIER ::= { clusterMgt 11 }

clusterMemberAddCtlMacAddr  OBJECT-TYPE
    SYNTAX     MacAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The MAC address of the device associated with clusterMemberAddCtlAction."
    ::= { clusterMemberAddCtl 1 }

clusterMemberAddCtlId  OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The member id associated with clusterMemberAddCtlAction."
    ::= { clusterMemberAddCtl 2 }

clusterMemberAddCtlAction  OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   noAdd(1),
                   add(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Adds the device to members that can be accessed from the commander.
         The MAC of the device is the current value of
         clusterMemberAddCtlMacAddr and the assigned member ID is the current
         value of clusterMemberAddCtlId. Set this object to add(2) to begin
         adding the member."
    ::= { clusterMemberAddCtl 5 }

clusterMemberRemoveCtl  OBJECT IDENTIFIER ::= { clusterMgt 12 }

clusterMemberRemoveCtlId  OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The member ID associated with clusterMemberRemoveCtlAction."
    ::= { clusterMemberRemoveCtl 1 }

clusterMemberRemoveCtlAction  OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   noRemove(1),
                   remove(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Removes the device from members that can be accessed from the commander.
         The member ID is the current value of clusterMemberRemoveCtlId.
         Set this object to remove(2) to begin removing the member."
    ::= { clusterMemberRemoveCtl 2 }

--
-- ipSrcGuardMgt
--

ipSrcGuardConfigTable       OBJECT-TYPE
        SYNTAX      SEQUENCE OF IpSrcGuardConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the configurations to enable or disable
                     IP Source Guard at each port or trunk."
        ::= { ipSrcGuardMgt 1 }

ipSrcGuardConfigEntry       OBJECT-TYPE
        SYNTAX      IpSrcGuardConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance contains the configuration to enable
                     or disable IP Source Guard at each port or trunk."
        INDEX       { ipSrcGuardPortIfIndex }
        ::= { ipSrcGuardConfigTable 1 }

IpSrcGuardConfigEntry       ::= SEQUENCE
{
        ipSrcGuardPortIfIndex       InterfaceIndex,
        ipSrcGuardMode              INTEGER
}

ipSrcGuardPortIfIndex       OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object idents the port or trunk which is capable of
                     IP Source Guard feature."
        ::= { ipSrcGuardConfigEntry 1 }

ipSrcGuardMode      OBJECT-TYPE
        SYNTAX      INTEGER { diabled(0), srcIp(1), srcIpMac(2) }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether Ip Source Guard is enabled
                     at this interface. If the value equals 0, it means Ip Source
                     Guard  is disabled. If the value equals 1, it means Ip Source
                     Guard is enabled, and packets are filtered by checking source ip.
                     If the value equals 2, it means Ip Source Guard is enabled
                     and packets are filtered by checking source ip and source mac."
        ::= { ipSrcGuardConfigEntry 2 }
--
ipSrcGuardAddrTable     OBJECT-TYPE
        SYNTAX      SEQUENCE OF IpSrcGuardAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the IP Source Guard bindings information
                     learnt by the device."
        ::= { ipSrcGuardMgt 2 }

ipSrcGuardAddrEntry     OBJECT-TYPE
        SYNTAX      IpSrcGuardAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance contains the Mac address, IP address type,
                     IP address, VLAN number, interface number, leased time and
                     status."
        INDEX   { ipSrcGuardBindingsVlanIndex, ipSrcGuardBindingsMacAddress }
        ::= { ipSrcGuardAddrTable 1 }

IpSrcGuardAddrEntry     ::= SEQUENCE
{
        ipSrcGuardBindingsVlanIndex         VlanIndex,
        ipSrcGuardBindingsMacAddress        MacAddress,
        ipSrcGuardBindingsAddrType          InetAddressType,
        ipSrcGuardBindingsEntryType         INTEGER,
        ipSrcGuardBindingsIpAddress         IpAddress,
        ipSrcGuardBindingsPortIfIndex       InterfaceIndex,
        ipSrcGuardBindingsLeaseTime         Unsigned32,
        ipSrcGuardBindingsStatus         RowStatus
}
ipSrcGuardBindingsVlanIndex      OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the VLAN which a DHCP client host
                     belongs to."
        ::= { ipSrcGuardAddrEntry 1 }

ipSrcGuardBindingsMacAddress     OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the MAC address of a DHCP client
                     host."
        ::= { ipSrcGuardAddrEntry 2 }

ipSrcGuardBindingsAddrType       OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "This object indicates the type of IP address denoted in
                     ipSrcGuardBindingsIpAddress type."
        ::= { ipSrcGuardAddrEntry 3 }

ipSrcGuardBindingsEntryType     OBJECT-TYPE
        SYNTAX      INTEGER { dynamic(1), static(3) }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates that this binding is obtained from
                     dynamically learning or is a static configuraion."
        ::= { ipSrcGuardAddrEntry 4 }

ipSrcGuardBindingsIpAddress     OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "This object indicates the allocated IP address of
                     a DHCP client host."
        ::= { ipSrcGuardAddrEntry 5 }

ipSrcGuardBindingsPortIfIndex   OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "This object indicates the port or trunk where a DHCP client
                     host connects to."
        ::= { ipSrcGuardAddrEntry 6 }

ipSrcGuardBindingsLeaseTime     OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates the leased time of this DHCP
                     bindings."
        ::= { ipSrcGuardAddrEntry 7 }

ipSrcGuardBindingsStatus     OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The status of this conceptual row entry. This object issued 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."
        ::= { ipSrcGuardAddrEntry 8 }

--
-- upnpMgt
--

upnpStatus     OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Sets enabled(1) to enable UPnP device, and sets disabled(2) to
                 disable UPnP device."
    ::= { upnpMgt 1 }

upnpAdvertisingDuration     OBJECT-TYPE
    SYNTAX      Integer32 (60..86400)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The interval(in seconds) between available UPnP device advertising
                 messages sent by the switch."
    ::= { upnpMgt 2 }

upnpTtl    OBJECT-TYPE
    SYNTAX      Integer32 (1..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the TTL value of the UPnP advertising messages sent by
                 the switch. When the TTL value is greater than 1, it is possible
                 to send UPnP advertising messages to traverse multiple routers;
                 at the same time, the UPnP device will send an IGMP Join message
                 to the traverse multiple routers so that the routers will forward
                 multicast messages to the UPnP device."
    ::= { upnpMgt 3 }

--
-- sFlowMgt
--

sFlowStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this to enabled(1) to enable global sFlow, and set
                     this to disabled(2) to disable global sFlow."
        ::= { sFlowMgt 1 }

sFlowPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SFlowPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table that contains the settings of sFlow."
        ::= { sFlowMgt 2 }

sFlowPortEntry OBJECT-TYPE
        SYNTAX      SFlowPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row of sFlowPortTable."
        INDEX       { sFlowPortIndex }
        ::= { sFlowPortTable 1 }

SFlowPortEntry ::= SEQUENCE
{
        sFlowPortIndex      Unsigned32,
        sFlowPortStatus     EnabledStatus
}

sFlowPortIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port number of a port. 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."
        ::= { sFlowPortEntry 1 }

sFlowPortStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set this to enabled(1) to enable sFlow on this port, and
                     set this to disabled(2) to disable sFlow on this port."
        ::= { sFlowPortEntry 2 }

-- oamMgt
-- for EL228
--

oamPortStatusTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF OamPortStatusEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the status of OAM at each port."
        ::= { oamMgt 1 }

oamPortStatusEntry OBJECT-TYPE
        SYNTAX      OamPortStatusEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the status of OAM at each port."
        INDEX       { oamPortIfIndex }
        ::= { oamPortStatusTable 1 }

OamPortStatusEntry       ::= SEQUENCE
{
        oamPortIfIndex       InterfaceIndex,
        oamEnableStatus      EnabledStatus
}

oamPortIfIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { oamPortStatusEntry 1 }

oamEnableStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object configures the status of OAM at each port."
        ::= { oamPortStatusEntry 2 }

--
oamPortModeTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF OamPortModeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the mode of OAM at each port."
        ::= { oamMgt 2 }

oamPortModeEntry OBJECT-TYPE
        SYNTAX      OamPortModeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the mode of OAM at each port."
        INDEX       { oamPortModeIndex }
        ::= { oamPortModeTable 1 }

OamPortModeEntry       ::= SEQUENCE
{
        oamPortModeIndex       InterfaceIndex,
        oamPortMode            INTEGER
}

oamPortModeIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { oamPortModeEntry 1 }

oamPortMode OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        active(1),
                        passive(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object configures the mode of OAM at each port."
        ::= { oamPortModeEntry 2 }

--
oamPortClearStatTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF OamPortClearStatEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of clear OAM statistics
                     at each port."
        ::= { oamMgt 3 }

oamPortClearStatEntry OBJECT-TYPE
        SYNTAX      OamPortClearStatEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the information of clear OAM statistics
                     at each port."
        INDEX       { oamPortClearStatIndex }
        ::= { oamPortClearStatTable 1 }

OamPortClearStatEntry       ::= SEQUENCE
{
        oamPortClearStatIndex       InterfaceIndex,
        oamClearStatistics          INTEGER
}

oamPortClearStatIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { oamPortClearStatEntry 1 }

oamClearStatistics OBJECT-TYPE
    SYNTAX  INTEGER
            {
                noClear(1),
                clear(2)
            }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "This variable is used to clear the counters for OAM.
                 Set this variable to clear(2) to perform the clear operation,
                 noClear(1) will always be displayed when reading this
                 variable."
    ::= { oamPortClearStatEntry  2 }

oamLoopbackTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OamLoopbackEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table for OAM remote loopback test."
    ::= { oamMgt 4 }

oamLoopbackEntry OBJECT-TYPE
    SYNTAX      OamLoopbackEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry for OAM remote loopback test."
    INDEX       { oamLoopbackTestIfIndex }
    ::= { oamLoopbackTable 1 }

OamLoopbackEntry ::= SEQUENCE
{
    oamLoopbackTestIfIndex          Unsigned32,
    oamLoopbackTestPacketNumber     Integer32,
    oamLoopbackTestPacketSize       Integer32,
    oamLoopbackTestAction           INTEGER,
    oamLoopbackTestResultTx         Counter32,
    oamLoopbackTestResultRx         Counter32
}

oamLoopbackTestIfIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The ifIndex value of the port(excluding trunk). 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."
        ::= { oamLoopbackEntry 1 }

oamLoopbackTestPacketNumber OBJECT-TYPE
    SYNTAX     Integer32(1..99999999)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "Setting the packet number when performing loopback test."
    ::= { oamLoopbackEntry 2}

oamLoopbackTestPacketSize OBJECT-TYPE
    SYNTAX      Integer32(64..1518)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Setting the packet size when performing loopback test."
    ::= { oamLoopbackEntry 3 }

oamLoopbackTestAction OBJECT-TYPE
    SYNTAX  INTEGER
            {
                noTest(1),
                test(2)
            }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "Setting this object to test(2) to begin the loopback test.
                 This object will be noTest(1) when the loopback test is
                 canceled or the loopback test has finished."
    ::= { oamLoopbackEntry 4}

oamLoopbackTestResultTx OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "frames"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A count of the the total number of loopback frames transmitted
                 at last loopback test on this interface."
    ::= { oamLoopbackEntry 5}

oamLoopbackTestResultRx OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "frames"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "A count of the the total number of loopback frames received
                 at last loopback test on this interface."
    ::= { oamLoopbackEntry 6}


--
-- remoteMgt
-- node 1-20 are form China
-- node 21 for ASE3528B-E1-FLF-38
--

remoteAcceptableFrameTypeTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteAcceptableFrameTypeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table that contains the acceptable frame type
                     configuration at the specified remote device."
        ::= { remoteMgt 1 }


remoteAcceptableFrameTypeEntry OBJECT-TYPE
        SYNTAX      RemoteAcceptableFrameTypeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry that contains the acceptable frame type
                     configuration at the specified remote device."
        INDEX       { remoteAcceptableFrameTypeIndex }
        ::= { remoteAcceptableFrameTypeTable 1 }

RemoteAcceptableFrameTypeEntry       ::= SEQUENCE
{
        remoteAcceptableFrameTypeIndex   InterfaceIndex,
        remoteAcceptableFrameType        INTEGER
}

remoteAcceptableFrameTypeIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteAcceptableFrameTypeEntry 1 }

remoteAcceptableFrameType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                    both(1),
                    tagged(2),
                    untagged(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object configures the acceptable frame types at the
                     specified remote device."
        ::= { remoteAcceptableFrameTypeEntry 2 }


----
remoteEepromWriteTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteEepromWriteEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of whether EEPROM is
                     writable at the specified remote device."
        ::= { remoteMgt 2 }

remoteEepromWriteEntry OBJECT-TYPE
        SYNTAX      RemoteEepromWriteEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry that contains  the information of whether EEPROM
                     is writable at the specified remote device."
        INDEX       { remoteEepromWriteIndex }
        ::= { remoteEepromWriteTable 1 }

RemoteEepromWriteEntry       ::= SEQUENCE
{
        remoteEepromWriteIndex               InterfaceIndex,
        remoteEepromWriteEnableStatus        EnabledStatus
}

remoteEepromWriteIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteEepromWriteEntry 1 }

remoteEepromWriteEnableStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the status of EEPROM at the
                     specified remote device."
        ::= { remoteEepromWriteEntry 2 }

----
remoteFlowControlEnbaleTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteFlowControlEnbaleEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the flow control configuation at the
                     specified remote device."
        ::= { remoteMgt 3 }

remoteFlowControlEnbaleEntry OBJECT-TYPE
        SYNTAX      RemoteFlowControlEnbaleEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry that contains  the flow control configuration
                     at the specified remote device."
        INDEX       { remoteFLIndex }
        ::= { remoteFlowControlEnbaleTable 1 }

RemoteFlowControlEnbaleEntry       ::= SEQUENCE
{
        remoteFLIndex               InterfaceIndex,
        remoteFlowControlEnbale        EnabledStatus
}

remoteFLIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteFlowControlEnbaleEntry 1 }

remoteFlowControlEnbale OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the status of flow control at the
                     specified remote device."
        ::= { remoteFlowControlEnbaleEntry 2 }

----
remoteNegotiationEnableTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteNegotiationEnableEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the auto-negotiation configuration
                     at the specified remote device."
        ::= { remoteMgt 4 }

remoteNegotiationEnableEntry OBJECT-TYPE
        SYNTAX      RemoteNegotiationEnableEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the auto-negotiation configuration
                     at the specified remote device."
        INDEX       { remoteNegoIndex }
        ::= { remoteNegotiationEnableTable 1 }

RemoteNegotiationEnableEntry       ::= SEQUENCE
{
        remoteNegoIndex               InterfaceIndex,
        remoteNegotiationEnable        EnabledStatus
}

remoteNegoIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteNegotiationEnableEntry 1 }

remoteNegotiationEnable OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the status of auto negotiation
                     at the specified remote device."
        ::= { remoteNegotiationEnableEntry 2 }

----
remoteShutDownEnableTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteShutDownEnableEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of whether shutdown
                     process is enabled at the specified remote device."
        ::= { remoteMgt 5 }

remoteShutDownEnableEntry OBJECT-TYPE
        SYNTAX      RemoteShutDownEnableEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains  the information of whether shutdown
                     process is enabled at the specified remote device."
        INDEX       { remoteSDIndex }
        ::= { remoteShutDownEnableTable 1 }

RemoteShutDownEnableEntry       ::= SEQUENCE
{
        remoteSDIndex               InterfaceIndex,
        remoteShutDownEnable        EnabledStatus
}

remoteSDIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteShutDownEnableEntry 1 }

remoteShutDownEnable OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enable or disable the remote ShutDown."
        ::= { remoteShutDownEnableEntry 2 }

----
remoteInputToSwitchTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteInputToSwitchEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of whether the input
                     is tagged or untagged at the specified remote device."
        ::= { remoteMgt 6 }

remoteInputToSwitchEntry OBJECT-TYPE
        SYNTAX      RemoteInputToSwitchEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains  the information of whether the input
                     is tagged or untagged at the specified remote device."
        INDEX       { remoteInputIndex }
        ::= { remoteInputToSwitchTable 1 }

RemoteInputToSwitchEntry       ::= SEQUENCE
{
        remoteInputIndex               InterfaceIndex,
        remoteInputToSwitch            INTEGER
}

remoteInputIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteInputToSwitchEntry 1 }

remoteInputToSwitch OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                    tagged(1),
                    untagged(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the packet format of input at the
                     specified remote device."
        ::= { remoteInputToSwitchEntry 2 }
----
remoteOutputToSubscriberTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteOutputToSubscriberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of whether output to
                     subscriber is tagged or untagged at the specified remote
                     device."
        ::= { remoteMgt 7 }

remoteOutputToSubscriberEntry OBJECT-TYPE
        SYNTAX      RemoteOutputToSubscriberEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains  the information of whether output to
                     subscriber is tagged or untagged at the specified remote
                     device."
        INDEX       { remoteOutputIndex }
        ::= { remoteOutputToSubscriberTable 1 }

RemoteOutputToSubscriberEntry       ::= SEQUENCE
{
        remoteOutputIndex               InterfaceIndex,
        remoteOutputToSubscriber            INTEGER
}

remoteOutputIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteOutputToSubscriberEntry 1 }

remoteOutputToSubscriber OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                    tagged(1),
                    untagged(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the packet format of output to
                     subscriber at the specified remote device."
        ::= { remoteOutputToSubscriberEntry 2 }
----
remoteSpeedDuplexTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteSpeedDuplexEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the speed-duplex configuration at the
                     specified remote device."
        ::= { remoteMgt 8 }

remoteSpeedDuplexEntry OBJECT-TYPE
        SYNTAX      RemoteSpeedDuplexEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the speed-duplex configuration at the
                     specified remote device."
        INDEX       { remoteSpeedDuplexIndex }
        ::= { remoteSpeedDuplexTable 1 }

RemoteSpeedDuplexEntry       ::= SEQUENCE
{
        remoteSpeedDuplexIndex                InterfaceIndex,
        remoteSpeedDuplex            INTEGER
}

remoteSpeedDuplexIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteSpeedDuplexEntry 1 }

remoteSpeedDuplex OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                    half10(1),
                    full10(2),
                    half100(3),
                    full100(4),
                    negotiation(5)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the speed-duplex at the specified
                     remote device."
        ::= { remoteSpeedDuplexEntry 2 }

----
remoteMdixTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteMdixEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the MDIX configuration at the specified
                     remote device."
        ::= { remoteMgt 9 }

remoteMdixEntry OBJECT-TYPE
        SYNTAX      RemoteMdixEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the MDIX configuration at the specified
                     remote device."
        INDEX       { remoteMdixIndex }
        ::= { remoteMdixTable 1 }

RemoteMdixEntry       ::= SEQUENCE
{
        remoteMdixIndex                InterfaceIndex,
        remoteMdix            INTEGER
}

remoteMdixIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteMdixEntry 1 }

remoteMdix OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                    auto(1),
                    normal(2),
                    crossover(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the MDIX at the specified remote
                     device."
        ::= { remoteMdixEntry 2 }

----
remoteDefaultTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteDefaultEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of default VLAN and
                     priority at the specified remote device."
        ::= { remoteMgt 10 }

remoteDefaultEntry OBJECT-TYPE
        SYNTAX      RemoteDefaultEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the information of default VLAN and
                     priority at the specified remote device."
        INDEX       { remoteDefaultIndex }
        ::= { remoteDefaultTable 1 }

RemoteDefaultEntry       ::= SEQUENCE
{
        remoteDefaultIndex                InterfaceIndex,
        remoteDefaultVlan                 Integer32,
        remoteDefaultPriority              Integer32,
        remoteDefaultEnable               EnabledStatus
}

remoteDefaultIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteDefaultEntry 1 }

remoteDefaultVlan OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the default VLAN at the specified
                     remote device."
        ::= { remoteDefaultEntry 2 }

remoteDefaultPriority OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the default priority at the remote
                     specified device."
        ::= { remoteDefaultEntry 3 }

remoteDefaultEnable OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object is to take effect default VLAN and priority
                     at the remote specified device."
        ::= { remoteDefaultEntry 4 }
----
remoteProtocolVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteProtocolVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of protocal VLAN at the
                     remote specified device."
        ::= { remoteMgt 11 }

remoteProtocolVlanEntry OBJECT-TYPE
        SYNTAX      RemoteProtocolVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the information of protocal VLAN at the
                     specified remote device."
        INDEX       { remoteProtocolVlanIndex,remoteProtocolVlanEtherType }
        ::= { remoteProtocolVlanTable 1 }

RemoteProtocolVlanEntry       ::= SEQUENCE
{
        remoteProtocolVlanIndex                InterfaceIndex,
        remoteProtocolVlanEtherType            Unsigned32,
        remoteProtocolVlanVid                  Integer32,
        remoteProtocolVlanPririty              Integer32,
        remoteProtocolVlanRowStatus            RowStatus
}

remoteProtocolVlanIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteProtocolVlanEntry 1 }

remoteProtocolVlanEtherType OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The object configures the Ether type at the specified
                     remote device."
        ::= { remoteProtocolVlanEntry 2 }

remoteProtocolVlanVid OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The vlan of each port."
        ::= { remoteProtocolVlanEntry 3 }

remoteProtocolVlanPririty OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the VLAN ID at the specified remote
                     device."
        ::= { remoteProtocolVlanEntry 4 }

remoteProtocolVlanRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
	    DESCRIPTION "The status of this conceptual row entry. This object is
	                 issued 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 it is unavailable for use by
			     the managed device (see NOTE below);

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

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

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

			     - 'destroy', which is supplied by a management station
    			     intending 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'
                        and 'active'.  That is, when queried, an existing
                        conceptual row has only three states:  it is 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 be failed 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."
        ::= { remoteProtocolVlanEntry 5 }


----
remoteQueueCosMapTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteQueueCosMapEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of queue number and
                     priority of CoS map at the specified remote device."
        ::= { remoteMgt 12 }

remoteQueueCosMapEntry OBJECT-TYPE
        SYNTAX      RemoteQueueCosMapEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the information of queue number and
                     priority of CoS map at the specified remote device."
        INDEX       { remoteQueueCosMapIndex,remoteQueueCosMapPriority }
        ::= { remoteQueueCosMapTable 1 }

RemoteQueueCosMapEntry       ::= SEQUENCE
{
        remoteQueueCosMapIndex                InterfaceIndex,
        remoteQueueCosMapPriority             Unsigned32,
        remoteQueueCosMapQueue                 Integer32,
        remoteQueueCosMapEnable               EnabledStatus
}

remoteQueueCosMapIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteQueueCosMapEntry 1 }

remoteQueueCosMapPriority OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The object configures the priority at the specified
                     remote device."
        ::= { remoteQueueCosMapEntry 2 }

remoteQueueCosMapQueue OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the queue number of CoS map at the
                     specified remote device."
        ::= { remoteQueueCosMapEntry 3 }

remoteQueueCosMapEnable OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object is to take effect the queue Cos map setting at
                     the remote device."
        ::= { remoteQueueCosMapEntry 4 }

----
remoteQueueModeMgt        OBJECT IDENTIFIER ::= { remoteMgt 13 }

remoteQueueModeTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteQueueModeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of queue mode at the
                     specified remote device."
        ::= { remoteQueueModeMgt 1 }

remoteQueueModeEntry OBJECT-TYPE
        SYNTAX      RemoteQueueModeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the information of queue mode at the
                     specified remote device."
        INDEX       { remoteOutputIndex }
        ::= { remoteQueueModeTable 1 }

RemoteQueueModeEntry       ::= SEQUENCE
{
        remoteQueueModeIndex               InterfaceIndex,
        remoteQueueMode            INTEGER
}

remoteQueueModeIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteQueueModeEntry 1 }

remoteQueueMode OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                    wrr(1),
                    strict(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the queue mode at the specified
                     remote device."
        ::= { remoteQueueModeEntry 2 }


remoteWrrPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteWrrPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of the weighted round
                     robin (WRR) at the specified remote device."
        ::= { remoteQueueModeMgt 2 }

remoteWrrPortEntry OBJECT-TYPE
        SYNTAX      RemoteWrrPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the information of the WRR at the
                     specified remote device."
        INDEX       { remoteWrrPortIfIndex,remoteWrrPortQueueID }
        ::= { remoteWrrPortTable 1 }

RemoteWrrPortEntry ::= SEQUENCE
{
	  remoteWrrPortIfIndex 			Unsigned32,
    remoteWrrPortQueueID    Integer32,
    remoteWrrPortWeight          Integer32
}

remoteWrrPortIfIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteWrrPortEntry 1 }

remoteWrrPortQueueID OBJECT-TYPE
        SYNTAX      Integer32 (0..3)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The object configures the queue ID of WRR at the specified
                     remote device."
        ::= { remoteWrrPortEntry 2 }

remoteWrrPortWeight OBJECT-TYPE
        SYNTAX      Integer32 (1..15)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the weight of WRR at the specified
                     remote device."
        ::= { remoteWrrPortEntry 3 }
----
remoteMapTagPriorityMgt        OBJECT IDENTIFIER ::= { remoteMgt 14 }

remoteMapTagPriStatusTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteMapTagPriStatusEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the status of tag-priority map at the
                     specified remote device."
        ::= { remoteMapTagPriorityMgt 1 }

remoteMapTagPriStatusEntry OBJECT-TYPE
        SYNTAX      RemoteMapTagPriStatusEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the status of tag-priority map at the
                     specified remote device."
        INDEX       { remoteMapTagPriStatusIndex }
        ::= { remoteMapTagPriStatusTable 1 }

RemoteMapTagPriStatusEntry       ::= SEQUENCE
{
        remoteMapTagPriStatusIndex               InterfaceIndex,
        remoteMapTagPriStatus            EnabledStatus
}

remoteMapTagPriStatusIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteMapTagPriStatusEntry 1 }

remoteMapTagPriStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the status of tap-priority map at
                     the specified remote device."
        ::= { remoteMapTagPriStatusEntry 2 }


remoteMapTagPriorityTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteMapTagPriorityEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of tag-priority map at
                     the specified remote device."
        ::= { remoteMapTagPriorityMgt 2 }

remoteMapTagPriorityEntry OBJECT-TYPE
        SYNTAX      RemoteMapTagPriorityEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the information of tag-priority map at
                     the specified remote device."
        INDEX       { remoteMapTagPriorityIndex,remoteMapTagPriority }
        ::= { remoteMapTagPriorityTable 1 }

RemoteMapTagPriorityEntry ::= SEQUENCE
{
	  remoteMapTagPriorityIndex 			Unsigned32,
    remoteMapTagPriority            Integer32,
    remoteMapTagPriorityPri         Integer32
}

remoteMapTagPriorityIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteMapTagPriorityEntry 1 }

remoteMapTagPriority OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The object shows the tap-priority map at the specified
                     remote device."
        ::= { remoteMapTagPriorityEntry 2 }

remoteMapTagPriorityPri OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the priority of tap-priority map at
                     the specified remote device."
        ::= { remoteMapTagPriorityEntry 3 }

----
remoteMapTosMgt        OBJECT IDENTIFIER ::= { remoteMgt 15 }

remoteMapTosStatusTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteMapTosStatusEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the status of ToS map at the specified
                     remote device."
        ::= { remoteMapTosMgt 1 }

remoteMapTosStatusEntry OBJECT-TYPE
        SYNTAX      RemoteMapTosStatusEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the status of ToS map at the specified
                     remote device."
        INDEX       { remoteMapTosStatusIndex }
        ::= { remoteMapTosStatusTable 1 }

RemoteMapTosStatusEntry       ::= SEQUENCE
{
        remoteMapTosStatusIndex               InterfaceIndex,
        remoteMapTosEnableStatus            EnabledStatus
}

remoteMapTosStatusIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteMapTosStatusEntry 1 }

remoteMapTosEnableStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the status of ToS map at the
                     specified remote device."
        ::= { remoteMapTosStatusEntry 2 }


remoteMapTosTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteMapTosEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of ToS map at the
                     specified remote device."
        ::= { remoteMapTosMgt 2 }

remoteMapTosEntry OBJECT-TYPE
        SYNTAX      RemoteMapTosEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the information of the TOS map at the
                     remote device."
        INDEX       { remoteMapTosIndex,remoteMapTos }
        ::= { remoteMapTosTable 1 }

RemoteMapTosEntry ::= SEQUENCE
{
	  remoteMapTosIndex 			Unsigned32,
    remoteMapTos            Integer32,
    remoteMapTosPri         Integer32,
    remoteMapTosStatus      RowStatus
}

remoteMapTosIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteMapTosEntry 1 }

remoteMapTos OBJECT-TYPE
        SYNTAX      Integer32 (0..255)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The object shows the ToS map at the specified remote
                     device."
        ::= { remoteMapTosEntry 2 }

remoteMapTosPri OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the the priority of ToS map at the
                     specified remote device."
        ::= { remoteMapTosEntry 3 }

remoteMapTosStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
	    DESCRIPTION "The status of this conceptual row entry. This object is
	                 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 it is unavailable for use by
			     the managed device (see NOTE below);

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

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

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

			     - 'destroy', which is supplied by a management station
    			     intending 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'
			         and 'active'.  That is, when queried, an existing
			         conceptual row has only three states:  it is 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 be failed 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."
        ::= { remoteMapTosEntry 4 }

remoteMapTrafficClassMgt        OBJECT IDENTIFIER ::= { remoteMgt 16 }

remoteMapTrafficClassStatusTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteMapTrafficClassStatusEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the status of traffic class map at the
                     specified remote device."
        ::= { remoteMapTrafficClassMgt 1 }

remoteMapTrafficClassStatusEntry OBJECT-TYPE
        SYNTAX      RemoteMapTrafficClassStatusEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the status of traffic class map at the
                     specified remote device."
        INDEX       { remoteMapTCStatusIndex }
        ::= { remoteMapTrafficClassStatusTable 1 }

RemoteMapTrafficClassStatusEntry       ::= SEQUENCE
{
        remoteMapTCStatusIndex               InterfaceIndex,
        remoteMapTCEnableStatus            EnabledStatus
}

remoteMapTCStatusIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteMapTrafficClassStatusEntry 1 }

remoteMapTCEnableStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the status of traffic class map at
                     the specified remote device."
        ::= { remoteMapTrafficClassStatusEntry 2 }

--remoteMapTrafficClassTable
remoteMapTrafficClassTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteMapTrafficClassEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the information of traffic class map at
                     the specified remote device."
        ::= { remoteMapTrafficClassMgt 2 }

remoteMapTrafficClassEntry OBJECT-TYPE
        SYNTAX      RemoteMapTrafficClassEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the information of traffic class map
                     at the specified remote device."
        INDEX       { remoteMapTrafficClassIfIndex,remoteMapTrafficClass }
        ::= { remoteMapTrafficClassTable 1 }

RemoteMapTrafficClassEntry ::= SEQUENCE
{
	  remoteMapTrafficClassIfIndex 		 Unsigned32,
    remoteMapTrafficClass            Integer32,
    remoteMapCos                  Integer32,
    remoteMapTrafficClassStatus      RowStatus
}

remoteMapTrafficClassIfIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteMapTrafficClassEntry 1 }

remoteMapTrafficClass OBJECT-TYPE
        SYNTAX      Integer32 (0..255)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The object shows the traffic class map at the specified
                     remote device."
        REFERENCE "MIB.IETF|Q-BRIDGE-MIB.dot1dTrafficClass."
        ::= { remoteMapTrafficClassEntry 2 }

remoteMapCos OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The object configures the value of CoS at the specified
                     remote device."
        ::= { remoteMapTrafficClassEntry 3 }


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

			         For the following, check the corrections above.

			     - '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."
        ::= { remoteMapTrafficClassEntry 4 }

----
----
remoteFactoryDefaultTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteFactoryDefaultEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the factory default setting at the
                     specified remote device."
        ::= { remoteMgt 17 }

remoteFactoryDefaultEntry OBJECT-TYPE
        SYNTAX      RemoteFactoryDefaultEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the factory default setting at the
                     specified remote device."
        INDEX       { remoteFactoryDefaultIndex }
        ::= { remoteFactoryDefaultTable 1 }

RemoteFactoryDefaultEntry       ::= SEQUENCE
{
        remoteFactoryDefaultIndex               InterfaceIndex,
        remoteFactoryDefault        INTEGER
}

remoteFactoryDefaultIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteFactoryDefaultEntry 1 }

remoteFactoryDefault OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        set(1)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object is to apply the factory default setting at
                     the specified remote device."
        ::= { remoteFactoryDefaultEntry 2 }

----
remoteDeviceStatisticTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteDeviceStatisticEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table shows the statistics for each remote device's
                     port."
        ::= { remoteMgt 18 }

remoteDeviceStatisticEntry OBJECT-TYPE
        SYNTAX      RemoteDeviceStatisticEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry shows the statistics for each remote device's
                     port."
        INDEX       { remoteStatisticPortIndex,remoteDeviceStatisticIfIndex }
        ::= { remoteDeviceStatisticTable 1 }

RemoteDeviceStatisticEntry       ::= SEQUENCE
{
        remoteStatisticPortIndex       InterfaceIndex,
        remoteDeviceStatisticIfIndex           Unsigned32,
        remoteTxPausePacket                    Integer32,
        remoteRxPausePacket                    Integer32,
        remoteRxErrorPacket                    Integer32
}

remoteStatisticPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteDeviceStatisticEntry 1 }

remoteDeviceStatisticIfIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the remote device."
        ::= { remoteDeviceStatisticEntry 2 }

remoteTxPausePacket OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of pause frames transmitted from the
                     remote device's port."
        ::= { remoteDeviceStatisticEntry 3 }

remoteRxPausePacket OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of pause frames received from the remote
                     device's port."
        ::= { remoteDeviceStatisticEntry 4 }

remoteRxErrorPacket OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of error frames received from the remote
                     device's port."
        ::= { remoteDeviceStatisticEntry 5 }


remoteQueuePacketStatisticTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteQueuePacketStatisticEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the packet statistics of each queue for
                     the remote device's port."
        ::= { remoteMgt 19 }

remoteQueuePacketStatisticEntry OBJECT-TYPE
        SYNTAX      RemoteQueuePacketStatisticEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the packet statistics of each queue for
                     the remote device's port."
        INDEX       { remoteQueuePacketStatisticPortIndex,
                      remoteQueuePacketDeviceStatisticIfIndex,
                      remoteQueuePacketQueueIndex }
        ::= { remoteQueuePacketStatisticTable 1 }

RemoteQueuePacketStatisticEntry       ::= SEQUENCE
{
        remoteQueuePacketStatisticPortIndex       InterfaceIndex,
        remoteQueuePacketDeviceStatisticIfIndex   Unsigned32,
        remoteQueuePacketQueueIndex               Unsigned32,
        remoteQueueDropPacket                  Integer32,
        remoteQueueForwardingPacket            Integer32
}

remoteQueuePacketStatisticPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteQueuePacketStatisticEntry 1 }

remoteQueuePacketDeviceStatisticIfIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the specified
                     remote device."
        ::= { remoteQueuePacketStatisticEntry 2 }

remoteQueuePacketQueueIndex OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the index of packet queue of the
                     specified remote device."
        ::= { remoteQueuePacketStatisticEntry 3 }

remoteQueueDropPacket OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of packets dropped by the remote device's
                     port."
        ::= { remoteQueuePacketStatisticEntry 4 }

remoteQueueForwardingPacket OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of packets forwarded by the remote
                     device's port."
        ::= { remoteQueuePacketStatisticEntry 5 }

remoteMacAddressTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteMacAddressEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the MAC address of the specified remote
                     device."
        ::= { remoteMgt 20 }

remoteMacAddressEntry OBJECT-TYPE
        SYNTAX      RemoteMacAddressEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry contains the MAC address of the specified remote
                     device."
        INDEX       { remoteMacAddressIfIndex }
        ::= { remoteMacAddressTable 1 }

RemoteMacAddressEntry       ::= SEQUENCE
{
        remoteMacAddressIfIndex       InterfaceIndex,
        remoteMacAddress              OCTET STRING,
        remoteMacAddressStatus        ValidStatus
}

remoteMacAddressIfIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object shows the ifIndex value of the port excluding
                     trunk."
        ::= { remoteMacAddressEntry 1 }

remoteMacAddress OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object shows the MAC address of the specified remote
                     device."
        ::= { remoteMacAddressEntry 2 }

remoteMacAddressStatus OBJECT-TYPE
        SYNTAX      ValidStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object shows the information of whether the MAC
                     address of the remote device is valided."
        ::= { remoteMacAddressEntry 3 }

--
-- remoteDeviceMgt
--

remoteDeviceMgt        OBJECT IDENTIFIER ::= { remoteMgt 21 }

remoteDeviceReset OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To reset the remote device which is connected to a port,
                     assign remoteDeviceReset to the value of ifIndex defined
                     by the ifIndex in the IF-MIB. When read, this object
                     always returns 0."
        ::= { remoteDeviceMgt 1 }

remoteDeviceFactoryDefault OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To reset the remote device which is connected to a port
                     and restore the default setting, assign
                     remoteDeviceFactoryDefault to the value of ifIndex defined
                     by the ifIndex in the IF-MIB. When read, this object
                     always returns 0."
        ::= { remoteDeviceMgt 2 }

remoteAccessPointTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteAccessPointEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Contains the access point setting of CPE."
        ::= { remoteDeviceMgt 3 }

remoteAccessPointEntry OBJECT-TYPE
        SYNTAX      RemoteAccessPointEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the remoteAccessPoint table."
        INDEX       { remoteAccessPointLocalPort }
        ::= { remoteAccessPointTable 1 }

RemoteAccessPointEntry       ::= SEQUENCE
{
        remoteAccessPointLocalPort     InterfaceIndex,
        remoteAccessPointStatus        EnabledStatus
}

remoteAccessPointLocalPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface on the switch. 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."
        ::= { remoteAccessPointEntry 1 }

remoteAccessPointStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this to enabled(1) to enable the Wireless Access Point
                     function. Sets disabled(2) to disable the Wireless
                     Access Point function."
        ::= { remoteAccessPointEntry 2 }

--
-- remoteDhcpServerTable
--

remoteDhcpServerTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteDhcpServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Contains the DHCP server setting of CPE."
        ::= { remoteDeviceMgt 4 }

remoteDhcpServerEntry OBJECT-TYPE
        SYNTAX      RemoteDhcpServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the remoteDhcpServer table."
        INDEX       { remoteDhcpServerLocalPort}
        ::= { remoteDhcpServerTable 1 }

RemoteDhcpServerEntry       ::= SEQUENCE
{
        remoteDhcpServerLocalPort     InterfaceIndex,
        remoteDhcpServerStatus        EnabledStatus,
        remoteDhcpServerIpAddress     IpAddress,
        remoteDhcpServerSubnetMask    IpAddress,
        remoteDhcpServerGateway       IpAddress
}

remoteDhcpServerLocalPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface on the switch. 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."
        ::= { remoteDhcpServerEntry 1 }

remoteDhcpServerStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "If this is enabled(1), the remote device acts as a DHCP
                     server on the LAN side. If this is disabled(2), the remote
                     device does not act as a DHCP server."
        ::= { remoteDhcpServerEntry 2 }

remoteDhcpServerIpAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The IP address of DHCP server at remote device."
        ::= { remoteDhcpServerEntry 3 }

remoteDhcpServerSubnetMask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The subnet mask of DHCP server at remote device."
        ::= { remoteDhcpServerEntry 4 }

remoteDhcpServerGateway OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The IP Address of the default gateway at remote device.
                     If this value is undefined or unknown, it shall have the
                     value 0.0.0.0."
        ::= { remoteDhcpServerEntry 5 }

--
-- remoteVlanTable
--

remoteVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Contains the VLAN settings of CPE."
        ::= { remoteDeviceMgt 5 }

remoteVlanEntry OBJECT-TYPE
        SYNTAX      RemoteVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the remoteVlan table."
        INDEX       { remoteVlanLocalPort, remoteVlanId}
        ::= { remoteVlanTable 1 }

RemoteVlanEntry       ::= SEQUENCE
{
        remoteVlanLocalPort     InterfaceIndex,
        remoteVlanId            Integer32,
        remoteVlanStatus        ValidStatus
}

remoteVlanLocalPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface on the switch. 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."
        ::= { remoteVlanEntry 1 }

remoteVlanId OBJECT-TYPE
        SYNTAX      Integer32 (1..4094)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Specifiies the VLAN ID."
        ::= { remoteVlanEntry 2 }

remoteVlanStatus OBJECT-TYPE
       SYNTAX      ValidStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION "Set valid(1) to create the VLAN. Set invalid(2) to delete
                    the VLAN."
       ::= { remoteVlanEntry 3 }

--
-- remotePortMgt
--

remotePortMgt        OBJECT IDENTIFIER ::= { remoteMgt 22 }

remotePortAdminTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemotePortAdminEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Contains the admin status of LAN ports on CPE."
        ::= { remotePortMgt 1 }

remotePortAdminEntry OBJECT-TYPE
        SYNTAX      RemotePortAdminEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the remotePortAdmin table."
        INDEX       { remotePortAdminLocalPort, remotePortAdminRemotePort }
        ::= { remotePortAdminTable 1 }

RemotePortAdminEntry       ::= SEQUENCE
{
        remotePortAdminLocalPort        InterfaceIndex,
        remotePortAdminRemotePort       Integer32,
        remotePortAdminStatus           EnabledStatus
}

remotePortAdminLocalPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface on the switch. 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."
        ::= { remotePortAdminEntry 1 }

remotePortAdminRemotePort OBJECT-TYPE
        SYNTAX      Integer32 (1..16)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface of remote device."
        ::= { remotePortAdminEntry 2 }

remotePortAdminStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "If this is enabled(1), the remote port is in enabled. If
                     this is disabled(2), the remote port is not in enabled."
        ::= { remotePortAdminEntry 3 }

remotePortPvidTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemotePortPvidEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Contains the VID of LAN ports on CPE."
        ::= { remotePortMgt 2 }

remotePortPvidEntry OBJECT-TYPE
        SYNTAX      RemotePortPvidEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the remotePortPvid table."
        INDEX       { remotePortPvidLocalPort, remotePortPvidRemotePort }
        ::= { remotePortPvidTable 1 }

RemotePortPvidEntry       ::= SEQUENCE
{
        remotePortPvidLocalPort       InterfaceIndex,
        remotePortPvidRemotePort      Integer32,
        remotePortPvid                Integer32
}

remotePortPvidLocalPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface on the switch. 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."
        ::= { remotePortPvidEntry 1 }

remotePortPvidRemotePort OBJECT-TYPE
        SYNTAX      Integer32 (1..16)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface of remote device."
        ::= { remotePortPvidEntry 2 }

remotePortPvid OBJECT-TYPE
        SYNTAX      Integer32 (1..4094)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Sets default VLAN on remote port."
        ::= { remotePortPvidEntry 3 }

remotePortPriorityTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemotePortPriorityEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Contains the priority of LAN ports on CPE."
        ::= { remotePortMgt 3 }

remotePortPriorityEntry OBJECT-TYPE
        SYNTAX      RemotePortPriorityEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the remotePortPriority table."
        INDEX       { remotePortPriorityLocalPort, remotePortPriorityRemotePort }
        ::= { remotePortPriorityTable 1 }

RemotePortPriorityEntry       ::= SEQUENCE
{
        remotePortPriorityLocalPort    InterfaceIndex,
        remotePortPriorityRemotePort   Integer32,
        remotePortPriority             Integer32
}

remotePortPriorityLocalPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface on the switch. 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."
        ::= { remotePortPriorityEntry 1 }

remotePortPriorityRemotePort OBJECT-TYPE
        SYNTAX      Integer32 (1..16)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface of remote device."
        ::= { remotePortPriorityEntry 2 }

remotePortPriority OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Sets default priority on remote port."
        ::= { remotePortPriorityEntry 3 }

remotePortIgmpSnoopingTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemotePortIgmpSnoopingEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Contains the IGMP snooping status of LAN ports on CPE."
        ::= { remotePortMgt 4 }

remotePortIgmpSnoopingEntry OBJECT-TYPE
        SYNTAX      RemotePortIgmpSnoopingEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the remotePortIgmpSnooping table."
        INDEX       { remotePortIgmpSnoopingLocalPort, remotePortIgmpSnoopingRemotePort }
        ::= { remotePortIgmpSnoopingTable 1 }

RemotePortIgmpSnoopingEntry       ::= SEQUENCE
{
        remotePortIgmpSnoopingLocalPort       InterfaceIndex,
        remotePortIgmpSnoopingRemotePort      Integer32,
        remotePortIgmpSnooping                EnabledStatus
}

remotePortIgmpSnoopingLocalPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface on the switch. 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."
        ::= { remotePortIgmpSnoopingEntry 1 }

remotePortIgmpSnoopingRemotePort OBJECT-TYPE
        SYNTAX      Integer32 (1..16)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface of remote device."
        ::= { remotePortIgmpSnoopingEntry 2 }

remotePortIgmpSnooping OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "If this is enabled(1), IGMP snooping is enabled on the
                     remote port. If this is disabled(2), IGMP snooping is
                     disabled on the remote port."
        ::= { remotePortIgmpSnoopingEntry 3 }

remotePortCountersTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemotePortCountersEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Contains the information of LAN ports on CPE."
        ::= { remotePortMgt 5 }

remotePortCountersEntry OBJECT-TYPE
        SYNTAX      RemotePortCountersEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the remotePortCounters table."
        INDEX       { remotePortCountersLocalPort, remotePortCountersRemotePort }
        ::= { remotePortCountersTable 1 }

RemotePortCountersEntry       ::= SEQUENCE
{
        remotePortCountersLocalPort                  InterfaceIndex,
        remotePortCountersRemotePort                 Integer32,
        remotePortCountersInUnicastSupported         TruthValue,
        remotePortCountersInUnicast                  Counter32,
        remotePortCountersInBroadcastSupported       TruthValue,
        remotePortCountersInBroadcast                Counter32,
        remotePortCountersInPauseSupported           TruthValue,
        remotePortCountersInPause                    Counter32,
        remotePortCountersInMulticastSupported       TruthValue,
        remotePortCountersInMulticast                Counter32,
        remotePortCountersOutUnicastSupported        TruthValue,
        remotePortCountersOutUnicast                 Counter32,
        remotePortCountersOutBroadcastSupported      TruthValue,
        remotePortCountersOutBroadcast               Counter32,
        remotePortCountersOutMulticastSupported      TruthValue,
        remotePortCountersOutMulticast               Counter32,
        remotePortCountersInFcsErrorsSupported       TruthValue,
        remotePortCountersInFcsErrors                Counter32,
        remotePortCountersOutFcsErrorsSupported      TruthValue,
        remotePortCountersOutFcsErrors               Counter32,
        remotePortCountersInGoodOctetsSupported      TruthValue,
        remotePortCountersInGoodOctets               Counter32,
        remotePortCountersOutGoodOctetsSupported     TruthValue,
        remotePortCountersOutGoodOctets              Counter32,
        remotePortCountersInBadOctetsSupported       TruthValue,
        remotePortCountersInBadOctets                Counter32,
        remotePortCountersInDiscardsSupported        TruthValue,
        remotePortCountersInDiscards                 Counter32,
        remotePortCountersAlignmentErrorsSupported   TruthValue,
        remotePortCountersAlignmentErrors            Counter32,
        remotePortCountersUndersizeErrorsSupported   TruthValue,
        remotePortCountersUndersizeErrors            Counter32
}

remotePortCountersLocalPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface on the switch. 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."
        ::= { remotePortCountersEntry 1 }

remotePortCountersRemotePort OBJECT-TYPE
        SYNTAX      Integer32 (1..16)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface of remote device."
        ::= { remotePortCountersEntry 2 }

remotePortCountersInUnicastSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports receiving
                     unicast packet counts. A value of false(2) indicates that
                     not support receiving unicast packet counts."
        ::= { remotePortCountersEntry 3 }

remotePortCountersInUnicast OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of unicast packets received from
                     remote port."
        ::= { remotePortCountersEntry 4 }

remotePortCountersInBroadcastSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports receiving
                     broadcast packet counts. A value of false(2) indicates
                     that not support receiving broadcast packet counts."
        ::= { remotePortCountersEntry 5 }

remotePortCountersInBroadcast OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of broadcasts packets received from
                     remote port."
        ::= { remotePortCountersEntry 6 }

remotePortCountersInPauseSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports receiving
                     pause packet counts. A value of false(2) indicates that
                     not support receiving pause packet counts."
        ::= { remotePortCountersEntry 7 }

remotePortCountersInPause OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of pause packets received from
                     remote port."
        ::= { remotePortCountersEntry 8 }

remotePortCountersInMulticastSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports receiving
                     multicast packet counts. A value of false(2) indicates
                     that not support receiving multicast packet counts."
        ::= { remotePortCountersEntry 9 }

remotePortCountersInMulticast OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of multicasts packets received from
                     remote port."
        ::= { remotePortCountersEntry 10 }

remotePortCountersOutUnicastSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports transmitting
                     unicast packet counts. A value of false(2) indicates that
                     not support transmitting unicast packet counts."
        ::= { remotePortCountersEntry 11 }

remotePortCountersOutUnicast OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of unicast packets transmitted from
                     remote port."
        ::= { remotePortCountersEntry 12 }

remotePortCountersOutBroadcastSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports transmitting
                     broadcast packet counts. A value of false(2) indicates
                     that not support transmitting broadcast packet counts."
        ::= { remotePortCountersEntry 13 }

remotePortCountersOutBroadcast OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of broadcast packets transmitted from
                     remote port."
        ::= { remotePortCountersEntry 14 }

remotePortCountersOutMulticastSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports transmitting
                     multicast packet counts. A value of false(2) indicates
                     that not support transmitting multicast packet counts."
        ::= { remotePortCountersEntry 15 }

remotePortCountersOutMulticast OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of multicast packets transmitted from
                     remote port."
        ::= { remotePortCountersEntry 16 }

remotePortCountersInFcsErrorsSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports receiving
                     FCS error packet counts. A value of false(2) indicates
                     that not support receiving FCS error packet counts."
        ::= { remotePortCountersEntry 17 }

remotePortCountersInFcsErrors OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of FCS error packets received from
                     remote port."
        ::= { remotePortCountersEntry 18 }

remotePortCountersOutFcsErrorsSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports transmitting
                     FCS error packet counts. A value of false(2) indicates
                     that not support transmitting FCS error packet counts."
        ::= { remotePortCountersEntry 19 }

remotePortCountersOutFcsErrors OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of FCS error packets transmitted from
                     remote port."
        ::= { remotePortCountersEntry 20 }

remotePortCountersInGoodOctetsSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports receiving
                     normal packet counts. A value of false(2) indicates that
                     not support receiving normal packet counts."
        ::= { remotePortCountersEntry 21 }

remotePortCountersInGoodOctets OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of normal packets received from
                     remote port."
        ::= { remotePortCountersEntry 22 }

remotePortCountersOutGoodOctetsSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports transmitting
                     normal packet counts. A value of false(2) indicates that
                     not support transmitting normal packet counts."
        ::= { remotePortCountersEntry 23 }

remotePortCountersOutGoodOctets OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of normal packets transmitted from
                     remote port."
        ::= { remotePortCountersEntry 24 }

remotePortCountersInBadOctetsSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports receiving
                     bad packet counts. A value of false(2) indicates that
                     not support receiving bad packet counts."
        ::= { remotePortCountersEntry 25 }

remotePortCountersInBadOctets OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of bad packets received from
                     remote port."
        ::= { remotePortCountersEntry 26 }

remotePortCountersInDiscardsSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports receiving
                     discard packet counts. A value of false(2) indicates
                     that not support receiving discard packet counts."
        ::= { remotePortCountersEntry 27 }

remotePortCountersInDiscards OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of discard packets received from
                     remote port."
        ::= { remotePortCountersEntry 28 }

remotePortCountersAlignmentErrorsSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports align
                     error packet counts. A value of false(2) indicates that
                     not support alignment error packet counts."
        ::= { remotePortCountersEntry 29 }

remotePortCountersAlignmentErrors OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A count of frames received on a particular
                     interface that are not an integral number of
                     octets in length and do not pass the FCS check."
        ::= { remotePortCountersEntry 30 }

remotePortCountersUndersizeErrorsSupported OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "A value of true(1) indicates that supports under
                     error packet counts. A value of false(2) indicates that
                     not support under error packet counts."
        ::= { remotePortCountersEntry 31 }

remotePortCountersUndersizeErrors OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of packets received that were
                     less than 64 octets long (excluding framing bits,
                     but including FCS octets) and were otherwise well
                     formed."
        ::= { remotePortCountersEntry 32 }


-- The following two scalars are summary flags that can be calculated
-- from rtrRingTable below.
rtrAllRingsGood OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "True if all rings configured for this switch are complete."
    ::= { sixnetRTR 1 }

rtrAllRingNeighborsGood OBJECT-TYPE
    SYNTAX  TruthValue
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "True if all neighbors in all configured rings for this switch are
        complete."
    ::= { sixnetRTR 2 }

rtrMasterStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Setting to enabled(1) means that the switch is intended to be
                 the Master in a Real-Time Ring. Setting to disabled(2) means
                 the master will be determined automatically using a voting
                 process in the ring algorithm."
    ::= { sixnetRTR 3 }

rtrSupportedNum OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The maximum number of ring entries that the switch supports."
    ::= { sixnetRTR 4 }

-- Reserve sixnetRTR.5-sixnetRTR.9 for future scalars.

rtrRingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RtrRingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Specifies the features of ring entries."
    ::= { sixnetRTR 10 }

rtrRingEntry OBJECT-TYPE
    SYNTAX      RtrRingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A conceptual row of rtrRingTable."
    INDEX       { rtrRingIndex }
    ::= { rtrRingTable 1 }

RtrRingEntry ::= SEQUENCE
{
    rtrRingIndex              Integer32,
    rtrRingCurrentStatus      INTEGER,
    rtrRingName               DisplayString,
    rtrRingPrimaryPortIf      InterfaceIndex,
    rtrRingPrimaryPortStatus  INTEGER,
    rtrRingBackupPortIf	      InterfaceIndex,
    rtrRingBackupPortStatus   INTEGER,
    rtrPrimarySeen            TruthValue,
    rtrSecondarySeen	      TruthValue,
    rtrRingStatus             ValidStatus
}

rtrRingIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..4)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The index of the ring entry."
    ::= { rtrRingEntry 1 }

rtrRingCurrentStatus OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   disabled(1),
                   localBreak(2),
                   remoteBreak(3),
                   complete(4)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
                "The current status of the switch in a ring.
                 disabled(1) means the rtrRingStatus is invalid.
                 localBreak(2) means ring port of the switch is link down.
                 remoteBreak(3) means switch cannot receive RPDUs from other
                 switches, or primary port and backup port have different
                 master switch information. complete(3) means primary port
                 and backup port receive the same master switch information
                 from both directions. The master switch will put its primary
                 port into forward(3) state, and put its backup port into
                 discard(2) state to block traffic. Other switches in the ring
                 will put both ports into the forward(3) state."
    ::= { rtrRingEntry 2 }

rtrRingName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The name of specified Ring entry. This name should be checked
                 to ensure that it is unique across all rings on the switch."
    ::= { rtrRingEntry 3 }

rtrRingPrimaryPortIf OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The primary port for that ring. This port must be checked to
                 ensure it is not the same as any other port used in any other
                 ring on this switch. 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."
    ::= { rtrRingEntry 4 }

rtrRingPrimaryPortStatus OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   down(1),
                   disabled(2),
                   discard(3),
                   forward(4)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
                "The current status of the ring primary port.
                 down(1) means the ring port link is down.
                 disabled(2) means ring port is disabled.
                 discard(3) means port receives configuration messages,
                 but does not forward packets. forward(4) means port forwards
                 packets, and continues learning addresses."
    ::= { rtrRingEntry 5 }

rtrRingBackupPortIf OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The backup port for that ring. This port must be checked to
                 ensure it is not the same as any other port used in any other
                 ring on this switch. 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."
    ::= { rtrRingEntry 6 }

rtrRingBackupPortStatus OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   down(1),
                   disabled(2),
                   discard(3),
                   forward(4)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
                "The current status of the ring backup port.
                 down(1) means the ring port link is down.
                 disabled(2) means ring port is disabled.
                 discard(3) means port receives configuration messages,
                 but does not forward packets. forward(4) means port forwards
                 packets, and continues learning addresses."
    ::= { rtrRingEntry 7 }

rtrPrimarySeen OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "True if the switch has recently seen RPDUs from its primary neighbor
        on this ring."
    ::= { rtrRingEntry 8 }

rtrSecondarySeen OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "True if the switch has recently seen RPDUs from its backup neighbor
        on this ring."
    ::= { rtrRingEntry 9 }

rtrRingStatus OBJECT-TYPE
    SYNTAX      ValidStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set this variable to valid(1) to create an entry.
                 Set this variable to invalid(2) to destroy an entry."
    ::= { rtrRingEntry 10 }


--
-- trap definitions
--

    sixnetTraps  OBJECT IDENTIFIER ::= { el228Notifications  1 }
    sixnetTrapsPrefix OBJECT IDENTIFIER ::= { sixnetTraps 0 }

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

    swPortSecurityTrap NOTIFICATION-TYPE
          OBJECTS       { ifIndex }
          STATUS        current
          DESCRIPTION "This trap is sent when the port is being intruded. This trap
                       will only be sent when the portSecActionTrap is enabled."
          ::= { sixnetTrapsPrefix 36 }

    swAuthenticationFailure NOTIFICATION-TYPE
          OBJECTS     { trapVarLoginUserName, trapVarLoginMethod, trapVarLoginIPAddress, trapVarLoginTime }
          STATUS      current
          DESCRIPTION "This trap will be triggered if authentication is failed."
          ::= { sixnetTrapsPrefix 66 }

    swAuthenticationSuccess NOTIFICATION-TYPE
          OBJECTS     { trapVarLoginUserName, trapVarLoginMethod, trapVarLoginIPAddress, trapVarLoginTime }
          STATUS      current
          DESCRIPTION "This trap will be triggered if authentication is successful."
          ::= { sixnetTrapsPrefix 67 }

    swLoopbackDetectionTrap NOTIFICATION-TYPE
          OBJECTS     { staLoopbackDetectionPortIfIndex }
          STATUS   current
          DESCRIPTION "This trap will be sent when loopback BPDUs have been detected."
          ::= { sixnetTrapsPrefix  92}

    autoUpgradeTrap NOTIFICATION-TYPE
          OBJECTS     {
                      fileCopyFileType,
                      trapAutoUpgradeResult,
                      trapAutoUpgradeNewVer
                      }
          STATUS      current
          DESCRIPTION "This trap is sent when auto upgrade is executed."
          ::= { sixnetTrapsPrefix 104 }

--
-- Conformance information
-- 

sixnetCompliance1 MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION 
	   "This really just keeps MIB verification programs happy
	   because there is no external standard to which our private
	   MIB must conform."
    MODULE -- this module
         MANDATORY-GROUPS { sixnetSwitchGroup, sixnetTestGroup }
    GROUP sixnetSwitchGroup
    DESCRIPTION
        "Public objects in SIXNET switches"
    ::= { sixnetCompliances 1 }

sixnetSwitchGroup OBJECT-GROUP
    OBJECTS { p1status, p2status, oKstatus, 
              serialNumber, sxid, firmwareRevision, 
              fromPLCstatus, pppifOperStatus,
              sxRingName, sxRingGood,
              sxRingPrimarySeen,  sxRingBackupSeen,
              sxRingPrimaryIf, sxRingBackupIf,
              sxAllRingsGood, sxAllRingNeighborsGood }
    STATUS current
    DESCRIPTION
            "A collection of objects providing information about
            SIXNET switches"
    ::= { sixnetGroups 1}

sixnetTestGroup OBJECT-GROUP
    OBJECTS { ifAdminSpeed, ifAdminPower, ledTestTrigger, 
              sixnetConfigState, sixnetConfigResult, sixnetConfigServer,
	      sixnetConfigFile }
    STATUS current
    DESCRIPTION
            "A collection of objects for testing."
    ::= { sixnetGroups 2}

--
-- Test
--

portTestTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PortTestEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of interface entries."
    ::= { etmsTest 1 }

portTestEntry OBJECT-TYPE
    SYNTAX      PortTestEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing management information applicable to a
            particular interface."
    INDEX   { testifIndex }
    ::= { portTestTable 1 }

PortTestEntry ::=
    SEQUENCE {
        testifIndex             InterfaceIndex,
        ifAdminSpeed            INTEGER,
        ifAdminPower            INTEGER
    }

testifIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "A unique value, greater than zero, for each interface.  It
            is recommended that values are assigned contiguously
           starting from 1.  The value for each interface sub-layer
            must remain constant at least from one re-initialization of
            the entity's network management system to the next re-
            initialization."
    ::= { portTestEntry 1 }

ifAdminSpeed OBJECT-TYPE
    SYNTAX      INTEGER {
                  m10(10),
                  m100(100),
		  g1(1000)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Force port speed (in megabits/sec)"
    ::= { portTestEntry 2 }

ifAdminPower OBJECT-TYPE
    SYNTAX  INTEGER {
                down(0),
                up(1),
                unknown(2)
            }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The PHYs PwrDown bit.  ifAdminPower in the down(2) state
            indicates that the PHY control regsiter, bit 11 is 1
            (Power Down).  ifAdminPower in the up(1) date indicates
            that the PHY control register, bit 11 is 0 (Normal
            operation)"
    ::= { portTestEntry 3 }

ledTestTrigger OBJECT-TYPE
    SYNTAX      INTEGER {
		normal(0),
		testing(1)
		}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Trigger LED test"
    ::= { etmsTest 2 }

sixnetTestConfig          OBJECT IDENTIFIER ::= { etmsTest 3 }

-- Configuration state
--
-- Normally idle.
-- When management station has set server and file, it sets state to 1
-- When agent sees configure, it sets to working and begins work
-- When agent is done, it sets state to done
-- When management station sees done, it sets to idle.
-- If there was a problem during startup, state will always be crash

sixnetConfigState OBJECT-TYPE
    SYNTAX      INTEGER {
		idle(0),
		reserved(1),
		configure(2),
		working(3),
		done(4),
		crash(5)
		}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Trigger LED test"
    ::= { sixnetTestConfig 1 }

-- Result of configuration operation.  agent sets this before setting
-- state to done. 'abort' means the script did not commit before quitting
sixnetConfigResult OBJECT-TYPE
    SYNTAX      INTEGER {
		success(0),
		failure(1),
		abort(99)
		}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "Result of configuration.  Valid only when configState is done."
    ::= { sixnetTestConfig 2 }


-- Configuration server
--
-- The agent will retrieve configFile from this address with TFTP
sixnetConfigServer OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE(0..255))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The address of the configuration server. 
	    Typically an IP address but might be a FQDN."
    ::= { sixnetTestConfig 3 }

-- Configuration file
--
-- The agent retrieves this file from configServer when configState
-- goes to configure.
sixnetConfigFile OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE(0..255))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The file to retrieve and process."
    ::= { sixnetTestConfig 4 }


--
-- Notifications
--

fallbackFirmware    NOTIFICATION-TYPE
    STATUS      current
    DESCRIPTION
        "A fallbackFirmware trap indicates that the switch failed to
        boot the default firmware and has instead booted up running
        the backup firmware. This could mean that the switch lost
        power during its last bootup and was unable to finish, or it
        could mean that the default firmware has become corrupt."
    ::= { sixnetNotifications 1 }

firmwareUpdateComplete  NOTIFICATION-TYPE
    STATUS      current
    DESCRIPTION
        "A firmware update started via SNMP has completed. Use the
        firmwareHealth column of the firmwareTable to determine whether the
        update was successful."
    ::= { sixnetNotifications 2 }

END
