ECS4510-MIB DEFINITIONS ::= BEGIN

IMPORTS

        MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Integer32, Counter32,
        IpAddress, NOTIFICATION-TYPE, enterprises, TimeTicks
                FROM SNMPv2-SMI
        DisplayString, RowStatus, TruthValue, MacAddress
                FROM SNMPv2-TC
        PortList, VlanIndex, VlanId, dot1qVlanStaticEntry
                FROM Q-BRIDGE-MIB
        InetAddressType, InetAddress, InetAddressIPv6, InetAddressPrefixLength
                FROM INET-ADDRESS-MIB
        InterfaceIndex, ifIndex, ifOperStatus
                FROM IF-MIB
        EnabledStatus
                FROM P-BRIDGE-MIB
        BridgeId, Timeout, dot1dStpPort,dot1dStpPortEntry
                FROM BRIDGE-MIB
        pethPsePortEntry, pethMainPseEntry
                FROM POWER-ETHERNET-MIB
        Dot1agCfmMepId, dot1agCfmMdIndex, dot1agCfmMaIndex, dot1agCfmMepIdentifier, dot1agCfmMepIdentifier, dot1agCfmMepDbRMepIdentifier
                FROM IEEE8021-CFM-MIB
        dot1xAuthConfigEntry
                FROM IEEE8021-PAE-MIB
        TOSType,Metric
                FROM OSPF-MIB;

accton              OBJECT IDENTIFIER ::= { enterprises 259 }
edgecorenetworks    OBJECT IDENTIFIER ::= { accton 10 }
edgeCoreNetworksMgt OBJECT IDENTIFIER ::= { edgecorenetworks 1 }

ecs4510MIB MODULE-IDENTITY
        LAST-UPDATED "201209060000Z"
        ORGANIZATION "Edgecore Networks, Inc."
        CONTACT-INFO
                "Edgecore Networks, Inc.
                 Customer Service
                 Postal: No. 1 Creation Rd. III,
                 Science-based Industrial Park,
                 Hsinchu 300-77, Taiwan, R.O.C.
                 Tel: +886-3-5770270
                 Fax: +886-3-5780764
                 E-mail: brandsupport@edge-core.com

                 company website:www.edge-core.com
                 technical support:brandsupport@edge-core.com"
        DESCRIPTION
                "The MIB module for ECS4510-Series."
        REVISION "201209060000Z"
        DESCRIPTION
                "Initial version of this MIB."
        ::= { edgeCoreNetworksMgt 24 }

ecs4510MIBObjects       OBJECT IDENTIFIER ::= { ecs4510MIB 1 }
ecs4510Notifications    OBJECT IDENTIFIER ::= { ecs4510MIB 2 }

--supported groups
switchMgt           OBJECT IDENTIFIER ::= { ecs4510MIBObjects 1 }
portMgt             OBJECT IDENTIFIER ::= { ecs4510MIBObjects 2 }
trunkMgt            OBJECT IDENTIFIER ::= { ecs4510MIBObjects 3 }
lacpMgt             OBJECT IDENTIFIER ::= { ecs4510MIBObjects 4 }
staMgt              OBJECT IDENTIFIER ::= { ecs4510MIBObjects 5 }
restartMgt          OBJECT IDENTIFIER ::= { ecs4510MIBObjects 7 }
mirrorMgt           OBJECT IDENTIFIER ::= { ecs4510MIBObjects 8 }
igmpSnoopMgt        OBJECT IDENTIFIER ::= { ecs4510MIBObjects 9 }
ipMgt               OBJECT IDENTIFIER ::= { ecs4510MIBObjects 10 }
vlanMgt             OBJECT IDENTIFIER ::= { ecs4510MIBObjects 12 }
priorityMgt         OBJECT IDENTIFIER ::= { ecs4510MIBObjects 13 }
trapDestMgt         OBJECT IDENTIFIER ::= { ecs4510MIBObjects 14 }
qosMgt              OBJECT IDENTIFIER ::= { ecs4510MIBObjects 16 }
securityMgt         OBJECT IDENTIFIER ::= { ecs4510MIBObjects 17 }
layer3Mgt           OBJECT IDENTIFIER ::= { ecs4510MIBObjects 18 }
sysLogMgt           OBJECT IDENTIFIER ::= { ecs4510MIBObjects 19 }
lineMgt             OBJECT IDENTIFIER ::= { ecs4510MIBObjects 20 }
sysTimeMgt          OBJECT IDENTIFIER ::= { ecs4510MIBObjects 23 }
fileMgt             OBJECT IDENTIFIER ::= { ecs4510MIBObjects 24 }
dnsMgt              OBJECT IDENTIFIER ::= { ecs4510MIBObjects 26 }
poeMgt              OBJECT IDENTIFIER ::= { ecs4510MIBObjects 28 }
stormMgt            OBJECT IDENTIFIER ::= { ecs4510MIBObjects 33 }
sysResourceMgt      OBJECT IDENTIFIER ::= { ecs4510MIBObjects 39 }
mvrMgt              OBJECT IDENTIFIER ::= { ecs4510MIBObjects 44 }
dhcpSnoopMgt        OBJECT IDENTIFIER ::= { ecs4510MIBObjects 46 }
clusterMgt          OBJECT IDENTIFIER ::= { ecs4510MIBObjects 47 }
ipSrcGuardMgt       OBJECT IDENTIFIER ::= { ecs4510MIBObjects 48 }
upnpMgt             OBJECT IDENTIFIER ::= { ecs4510MIBObjects 49 }
oamMgt              OBJECT IDENTIFIER ::= { ecs4510MIBObjects 52 }
mldSnoopMgt         OBJECT IDENTIFIER ::= { ecs4510MIBObjects  54 }
dynamicArpInspectionMgt         OBJECT IDENTIFIER ::= { ecs4510MIBObjects 56 }
pppoeiaMgt          OBJECT IDENTIFIER ::= { ecs4510MIBObjects 60 }
erpsMgt             OBJECT IDENTIFIER ::= { ecs4510MIBObjects 62 }
lbdMgt              OBJECT IDENTIFIER ::= { ecs4510MIBObjects 63 }
mvr6Mgt             OBJECT IDENTIFIER ::= { ecs4510MIBObjects 66 }
ipv6RaGuardMgt      OBJECT IDENTIFIER ::= { ecs4510MIBObjects 67 }
udldMgt             OBJECT IDENTIFIER ::= { ecs4510MIBObjects 69 }
dhcpv6SnoopMgt      OBJECT IDENTIFIER ::= { ecs4510MIBObjects 71 }
ip6SrcGuardMgt      OBJECT IDENTIFIER ::= { ecs4510MIBObjects 74 }
-- -------------------------------------------------------------
-- Textual Conventions
-- -------------------------------------------------------------

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

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

--  The Router ID, in OSPF, has the same format as an IP Address,

--  but identifies the router independent of its IP Address.

RouterID ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "An OSPF Router Identifier."
    SYNTAX      IpAddress

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

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

OspfAuthenticationType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
        "The authentication type."
    SYNTAX   INTEGER
             {
                none (0),
                simplePassword (1),
                md5 (2)
                -- reserved for specification by IANA (> 2)
             }

--  Status Values

Status ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "The status of an interface: 'enabled' indicates that
       it is willing to communicate with other OSPF Routers,
       while 'disabled' indicates that it is not."
    SYNTAX      INTEGER { enabled (1), disabled (2) }

--  Time Durations measured in seconds

PositiveInteger ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "A positive integer. Values in excess are precluded as
       unnecessary and prone to interoperability issues."
    SYNTAX      Integer32 (0..'7FFFFFFF'h)

HelloRange ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "The range of intervals on which hello messages are
       exchanged."
    SYNTAX      Integer32 (1..'FFFF'h)

UpToMaxAge ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "The values that one might find or configure for
       variables bounded by the maximum age of an LSA."
    SYNTAX      Integer32 (0..3600)

--  Potential Priorities for the Designated Router Election

DesignatedRouterPriority ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "The values defined for the priority of a system for
       becoming the designated router."
    SYNTAX      Integer32 (0..'FF'h)

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

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

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

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.

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

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

switchInfoEntry OBJECT-TYPE
        SYNTAX      SwitchInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table providing descriptions and status information for
                     switch units."
        INDEX       { swUnitIndex }
        ::= { switchInfoTable 1 }

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

swUnitIndex OBJECT-TYPE
        SYNTAX      Integer32(1..8)
        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 uses 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 the switch in the chassis."
        ::= { 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 power values."
        ::= { switchMgt 6 }

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

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

swIndivPowerUnitIndex OBJECT-TYPE
        SYNTAX      Integer32(1..8)
        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 is enabled, disabled(2)
                     means the Jumbo Frame is disabled."
         ::= { switchMgt 7 }

amtrMgt      OBJECT IDENTIFIER   ::= { switchMgt 8 }

-- switchThermalTempTable

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

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

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

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

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

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

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

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

switchStackingTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwitchStackingEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table of descriptive and status information describing
                     the configuration of stacking system."
        ::= { switchMgt 23 }

switchStackingEntry OBJECT-TYPE
        SYNTAX      SwitchStackingEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry in the table, describing the configuration of
                     stacking system of one unit."
        INDEX       { swStackingUnitIndex }
        ::= { switchStackingTable 1 }

SwitchStackingEntry ::= SEQUENCE
{
    swStackingUnitIndex           Integer32,
    swActiveStackingButton        INTEGER,
    swActiveStackingPortOption    INTEGER,
    swConfigStackingButton        INTEGER,
    swMasterButton                INTEGER,
    swConfigStackingPortOption    INTEGER
}

swStackingUnitIndex OBJECT-TYPE
        SYNTAX      Integer32(1..8)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object identifies the switch within the system
                     for which this entry contains information."
        ::= { switchStackingEntry 1 }

swActiveStackingButton OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notPressed(0),
                        pressed(1)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object identifies the active status of stacking
                     button of the switch."
        ::= { switchStackingEntry 2 }

swConfigStackingButton OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notPressed(0),
                        pressed(1)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object identifies the configured status of stacking
                     button of the switch."
        ::= { switchStackingEntry 3 }

swMasterButton OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notPressed(0),
                        pressed(1)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object identifies the master button status of
                     the switch."
        ::= { switchStackingEntry 4 }

swActiveStackingPortOption OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        optionOne(1),
                        optionTwo(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object identifies the active option status of
                     stacking port of the switch."
        ::= { switchStackingEntry 5 }

swConfigStackingPortOption OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        optionOne(1),
                        optionTwo(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object identifies the configured option status
                     of stacking port of the switch."
        ::= { switchStackingEntry 6 }

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

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

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

portType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        other(1),
                        hundredBaseTX(2),
                        hundredBaseFX(3),
                        thousandBaseSX(4),
                        thousandBaseLX(5),
                        thousandBaseT(6),
                        thousandBaseGBIC(7),
                        thousandBaseSfp(8),
                        hundredBaseFxScSingleMode(9),
                        hundredBaseFxScMultiMode(10),
                        thousandBaseCX(11),
                        tenG(12)
                    }
        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 used is 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 wants to force
                    this combo port to run in copper mode. copperPreferredAuto(3)
                    is obsoleted, and user shall not set this state. sfpForced(4)
                    is set if user wants to force this combo port to run in fiber
                    mode. sfpPreferredAuto(5) is set if user wants 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 }

portMacAddrLearningStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this variable to enabled(1) to start to learn MAC
                     addresses. Set this variable to disabled(2) to stop
                     learning MAC addresses."
        DEFVAL      { enabled }
        ::= { portEntry 17 }

portMacAddrLearningCount OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The current number of learned MAC addresses."
        ::= { portEntry 18 }

--
-- cable diagnostics
--

cableDiagMgt      OBJECT IDENTIFIER   ::= { portMgt 3 }

cableDiagCtlAction OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To execute cable diagnostics on a port, assign
                     cableDiagCtlAction to the value of ifIndex defined
                     by the ifIndex in the IF-MIB. When read, this object
                     always returns 0."
        ::= { cableDiagMgt 1 }

cableDiagResultTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF CableDiagResultEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for cable diagnostics result."
        ::= { cableDiagMgt 2 }

cableDiagResultEntry OBJECT-TYPE
        SYNTAX      CableDiagResultEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for cable diagnostics result."
        INDEX       { cableDiagResultIfIndex }
        ::= { cableDiagResultTable 1 }

CableDiagResultEntry ::= SEQUENCE
{
    cableDiagResultIfIndex            InterfaceIndex,
    cableDiagResultStatusPairA        INTEGER,
    cableDiagResultStatusPairB        INTEGER,
    cableDiagResultStatusPairC        INTEGER,
    cableDiagResultStatusPairD        INTEGER,
    cableDiagResultDistancePairA      Integer32,
    cableDiagResultDistancePairB      Integer32,
    cableDiagResultDistancePairC      Integer32,
    cableDiagResultDistancePairD      Integer32,
    cableDiagResultTime               DisplayString
}

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

cableDiagResultStatusPairA OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notTestedYet(1),
                        ok(2),
                        open(3),
                        short(4),
                        unknown(7),
                        impedanceMismatch(8),
                        failed(9),
                        notSupported(10),
                        noCable(11),
                        underTesting(12)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The result of cable diagnostics. Value notTestedYet(1)
                     means the pair is not tested yet. Value ok(2) means the
                     pair works well. Value open(3) means there is a lack of
                     continuity between pins at each end of the pair. Value
                     short(4) means conductors are short-circuited together
                     on the pair. Value impedanceMismatch(8) means different
                     quality cables connected together. Value failed(9) means
                     test failed. Value notSupported(10) means cable diagnostics
                     is not supported. Value noCable(11) means there is no
                     connected cable. Value underTesting(12) means cable diag is
                     still running. Value unknown(7) means pair has an error
                     matching none of the above."
        ::= { cableDiagResultEntry 2 }

cableDiagResultStatusPairB OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notTestedYet(1),
                        ok(2),
                        open(3),
                        short(4),
                        unknown(7),
                        impedanceMismatch(8),
                        failed(9),
                        notSupported(10),
                        noCable(11),
                        underTesting(12)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The result of cable diagnostics. Value notTestedYet(1)
                     means the pair is not tested yet. Value ok(2) means the
                     pair works well. Value open(3) means there is a lack of
                     continuity between pins at each end of the pair. Value
                     short(4) means conductors are short-circuited together
                     on the pair. Value impedanceMismatch(8) means different
                     quality cables connected together. Value failed(9) means
                     test failed. Value notSupported(10) means cable diagnostics
                     is not supported. Value noCable(11) means there is no
                     connected cable. Value underTesting(12) means cable diag is
                     still running. Value unknown(7) means pair has an error
                     matching none of the above."
        ::= { cableDiagResultEntry 3 }

cableDiagResultStatusPairC OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notTestedYet(1),
                        ok(2),
                        open(3),
                        short(4),
                        unknown(7),
                        impedanceMismatch(8),
                        failed(9),
                        notSupported(10),
                        noCable(11),
                        underTesting(12)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The result of cable diagnostics. Value notTestedYet(1)
                     means the pair is not tested yet. Value ok(2) means the
                     pair works well. Value open(3) means there is a lack of
                     continuity between pins at each end of the pair. Value
                     short(4) means conductors are short-circuited together
                     on the pair. Value impedanceMismatch(8) means different
                     quality cables connected together. Value failed(9) means
                     test failed. Value notSupported(10) means cable diagnostics
                     is not supported. Value noCable(11) means there is no
                     connected cable. Value underTesting(12) means cable diag is
                     still running. Value unknown(7) means pair has an error
                     matching none of the above."
        ::= { cableDiagResultEntry 4 }

cableDiagResultStatusPairD OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notTestedYet(1),
                        ok(2),
                        open(3),
                        short(4),
                        unknown(7),
                        impedanceMismatch(8),
                        failed(9),
                        notSupported(10),
                        noCable(11),
                        underTesting(12)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The result of cable diagnostics. Value notTestedYet(1)
                     means the pair is not tested yet. Value ok(2) means the
                     pair works well. Value open(3) means there is a lack of
                     continuity between pins at each end of the pair. Value
                     short(4) means conductors are short-circuited together
                     on the pair. Value impedanceMismatch(8) means different
                     quality cables connected together. Value failed(9) means
                     test failed. Value notSupported(10) means cable diagnostics
                     is not supported. Value noCable(11) means there is no
                     connected cable. Value underTesting(12) means cable diag is
                     still running. Value unknown(7) means pair has an error
                     matching none of the above."
        ::= { cableDiagResultEntry 5 }

cableDiagResultDistancePairA OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Displays the fault distance of pair A of the cable
                     in meters. 0 will be displayed if cableDiagResultStatusPairA
                     equals to Value underTesting(12)."
        ::= { cableDiagResultEntry 6 }

cableDiagResultDistancePairB OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Displays the fault distance of pair B of the cable
                     in meters. 0 will be displayed if cableDiagResultStatusPairB
                     equals to Value underTesting(12)."
        ::= { cableDiagResultEntry 7 }

cableDiagResultDistancePairC OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Displays the fault distance of pair C of the cable
                     in meters. 0 will be displayed if cableDiagResultStatusPairC
                     equals to Value underTesting(12)."
        ::= { cableDiagResultEntry 8 }

cableDiagResultDistancePairD OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Displays the fault distance of pair D of the cable
                     in meters. 0 will be displayed if cableDiagResultStatusPairD
                     equals to Value underTesting(12)."
        ::= { cableDiagResultEntry 9 }

cableDiagResultTime OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..20))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Displays the last time of cable diagnostics.
                     For example, 'Jan  1 02:03:04 2002'."
        ::= { cableDiagResultEntry 11 }

--
-- loopback
--

loopbackTestMgt      OBJECT IDENTIFIER   ::= { portMgt 4 }

loopInternalCtlAction OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To execute internal loopback test on a port, assign
                     loopInternalCtlAction to the value of ifIndex defined
                     by the ifIndex in the IF-MIB. When read, this object
                     always returns 0."
        ::= { loopbackTestMgt 1 }

loopInternalResultTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF LoopInternalResultEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for internal loopback test result."
        ::= { loopbackTestMgt 2 }

loopInternalResultEntry OBJECT-TYPE
        SYNTAX      LoopInternalResultEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for internal loopback test result."
        INDEX       { loopInternalResultIfIndex }
        ::= { loopInternalResultTable 1 }

LoopInternalResultEntry ::= SEQUENCE
{
    loopInternalResultIfIndex           InterfaceIndex,
    loopInternalResultStatus            INTEGER,
    loopInternalResultTime              DisplayString
}

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

loopInternalResultStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        notTestedYet(1),
                        succeeded(2),
                        failed(3)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The result of internal loopback."
        ::= { loopInternalResultEntry 2 }

loopInternalResultTime OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..20))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Displays the last time of internal loopback.
                     For example, 'Jan  1 02:03:04 2002'."
        ::= { loopInternalResultEntry 3 }

portUtilTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PortUtilEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Dispalys port utilization during recent 300 seconds."
        ::= { portMgt 6 }

portUtilEntry OBJECT-TYPE
        SYNTAX      PortUtilEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Dispalys port utilization during recent 300 seconds."
        INDEX       { portUtilIfIndex }
        ::= { portUtilTable 1 }

PortUtilEntry ::= SEQUENCE
{
    portUtilIfIndex     Integer32,
    portInOctetRate     Counter64,
    portInPacketRate    Counter64,
    portInUtil          Integer32,
    portOutOctetRate    Counter64,
    portOutPacketRate   Counter64,
    portOutUtil         Integer32
}

portUtilIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port and trunk interface of the portUtilTable.
                     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."
        ::= { portUtilEntry 1 }

portInOctetRate OBJECT-TYPE
        SYNTAX      Counter64
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The input octet rate (kbits/sec) of the port."
        ::= { portUtilEntry 2 }

portInPacketRate OBJECT-TYPE
        SYNTAX      Counter64
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The input packet rate (pkts/sec) of the port."
        ::= { portUtilEntry 3 }

portInUtil OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The input utilization of the port, in one per
                     hundred."
        ::= { portUtilEntry 4 }

portOutOctetRate OBJECT-TYPE
        SYNTAX      Counter64
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The output octet rate (kbits/sec) of the port."
        ::= { portUtilEntry 5 }

portOutPacketRate OBJECT-TYPE
        SYNTAX      Counter64
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The output packet rate (pkts/sec) of the port."
        ::= { portUtilEntry 6 }

portOutUtil OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The output utilization of the port, in one per
                     hundred."
        ::= { portUtilEntry 7 }

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

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

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

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

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

--
-- Show Media Information
-- Information of the media device installed in the physical ports.
--

portMediaInfoTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF PortMediaInfoEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION "This table lists the information of the media device
                 (SFP/XFP/Copper) installed in the physical port.
                 Only the ifIndices of Ethernet ports associated
                 with the operational cards will be included in this table."
    ::= { portMgt 10 }

portMediaInfoEntry  OBJECT-TYPE
    SYNTAX      PortMediaInfoEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION "An entry in the Interface Media Information table.
                 The ifIndices of ethernet interfaces will be used
                 to index this table."
    INDEX       { portMediaInfoIfIndex }
    ::= { portMediaInfoTable 1 }

PortMediaInfoEntry ::=
    SEQUENCE  {
                 portMediaInfoIfIndex
                           InterfaceIndex,
                 portMediaInfoConnectorType
                           DisplayString,
                 portMediaInfoFiberType
                           DisplayString,
                 portMediaInfoEthComplianceCodes
                           DisplayString,
                 portMediaInfoBaudRate
                           DisplayString,
                 portMediaInfoVendorOUI
                           DisplayString,
                 portMediaInfoVendorName
                           DisplayString,
                 portMediaInfoPartNumber
                           DisplayString,
                 portMediaInfoRevision
                           DisplayString,
                 portMediaInfoSerialNumber
                           DisplayString,
                 portMediaInfoDateCode
                           DisplayString
         }

portMediaInfoIfIndex  OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS       current
    DESCRIPTION "ifindex."
    ::= { portMediaInfoEntry 1 }

portMediaInfoConnectorType  OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..128))
    MAX-ACCESS       read-only
    STATUS       current
    DESCRIPTION "The connector type."
    ::= { portMediaInfoEntry 2 }

portMediaInfoFiberType  OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..128))
    MAX-ACCESS       read-only
    STATUS       current
    DESCRIPTION "The fiber type."
    ::= { portMediaInfoEntry 3 }

portMediaInfoEthComplianceCodes  OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..128))
    MAX-ACCESS       read-only
    STATUS       current
    DESCRIPTION "The ethernet compliance codes."
    ::= { portMediaInfoEntry 4 }

portMediaInfoBaudRate  OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..128))
    MAX-ACCESS       read-only
    STATUS       current
    DESCRIPTION "The baud rate."
    ::= { portMediaInfoEntry 5 }

portMediaInfoVendorOUI  OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..128))
    MAX-ACCESS       read-only
    STATUS       current
    DESCRIPTION "The OUI of the vendor."
    ::= { portMediaInfoEntry 6 }

portMediaInfoVendorName  OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..128))
    MAX-ACCESS       read-only
    STATUS       current
    DESCRIPTION "The media vendor name, full name of the corporation."
    ::= { portMediaInfoEntry 7 }

portMediaInfoPartNumber  OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..128))
    MAX-ACCESS       read-only
    STATUS       current
    DESCRIPTION "The media vendor part number."
    ::= { portMediaInfoEntry 8 }

portMediaInfoRevision  OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..128))
    MAX-ACCESS       read-only
    STATUS       current
    DESCRIPTION "The media vendor product version number."
    ::= { portMediaInfoEntry 9 }

portMediaInfoSerialNumber  OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..128))
    MAX-ACCESS       read-only
    STATUS       current
    DESCRIPTION "The vendor serial number of the media device."
    ::= { portMediaInfoEntry 10 }

portMediaInfoDateCode  OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..128))
    MAX-ACCESS       read-only
    STATUS       current
    DESCRIPTION "The date code of the media device."
    ::= { portMediaInfoEntry 11 }

-- ifIndex to Optical Parameters Table
-- Given an ifIndex, this table returns the optical parameters for the ifIndex.

portOpticalMonitoringInfoTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF PortOpticalMonitoringInfoEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION "This table lists the instrumented parameters of all
     optical interfaces."
    REFERENCE   "ITU recommendations G.783, G.784, G.953"
    ::= { portMgt 11 }

portOpticalMonitoringInfoEntry  OBJECT-TYPE
    SYNTAX      PortOpticalMonitoringInfoEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION "Only the ifIndices of optical interfaces
                 whose parameters need to be monitored will
                 be used to index this table."
    INDEX       { portOpticalMonitoringInfoIfIndex }
    ::= { portOpticalMonitoringInfoTable 1 }

PortOpticalMonitoringInfoEntry ::=
    SEQUENCE  {
                 portOpticalMonitoringInfoIfIndex
                                  InterfaceIndex,
                 portOpticalMonitoringInfoTemperature
                                  DisplayString,
                 portOpticalMonitoringInfoVcc
                                  DisplayString,
                 portOpticalMonitoringInfoTxBiasCurrent
                                  DisplayString,
                 portOpticalMonitoringInfoTxPower
                                  DisplayString,
                 portOpticalMonitoringInfoRxPower
                                  DisplayString
         }

portOpticalMonitoringInfoIfIndex  OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS       current
    DESCRIPTION "ifindex."
    ::= { portOpticalMonitoringInfoEntry 1 }

portOpticalMonitoringInfoTemperature  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE(0..32))
    MAX-ACCESS    read-only
    STATUS    current
    DESCRIPTION "This object holds the value of the transmitter laser
                 diode temperature for the interface.  This object
                 indicates the health of the transmitter.
                 The format is xxx.yyyy C(elcius). If the device supports
                 ALARM WARNING TRAP, then followed by whether the measured
                 value is normal, high/low alarm or high/low warning."
    ::= { portOpticalMonitoringInfoEntry 2 }

portOpticalMonitoringInfoVcc  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE(0..32))
    MAX-ACCESS    read-only
    STATUS    current
    DESCRIPTION "This object holds the value of the Vcc. It is measured
                 in V. If the device supports ALARM WARNING TRAP, then
                 followed by whether the measured value is normal,
                 high/low alarm or high/low warning."
    ::= { portOpticalMonitoringInfoEntry 3 }

portOpticalMonitoringInfoTxBiasCurrent  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE(0..32))
    MAX-ACCESS    read-only
    STATUS    current
    DESCRIPTION "Tx Bias Current.  It is measured in mA. If the device
                 supports ALARM WARNING TRAP, then followed by whether
                 the measured value is normal, high/low alarm or
                 high/low warning."
    ::= { portOpticalMonitoringInfoEntry 4 }

portOpticalMonitoringInfoTxPower  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE(0..32))
    MAX-ACCESS    read-only
    STATUS    current
    DESCRIPTION "This object holds the value of the transmitter optical
                 signal power for the interface, measured in dBm. If the
                 device supports ALARM WARNING TRAP, then followed by
                 whether the measured value is normal, high/low alarm
                 or high/low warning."
    ::= { portOpticalMonitoringInfoEntry 5 }

portOpticalMonitoringInfoRxPower  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE(0..32))
    MAX-ACCESS    read-only
    STATUS    current
    DESCRIPTION "This object holds the value of the receiver optical
                 signal power for the interface, measured in dBm. If
                 the device support ALARM WARNING TRAP, then followed
                 by whether the measured value is normal, high/low alarm
                 or high/low warning."
    ::= { portOpticalMonitoringInfoEntry 6 }

--
-- transceiver threshold
--

portTransceiverThresholdInfoTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF PortTransceiverThresholdInfoEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION "This table lists the threshold of transceivers."
    REFERENCE   "ITU recommendations G.783, G.784, G.953"
    ::= { portMgt 12 }

portTransceiverThresholdInfoEntry  OBJECT-TYPE
    SYNTAX      PortTransceiverThresholdInfoEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION "Identify the index of the transceiver"
    INDEX       { portTransceiverThresholdInfoIfIndex }
    ::= { portTransceiverThresholdInfoTable 1 }

PortTransceiverThresholdInfoEntry ::=
    SEQUENCE  {
                 portTransceiverThresholdInfoIfIndex
                                  InterfaceIndex,
                 portTransceiverThresholdInfoTemperatureLowAlarm
                                  Integer32,
                 portTransceiverThresholdInfoTemperatureLowWarn
                                  Integer32,
                 portTransceiverThresholdInfoTemperatureHighWarn
                                  Integer32,
                 portTransceiverThresholdInfoTemperatureHighAlarm
                                  Integer32,
                 portTransceiverThresholdInfoVccLowAlarm
                                  Integer32,
                 portTransceiverThresholdInfoVccLowWarn
                                  Integer32,
                 portTransceiverThresholdInfoVccHighWarn
                                  Integer32,
                 portTransceiverThresholdInfoVccHighAlarm
                                  Integer32,
                 portTransceiverThresholdInfoTxBiasCurrentLowAlarm
                                  Integer32,
                 portTransceiverThresholdInfoTxBiasCurrentLowWarn
                                  Integer32,
                 portTransceiverThresholdInfoTxBiasCurrentHighWarn
                                  Integer32,
                 portTransceiverThresholdInfoTxBiasCurrentHighAlarm
                                  Integer32,
                 portTransceiverThresholdInfoTxPowerLowAlarm
                                  Integer32,
                 portTransceiverThresholdInfoTxPowerLowWarn
                                  Integer32,
                 portTransceiverThresholdInfoTxPowerHighWarn
                                  Integer32,
                 portTransceiverThresholdInfoTxPowerHighAlarm
                                  Integer32,
                 portTransceiverThresholdInfoRxPowerLowAlarm
                                  Integer32,
                 portTransceiverThresholdInfoRxPowerLowWarn
                                  Integer32,
                 portTransceiverThresholdInfoRxPowerHighWarn
                                  Integer32,
                 portTransceiverThresholdInfoRxPowerHighAlarm
                                  Integer32,
                 portTransceiverThresholdAutoMode
                                  TruthValue
         }

portTransceiverThresholdInfoIfIndex  OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS       current
    DESCRIPTION "ifindex."
    ::= { portTransceiverThresholdInfoEntry 1 }

portTransceiverThresholdInfoTemperatureLowAlarm  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the low alarm threshold of
                 the transmitter laser diode temperature for
                 the interface."
    ::= { portTransceiverThresholdInfoEntry 2 }

portTransceiverThresholdInfoTemperatureLowWarn  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the low warning threshold of
                 the transmitter laser diode temperature for
                 the interface."
    ::= { portTransceiverThresholdInfoEntry 3 }

portTransceiverThresholdInfoTemperatureHighWarn  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the high warning threshold of
                 the transmitter laser diode temperature for
                 the interface."
    ::= { portTransceiverThresholdInfoEntry 4 }

portTransceiverThresholdInfoTemperatureHighAlarm  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the high alarm threshold of
                 the transmitter laser diode temperature for
                 the interface."
    ::= { portTransceiverThresholdInfoEntry 5 }

portTransceiverThresholdInfoVccLowAlarm  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the low alarm threshold
                 of the Vcc."
    ::= { portTransceiverThresholdInfoEntry 6 }

portTransceiverThresholdInfoVccLowWarn  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the low warning threshold
                 of the Vcc."
    ::= { portTransceiverThresholdInfoEntry 7 }

portTransceiverThresholdInfoVccHighWarn  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the high warning threshold
                 of the Vcc."
    ::= { portTransceiverThresholdInfoEntry 8 }

portTransceiverThresholdInfoVccHighAlarm  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the high alarm threshold
                 of the Vcc."
    ::= { portTransceiverThresholdInfoEntry 9 }

portTransceiverThresholdInfoTxBiasCurrentLowAlarm  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "low alarm threshold of Tx Bias Current."
    ::= { portTransceiverThresholdInfoEntry 10 }

portTransceiverThresholdInfoTxBiasCurrentLowWarn  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "low warning threshold of Tx Bias Current."
    ::= { portTransceiverThresholdInfoEntry 11 }

portTransceiverThresholdInfoTxBiasCurrentHighWarn  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "high warning threshold of Tx Bias Current."
    ::= { portTransceiverThresholdInfoEntry 12 }

portTransceiverThresholdInfoTxBiasCurrentHighAlarm  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "high alarm threshold of Tx Bias Current."
    ::= { portTransceiverThresholdInfoEntry 13 }

portTransceiverThresholdInfoTxPowerLowAlarm  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the low alarm threshold
                 of the transmitter optical signal power
                 for theinterface."
    ::= { portTransceiverThresholdInfoEntry 14 }

portTransceiverThresholdInfoTxPowerLowWarn  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the low warning threshold
                 of the transmitter optical signal power
                 for the interface."
    ::= { portTransceiverThresholdInfoEntry 15 }

portTransceiverThresholdInfoTxPowerHighWarn  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the high warning threshold
                 of the transmitter optical signal power
                 for the interface."
    ::= { portTransceiverThresholdInfoEntry 16 }

portTransceiverThresholdInfoTxPowerHighAlarm  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the high alarm threshold
                 of the transmitter optical signal power for
                 the interface."
    ::= { portTransceiverThresholdInfoEntry 17 }

portTransceiverThresholdInfoRxPowerLowAlarm  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the low alarm threshold
                 of the receiver optical signal power for
                 the interface."
    ::= { portTransceiverThresholdInfoEntry 18 }

portTransceiverThresholdInfoRxPowerLowWarn  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the low warning threshold
                 of the receiver optical signal power for
                 the interface."
    ::= { portTransceiverThresholdInfoEntry 19 }

portTransceiverThresholdInfoRxPowerHighWarn  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the high warning threshold
                 of the receiver optical signal power for
                 the interface."
    ::= { portTransceiverThresholdInfoEntry 20 }

portTransceiverThresholdInfoRxPowerHighAlarm  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS    read-write
    STATUS    current
    DESCRIPTION "This object holds the high alarm threshold
                 of the receiver optical signal power for
                 the interface."
    ::= { portTransceiverThresholdInfoEntry 21 }

portTransceiverThresholdAutoMode OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Indicates the transceiver threshold is retrieved from
                 EEPROM or configured by user."
    ::= { portTransceiverThresholdInfoEntry 22 }

--
-- trunkMgt
--

-- Trunks: Provides additional information for Trunks


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

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

trunkTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF TrunkEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table describing the configuration and status of each
                     trunk."
        ::= { trunkMgt 3 }

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

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

trunkIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Identifies the trunk within the switch that is
                     described by the table entry."
        ::= { trunkEntry 1 }

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

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

trunkStatus OBJECT-TYPE
    SYNTAX      ValidStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Writing this to valid(1) creates an entry.
         Writing this to invalid(2) destroys an entry.
         A trunk created by LACP cannot be manually destroyed
         or (re)configured."
    ::= { trunkEntry 4 }

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

--
-- lacpMgt
--

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

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

lacpPortEntry OBJECT-TYPE
        SYNTAX      LacpPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for LACP port configuration. While an entry may
                     exist for a particular port, the port may not support
                     LACP and an attempt to enable LACP may result in
                     failure."
        INDEX       { lacpPortIndex }
        ::= { lacpPortTable 1 }

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

lacpPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        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
{
-- for MST, RSTP
    staPortProtocolMigration        TruthValue,
    staPortOperEdgePort             TruthValue,
    staPortAdminPointToPoint        INTEGER,
    staPortOperPointToPoint         TruthValue,
    staPortSystemStatus             EnabledStatus,
    staPortLongAdminPathCost        Integer32,
    staPortLongOperPathCost         Integer32,
    staPortBpduFlooding             EnabledStatus,
    staPortBpduGuard                EnabledStatus,
    staPortAdminEdgePortWithAuto    INTEGER,
    staPortBpduFilter               EnabledStatus,
    staPortRootGuardStatus          EnabledStatus,
    staPortBpduGuardAutoRecovery            EnabledStatus,
    staPortBpduGuardAutoRecoveryInterval    Unsigned32,
    staPortTcPropStop               TruthValue
}

-- for MST, 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 }

-- BPUD flooding can be configured per port when spanning tree is disable

staPortBpduFlooding OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This parameter is used to configure the capability of BPDU
                 flooding."
    ::= { staPortEntry 12 }


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 auto (3) indicates this port in RSPT or MSTP mode
            should be assumed as an edge-port after migration or max age expires
            without receiving any BPDU and sending BPDU with proposal flag on."
    ::= { staPortEntry 16 }

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

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

staPortBpduGuardAutoRecovery    OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "A value of enabled(1) indicates that BPDU port guard auto
                 recovery mechanism is enabled for this port. A value of
                 disabled(2) indicates that the mechanism is disabled."
    ::= { staPortEntry 19 }

staPortBpduGuardAutoRecoveryInterval    OBJECT-TYPE
    SYNTAX      Unsigned32(30..86400)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The interval in seconds used by BPDU guard auto recovery
                 mechanism."
    ::= { staPortEntry 20 }

staPortTcPropStop         OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Stop topology change propogate on this ifindex.
         Don't enable on potential ring port.
        "
    ::= { staPortEntry 21 }

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 was 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 a second)
                   that all bridges use for MaxAge when this bridge is acting
                   as the root. Note that 802.1D-1990 specifies that the range
                   for this parameter is related to the value of
                   xstInstanceCfgBridgeHelloTime. The granularity of this
                   timer is specified by 802.1D-1990 to be 1 second."
     REFERENCE   "802.1D-1990."
     ::= { xstInstanceCfgEntry 12 }

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

xstInstancePortAdminPathCost OBJECT-TYPE
     SYNTAX      Integer32(1..200000000)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "The admin value of the 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 providing the mechanism to configure the
                     spanning tree loopback detection of each port or trunk"
        ::= { staMgt 8 }

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

staSystemBPDUFlooding    OBJECT-TYPE
        SYNTAX      INTEGER
        {
            to-vlan(1),
            to-all(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Global BPDU flooding behavior configuration.
                     When BPDU is received on spanning tree disabled port.
                     (1) BPDU is flooded to all other spanning tree disabled ports in vlan that received BPDU.
                     (2) BPDU is flooded to all other spanning tree disabled ports."
        DEFVAL      { to-vlan }
        ::= { staMgt 9 }

staTcPropGroupTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF StaTcPropGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table describing the configuration of each TC propagation group."
        ::= { staMgt 10 }

staTcPropGroupEntry OBJECT-TYPE
        SYNTAX      StaTcPropGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry describing the configuration of a particular TC propagation group."
        INDEX       { staTcPropGroupIndex }
        ::= { staTcPropGroupTable 1 }

StaTcPropGroupEntry ::= SEQUENCE
{
    staTcPropGroupIndex                Integer32,
    staTcPropGroupPorts                PortList
}

staTcPropGroupIndex OBJECT-TYPE
        SYNTAX      Integer32(1..255)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Identifies the TC propagation group within the switch that is
                     described by the table entry."
        ::= { staTcPropGroupEntry 1 }

staTcPropGroupPorts OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The complete set of ports currently associated with this TC propagation group.
         A port can only belong to one group. If a port detects a topology change,
         this port only notifies other ports in the same group to propagate this topology change,
         and only needs to clear MAC address learned on these ports."
    ::= { staTcPropGroupEntry 2 }

--
-- 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  Integer32,
    mirrorSourcePort       Integer32,
    mirrorType             INTEGER,
    mirrorStatus           ValidStatus
}

mirrorDestinationPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The destination port interface for mirrored packets.
                     The interface identified by a particular value of
                     this index is the same interface as identified by
                     the same value of ifIndex in the IF-MIB."
        ::= { mirrorEntry 1 }

mirrorSourcePort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The source port interface for mirrored packets.
                     The interface identified by a particular value of
                     this index is the same interface as identified by
                     the same value of ifIndex in the IF-MIB."
        ::= { mirrorEntry 2 }

mirrorType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        rx(1),
                        tx(2),
                        both(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "If this value is rx(1), receive packets will
                    be mirrored. If this value is tx(2), transmit
                    packets will be mirrored. If this value is both(3),
                    both receive and transmit packets will be mirrored."
        ::= { mirrorEntry 3 }

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

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  Integer32,
    vlanMirrorSourceVlan       Integer32,
    vlanMirrorStatus           ValidStatus
}

vlanMirrorDestinationPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The destination port interface for mirrored packets.
                     The interface identified by a particular value of
                     this index is the same interface as identified by
                     the same value of ifIndex in the IF-MIB."
        ::= { vlanMirrorEntry 1 }

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

--
-- rspanMgt
--

rspanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RspanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table that contains the settings of RSPAN."
        ::= { mirrorMgt 3 }

rspanEntry OBJECT-TYPE
        SYNTAX      RspanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row of rspanTable."
        INDEX       { rspanSessionId }
        ::= { rspanTable 1 }

RspanEntry ::= SEQUENCE
{
        rspanSessionId          Integer32,
        rspanSrcTxPorts         PortList,
        rspanSrcRxPorts         PortList,
        rspanDstPort            Integer32,
        rspanDstPortTag         INTEGER,
        rspanSwitchRole         INTEGER,
        rspanRemotePorts        PortList,
        rspanRemoteVlanId       Integer32,
        rspanOperStatus         INTEGER,
        rspanStatus             ValidStatus
}

rspanSessionId OBJECT-TYPE
        SYNTAX      Integer32 (1..2)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The session ID that may specify an entry in the table which
                     contains destination port(s) information."
        ::= { rspanEntry 1 }

rspanSrcTxPorts OBJECT-TYPE
        SYNTAX      PortList
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the source port list in tx mode."
        ::= { rspanEntry 2 }

rspanSrcRxPorts OBJECT-TYPE
        SYNTAX      PortList
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the source port list in rx mode."
        ::= { rspanEntry 3 }

rspanDstPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The port number of a destination 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."
        ::= { rspanEntry 4 }

rspanDstPortTag OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        none(1),
                        untagged(2),
                        tagged(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the traffic which is sent out from source port
                     with RSPAN VLAN ID or not."
        ::= { rspanEntry 5 }

rspanSwitchRole OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        none(1),
                        source(2),
                        intermediate(3),
                        destination(4)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the role of current switch."
        ::= { rspanEntry 6 }

rspanRemotePorts OBJECT-TYPE
        SYNTAX      PortList
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the uplink port list."
        ::= { rspanEntry 7 }

rspanRemoteVlanId OBJECT-TYPE
        SYNTAX      Integer32 (1..4094)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the ID of a RSPAN VLAN."
        ::= { rspanEntry 8 }

rspanOperStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        up(1),
                        down(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The operational status of the entry. A status of up(1)
                     means the setting of a session is complete and it has
                     started performing its function. A status of down(2) means
                     no function is performed because of incompleted session
                     setting."
        ::= { rspanEntry 9 }

rspanStatus 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."
        ::= { rspanEntry 10 }


macMirrorTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MacMirrorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for MAC mirroring, enabling a MAC address to be
                     mirrored to a port."
        ::= { mirrorMgt 4 }

macMirrorEntry OBJECT-TYPE
        SYNTAX      MacMirrorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row of mirrorMacTable."
        INDEX       { macMirrorDestinationPort, macMirrorSourceMacAddr }
        ::= { macMirrorTable 1 }

MacMirrorEntry ::= SEQUENCE
{
    macMirrorDestinationPort  Integer32,
    macMirrorSourceMacAddr    MacAddress,
    macMirrorStatus           ValidStatus
}

macMirrorDestinationPort OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The destination port interface for mirrored packets.
                     The interface identified by a particular value of
                     this index is the same interface as identified by
                     the same value of ifIndex in the IF-MIB."
        ::= { macMirrorEntry 1 }

macMirrorSourceMacAddr OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Packets with matching source MAC address will be
                     monitored."
        ::= { macMirrorEntry 2 }

macMirrorStatus 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."
        ::= { macMirrorEntry 3 }

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

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     VlanIndex,
    igmpSnoopCurrentVlanStatus    EnabledStatus,
    igmpSnoopCurrentVlanImmediateLeave    EnabledStatus,
    igmpSnoopCurrentVlanGeneralQuerySuppression    EnabledStatus,
    igmpSnoopCurrentVlanLastMemQueryCount     Unsigned32,
    igmpSnoopCurrentVlanLastMemQueryIntvl     Unsigned32,
    igmpSnoopCurrentVlanProxyAddress          IpAddress,
    igmpSnoopCurrentVlanQueryIntvl            Unsigned32,
    igmpSnoopCurrentVlanQueryRespIntvl        Unsigned32,
    igmpSnoopCurrentVlanProxyReporting        INTEGER,
    igmpSnoopCurrentVlanVersion               Unsigned32,
    igmpSnoopCurrentVlanVersionExclusive      EnabledStatus,
    igmpSnoopCurrentVlanReportSupression      INTEGER,
    igmpSnoopCurrentVlanImmediateLeaveByHostIp    EnabledStatus
}

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

igmpSnoopCurrentVlanStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable IGMP snooping on this VLAN.
                     When enabled, the device will examine IGMP packets and set
                     up filters for IGMP ports."
        ::= { igmpSnoopCurrentVlanEntry 2 }

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 }

igmpSnoopCurrentVlanGeneralQuerySuppression OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The parameter to enable or disable general query suppresion
                     on this VLAN."
        ::= { igmpSnoopCurrentVlanEntry 4 }

igmpSnoopCurrentVlanLastMemQueryCount OBJECT-TYPE
        SYNTAX      Unsigned32(1..255)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Represents the number of queries sent by the switch before
                     it assumes there are no local members."
        ::= { igmpSnoopCurrentVlanEntry 5 }

igmpSnoopCurrentVlanLastMemQueryIntvl OBJECT-TYPE
        SYNTAX      Unsigned32(1..31744)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The last member query interval is the max response time
                     inserted into group-specific queries sent in response to
                     leave group messages,and is also the the max response time
                     inserted into group-and-source-specific query messages."
        ::= { igmpSnoopCurrentVlanEntry 6 }

igmpSnoopCurrentVlanProxyAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Represents the address of queries sent by the switch."
        ::= { igmpSnoopCurrentVlanEntry 7 }

igmpSnoopCurrentVlanQueryIntvl OBJECT-TYPE
        SYNTAX      Unsigned32(2..31744)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Represents the query interval of queries sent by the switch."
        ::= { igmpSnoopCurrentVlanEntry 8 }

igmpSnoopCurrentVlanQueryRespIntvl OBJECT-TYPE
        SYNTAX      Unsigned32(10..31740)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Represents the query response interval of queries
                     sent by the switch."
        ::= { igmpSnoopCurrentVlanEntry 9 }

igmpSnoopCurrentVlanProxyReporting OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        enabled(1),
                        disabled(2),
                        default(3)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this variable to enabled(1) to enable the feature.
                     Set this variable to disabled(2) to disable the feature.
                     Set this variable to default(3), the status of the feature
                     is decided by the global configuration."
        ::= { igmpSnoopCurrentVlanEntry 10 }

igmpSnoopCurrentVlanVersion OBJECT-TYPE
        SYNTAX      Unsigned32(1..3)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The version of igmp packets supported by this vlan."
        ::= { igmpSnoopCurrentVlanEntry 11 }

igmpSnoopCurrentVlanVersionExclusive OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enable/disable control of the IGMP Snooping exclusive
                     supported version."
        ::= { igmpSnoopCurrentVlanEntry 12 }

igmpSnoopCurrentVlanReportSupression OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        default(0),
                        enabled(1),
                        disabled(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this variable to enabled(1) to enable the feature.
                     Set this variable to disabled(2) to disable the feature.
                     Set this variable to default(0), the status of the feature
                     is decided by the global configuration."
        ::= { igmpSnoopCurrentVlanEntry 13 }

igmpSnoopCurrentVlanImmediateLeaveByHostIp OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The parameter to enable or disable the Immediate-Leave feature by host ip on this VLAN."
        ::= { igmpSnoopCurrentVlanEntry 14 }

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

igmpSnoopMulticastGroupEntry OBJECT-TYPE
    SYNTAX      IgmpSnoopMulticastGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for Group multicast addresses."
    INDEX   { igmpSnoopMulticastGroupVlanIndex,
              igmpSnoopMulticastGroupIpAddress,
              igmpSnoopMulticastGroupSourceIPAddress }
    ::= {
igmpSnoopMulticastGroupTable 1 }

IgmpSnoopMulticastGroupEntry ::=
    SEQUENCE {
        igmpSnoopMulticastGroupVlanIndex
            VlanIndex,
        igmpSnoopMulticastGroupIpAddress
            IpAddress,
        igmpSnoopMulticastGroupSourceIPAddress
            IpAddress,
        igmpSnoopMulticastGroupPorts
            PortList,
        igmpSnoopMulticastGroupStatus
            PortList
    }

igmpSnoopMulticastGroupVlanIndex OBJECT-TYPE
    SYNTAX      VlanIndex
    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."
    ::= { igmpSnoopMulticastGroupEntry 1 }

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

igmpSnoopMulticastGroupSourceIPAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Source IP address of source."
    ::= { igmpSnoopMulticastGroupEntry 3 }

igmpSnoopMulticastGroupPorts 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."
    ::= { igmpSnoopMulticastGroupEntry 4 }

igmpSnoopMulticastGroupStatus OBJECT-TYPE
    SYNTAX      PortList
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The set of ports which are static IGMP member ports."
    ::= { igmpSnoopMulticastGroupEntry 5 }

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. The default value
                     is zero, meaning that no ID is specified.  In order to
                     create a profile, a non-zero value must be specified."
        ::= { igmpSnoopProfileCtl 1 }

igmpSnoopProfileCtlInetAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The address type 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 (1..4294967295)
        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 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    INTEGER,
    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 IGMP throttling on 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}

--
--
--
igmpSnoopPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IgmpSnoopPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of IGMP Snooping service per port."
    ::= {igmpSnoopMgt 27 }

igmpSnoopPortEntry OBJECT-TYPE
    SYNTAX      IgmpSnoopPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry of IGMP Snooping service per port."
    INDEX       { igmpSnoopPortIndex }
    ::= {igmpSnoopPortTable 1}

IgmpSnoopPortEntry ::=
    SEQUENCE {
        igmpSnoopPortIndex   Unsigned32,
        igmpSnoopQueryDrop           INTEGER,
        igmpSnoopMulticastDataDrop       INTEGER,
        igmpSnoopPortNumGroups           Unsigned32,
        igmpSnoopPortNumJoinSend         Unsigned32,
        igmpSnoopPortNumJoins            Unsigned32,
        igmpSnoopPortNumJoinSuccess      Unsigned32,
        igmpSnoopPortNumLeavesSend       Unsigned32,
        igmpSnoopPortNumLeaves           Unsigned32,
        igmpSnoopPortNumGeneralQuerySend Unsigned32,
        igmpSnoopPortNumGeneralQueryRecevied  Unsigned32,
        igmpSnoopPortNumSepcificQuerySend     Unsigned32,
        igmpSnoopPortNumSpecificQueryReceived Unsigned32,
        igmpSnoopPortNumInvalidReport         Unsigned32,
        igmpSnoopPortClearStatistics          TruthValue,
        igmpSnoopAuthentication       INTEGER
    }

igmpSnoopPortIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port and the trunk (excluding trunk members)
         interface of the igmpSnoopPortTable. 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."
    ::= { igmpSnoopPortEntry 1 }


igmpSnoopQueryDrop OBJECT-TYPE
        SYNTAX      INTEGER
                {
                    enable(1),
                    disable(2)
                }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable dropping IGMP Query packet."
        DEFVAL      { disable }
        ::= { igmpSnoopPortEntry 3 }

igmpSnoopMulticastDataDrop OBJECT-TYPE
        SYNTAX      INTEGER
                {
                    enable(1),
                    disable(2)
                }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable dropping IP multicast data "
        DEFVAL      { disable }
        ::= { igmpSnoopPortEntry 4 }

igmpSnoopPortNumGroups OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Current learned groups "
        ::= { igmpSnoopPortEntry 5 }

igmpSnoopPortNumJoinSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of joins sent "
        ::= { igmpSnoopPortEntry 6 }

igmpSnoopPortNumJoins OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of joins recieved "
        ::= { igmpSnoopPortEntry 7 }

igmpSnoopPortNumJoinSuccess OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of joined group successes "
        ::= { igmpSnoopPortEntry 8 }

igmpSnoopPortNumLeavesSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leaves sent"
        ::= { igmpSnoopPortEntry 9 }

igmpSnoopPortNumLeaves OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leaves received "
        ::= { igmpSnoopPortEntry 10}

igmpSnoopPortNumGeneralQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general queries sent. "
        ::= { igmpSnoopPortEntry 11}

igmpSnoopPortNumGeneralQueryRecevied OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general queries received. "
        ::= { igmpSnoopPortEntry 12}

igmpSnoopPortNumSepcificQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific queries sent. "
        ::= { igmpSnoopPortEntry 13}

igmpSnoopPortNumSpecificQueryReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific queries received. "
        ::= { igmpSnoopPortEntry 14}

igmpSnoopPortNumInvalidReport OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of invalid reports received. "
        ::= { igmpSnoopPortEntry 15}

igmpSnoopPortClearStatistics OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Clear this VLAN of all statistics "
        ::= { igmpSnoopPortEntry 16}

igmpSnoopAuthentication OBJECT-TYPE
        SYNTAX      INTEGER
                {
                    enable(1),
                    disable(2)
                }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable IGMP Authentication "
        DEFVAL      { disable }
        ::= { igmpSnoopPortEntry 17 }

igmpSnoopGlobalMgt        OBJECT IDENTIFIER ::= { igmpSnoopMgt 28 }

--
-- igmpSnoopGlobalMgt
--

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


igmpSnoopProxyReporting OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable IGMP snooping proxy reporting
                     on the device."
        DEFVAL      { disable }
        ::= { igmpSnoopGlobalMgt 1 }

igmpSnoopRouterAlertOptionCheck OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable IGMP snooping router alert
                    option check on the device."
        DEFVAL      { disabled }
        ::= { igmpSnoopGlobalMgt 2 }

igmpSnoopTcnFlood OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable IGMP snooping tcn flooding
                    on the device."
        DEFVAL      { disabled }
        ::= { igmpSnoopGlobalMgt 3 }

igmpSnoopTcnQuerySolicit OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable IGMP snooping tcn query
                    solicit on the device."
        DEFVAL      { disabled }
        ::= { igmpSnoopGlobalMgt 4 }

igmpSnoopUnregisteredDataFlood OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable IGMP snooping Unregistered
                    data flood solicit on the device."
        DEFVAL      { disabled }
        ::= { igmpSnoopGlobalMgt 5 }

igmpSnoopUnsolicitedReportInterval OBJECT-TYPE
        SYNTAX      Unsigned32(1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Setting this value to specify how long (in seconds) the
                     uplink ports should transmit unsolicited reports."
        DEFVAL      { 400 }
        ::= { igmpSnoopGlobalMgt 6 }

igmpSnoopVersionExclusive OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable IGMP snooping version
                     exclusive on the device."
        DEFVAL      { disabled }
        ::= { igmpSnoopGlobalMgt 7 }

igmpSnoopMrouterForwardMode OBJECT-TYPE
        SYNTAX      INTEGER
        {
            dynamic(1),
            forward(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Paremete to set IGMP snooping Mrouter port forward mode.
                     When set dynamic, IGMP snooping Mrouter port won't forward multicast streams received from other mrouter ports.
                     When set forward, IGMP snooping Mrouter port will forward multicast streams received from other mrouter ports.
                     "
        ::= { igmpSnoopGlobalMgt 8 }

igmpSnoopForwardingPriority OBJECT-TYPE
    SYNTAX      Integer32(0..7|65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Configure IGMP snooping multicast stream forwarding priority.
        If value is 65535, it means the priority is disabled"
    ::= { igmpSnoopMgt 29 }

igmpSnoopQueryDropTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IgmpSnoopQueryDropEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of IGMP Snooping query drop per vlan and per vlan configuration."
    ::= {igmpSnoopMgt 30 }

igmpSnoopQueryDropEntry OBJECT-TYPE
    SYNTAX      IgmpSnoopQueryDropEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry of IGMP Snooping service per port and per VLAN."
    INDEX       { igmpSnoopQueryDropPortIndex }
    ::= {igmpSnoopQueryDropTable 1}

IgmpSnoopQueryDropEntry ::= SEQUENCE {
        igmpSnoopQueryDropPortIndex   Unsigned32,
        igmpSnoopQueryDropVlanBitmap  OCTET STRING
        }

igmpSnoopQueryDropPortIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port and the trunk (excluding trunk members)
         interface of the igmpSnoopPortTable. 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."
    ::= { igmpSnoopQueryDropEntry 1 }


igmpSnoopQueryDropVlanBitmap OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(512))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The VLAN bitmap which query drop applied on this port.
         If all zero, it means disable,
         For all VLANs, please use igmpSnoopPortTable to configure."
    ::= { igmpSnoopQueryDropEntry 2 }



igmpSnoopClearDynamicGroups   OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The current number of IGMP groups that the interface has joined."
        ::= { igmpSnoopMgt 32}


igmpSnoopVlanTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF IgmpSnoopVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of IGMP Snooping service per port."
    ::= {igmpSnoopMgt 33 }

igmpSnoopVlanEntry OBJECT-TYPE
    SYNTAX      IgmpSnoopVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry of IGMP Snooping service per VLAN."
    INDEX       { igmpSnoopVlanIndex }
    ::= {igmpSnoopVlanTable 1}

IgmpSnoopVlanEntry ::=
    SEQUENCE {
        igmpSnoopVlanIndex               VlanIndex,
        igmpSnoopVlanNumGroups           Unsigned32,
        igmpSnoopVlanNumJoinSend         Unsigned32,
        igmpSnoopVlanNumJoins            Unsigned32,
        igmpSnoopVlanNumJoinSuccess      Unsigned32,
        igmpSnoopVlanNumLeavesSend       Unsigned32,
        igmpSnoopVlanNumLeaves           Unsigned32,
        igmpSnoopVlanNumGeneralQuerySend Unsigned32,
        igmpSnoopVlanNumGeneralQueryRecevied  Unsigned32,
        igmpSnoopVlanNumSepcificQuerySend     Unsigned32,
        igmpSnoopVlanNumSpecificQueryReceived Unsigned32,
        igmpSnoopVlanNumInvalidReport         Unsigned32,
        igmpSnoopVlanClearStatistics          TruthValue
    }

igmpSnoopVlanIndex OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "VLAN ID"
        ::= { igmpSnoopVlanEntry 1 }

igmpSnoopVlanNumGroups OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Current learned groups "
        ::= { igmpSnoopVlanEntry 2 }

igmpSnoopVlanNumJoinSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of joins sent."
        ::= { igmpSnoopVlanEntry 3 }

igmpSnoopVlanNumJoins OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of joins received "
        ::= { igmpSnoopVlanEntry 4 }

igmpSnoopVlanNumJoinSuccess OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of jion successes "
        ::= { igmpSnoopVlanEntry 5 }

igmpSnoopVlanNumLeavesSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leaves sent."
        ::= { igmpSnoopVlanEntry 6 }

igmpSnoopVlanNumLeaves OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leaves received "
        ::= { igmpSnoopVlanEntry 7}

igmpSnoopVlanNumGeneralQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general queries sent "
        ::= { igmpSnoopVlanEntry 8}

igmpSnoopVlanNumGeneralQueryRecevied OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general queries received "
        ::= { igmpSnoopVlanEntry 9}

igmpSnoopVlanNumSepcificQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific queries sent"
        ::= { igmpSnoopVlanEntry 10}

igmpSnoopVlanNumSpecificQueryReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of sepcific queries received "
        ::= { igmpSnoopVlanEntry 11}

igmpSnoopVlanNumInvalidReport OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of invalid reports received"
        ::= { igmpSnoopVlanEntry 12}

igmpSnoopVlanClearStatistics OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Clear this VLAN's statistics"
        ::= { igmpSnoopVlanEntry 13}




--
-- The IpMgt Group
--

-- Management for Internet Protocol (IP).

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

ipHttpState OBJECT-TYPE
    SYNTAX     EnabledStatus
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Whether HTTP is enabled."
    ::= { ipMgt 3 }

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

ipDhcpRestart OBJECT-TYPE
    SYNTAX     INTEGER
               {
                   restart(1),
                   noRestart(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "When set to restart(1) the DHCP server will restart. When read,
                 this value always returns noRestart(2)."
    ::= { ipMgt 5 }

-- optional
ipHttpsState OBJECT-TYPE
    SYNTAX     EnabledStatus
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Whether HTTPS is enabled."
    ::= { ipMgt 6 }

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

iPAddrTable  OBJECT-TYPE
    SYNTAX     SEQUENCE OF IPAddrEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of iPAddrEntry."
    ::= { ipMgt 16 }

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

        The index is composed of the ifIndex assigned to the
        corresponding interface."
    INDEX  { iPAddrIfIndex, iPAddrIPAddress, iPAddrSubnetMask }
    ::= { iPAddrTable 1 }

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

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


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

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


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

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

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

            The status column has six defined values:

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

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

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

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

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

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

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

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

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

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

dhcpcInterfaceEntry OBJECT-TYPE
        SYNTAX      DhcpcInterfaceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for DHCP client information listed by interface."
        INDEX       { dhcpcIfIndex }
        ::= { dhcpcInterfaceTable 1 }

DhcpcInterfaceEntry ::= SEQUENCE
{
   dhcpcIfIndex         Integer32,
   dhcpcIfVendorClassIdMode  INTEGER,
   dhcpcIfVendorClassId      OCTET STRING
}

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

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

dhcpcIfVendorClassId OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(1..32))
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The value that the DHCP client sets in the vendor
                      class_id option of DHCPDISCOVER and DHCPREQUEST messages.
                      This value may be used by DHCP servers to identify vendor
                      classof the client."
         ::= { dhcpcInterfaceEntry 5 }
--
--pingMgt
--

pingMgt              OBJECT IDENTIFIER ::= { ipMgt 15 }

pingIpAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "Specifies the IP address of the device it is planned
                 to ping."
    ::= { pingMgt 1 }

pingPacketSize OBJECT-TYPE
    SYNTAX     Integer32 (32..512)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "Specifies the size of each data potion of ping packets
                 in bytes."
    DEFVAL { 32 }
    ::= { pingMgt 2 }

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

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

-- ASV3518KO-FLF-02, 2007-01, for CHT
--
pingProbeCount OBJECT-TYPE
    SYNTAX      INTEGER (1..16)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the number of times to perform a ping operation at a
                 remote host."
    ::= { pingMgt 6 }

-- For CHT

pingSentPackets OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The value of this object reflects the number of probes sent.
                 The value of this object must be reported as 0 when no probes
                 have been sent."
    ::= { pingMgt 7 }

pingReceivedPackets OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of responses received. The value of this object must
                 be reported as 0 when no probe responses have been received."
    ::= { pingMgt 8 }

-- For CHT

pingPacketLossRate OBJECT-TYPE
    SYNTAX      INTEGER(0..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Packet loss rate of this ping operation. This variable is
                 calculated by pingReceivedPackets and pingSentPackets. The
                 rate is expressed as a percentage."
    ::= { pingMgt 9 }


-- For CHT

pingHistoryTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PingHistoryEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Contains the executive result information for the ping
                 operation."
    ::= { pingMgt 10 }

pingHistoryEntry OBJECT-TYPE
    SYNTAX      PingHistoryEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A conceptual row in the pingHistory table."
    INDEX { pingHistoryIndex  }
    ::= { pingHistoryTable 1 }

PingHistoryEntry::= SEQUENCE
{
    pingHistoryIndex          Integer32,
    pingHistoryResponse       Integer32
}

pingHistoryIndex OBJECT-TYPE
    SYNTAX      Integer32(1..16)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A new entry in this table is created when the result of
                 a ping probe is determined. The old entries will be cleared
                 when a new ping action is started."
    ::= { pingHistoryEntry  1 }

pingHistoryResponse OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This variable represents the round trip time and is
                 measured in milliseconds. The variable is the difference
                 between received time and sent time for a ping probe. If
                 the difference value is more than the time-out value or no
                 response is received, then the variable will be 5000
                 milliseconds."
    ::= { pingHistoryEntry 2 }


dhcpOption82Status OBJECT-TYPE
        SYNTAX     INTEGER
        {
            enabled(1),
            disabled(2)
        }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Set enabled(1) to enable DHCP Relay Option 82,
            set disabled(2) to disable it."
        ::= { dhcpOption82 1 }

dhcpOption82Policy OBJECT-TYPE
        SYNTAX     INTEGER
        {
            drop(1),
            replace(2),
            keep(3)
        }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Provide three policies to handle packet"
        ::= { dhcpOption82 2 }

dhcpOption82RemoteIDMode OBJECT-TYPE
        SYNTAX      INTEGER
        {
            mac-address-in-hex(1),
            mac-address-in-ascii(2),
            ip-address-in-hex(3),
            ip-address-in-ascii(4),
            configured-string(5)
        }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Provide five modes for insertion remote-id sub-option of option 82.
             If configured-string(5) has been set, dhcpOption82RemoteIDString
             will take effect."
        ::= { dhcpOption82 3 }

dhcpOption82RemoteIDString OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..32))
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Set string to remote-id sub-option of option 82.
             It only take effect when dhcpOption82RemoteIDMode is set to configured-string(5)"
        ::= { dhcpOption82 4 }

dhcpOption82EncodeFormat OBJECT-TYPE
        SYNTAX      INTEGER
        {
            extra-subtype-included(1),
            no-extra-subtype-included(2)
        }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Set encode format for CID and RID in option82.
             Set extra-subtype-included(1) will have extra subtype and length field in CID and RID.
             Set no-extra-subtype-included(2) will only have TLV format for CID and RID."
        ::= { dhcpOption82 5 }

dhcpOption82RelayServerAddrTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF DhcpOption82RelayServerAddrEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION " This table is to specify relay server IP address,
                        the maximum number of server IP addresses user can be specified is 5.
                        "
          ::= { dhcpOption82 6 }

dhcpOption82RelayServerAddrEntry OBJECT-TYPE
          SYNTAX      DhcpOption82RelayServerAddrEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "A conceptual row of dhcpOption82RelayServerAddrTable."
          INDEX { dhcpOption82RelayServerAddrIndex }
          ::= { dhcpOption82RelayServerAddrTable 1 }

DhcpOption82RelayServerAddrEntry ::= SEQUENCE
{
     dhcpOption82RelayServerAddrIndex Integer32,
     dhcpOption82RelayServerAddrServerIp  IpAddress
}

dhcpOption82RelayServerAddrIndex OBJECT-TYPE
          SYNTAX      Integer32 (1..5)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION "The index of the relay server IP address."
          ::= { dhcpOption82RelayServerAddrEntry 1 }

dhcpOption82RelayServerAddrServerIp OBJECT-TYPE
          SYNTAX      IpAddress
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION "The IP address of the relay server."
          ::= { dhcpOption82RelayServerAddrEntry 2 }

--
-- vlanMgt
--

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

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

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

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

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

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

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

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

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

vlanPortIndex OBJECT-TYPE
        SYNTAX      Integer32(1..48)
        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

vlanDot1qTunnelGlobalConfig OBJECT IDENTIFIER ::= { vlanMgt 8 }

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

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

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

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

vlanDot1qTunnelPortMode OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        none(1),
                        access(2),
                        uplink(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 access(2) sets as dot1q-tunnel mode port which links to customer.
                     Setting it to uplink(3) sets as dot1q-tunnel mode port which links 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 }

vlanDot1qTunnelPortPriorityMapStatus OBJECT-TYPE
       SYNTAX     EnabledStatus
       MAX-ACCESS read-write
       STATUS     current
       DESCRIPTION "Status of priority mapping. Set to enabled(1) to use 802.1p
                    priority of inner tag as packet's priority instead of using
                    outer tag."
       ::= { vlanDot1qTunnelPortEntry 4 }

--
-- 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  read-only
        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      INTEGER (-1|1..4093)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Voice VLAN enabled status and VLAN ID:
                     enabled (1..4093), disabled (-1)."
        ::= { voiceVlanMgt 2 }

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

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

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

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

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 only allows voice
                     traffic for the Voice VLAN."
        ::= { voiceVlanPortEntry 3 }

voiceVlanPortPriority OBJECT-TYPE
        SYNTAX      INTEGER(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 }

voiceVlanPortRemainAge OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(1..12))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Remaining aging time, the unit of which is minutes."
        ::= { voiceVlanPortEntry 7 }

--
-- 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       { macVlanMacMask, macVlanMacAddress }
        ::= { macVlanTable 1 }

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

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      VlanId
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the VLAN ID which the MAC address associates
                     with."
        ::= { macVlanEntry 2 }

macVlanPriority OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies the priority which the MAC address associates
                     with."
        ::= { macVlanEntry 3 }

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 }

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

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

-- vlanStaticExtTable
vlanStaticExtTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VlanStaticExtEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The extension table of dot1qVlanStaticTable. This table
                     enhances the original table with extra
                     vlanStaticExtRspanStatus to create and destroy RSPAN
                     VLAN(s)."
        ::= { vlanMgt 15 }

vlanStaticExtEntry OBJECT-TYPE
        SYNTAX      VlanStaticExtEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row in the vlanStaticExtTable."
        AUGMENTS    { dot1qVlanStaticEntry }
        ::= { vlanStaticExtTable 1 }

VlanStaticExtEntry ::= SEQUENCE
{
        vlanStaticExtRspanStatus  INTEGER
}

vlanStaticExtRspanStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        destroy(1),
                        vlan(2),
                        rspanVlan(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Displays type of a VLAN is vlan(2) or rspanVlan(3). Set
                     this to destroy(1) to destroy a RSPAN VLAN. Set this to
                     rspanVlan(3) to create a RSPAN VLAN. Setting this to
                     vlan(2) is not allowed."
        ::= { vlanStaticExtEntry 1 }

--
-- vlanL2ProtocolTunnelPortTable
--

vlanL2ProtocolTunnelPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VlanL2ProtocolTunnelPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port configuration in Layer 2 Protocol
                     Tunneling."
        ::= { vlanMgt 16 }

vlanL2ProtocolTunnelPortEntry OBJECT-TYPE
        SYNTAX      VlanL2ProtocolTunnelPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port configuration in Layer 2 Protocol
                     Tunneling."
        INDEX       { vlanL2ptPortIndex }
        ::= { vlanL2ProtocolTunnelPortTable 1 }

VlanL2ProtocolTunnelPortEntry ::= SEQUENCE
{
    vlanL2ptPortIndex           Integer32,
    vlanL2ptPortSta             EnabledStatus,
    vlanL2ptPortLldp            EnabledStatus,
    vlanL2ptPortCdp             EnabledStatus,
    vlanL2ptPortVtp             EnabledStatus,
    vlanL2ptPortPvst            EnabledStatus,
    vlanL2ptPortLacp            EnabledStatus
}

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

vlanL2ptPortSta OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set enabled(1) to enable Layer 2 protocol tunneling for
                     spanning-tree protocol. Set disabled(2) to disable Layer 2
                     protocol tunneling for spanning-tree protocol."
        ::= { vlanL2ProtocolTunnelPortEntry 2 }

vlanL2ptPortLldp OBJECT-TYPE
       SYNTAX     EnabledStatus
       MAX-ACCESS read-write
       STATUS     current
       DESCRIPTION "Set enabled(1) to enable Layer 2 protocol tunneling for
                    LLDP. Set disabled(2) to disable Layer 2 protocol
                    tunneling for LLDP."
       ::= { vlanL2ProtocolTunnelPortEntry 3 }

vlanL2ptPortCdp OBJECT-TYPE
       SYNTAX     EnabledStatus
       MAX-ACCESS read-write
       STATUS     current
       DESCRIPTION "Set enabled(1) to enable Layer 2 protocol tunneling for
                    Cisco Discovery Protocol. Set disabled(2) to disable
                    Layer 2 protocol tunneling for Cisco Discovery Protocol."
       ::= { vlanL2ProtocolTunnelPortEntry 4 }

vlanL2ptPortVtp OBJECT-TYPE
       SYNTAX     EnabledStatus
       MAX-ACCESS read-write
       STATUS     current
       DESCRIPTION "Set enabled(1) to enable Layer 2 protocol tunneling for
                    Cisco VTP. Set disabled(2) to disable Layer 2 protocol
                    tunneling for Cisco VTP."
       ::= { vlanL2ProtocolTunnelPortEntry 5 }

vlanL2ptPortPvst OBJECT-TYPE
       SYNTAX     EnabledStatus
       MAX-ACCESS read-write
       STATUS     current
       DESCRIPTION "Set enabled(1) to enable Layer 2 protocol tunneling for
                    Cisco PVST+. Set disabled(2) to disable Layer 2 protocol
                    tunneling for Cisco PVST+."
       ::= { vlanL2ProtocolTunnelPortEntry 6 }

vlanL2ptPortLacp OBJECT-TYPE
       SYNTAX     EnabledStatus
       MAX-ACCESS read-write
       STATUS     current
       DESCRIPTION "Set enabled(1) to enable Layer 2 protocol tunneling for
                    LACP. Set disabled(2) to disable Layer 2 protocol
                    tunneling for LACP."
       ::= { vlanL2ProtocolTunnelPortEntry 7 }
--
-- vlanL2ProtocolTunnelGlobalConfig
--

vlanL2ProtocolTunnelGlobalConfig OBJECT IDENTIFIER ::= { vlanMgt 19 }

vlanL2ProtocolTunnelAddress OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Destination MAC address for PDU tunneling."
        ::= { vlanL2ProtocolTunnelGlobalConfig 1 }

--
-- L2/L3 VLAN Mgt
--
vlanStaticTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for static VLAN configuration including VLAN aggregation support."
    ::= { vlanMgt 17 }

vlanStaticEntry OBJECT-TYPE
    SYNTAX      VlanStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Static information for a VLAN configured on the device by (local or
         network) management."
    INDEX
    {
        vlanStaticIndex
    }
    ::= { vlanStaticTable 1 }

VlanStaticEntry ::= SEQUENCE
{
    vlanStaticIndex                 VlanIndex,
    vlanStaticInterfaceType         INTEGER
}

vlanStaticIndex OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The VLAN ID of the VLAN."
    ::= { vlanStaticEntry 1 }

vlanStaticInterfaceType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    l2vlan(135),
                    l3ipvlan(136)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The interface type of the VLAN (there is a subtype of IANAifType).
         l2vlan(135) refers to L2 interface and can't accept any L3 related
         configuration. l3ipvlan(136) refers to L3 interface and can accept
         L3 related configuration."
    DEFVAL      { l2vlan }
    ::= { vlanStaticEntry 2 }

vlanDot1qTunnelSrvCvidPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF VlanDot1qTunnelSrvCvidPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port configuration to specify how to insert
                     outer tag by matching customer VLAN ID."
        ::= { vlanMgt 18 }

vlanDot1qTunnelSrvCvidPortEntry OBJECT-TYPE
        SYNTAX      VlanDot1qTunnelSrvCvidPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port configuration to specify how to insert
                     outer tag by matching customer VLAN ID."
        INDEX       { vlanDot1qTunnelSrvCvidPortIndex,
                      vlanDot1qTunnelSrvCvidPortCvid }
        ::= { vlanDot1qTunnelSrvCvidPortTable 1 }

VlanDot1qTunnelSrvCvidPortEntry ::= SEQUENCE
{
    vlanDot1qTunnelSrvCvidPortIndex           InterfaceIndex,
    vlanDot1qTunnelSrvCvidPortCvid            VlanIndex,
    vlanDot1qTunnelSrvCvidPortSvid            VlanId,
    vlanDot1qTunnelSrvCvidPortStatus          ValidStatus,
    vlanDot1qTunnelSrvCvidPortAction          BITS
}

vlanDot1qTunnelSrvCvidPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port interface of the vlanDot1qTunnelSrvCvidPortTable.
                     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."
        ::= { vlanDot1qTunnelSrvCvidPortEntry 1 }

vlanDot1qTunnelSrvCvidPortCvid OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Specifies customer VLAN ID."
        ::= { vlanDot1qTunnelSrvCvidPortEntry 2 }

vlanDot1qTunnelSrvCvidPortSvid OBJECT-TYPE
        SYNTAX      VlanId
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Specifies service VLAN ID."
        ::= { vlanDot1qTunnelSrvCvidPortEntry 3 }

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

vlanDot1qTunnelSrvCvidPortAction OBJECT-TYPE
        SYNTAX      BITS {
                             reserved0(0),
                             reserved1(1),
                             assignSvid(2)
                         }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Set to assignSvid(2) to assign service VLAN ID."
        ::= { vlanDot1qTunnelSrvCvidPortEntry 6 }

--
-- vlanTranslationMgt
--

vlanTraslationPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF VlanTraslationPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A list of VLAN translation entries."
    ::= { vlanMgt 22 }

vlanTraslationPortEntry OBJECT-TYPE
    SYNTAX      VlanTraslationPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry for port configuration to set up
                 VLAN translation mapping."
    INDEX       { vlanTraslationPortIndex,
                  vlanTraslationPortOldVid }
    ::= { vlanTraslationPortTable 1 }

VlanTraslationPortEntry ::= SEQUENCE {
    vlanTraslationPortIndex          InterfaceIndex,
    vlanTraslationPortOldVid         VlanIndex,
    vlanTraslationPortNewVid         VlanId,
    vlanTraslationPortStatus         ValidStatus
}

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

vlanTraslationPortOldVid OBJECT-TYPE
    SYNTAX      VlanIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The VLAN translation is applied in both ingress and
                 egress sides of the port. It makes
                 the traffic arriving on the VLAN with this VLAN ID to
                 be mapped to or tagged with the corresponding instance
                 of vlanTraslationPortNewVid on the port. It also
                 causes all the traffic internally tagged with the
                 corresponding instance of vlanTraslationPortNewVid and
                 leaving the port to be tagged with the VLAN of
                 this VLAN ID."
    ::= { vlanTraslationPortEntry 2 }

vlanTraslationPortNewVid OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Specifies the new VLAN ID that will be mapped to."
    ::= { vlanTraslationPortEntry 3 }

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

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

prioIpDscpPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        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
--

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

-- For IP Filter Reject

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

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

trapTcnReason OBJECT-TYPE
    SYNTAX      INTEGER
                {
                 pushButton(1),
                 stackingLinkDown(2),
                 stackingLinkUp(3),
                 hbtTimeout(4),
                 hbtError(5)
                }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The variable represents the function of TCN:
                 pushButton(1): Push button to enable the unit as the Master unit in the stack.
                 stackingLinkDown(2): Stacking link is down.
                 stackingLinkUp(3): Stacking link is up.
                 hbtTimeout(4): Control packet sent from the Master through all units has timed-out.
                 hbtError(5): Control packet sent from the Master through all units was received with errors."
    ::= { trapVar 9 }

trapVarMacAddr OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The MAC address."
    ::= { trapVar 10 }

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 }

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

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

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

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

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

--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 triggered the trap."
    ::= { trapVar 22 }

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

trapIfIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "This variable is for trap var binding,
                 indicating the index of an interface."
    ::= { trapVar 30 }

trapVlanId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "This variable is for trap var binding,
                 indicating the identifier of a VLAN."
    ::= { trapVar 31 }

-- For DHCP rogue server attack
trapDhcpClientPortIfIndex OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "ifIndex for the port connected to DHCP rogue server."
    ::= { trapVar 62 }

trapDhcpServerIpAddress OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The IP address of the rogue server."
    ::= { trapVar 63 }

-- For SFP's alarm/warning type
trapSfpThresholdAlarmWarnIfIndex OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "ifIndex for the port issued alarm/warning trap."
    ::= { trapVar 64 }

trapSfpThresholdAlarmWarnType OBJECT-TYPE
    SYNTAX      INTEGER
                    {
                        rxPowerHighAlarm(1),
                        rxPowerLowAlarm(2),
                        rxPowerHighWarning(3),
                        rxPowerLowWarning(4),
                        txPowerHighAlarm(5),
                        txPowerLowAlarm(6),
                        txPowerHighWarning(7),
                        txPowerLowWarning(8),
                        temperatureHighAlarm(9),
                        temperatureLowAlarm(10),
                        temperatureHighWarning(11),
                        temperatureLowWarning(12),
                        voltageHighAlarm(13),
                        voltageLowAlarm(14),
                        voltageHighWarning(15),
                        voltageLowWarning(16),
                        currentHighAlarm(17),
                        currentLowAlarm(18),
                        currentHighWarning(19),
                        currentLowWarning(20),
                        rxPowerAlarmWarnCease(21),
                        txPowerAlarmWarnCease(22),
                        temperatureAlarmWarnCease(23),
                        voltageAlarmWarnCease(24),
                        currentAlarmWarnCease(25)
                    }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "SFP's alarm/warning type ."
    ::= { trapVar 65 }

-- For UDLD
trapUdldPortShutdownReason OBJECT-TYPE
     SYNTAX      INTEGER
                 {
                     unidirectionalLink(1),
                     mismatchWithNeighbor(2),
                     transmitToReceiveLoop(3),
                     aggressiveModeFailure(4)
                 }
     MAX-ACCESS  accessible-for-notify
     STATUS      current
     DESCRIPTION "This variable is for trap var binding,
                  indicated the reason for the UDLD port shutdown.
                  unidirectionalLink(1): unidirectional link detected,
                  mismatchWithNeighbor(2): mismatch with neighbor state reported.
                  transmitToReceiveLoop(3): transmit-to-receive loop detected.
                  aggressiveModeFailure(4): aggressive mode failure detected."
     ::= { trapVar 66 }

trapDhcpServerMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The MAC address of the rogue server."
    ::= { trapVar 67 }

trapMacNotifyAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    add(1),
                    remove(2)
                }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates which result triggered the trap."
    ::= { trapVar 68 }

trapTcnStackingUnitIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..8)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "This parameter identifies which unit triggered this TCN trap."
    ::= { trapVar 69 }

trapTcnStackingUnitRole OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    master(1),
                    slave(3)
                }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates the role of this unit is master or slave."
    ::= { trapVar 70 }

trapTcnStackingTplg OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    ring(1),
                    line(2)
                }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates current stacking topology is ring or line."
    ::= { trapVar 71 }

trapTcnStackingUpPortIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates the up-link stacking port id."
    ::= { trapVar 72 }

trapTcnStackingUpPortLinkStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    linkUp(1),
                    linkDown(2)
                }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates current link status of up-link stacking port."
    ::= { trapVar 73 }

trapTcnStackingUpPortLinkStatusChanged OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    noChanged(0),
                    changed(1)
                }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates the link status of up-link stacking port is changed."
    ::= { trapVar 74 }

trapTcnStackingDownPortIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates the down-link stacking port id."
    ::= { trapVar 75 }

trapTcnStackingDownPortLinkStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    linkUp(1),
                    linkDown(2)
                }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates current link status of down-link stacking port."
    ::= { trapVar 76 }

trapTcnStackingDownPortLinkStatusChanged OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    noChanged(0),
                    changed(1)
                }
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The parameter indicates the link status of down-link stacking port is changed."
    ::= { trapVar 77 }

--
-- qosMgt
--

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

--
-- rateLimitMgt
--

-- optional

rateLimitMgt        OBJECT IDENTIFIER ::= { qosMgt 1 }

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

rateLimitPortEntry OBJECT-TYPE
        SYNTAX      RateLimitPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for rate limit of each port."
        INDEX       { rlPortIndex }
        ::= { rateLimitPortTable 1 }


RateLimitPortEntry ::= SEQUENCE
{
    rlPortIndex              Integer32,
    rlPortInputStatus        EnabledStatus,
    rlPortOutputStatus       EnabledStatus,
    rlPortInputLimitInKilo   Integer32,
    rlPortOutputLimitInKilo  Integer32
}

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

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

cosMgt        OBJECT IDENTIFIER ::= { qosMgt 3 }

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

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

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

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

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

prioAclToCosMappingCosValue OBJECT-TYPE
        SYNTAX      Integer32 (0..7)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "CoS value of the prioAclToCosMappingTable."
        ::= { prioAclToCosMappingEntry 3 }

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

            The status column has six defined values:

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

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

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

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

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

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

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

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

prioIfClassificationModeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PrioIfClassificationModeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for setting the interface Qos mapping classification mode."
    ::= { cosMgt 2 }

prioIfClassificationModeEntry OBJECT-TYPE
    SYNTAX      PrioIfClassificationModeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for setting the interface Qos mapping classification mode."
    INDEX
    {
        prioIfClassificationModeIf
    }
    ::= { prioIfClassificationModeTable 1 }

PrioIfClassificationModeEntry ::= SEQUENCE
{
    prioIfClassificationModeIf     InterfaceIndex,
    prioIfClassificationModeStatus INTEGER
}

prioIfClassificationModeIf OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port or trunk interface of the device. 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."
    ::= { prioIfClassificationModeEntry 1 }

prioIfClassificationModeStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    cos(0),
                    ipPrecedence(1),
                    dscp(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Qos mapping classification mode of the interface. cos mode means
         that the internal priority is mapped from priority field of packet's
         VLAN tag if a VLAN tag exists; IP precedence mode means that the
         internal priority is mapped from the IP precedence value of IP
         packets; DSCP mode means the internal priority is mapped from the dscp
         value of IP packets."
    ::= { prioIfClassificationModeEntry 2 }


--
-- The mapping table from CoS/CFI to internal QoS label
--

prioCosToDscpTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PrioCosToDscpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for CoS/CFI to internal QoS label mapping."
    ::= { cosMgt 3 }

prioCosToDscpEntry OBJECT-TYPE
    SYNTAX      PrioCosToDscpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for CoS/CFI to internal QoS label mapping."
    INDEX
    {
          prioCosToDscpIfValue,
          prioCosToDscpCosValue,
          prioCosToDscpCFIValue
    }
    ::= { prioCosToDscpTable 1 }

PrioCosToDscpEntry ::= SEQUENCE
{
    prioCosToDscpIfValue                InterfaceIndex,
    prioCosToDscpCosValue             Integer32,
    prioCosToDscpCFIValue             Integer32,
    prioCosToDscpDscpValue            Integer32
}

prioCosToDscpIfValue OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port or the trunk interface of the device. 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."
    ::= { prioCosToDscpEntry 1 }

prioCosToDscpCosValue OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The CoS value (0~7) mapped to an internal QoS label value which is
         composed of PHB(3 bits) and drop precedence(2 bits)."
    ::= { prioCosToDscpEntry 2 }

prioCosToDscpCFIValue OBJECT-TYPE
    SYNTAX      Integer32 (0..1)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The CFI value (0 or 1) mapped to an internal QoS label value which is
         composed of PHB(3 bits) and drop precedence(2 bits)."
    ::= { prioCosToDscpEntry 3 }

prioCosToDscpDscpValue OBJECT-TYPE
    SYNTAX      Integer32 (0..63)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The DSCP value used to represent the internal QoS label (3 bits PHB+2
         bits Drop precedence). The MSB 4 bits of DSCP is used to represent PHB
         value of QoS label; The LSB 2 bits of DSCP are used to represent the
         drop precedence value of QoS label. Green(0), Yellow(3), Red(1). In a
         word, PHB=(DSCP>>2), Drop precedence=(DSCP & 0x3).

         Note: The setting range of PHB value must be 0~7 and the setting drop
         precedence value must be one of the values (0,1,3)."
    ::= { prioCosToDscpEntry 4 }

--
-- The mapping table from IP precedence to internal Qos label
--

prioPrecToDscpTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PrioPrecToDscpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for IP precedence to internal QoS label mapping. This table
         setting will take effect only when the interface QoS mapping
         classification mode is set to IP precedence mode."
    ::= { cosMgt 4 }

prioPrecToDscpEntry OBJECT-TYPE
    SYNTAX      PrioPrecToDscpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for IP precedence to internal QoS label mapping."
    INDEX
    {
        prioPrecToDscpIfValue,
        prioPrecToDscpPrecValue
    }
    ::= { prioPrecToDscpTable 1 }

PrioPrecToDscpEntry ::= SEQUENCE
{
    prioPrecToDscpIfValue             InterfaceIndex,
    prioPrecToDscpPrecValue           Integer32,
    prioPrecToDscpDscpValue           Integer32
}

prioPrecToDscpIfValue OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port or trunk interface of the device. 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."
    ::= { prioPrecToDscpEntry 1 }

prioPrecToDscpPrecValue OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The IP precedence value mapped to internal QoS label value which is
         composed of PHB (3 bits) and drop precedence (2 bits)."
    ::= { prioPrecToDscpEntry 2 }

prioPrecToDscpDscpValue OBJECT-TYPE
    SYNTAX      Integer32 (0..63)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The DSCP value used to represent internal QoS label (3 bits PHB + 2
         bits Drop precedence). The MSB 4 bits of DSCP are used to represent
         PHB value of QoS label; The LSB 2 bits of DSCP are used to represent
         the drop precedence value of QoS label. Green(0),Yellow(3), Red(1).
         In a word, PHB=(DSCP>>2), Drop precedence=(DSCP & 0x3). Note: The
         setting range of PHB value must be 0~7 and the setting drop precedence
         value must be one of values(0,1,3)."
    ::= { prioPrecToDscpEntry 3 }

--
-- The mapping table from DSCP to internal Qos label
--

prioDscpToDscpTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PrioDscpToDscpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for DSCP to internal QoS label mapping. This table setting will
         take effect only when the interface Qos mapping classification mode is
         set to DSCP mode."
    ::= { cosMgt 5 }

prioDscpToDscpEntry OBJECT-TYPE
    SYNTAX      PrioDscpToDscpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for ingress DSCP to internal QoS label mapping."
    INDEX
    {
        prioDscpToDscpIfValue,
        prioDscpToDscpIngressDscpValue
    }
    ::= { prioDscpToDscpTable 1 }

PrioDscpToDscpEntry ::= SEQUENCE
{
    prioDscpToDscpIfValue                    InterfaceIndex,
    prioDscpToDscpIngressDscpValue           Integer32,
    prioDscpToDscpDscpValue                  Integer32
}

prioDscpToDscpIfValue OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port or trunk interface of the device. 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."
    ::= { prioDscpToDscpEntry 1 }

prioDscpToDscpIngressDscpValue OBJECT-TYPE
    SYNTAX      Integer32 (0..63)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The ingress DSCP value which will be mapped to internal QoS label
         value."
    ::= { prioDscpToDscpEntry 2 }

prioDscpToDscpDscpValue OBJECT-TYPE
    SYNTAX      Integer32 (0..63)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The DSCP value used to represent internal QoS label (3 bits PHB + 2
         bits Drop precedence). The MSB 4 bits of DSCP are used to represent
         PHB value of Qos label. The LSB 2 bits of DSCP are used to represent
         the drop precedence value of QoS label. Green(0),Yellow(3), Red(1).
         In a word, PHB=(DSCP>>2), Drop precedence=(DSCP & 0x3).

         Note: The setting range of PHB value must be 0~7 and the setting drop
         precedence value must be one of values (0,1,3)."
    ::= { prioDscpToDscpEntry 3 }

--
-- The mapping table from TCP/UDP destination port number to internal Qos label
--

prioDstPortToDscpTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PrioDstPortToDscpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for TCP/UDP destination port number to internal Qos label
         mapping. This table setting will always take effect for TCP/UDP
         packets no matter of what interface QoS mapping classification mode is
         set."
    ::= { cosMgt 6 }

prioDstPortToDscpEntry OBJECT-TYPE
    SYNTAX      PrioDstPortToDscpEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for TCP/UDP destination port to internal QoS label mapping."
    INDEX
    {
        prioDstPortToDscpIfValue,
        prioDstPortToDscpProtocolValue,
        prioDstPortToDscpDstPortValue
    }
    ::= { prioDstPortToDscpTable 1 }

PrioDstPortToDscpEntry ::= SEQUENCE
{
    prioDstPortToDscpIfValue            InterfaceIndex,
    prioDstPortToDscpProtocolValue      INTEGER,
    prioDstPortToDscpDstPortValue       Integer32,
    prioDstPortToDscpDscpValue          Integer32
}

prioDstPortToDscpIfValue OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port or the trunk interface of the device. 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."
    ::= { prioDstPortToDscpEntry 1 }

prioDstPortToDscpProtocolValue OBJECT-TYPE
    SYNTAX      INTEGER
                         {
                              tcp(6),
                              udp(17)
                        }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The protocol value (TCP:6, UDP:17) which will be mapped to internal
         QoS label value."
::= { prioDstPortToDscpEntry 2 }

prioDstPortToDscpDstPortValue OBJECT-TYPE
    SYNTAX      Integer32(1..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The destination port number value which will be mapped to internal
         QoS label value."
    ::= { prioDstPortToDscpEntry 3 }

prioDstPortToDscpDscpValue OBJECT-TYPE
    SYNTAX      Integer32 (0..63)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The DSCP value used to represent internal QoS label (3 bits PHB + 2
         bits Drop precedence). The MSB 4 bits of DSCP is used to represent PHB
         value of QoS label. The LSB 2 bits of DSCP is used to represent the
         drop precedence value of Qos label. Green(0),Yellow(3), Red(1). In a
         word, PHB=(DSCP>>2), Drop precedence=(DSCP & 0x3). Note: The setting
         range of PHB value must be 0~7 and the setting drop precedence value
         must be one of values (0,1,3)."
    ::= { prioDstPortToDscpEntry 4 }


--
-- The mapping table from internal Qos label to CoS and CFI
--

prioDscpToCosTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PrioDscpToCosEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for internal QoS label to CoS and CFI mapping."
    ::= { cosMgt 7 }

prioDscpToCosEntry OBJECT-TYPE
    SYNTAX      PrioDscpToCosEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for internal QoS label to CoS and CFI mapping."
    INDEX
    {
        prioDscpToCosIfValue,
        prioDscpToCosPHBValue,
        prioDscpToCosDropPrecedenceValue
    }
    ::= { prioDscpToCosTable 1 }

PrioDscpToCosEntry ::= SEQUENCE
{
    prioDscpToCosIfValue                InterfaceIndex,
    prioDscpToCosPHBValue               Integer32,
    prioDscpToCosDropPrecedenceValue    INTEGER,
    prioDscpToCosCFICosValue            Integer32
}

prioDscpToCosIfValue OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port or trunk interface of the device. 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."
    ::= { prioDscpToCosEntry 1 }

prioDscpToCosPHBValue OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The PHB value of internal QoS label."
    ::= { prioDscpToCosEntry 2 }

prioDscpToCosDropPrecedenceValue OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    green(0),
                    red(1),
                    yellow(3)
                }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The drop precedence value of internal QoS label. Green(0), Yellow(3),
         Red(1)."
    ::= { prioDscpToCosEntry 3 }

prioDscpToCosCFICosValue OBJECT-TYPE
    SYNTAX      Integer32 (0..16)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The remarked CFI and CoS value mapped from the internal Qos label
         value when the packet leaves the device. The egress remarked CFI
         value equals to (prioDscpToCosCFICosValue >>3) and the egress
         remarked CoS value equals to (prioDscpToCosCFICosValue & 0x7)."
    ::= { prioDscpToCosEntry 4 }

-- The mapping table for packet priority to drop precedence mapping.

prioPrioToDropPrecTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PrioPrioToDropPrecEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for packet priority to drop precedence mapping."
    ::= { cosMgt 8 }

prioPrioToDropPrecEntry OBJECT-TYPE
    SYNTAX      PrioPrioToDropPrecEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for packet priority to drop precedence mapping."
    INDEX
    {
        prioPrioToDropPrecIfValue,
        prioPrioToDropPrecPriorityValue
    }
    ::= { prioPrioToDropPrecTable 1 }

PrioPrioToDropPrecEntry ::= SEQUENCE
{
    prioPrioToDropPrecIfValue           InterfaceIndex,
    prioPrioToDropPrecPriorityValue     Integer32,
    prioPrioToDropPrecPrecValue         INTEGER
}

prioPrioToDropPrecIfValue OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port or the trunk interface of the device. 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."
    ::= { prioPrioToDropPrecEntry 1 }


prioPrioToDropPrecPriorityValue OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of packet default priority."
    ::= { prioPrioToDropPrecEntry 2 }

prioPrioToDropPrecPrecValue OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    green(0),
                    red(1),
                    yellow(3)
                }

    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "The drop precedence value of internal QoS label. Green(0),Yellow(3),
         Red(1)."
    ::= { prioPrioToDropPrecEntry 3 }

-- The mapping table from PHB to queue
--

prioDscpToQueueTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PrioDscpToQueueEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table for PHB to queue mapping."
    ::= { cosMgt 9 }

prioDscpToQueueEntry OBJECT-TYPE
    SYNTAX      PrioDscpToQueueEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry for PHB to queue mapping."
    INDEX
    {
        prioDscpToQueueIfValue,
        prioDscpToQueuePHBValue
    }
    ::= { prioDscpToQueueTable 1 }

PrioDscpToQueueEntry ::= SEQUENCE
{
    prioDscpToQueueIfValue             InterfaceIndex,
    prioDscpToQueuePHBValue            Integer32,
    prioDscpToQueueQueueValue          Integer32
}

prioDscpToQueueIfValue OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port or trunk interface of the device. 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."
    ::= { prioDscpToQueueEntry 1 }

prioDscpToQueuePHBValue OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The PHB value of internal QoS label."
    ::= { prioDscpToQueueEntry 2 }

prioDscpToQueueQueueValue OBJECT-TYPE
    SYNTAX      Integer32 (0..7)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The queue value which is mapped from the PHB value of QoS label."
    ::= { prioDscpToQueueEntry 3 }

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

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

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

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

diffServPolicyMapIndex OBJECT-TYPE
        SYNTAX      Integer32(1..32)
        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 containing the diffServPolicyMapElementEntry
                 indexes. Two octets express one index and it is represented
                 in network order. This index list indicates the
                 diffServPolicyMapEntrys which belong to this entry."
    ::= { diffServPolicyMapEntry 4 }

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

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

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

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

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

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

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

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

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

diffServPolicyMapAttachCtl  OBJECT IDENTIFIER   ::= { diffServMgt 11 }

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

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

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

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

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

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

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

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

                 The status column has six defined values:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

diffServClassMapElementIndexList OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The octet string containes the class map element indexes. Two
                 octets express one index and it is represented in
                 network order. This index list indicates the particular
                 class map elements which belong to this table. The class map
                 element uses type to indicate diffServAclEntry, the
                 diffServIpAceEntry 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.
                 When type is ipv6Ace(4), the maping index of
                 differServClasssMapElementIndexList is the
                 diffServIpv6AceEntry."
    ::= { diffServClassMapEntry 6 }

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

                 The status column has six defined values:

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

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

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

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

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

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

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

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

diffServClassMapAttachCtl  OBJECT IDENTIFIER   ::= { diffServMgt 14 }

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

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

diffServClassMapAttachCtlElementIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Element Index for attachment control. Specifies the class map
                 element related with the class map. The class map element uses
                 type to indicate diffServAclEntry, the diffServIpAceEntry 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. When type is ipv6Ace(4), the maping index of
                 differServClasssMapElementIndexList is the diffServIpv6AceEntry."
    ::= { diffServClassMapAttachCtl 3 }

diffServClassMapAttachCtlAction OBJECT-TYPE
    SYNTAX      INTEGER
                    {
                        noAction(1),
                        attach(2),
                        detach(3)
                    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Action for attachment control. When setting this object to
                 attach(2) to begin the attaching operation, a particular class
                 map element is attached to a particular class map. When
                 setting this object to detach(3) to begin the not attached
                 operation, then a particular class map element is not attached
                 to a particular class map. When the action is finshed 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        Integer32,
    diffServAclName         DisplayString,
    diffServAclType         INTEGER,
    diffServAclAceIndexList OCTET STRING,
    diffServAclStatus       RowStatus
}

diffServAclIndex OBJECT-TYPE
        SYNTAX      Integer32(1..64)
        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),
                    arp(6)
                }
    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 auto-
                 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
                 diffServMacAceEntry, the diffServIpAceEntry, the
                 diffServIpv6AceEntry or the diffServArpAceEntry. The type is
                 specified in diffServAclType. When the type is mac(1), the
                 index of diffServAclAceIndexList is the diffServMacAceEntry.
                 When the type is ipstandard(2) or ipextended(3), the index of
                 diffServAclAceIndexList is the diffServIpAceEntry. When the
                 type is ipv6standard(4) or ipv6extended(5), the index of
                 diffServAclAceIndexList is the diffServIpv6AceEntry. When the
                 type is arp(6), the index of diffServAclAceIndexList is the
                 diffServArpAceEntry."
    ::= { 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),
                    arpAce(4)
                }
    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. When the type is arpAce(4), the
                 index of diffServAclAceIndexList is the diffServArpAceEntry."
    ::= { 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. When
                 diffServAclAttachCtlAceType is arpAce(4), the value of
                 diffServAclAttachCtlIndex is the diffServArpAceEntry."
    ::= { 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                  Integer32,
    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      Integer32(1..512)
        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 to 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 uses the
                 diffServIpAceSourcePortBitmask and the
                 diffServIpAceMinDestPort to match against. range(3),which
                 uses 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                   Integer32,
    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              INTEGER,
    diffServMacAceMinCos                  INTEGER,
    diffServMacAceSourceIpAddr            IpAddress,
    diffServMacAceSourceIpAddrBitmask     IpAddress,
    diffServMacAceDestIpAddr              IpAddress,
    diffServMacAceDestIpAddrBitmask       IpAddress,
    diffServMacAceSourceIpv6Addr          OCTET STRING,
    diffServMacAceSourceIpv6AddrPrefixLen Integer32,
    diffServMacAceDestIpv6Addr            OCTET STRING,
    diffServMacAceDestIpv6AddrPrefixLen   Integer32,
    diffServMacAceIpProtocol              Integer32,
    diffServMacAceL4SourcePortOp          INTEGER,
    diffServMacAceL4SourcePort            Integer32,
    diffServMacAceL4SourcePortBitmask     Integer32,
    diffServMacAceL4DestPortOp            INTEGER,
    diffServMacAceL4DestPort              Integer32,
    diffServMacAceL4DestPortBitmask       Integer32,
    diffServMacAceStatus                RowStatus
}

diffServMacAceIndex OBJECT-TYPE
        SYNTAX      Integer32(1..512)
        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      INTEGER ('0'h..'7'h)
    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      INTEGER ('0'h..'7'h)
        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 }

diffServMacAceSourceIpAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServMacAceEtherTypeOp is equal(2),
                 diffServMacAceEtherTypeBitmask is 'FFFF'h, and
                 diffServMacAceMinEtherType is '0800'h, this specifies source
                 IP address. The packet's source address is AND-ed with the value
                 of diffServMacAceSourceIpAddrBitmask and then compared against
                 the value of this object."
    ::= { diffServMacAceEntry 32 }

diffServMacAceSourceIpAddrBitmask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServMacAceEtherTypeOp is equal(2),
                 diffServMacAceEtherTypeBitmask is 'FFFF'h, and
                 diffServMacAceMinEtherType is '0800'h, this specifies source IP
                 address mask. The packet's source address is AND-ed with the
                 value of diffServMacAceSourceIpAddr and then compared against
                 the value of this object."
    ::= { diffServMacAceEntry 33 }

diffServMacAceDestIpAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServMacAceEtherTypeOp is equal(2),
                 diffServMacAceEtherTypeBitmask is 'FFFF'h, and
                 diffServMacAceMinEtherType is '0800'h, this specifies destination
                 IP address. The packet's destination address is AND-ed with the
                 value of diffServMacAceDestIpAddrBitmask and then compared against
                 the value of this object."
    ::= { diffServMacAceEntry 34 }

diffServMacAceDestIpAddrBitmask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServMacAceEtherTypeOp is equal(2),
                 diffServMacAceEtherTypeBitmask is 'FFFF'h, and
                 diffServMacAceMinEtherType is '0800'h, this specifies destination
                 IP address mask. The packet's source address is AND-ed with the
                 value of diffServMacAceDestIpAddr and then compared against the
                 value of this object."
    ::= { diffServMacAceEntry 35 }

diffServMacAceSourceIpv6Addr OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServMacAceEtherTypeOp is equal(2),
                 diffServMacAceEtherTypeBitmask is 'FFFF'h, and
                 diffServMacAceMinEtherType is '86DD'h, this specifies the source
                 IPv6 address."
    ::= { diffServMacAceEntry 36 }

diffServMacAceSourceIpv6AddrPrefixLen OBJECT-TYPE
    SYNTAX      Integer32 (0..128)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServMacAceEtherTypeOp is equal(2),
                 diffServMacAceEtherTypeBitmask is 'FFFF'h, and
                 diffServMacAceMinEtherType is '86DD'h, this specifies the length
                 (in bits) associated with the source IPv6 address prefix of this
                 entry."
    ::= { diffServMacAceEntry 37 }

diffServMacAceDestIpv6Addr OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..16))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServMacAceEtherTypeOp is equal(2),
                 diffServMacAceEtherTypeBitmask is 'FFFF'h, and
                 diffServMacAceMinEtherType is '86DD'h, this specifies the destination
                 IPv6 address. This object may not be modified if the associated
                 aclIpv6AceType object is equal to standard(1)."
    ::= { diffServMacAceEntry 38 }

diffServMacAceDestIpv6AddrPrefixLen OBJECT-TYPE
    SYNTAX      Integer32 (0..8)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServMacAceEtherTypeOp is equal(2),
                 diffServMacAceEtherTypeBitmask is 'FFFF'h, and
                 diffServMacAceMinEtherType is '86DD'h, this specifies the length
                 (in bits) associated with the destination IPv6 address prefix of
                 this entry."
    ::= { diffServMacAceEntry 39 }

diffServMacAceIpProtocol OBJECT-TYPE
    SYNTAX      Integer32 (0..256)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The protocol number field in the IP header (or the next header
                 field in the IPv6 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 diffServMacAceMinEtherType object is not equal to
                 '0800'h or '86DD'h. "
    ::= { diffServMacAceEntry 40 }

diffServMacAceL4SourcePortOp OBJECT-TYPE
    SYNTAX    INTEGER {
        noOperator(1),
        equal(2),
        range(3)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates how a packet's L4 source port is compared."

    ::= { diffServMacAceEntry 41 }

diffServMacAceL4SourcePort OBJECT-TYPE
    SYNTAX      Integer32 (0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the object type of diffServMacAceL4SourcePortOp is equal(2),
                 this indicates the l4 source port value for comparing."
    ::= { diffServMacAceEntry 42 }

diffServMacAceL4SourcePortBitmask OBJECT-TYPE
    SYNTAX      Integer32 (0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the object type of diffServMacAceL4SourcePortOp is equal(2),
                 this indicates the bitmask for diffServMacAceL4SourcePort"
    ::= { diffServMacAceEntry 43 }

diffServMacAceL4DestPortOp OBJECT-TYPE
    SYNTAX    INTEGER {
        noOperator(1),
        equal(2),
        range(3)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Indicates how a packet's L4 destination port is compared."
    ::= { diffServMacAceEntry 44 }

diffServMacAceL4DestPort OBJECT-TYPE
    SYNTAX      Integer32 (0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the object type of diffServMacAceL4DestPortOp is equal(2),
                 this indicates the l4 destination port value for comparing."
    ::= { diffServMacAceEntry 45 }

diffServMacAceL4DestPortBitmask OBJECT-TYPE
    SYNTAX      Integer32 (0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the object type of diffServMacAceL4SourcePortOp is equal(2),
                 this indicates the bitmask for diffServMacAceL4DestPort"
    ::= { diffServMacAceEntry 46 }

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

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

DiffServActionEntry ::= SEQUENCE
{
    diffServActionIndex                 Integer32,
    diffServActionList                  BITS,
    diffServActionPktNewPri             Integer32,
    diffServActionPktNewPhb             Integer32,
    diffServActionGreenPktTransmit      EnabledStatus,
    diffServActionGreenPktNewDscp       Integer32,
    diffServActionYellowPktNewDscp      Integer32,
    diffServActionYellowPktDrop         EnabledStatus,
    diffServActionRedPktNewDscp         Integer32,
    diffServActionRedPktDrop            EnabledStatus,
    diffServActionStatus                RowStatus,
    diffServActionPktNewIpPrec          Integer32,
    diffServActionPktNewDscp            Integer32
}

diffServActionIndex OBJECT-TYPE
        SYNTAX      Integer32(1..512)
        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),
                        reserved1(1),
                        actionGreenPktNewDscp(2),
                        actionGreenPktTransmit(3),
                        actionYellowPktNewDscp(4),
                        actionYellowPktDrop(5),
                        actionRedPktNewDscp(6),
                        actionRedPktDrop(7),
                        reserved8(8),
                        actionPktNewPhb(9),
                        actionPktNewIpPrec(10),
                        actionPktNewDscp(11)
                    }
        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..8)
        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 }

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

diffServActionGreenPktTransmit OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The actionGreenPktTransmit bit of the
                     diffServActionList is for configuring this
                     object. If the value of this object is enabled, the
                     green marked packet will be Transmitted."
        ::= { diffServActionEntry 5 }

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

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

diffServActionYellowPktDrop OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The actionYellowPktDrop bit of the
                     diffServActionList is for configuring this
                     object. If the value of this object is enabled, the
                     red marked packet will be dropped."
        ::= { diffServActionEntry 8 }

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

diffServActionRedPktDrop OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The actionRedPktDrop bit of the
                     diffServActionList is for configuring this
                     object. If the value of this object is enabled, the
                     red marked packet will be dropped."
        ::= { diffServActionEntry 10 }

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

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

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

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

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

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

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

diffServMeterModel OBJECT-TYPE
    SYNTAX    INTEGER {
            default(0),
            flow(1),
            trTcmColorBlind(2),
            trTcmColorAware(3),
            srTcmColorBlind(6),
            srTcmColorAware(7)
        }
    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 (0|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 (0|1..16000000)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum number of bytes in a single transmission burst."
    ::= { diffServMeterEntry 4 }

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 }

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

diffServMeterPeakBurstSize OBJECT-TYPE
    SYNTAX      Integer32 (0|1..16000000)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The maximum number of bytes in a double transmission burst."
    ::= { diffServMeterEntry 8 }

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

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

DiffServIpv6AceEntry ::= SEQUENCE
{
    diffServIpv6AceIndex                 Integer32,
    diffServIpv6AceType                  INTEGER,
    diffServIpv6AceAccess                INTEGER,
    diffServIpv6AceSourceIpAddr          OCTET STRING,
    diffServIpv6AceSourceIpAddrPrefixLen Integer32,
    diffServIpv6AceDestIpAddr            OCTET STRING,
    diffServIpv6AceDestIpAddrPrefixLen   Integer32,
    diffServIpv6AceDscp                  Integer32,
    diffServIpv6AceStatus                RowStatus,
    diffServIpv6AceSourcePortOp          INTEGER,
    diffServIpv6AceSourcePort            Integer32,
    diffServIpv6AceSourcePortBitmask     Integer32,
    diffServIpv6AceDestPortOp            INTEGER,
    diffServIpv6AceDestPort              Integer32,
    diffServIpv6AceDestPortBitmask       Integer32
}

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

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

diffServIpv6AceSourcePortOp OBJECT-TYPE
    SYNTAX  INTEGER {
        noOperator(1),
        equal(2)
    }
    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 that no comparison is to be made with the source
                 TCP/UDP port number. equal(2), which uses the
                 diffServIpv6AceSourcePort and diffServIpv6AceSourcePortBitmask
                 to match against. This object may not be modified if the
                 associated diffServIpv6AceType object is equal to standard(1)."
    ::= { diffServIpv6AceEntry 13 }

diffServIpv6AceSourcePort OBJECT-TYPE
    SYNTAX      Integer32(0..'FFFF'h)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "If the diffServIpv6AceSourcePortOp is equal(2), this
                 indicates the TCP/UDP port number value."
    ::= { diffServIpv6AceEntry 14 }

diffServIpv6AceSourcePortBitmask OBJECT-TYPE
    SYNTAX      Integer32(0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServIpv6AceSourcePortOp is equal(2), this indicates
                 the bitmask of the diffServIpv6AceSourcePort."
    ::= { diffServIpv6AceEntry 15 }

diffServIpv6AceDestPortOp OBJECT-TYPE
    SYNTAX  INTEGER {
        noOperator(1),
        equal(2)
    }
    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 uses the
                 diffServIpv6AceDestPort and diffServIpv6AceDestPortBitmask to
                 match against. This object may not be modified if the
                 associated diffServIpv6AceType object is equal to standard(1)."
    ::= { diffServIpv6AceEntry 16 }

diffServIpv6AceDestPort OBJECT-TYPE
    SYNTAX      Integer32(0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServIpv6AceDestPortOp is equal(2), this
                 indicates the TCP/UDP port number value."
    ::= { diffServIpv6AceEntry 17 }

diffServIpv6AceDestPortBitmask OBJECT-TYPE
    SYNTAX      Integer32(0..'FFFF'h)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "If the diffServIpv6AceDestPortOp is equal(2), this indicates
                 the bitmask of the diffServIpv6AceDestPort."
    ::= { diffServIpv6AceEntry 18 }

diffServArpAceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServArpAceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual table of all of diffServArpAceEntry."
        ::= { diffServMgt 23 }

diffServArpAceEntry OBJECT-TYPE
        SYNTAX      DiffServArpAceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for diffServArpAceTable."
        INDEX       { diffServArpAceIndex }
        ::= { diffServArpAceTable 1 }

DiffServArpAceEntry ::= SEQUENCE
{
    diffServArpAceIndex                     Integer32,
    diffServArpAceAction                    INTEGER,
    diffServArpAcePktType                   INTEGER,
    diffServArpAceSourceIpAddr              IpAddress,
    diffServArpAceSourceIpAddrBitmask       IpAddress,
    diffServArpAceDestIpAddr                IpAddress,
    diffServArpAceDestIpAddrBitmask         IpAddress,
    diffServArpAceSourceMacAddr             OCTET STRING,
    diffServArpAceSourceMacAddrBitmask      OCTET STRING,
    diffServArpAceDestMacAddr               OCTET STRING,
    diffServArpAceDestMacAddrBitmask        OCTET STRING,
    diffServArpAceLogStatus                 EnabledStatus,
    diffServArpAceStatus                    RowStatus
}

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

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

diffServArpAcePktType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        request(1),
                        response(2),
                        both(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates the packet type to be taken if a packet matches
                     this ACE. This object can not be configured when the
                     status of the entry, diffServArpAceStatus, is active(1)."
        ::= { diffServArpAceEntry 3 }

diffServArpAceSourceIpAddr OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified source ARP address. The packet's source
                     address is AND'ed with the value of
                     diffServArpAceSourceIpAddrBitmask and then compared
                     against the value of this object.
                     This object cannot be configured when the status of the
                     entry, diffServArpAceStatus, is active(1)."
        ::= { diffServArpAceEntry 4 }

diffServArpAceSourceIpAddrBitmask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified source ARP address mask. The packet's
                     destination address is AND'ed with the value of
                     diffServArpAceSourceIpAddr and then compared against the
                     value of this object."
        ::= { diffServArpAceEntry 5 }

diffServArpAceDestIpAddr 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
                     diffServArpAceDestIpAddrBitmask and then compared
                     against the value of this object."
        ::= { diffServArpAceEntry 6 }

diffServArpAceDestIpAddrBitmask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified destination IP address mask."
        ::= { diffServArpAceEntry 7 }

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

diffServArpAceSourceMacAddrBitmask OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (6))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified source MAC address mask.
                    This object cannot be configured when the status of the
                    entry, diffServArpAceStatus, is active(1)."
        ::= { diffServArpAceEntry 9 }

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

diffServArpAceDestMacAddrBitmask OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (6))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "The specified destination MAC address mask.
                     This object cannot be configured when the status of the
                     entry, diffServArpAceStatus, is active(1)."
        ::= { diffServArpAceEntry 11 }

diffServArpAceLogStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Indicates whether to log messages against the packets.
                     This object cannot be configured when the status of the
                     entry, diffServArpAceStatus, is active(1)."
        ::= { diffServArpAceEntry 12 }

diffServArpAceStatus 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."
        ::= { diffServArpAceEntry 13 }

diffServArpTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServArpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual table of all of diffServArpEntry."
        ::= { diffServMgt 24 }

diffServArpEntry OBJECT-TYPE
        SYNTAX      DiffServArpEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for diffServArpTable."
        INDEX       { diffServArpAclName }
        ::= { diffServArpTable 1 }

DiffServArpEntry ::= SEQUENCE
{
    diffServArpAclName      DisplayString
}

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

diffServTcamMgt     OBJECT IDENTIFIER ::= { diffServMgt 25 }

diffServTcamTotalPolicyControlEntries OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of policy control entries."
        ::= { diffServTcamMgt 1 }

diffServTcamFreePolicyControlEntries OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The free number of policy control entries."
        ::= { diffServTcamMgt 2 }

diffServTcamUtilization OBJECT-TYPE
        SYNTAX      Integer32(0..10000)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "TCAM utilization in hundredths of a percent."
        ::= { diffServTcamMgt 3 }

diffServTcamEntriesUsedBySystem OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The number of policy control entries used by system."
        ::= { diffServTcamMgt 4 }

diffServTcamEntriesUsedByUser OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The number of policy control entries used by user."
        ::= { diffServTcamMgt 5 }

diffServAclHwCounterTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServAclHwCounterEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for differentiated services hardware counter on
                     each port."
        ::= { diffServMgt 26 }

diffServAclHwCounterEntry OBJECT-TYPE
        SYNTAX      DiffServAclHwCounterEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for differentiated services hardware counter on
                     each port."
        INDEX       {
                        diffServAclHwCounterIfIndex,
                        diffServAclHwCounterDirection,
                        diffServAclHwCounterAclIndex,
                        diffServAclHwCounterAceIndex
                    }
        ::= { diffServAclHwCounterTable 1 }

DiffServAclHwCounterEntry ::= SEQUENCE
{
    diffServAclHwCounterIfIndex             InterfaceIndex,
    diffServAclHwCounterDirection           INTEGER,
    diffServAclHwCounterAclIndex            Integer32,
    diffServAclHwCounterAceIndex            Integer32,
    diffServAclHwCounterAceHitCount         Unsigned32
}

diffServAclHwCounterIfIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  read-only
        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."
        ::= { diffServAclHwCounterEntry 1 }

diffServAclHwCounterDirection OBJECT-TYPE
        SYNTAX  INTEGER {
                    ingress(1),
                    egress(2)
                }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates a particular direction of traffic."
        ::= { diffServAclHwCounterEntry 2 }

diffServAclHwCounterAclIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry in the ACL
                     table."
        ::= { diffServAclHwCounterEntry 3 }

diffServAclHwCounterAceIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry of an ACL.
                     This entry might be a compressed ACE (which index is
                     bigger than SYS_ADPT_MAX_NBRS_OF_ACE_OF_SYSTEM) with
                     multiple user configured ACEs, and the index of
                     compressed ACE will not show in ACE table."
        ::= { diffServAclHwCounterEntry 4 }

diffServAclHwCounterAceHitCount OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Specifies the hardware counter of an ACE entry."
        ::= { diffServAclHwCounterEntry 5 }

--
-- diffServPolicyMapPortTable
--
diffServPolicyMapPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServPolicyMapPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for policy map of each port."
        ::= { diffServMgt 27 }

diffServPolicyMapPortEntry OBJECT-TYPE
        SYNTAX      DiffServPolicyMapPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for diffServPolicyMapPortTable."
        INDEX       {
                        diffServPolicyMapPortIfIndex,
                        diffServPolicyMapPortDirection
                    }
        ::= { diffServPolicyMapPortTable 1 }

DiffServPolicyMapPortEntry ::= SEQUENCE
{
    diffServPolicyMapPortIfIndex             InterfaceIndex,
    diffServPolicyMapPortDirection           INTEGER,
    diffServPolicyMapPortPolicyMapIndex      Integer32,
    diffServPolicyMapPortStatus              RowStatus
}

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

diffServPolicyMapPortDirection OBJECT-TYPE
        SYNTAX  INTEGER {
                    ingress(1),
                    egress(2)
                }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Indicates this policy map effect to
                     which direction of traffic."
        ::= { diffServPolicyMapPortEntry 2 }


diffServPolicyMapPortPolicyMapIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the policy map index binded 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."
    ::= { diffServPolicyMapPortEntry 3 }

diffServPolicyMapPortStatus 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 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.
                 "
    ::= { diffServPolicyMapPortEntry 4 }

--
-- diffServAccessGroupTable
--
diffServAccessGroupTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DiffServAccessGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for specifies access group
                     for ACL on each port."
        ::= { diffServMgt 28 }

diffServAccessGroupEntry OBJECT-TYPE
        SYNTAX      DiffServAccessGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for diffServAccessGroupTable."
        INDEX       {
                        diffServAccessGroupIfIndex,
                        diffServAccessGroupDirection,
                        diffServAccessGroupType
                    }
        ::= { diffServAccessGroupTable 1 }

DiffServAccessGroupEntry ::= SEQUENCE
{
    diffServAccessGroupIfIndex            InterfaceIndex,
    diffServAccessGroupDirection          INTEGER,
    diffServAccessGroupType               INTEGER,
    diffServAccessGroupAclIndex           Integer32,
    diffServAccessGroupTimeRangeName      DisplayString,
    diffServAccessGroupCounterStatus      EnabledStatus,
    diffServAccessGroupStatus             RowStatus
}

diffServAccessGroupIfIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object is the interface index of diffServAccessGroupEntry.
                     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. If support global ACL,
                     using the specific ifindex(65535)."
        ::= { diffServAccessGroupEntry 1 }

diffServAccessGroupDirection OBJECT-TYPE
        SYNTAX  INTEGER {
                    ingress(1),
                    egress(2)
                }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Indicates this access group effect on
                     which direction of traffic."
        ::= { diffServAccessGroupEntry 2 }

diffServAccessGroupType OBJECT-TYPE
        SYNTAX      INTEGER {
                        mac(1),
                        ip(2),
                        ipv6(3)
                    }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Specifies the access group type,
                     only supports binding one ACL on a port."
        ::= { diffServAccessGroupEntry 3 }

diffServAccessGroupAclIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies the ACL index applied to this access
                     group. The index uniquely identifies an
                     entry in diffServAclTable."
        ::= { diffServAccessGroupEntry 4 }

diffServAccessGroupTimeRangeName OBJECT-TYPE
        SYNTAX       DisplayString (SIZE (1..32))
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION "The name of the time range entry bound to
                     the access group. This object should be
                     equal to one of the timeRangeName objects
                     in timeRangeTable."
        ::= { diffServAccessGroupEntry 5 }

diffServAccessGroupCounterStatus OBJECT-TYPE
        SYNTAX       EnabledStatus
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION "The acl counter enable status of this
                     access group."
        ::= { diffServAccessGroupEntry 6 }

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

--
-- securityMgt
--

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

privateVlanMgt      OBJECT IDENTIFIER ::= { securityMgt 1 }
portSecurityMgt     OBJECT IDENTIFIER ::= { securityMgt 2 }
radiusMgt           OBJECT IDENTIFIER ::= { securityMgt 4 }
tacacsMgt           OBJECT IDENTIFIER ::= { securityMgt 5 }
sshMgt              OBJECT IDENTIFIER ::= { securityMgt 6 }
aclMgt              OBJECT IDENTIFIER ::= { securityMgt 7 }
ipFilterMgt         OBJECT IDENTIFIER ::= { securityMgt 9 }
userAuthMgt         OBJECT IDENTIFIER ::= { securityMgt 10 }
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 }
dosMgt              OBJECT IDENTIFIER ::= { securityMgt 16 }
appFilterMgt        OBJECT IDENTIFIER ::= { securityMgt 17 }

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

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

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

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        InterfaceIndex,
     privateVlanPrivatePortSecondaryVlan  Integer32
}

privateVlanPrivatePortIfIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        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          InterfaceIndex,
    privateVlanPromPortPrimaryVlanId    Integer32,
    privateVlanPromPortSecondaryRemap   OCTET STRING,
    privateVlanPromPortSecondaryRemap2k OCTET STRING,
    privateVlanPromPortSecondaryRemap3k OCTET STRING,
    privateVlanPromPortSecondaryRemap4k OCTET STRING
}

privateVlanPromPortIfIndex OBJECT-TYPE
    SYNTAX       InterfaceIndex
    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                            INTEGER,
    privateVlanSessionUplinkPorts                   PortList,
    privateVlanSessionDownlinkPorts                 PortList,
    privateVlanSessionStatus                        ValidStatus
}

privateVlanSessionId              OBJECT-TYPE
    SYNTAX      INTEGER(1..4)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The session ID that may specifiy a 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      InterfaceIndex,
      portSecPortStatus     EnabledStatus,
      portSecAction         INTEGER,
      portSecMaxMacCount       Integer32
}

portSecPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        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 enable the portSecPortStatus when
                      the MAC has reached this value."
        ::= { portSecPortEntry 4 }

--
-- portSecMacAsPermanentMgt
--

portSecMacAsPermanentMgt           OBJECT IDENTIFIER ::= { portSecurityMgt 6 }

portSecMacAsPermanentPortIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        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. Specifies the interface to
                     convert the learnt secured MAC address into manual configured.
                     '0' represents that no interface is specified."

    ::= { portSecMacAsPermanentMgt 1 }

portSecMacAsPermanentAction OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noAction     (1),
                        action       (2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION  "Set action(2) to convert the learnt secured MAC address into
                      manual configured. When action finsh or no action, the value
                      of this object is noAction(1)."

    ::= { portSecMacAsPermanentMgt 2 }

--
-- 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 "Authentication port number for RADIUS server.
                     When specified radius server does not set
                     authentication 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 does 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 does not set
                     key, this this value is used."
        ::= { radiusMgt 3 }

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

radiusServerGlobalTimeout OBJECT-TYPE
        SYNTAX      INTEGER (1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Timeout for RADIUS.
                     When specified radius server does 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                  Integer32,
   radiusServerAddress                IpAddress,
   radiusServerAuthPortNumber         Integer32,
   radiusServerAcctPortNumber         Integer32,
   radiusServerKey                    DisplayString,
   radiusServerRetransmit             Integer32,
   radiusServerTimeout                Integer32,
   radiusServerStatus                 ValidStatus
}

radiusServerIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        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 does 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 does 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            Integer32,
   tacacsPlusServerAddress          IpAddress,
   tacacsPlusServerPortNumber       Integer32,
   tacacsPlusServerKey              DisplayString,
   tacacsPlusServerStatus           ValidStatus
}

tacacsPlusServerIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..1)
        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 }

--
-- sshMgt
--

-- Management for Secure Shell Configuration

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

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

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

sshTimeout OBJECT-TYPE
        SYNTAX      INTEGER(1..120)
        UNITS       "seconds"
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The time interval that the router waits for the SSH
                     client to respond. The range is 1-120."
        ::= { sshMgt 4 }

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

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

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

SshConnInfoEntry ::= SEQUENCE
{
--both sshv1 & sshv2 start
   sshConnID             Integer32,
   sshConnMajorVersion   Integer32,
   sshConnMinorVersion   Integer32,
   sshConnStatus         INTEGER,
--both sshv1 & sshv2 end
--both sshv1 & sshv2 start
   sshConnUserName       DisplayString,
   sshDisconnect         INTEGER,
--both sshv1 & sshv2 end
--sshv2 only start
   sshConnEncryptionTypeStr DisplayString
--sshv2 only end
}

--both sshv1 & sshv2 start
sshConnID OBJECT-TYPE
        SYNTAX      Integer32 (1..8)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The connection ID of the Secure Shell Connection."
        ::= { sshConnInfoEntry 1 }

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

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

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

--both sshv1 & sshv2 end


--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      INTEGER(512..896)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The SSH server key size."
        ::= { sshMgt 7 }


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sshHostKeyGenAction OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noGen(1),
                        genRsaKey(2),
                        genDsaKey(3),
                        genBothKeys(4)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This variable is for host key generating.

                    For the set behavior:
                    Set it to genRsaKey(2) to generate the RSA host key,
                    and to genDsaKey(3) to generate the DSA host key,
                    if genBothKeys(4) is set, both RSA and DSA host key are
                    generated.

                    For the get behavior:
                    You will get genRsaKey(2), genDsaKey(3) or
                    genBothKeys(4) when the key gen action is in progress.
                    otherwise, you will get noGen(1)."
        ::= { sshMgt 24 }

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

sshHostKeySaveAction OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noSave(1),
                        save(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To save host key from memory to flash.

                     For the set behavior:
                     Set it to save(2) to perform the save operation.

                     For the get behavior:
                     You will get save(1) when the save action is in progress.
                     Otherwise, you will get noSave(1)."
        ::= { sshMgt 26 }

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

sshHostKeyDelAction  OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        noDel(1),
                        delRsaKey(2),
                        delDsaKey(3),
                        delBothKeys(4)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To delete the host key.

                     For the set behavior:
                     Set it to delRsaKey(2) to delete the RSA host key,
                     to delDsaKey(3) to delete the DSA host key,
                     or to delBothKeys(4) to delete both RSA and DSA host key.

                     For the get behavior:
                     You will get delRsaKey(2), delDsaKey(3) or  delBothKeys(4)
                     when the delete operation is in progress.
                     Otherwise, you will get noDel(1)."
        ::= { sshMgt 28 }

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

sshUserEntry OBJECT-TYPE
        SYNTAX      SshUserEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The conceptual row for sshUserTable."
        INDEX       { IMPLIED sshUserName}
        ::= { sshUserTable 1 }

SshUserEntry ::= SEQUENCE
{
    sshUserName             DisplayString,
    sshUserRsaKey1          KeySegment,
    sshUserRsaKey2          KeySegment,
    sshUserRsaKey3          KeySegment,
    sshUserRsaKey4          KeySegment,
    sshUserRsaKey5          KeySegment,
    sshUserRsaKey6          KeySegment,
    sshUserRsaKey7          KeySegment,
    sshUserRsaKey8          KeySegment,
    sshUserDsaKey1          KeySegment,
    sshUserDsaKey2          KeySegment,
    sshUserDsaKey3          KeySegment,
    sshUserDsaKey4          KeySegment,
    sshUserDsaKey5          KeySegment,
    sshUserDsaKey6          KeySegment,
    sshUserDsaKey7          KeySegment,
    sshUserDsaKey8          KeySegment,
    sshUserKeyDelAction     INTEGER
}

sshUserName OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(1..32))
        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                  Integer32,
        aaaMethodName                   DisplayString,
        aaaMethodGroupName              DisplayString,
        aaaMethodMode                   INTEGER,
        aaaMethodStatus                 ValidStatus,
        aaaMethodClientType             INTEGER,
        aaaMethodPrivilegeLevel         INTEGER
}

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

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

aaaMethodGroupName OBJECT-TYPE
        SYNTAX       DisplayString(SIZE(1..64))
        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
                    {
                       start-stop(1)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "start-stop(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       INTEGER (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          Integer32,
        aaaRadiusGroupServerBitMap   OCTET STRING,
        aaaRadiusGroupName           DisplayString,
        aaaRadiusGroupStatus         ValidStatus
}

aaaRadiusGroupIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        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) points 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          Integer32,
        aaaTacacsPlusGroupServerBitMap   OCTET STRING,
        aaaTacacsPlusGroupName           DisplayString,
        aaaTacacsPlusGroupStatus         ValidStatus
}

aaaTacacsPlusGroupIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        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          InterfaceIndex,
        aaaAccountMethodName       DisplayString,
        aaaAccountProtocol         INTEGER,
        aaaAccountStatus           ValidStatus
}

aaaAccountIfIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        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      INTEGER
        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            INTEGER,
        aaaCommandPrivilegesInterfaceIndex   INTEGER,
        aaaCommandPrivilegesMethodName       DisplayString
}

aaaCommandPrivilegesLevel OBJECT-TYPE
        SYNTAX       INTEGER (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..64))
        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 }

--
--userAuthMgt
--

userAuthEnablePassword OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Set enable password or delete enable password. NULL is used to
                 delete the enable password. The password is starting with
                 alphanumeric."
    ::= { userAuthMgt 3 }

userAuthMethod OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    local(1),
                    localradius(2),
                    localradiustacacs(3),
                    localtacacs(4),
                    localtacacsradius(5),
                    radius(6),
                    radiuslocal(7),
                    radiuslocaltacacs(8),
                    radiustacacs(9),
                    radiustacacslocal(10),
                    tacacs(11),
                    tacacslocal(12),
                    tacacslocalradius(13),
                    tacacsradius(14),
                    tacacsradiuslocal(15)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Set user authencation method for system."
    ::= { userAuthMgt 4 }

userAuthTable OBJECT-TYPE
    SYNTAX SEQUENCE OF UserAuthEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table is for creating the new user."
    ::= { userAuthMgt 5 }

userAuthEntry OBJECT-TYPE
    SYNTAX UserAuthEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Entries in this table correspond to the users entries in system."
    INDEX { userAuthUserName }
    ::= { userAuthTable 1 }

UserAuthEntry ::=
    SEQUENCE {
        userAuthUserName
            DisplayString,
        userAuthPassword
            DisplayString,
        userAuthPrivilege
            Integer32,
        userAuthPublicKey
            DisplayString,
        userAuthStatus
            Integer32
    }

userAuthUserName OBJECT-TYPE
    SYNTAX DisplayString (SIZE (1..32))
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The name of the user. The user name is starting with alphanumeric."
    ::= { userAuthEntry 1 }

userAuthPassword OBJECT-TYPE
    SYNTAX DisplayString (SIZE (0..32))
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Specifies the user password. zero length input will set the user enrty
         without password. If the user does s not exist, it will create the user
         with the given password and privilege 0. The password starts
         with alphanumeric."
   ::= { userAuthEntry 2 }

userAuthPrivilege OBJECT-TYPE
    SYNTAX Integer32 (0..15)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Specifies the user level. If the user does not exist, it will create
         the user with the given privilege with no password. Privilege 15 is
         maximum privilege that only can be applied to system administrator."
    ::= { userAuthEntry 3 }

userAuthPublicKey OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "User public key, the value can be 'RSA' or 'DSA' or 'Both' or 'None'."
    ::= { userAuthEntry 4 }

userAuthStatus OBJECT-TYPE
    SYNTAX Integer32 (0..1)
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "This node is used to create the user entry by '1' and to delete one
         user entry by '0'."
    ::= { userAuthEntry 5 }

aclAttachCtlMgt  OBJECT IDENTIFIER   ::= { aclMgt 13 }

aclAttachCtlIndex 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 aclEntry as identified by the same value of
                 aclIndex."
    ::= { aclAttachCtlMgt 1 }

aclAttachCtlAceType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    noType(0),
                    macAce(1),
                    ipAce(2),
                    ipv6Ace(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Type for attachment control. Specifies the type of
                 aclAttachCtlAceIndex to relate with the aclAttachCtlIndex.
                 When the type is macAce(1), the index of aclAceIndexList
                 is the aclMacAceEntry. When the type is ipAce(2), the index
                 of aclAceIndexList is the aclIpAceEntry. When the type is
                 ipv6Ace(3), the index of aclAceIndexList is the
                 aclIpv6AceEntry."
    ::= { aclAttachCtlMgt 2 }

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

aclAttachCtlAction 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
                 aclAttachCtlAceType and aclAttachCtlAceIndex."
    ::= { aclAttachCtlMgt 4 }

--
-- ipFilterMgt
--

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

ipFilterSnmpInetEntry OBJECT-TYPE
    SYNTAX     IpFilterSnmpInetEntry
    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 { ipFilterSnmpInetAddressType,
            IMPLIED ipFilterSnmpInetAddressStart}
    ::= { ipFilterSnmpInetTable 1 }

IpFilterSnmpInetEntry ::= SEQUENCE {
    ipFilterSnmpInetAddressType         InetAddressType,
    ipFilterSnmpInetAddressStart        InetAddress,
    ipFilterSnmpInetAddressEnd          InetAddress,
    ipFilterSnmpInetStatus              ValidStatus
}

ipFilterSnmpInetAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The type of IP address filter.
                 Only supports IPv4 and IPv6 address types."
    ::= { ipFilterSnmpInetEntry 1 }

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

ipFilterSnmpInetAddressEnd OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The end IP address."
    ::= { ipFilterSnmpInetEntry 3 }

ipFilterSnmpInetStatus 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."
    ::= { ipFilterSnmpInetEntry 4 }

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

ipFilterHttpInetEntry OBJECT-TYPE
    SYNTAX     IpFilterHttpInetEntry
    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 { ipFilterHttpInetAddressType,
            IMPLIED ipFilterHttpInetAddressStart }
    ::= { ipFilterHttpInetTable 1 }

IpFilterHttpInetEntry ::= SEQUENCE {
    ipFilterHttpInetAddressType         InetAddressType,
    ipFilterHttpInetAddressStart        InetAddress,
    ipFilterHttpInetAddressEnd          InetAddress,
    ipFilterHttpInetStatus              ValidStatus
}

ipFilterHttpInetAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The type of IP address filter .
                 Only supports IPv4 and IPv6 address types."
    ::= { ipFilterHttpInetEntry 1 }

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

ipFilterHttpInetAddressEnd OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The end IP address."
    ::= { ipFilterHttpInetEntry 3 }

ipFilterHttpInetStatus 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."
    ::= { ipFilterHttpInetEntry 4 }

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

ipFilterTelnetInetEntry OBJECT-TYPE
    SYNTAX     IpFilterTelnetInetEntry
    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 { ipFilterTelnetInetAddressType,
            IMPLIED ipFilterTelnetInetAddressStart }
    ::= { ipFilterTelnetInetTable 1 }

IpFilterTelnetInetEntry ::= SEQUENCE {
    ipFilterTelnetInetAddressType         InetAddressType,
    ipFilterTelnetInetAddressStart        InetAddress,
    ipFilterTelnetInetAddressEnd          InetAddress,
    ipFilterTelnetInetStatus              ValidStatus
}

ipFilterTelnetInetAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The type of IP address filter .
                 Only supports IPv4 and IPv6 address types."
    ::= { ipFilterTelnetInetEntry 1 }

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

ipFilterTelnetInetAddressEnd OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The end IP address."
    ::= { ipFilterTelnetInetEntry 3 }

ipFilterTelnetInetStatus 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."
    ::= { ipFilterTelnetInetEntry 4 }

ipFilterAllClientCtl OBJECT IDENTIFIER ::= { ipFilterMgt 15 }

ipFilterAllClientCtlInetAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The type of IP address filter. Only supports IPv4 and IPv6
                 address types."
    ::= { ipFilterAllClientCtl 1 }

ipFilterAllClientCtlInetAddressStart OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The start IP address."
    ::= { ipFilterAllClientCtl 2 }

ipFilterAllClientCtlInetAddressEnd OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The end IP address."
    ::= { ipFilterAllClientCtl 3 }

ipFilterAllClientCtlAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    noAction(1),
                    create(2),
                    destroy(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Action for IP filter control. Set this object to create(2) to
                 create entries in the ipFilterSnmpInetTable,
                 ipFilterHttpInetTable and ipFilterTelnetInetTable. Set this
                 object to destroy(3) to destroy specified entries in the
                 ipFilterSnmpInetTable, ipFilterHttpInetTable and
                 ipFilterTelnetInetTable. When the action is finshed, whether
                 successfully or not, or no action is taken, the value of this
                 object is always noAction(1)."
    ::= { ipFilterAllClientCtl 4 }

--
-- 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
                     variable."
        DEFVAL      { 5 }
        ::= { dot1xAuthConfigExtEntry 2  }

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

dot1xEapolPassThrough OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "When this variable is enabled(1), EAPOL frames will
                     be forwarded to all ports where the Spanning Tree
                     status is forwarding. When this variable is
                     disabled(2), EAPOL frames will be discarded. EAPOL
                     Pass-Through operates when the global status of
                     802.1X is disabled."
        DEFVAL      { disabled }
        ::= { dot1xMgt 3 }

--
-- networkAccessPortTable
--

networkAccessPortTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF NetworkAccessPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A table containing 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              InterfaceIndex,
    networkAccessPortDynamicVlan            EnabledStatus,
    networkAccessPortMaxMacCount            INTEGER,
    networkAccessPortMode                   EnabledStatus,
    networkAccessPortMacFilter              INTEGER,
    networkAccessPortGuestVlan              INTEGER,
    networkAccessPortLinkDetectionStatus    EnabledStatus,
    networkAccessPortLinkDetectionMode      INTEGER,
    networkAccessPortLinkDetectionAciton    INTEGER,
    networkAccessPortDynamicQos             EnabledStatus
}

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

networkAccessPortDynamicVlan OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Set enabled(1) to enable dynamic VLAN assigment and
                 set disabled(2) to disable dynamic VLAN assigment."
    ::= { networkAccessPortEntry 2 }

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

networkAccessPortMode OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the secure port mode. enabled(1) means that Mac address
                 authentication is used and disabled(2) means that the authentication is disabled."
    ::= { networkAccessPortEntry 4 }

networkAccessPortMacFilter OBJECT-TYPE
    SYNTAX      INTEGER (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      INTEGER (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 an 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 specified 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                          InterfaceIndex,
    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      InterfaceIndex
    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                INTEGER,
    networkAccessMacFilterWithMaskMacAddress        MacAddress,
    networkAccessMacFilterWithMaskMacAddressMask    MacAddress,
    networkAccessMacFilterWithMaskStatus            INTEGER
}

networkAccessMacFilterWithMaskID OBJECT-TYPE
    SYNTAX      INTEGER (1..64)
    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              InterfaceIndex,
    macAuthPortMaxMacCount        INTEGER,
    macAuthPortIntrusionAction    INTEGER
}

macAuthPortIndex      OBJECT-TYPE
    SYNTAX      InterfaceIndex
    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      INTEGER (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
                {
                    block-traffic(1),
                    pass-traffic(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Responses to intrusion when the authentication is failed.
                 block-traffic(1) : denies network access to an unauthorized client;
                 pass-traffic(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      INTEGER (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      INTEGER (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      INTEGER (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      INTEGER
    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                     InterfaceIndex,
    webAuthPortConfigStatus                        INTEGER,
    webAuthPortConfigAuthenticatedHostCount        INTEGER
}

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

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

webAuthPortConfigAuthenticatedHostCount      OBJECT-TYPE
    SYNTAX      INTEGER
    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                  InterfaceIndex,
    webAuthPortInfoPortAuthSuccessIndex       INTEGER,
    webAuthPortInfoInetAddressType            InetAddressType,
    webAuthPortInfoInetAddress                InetAddress,
    webAuthPortInfoRemainingSessiontime       INTEGER,
    webAuthPortInfoStatus                     INTEGER
}

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

webAuthPortInfoPortAuthSuccessIndex      OBJECT-TYPE
    SYNTAX      INTEGER (1..8)
    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      INTEGER
    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 }

--
-- dosMgt
--

system          OBJECT IDENTIFIER ::= { dosMgt 1 }

dosEchoChargen OBJECT IDENTIFIER ::= { system 1 }

dosEchoChargenStatus OBJECT-TYPE
         SYNTAX      EnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The status of Echo/Chargen protection. Set this to
                      enabled(1) to enable the feature, and set this to
                      disabled(2) to disable the feature."
         ::= { dosEchoChargen 1 }

dosEchoChargenRateLimitInKilo OBJECT-TYPE
         SYNTAX      Integer32 (64..2000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "Value of the rate limit for Echo/Chargen packets. The unit
                      is kilobits per second."
         ::= { dosEchoChargen 2 }

dosSmurf OBJECT IDENTIFIER ::= { system 3 }

dosSmurfStatus OBJECT-TYPE
         SYNTAX      EnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The status of Smurf protection. Set this to enabled(1)
                      to enable the feature, and set this to disabled(2) to
                      disable the feature."
         ::= { dosSmurf 1 }

dosTcpFlooding OBJECT IDENTIFIER ::= { system 4 }

dosTcpFloodingStatus OBJECT-TYPE
         SYNTAX      EnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The status of TCP flooding protection. Set this to
                      enabled(1) to enable the feature, and set this to
                      disabled(2) to disable the feature."
         ::= { dosTcpFlooding 1 }

dosTcpFloodingRateLimitInKilo OBJECT-TYPE
         SYNTAX      Integer32 (64..2000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "Value of the rate limit for TCP flooding packets. The
                      unit is kilobits per second."
         ::= { dosTcpFlooding 2 }

dosTcpNullScan OBJECT IDENTIFIER ::= { system 5 }

dosTcpNullScanStatus OBJECT-TYPE
         SYNTAX      EnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The status of TCP Null-scan protection. Set this to
                      enabled(1) to enable the feature, and set this to
                      disabled(2) to disable the feature."
         ::= { dosTcpNullScan 1 }

dosTcpSynFinScan OBJECT IDENTIFIER ::= { system 6 }

dosTcpSynFinScanStatus OBJECT-TYPE
         SYNTAX      EnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The status of TCP SYN FIN scan protection. Set this to
                      enabled(1) to enable the feature, and set this to
                      disabled(2) to disable the feature."
         ::= { dosTcpSynFinScan 1 }

dosTcpXmasScan OBJECT IDENTIFIER ::= { system 7 }

dosTcpXmasScanStatus OBJECT-TYPE
         SYNTAX      EnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The status of TCP Xmas-scan protection. Set this to
                      enabled(1) to enable the feature, and set this to
                      disabled(2) to disable the feature."
         ::= { dosTcpXmasScan 1 }

dosUdpFlooding OBJECT IDENTIFIER ::= { system 8 }

dosUdpFloodingStatus OBJECT-TYPE
         SYNTAX      EnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The status of UDP flooding protection. Set this to
                      enabled(1) to enable the feature, and set this to
                      disabled(2) to disable the feature."
         ::= { dosUdpFlooding 1 }

dosUdpFloodingRateLimitInKilo OBJECT-TYPE
         SYNTAX      Integer32 (64..2000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "Value of the rate limit for UDP flooding packets. The
                      unit is kilobits per second."
         ::= { dosUdpFlooding 2 }

dosWinNuke OBJECT IDENTIFIER ::= { system 9 }

dosWinNukeStatus OBJECT-TYPE
         SYNTAX      EnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The status of WinNUKE protection. Set this to enabled(1)
                      to enable the feature, and set this to disabled(2) to
                      disable the feature."
         ::= { dosWinNuke 1 }

dosWinNukeRateLimitInKilo OBJECT-TYPE
         SYNTAX      Integer32 (64..2000)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "Value of the rate limit for WinNUKE packets. The unit is
                      kilobits per second."
         ::= { dosWinNuke 2 }

dosTcpUdpPortZero OBJECT IDENTIFIER ::= { system 11 }

dosTcpUdpPortZeroStatus OBJECT-TYPE
         SYNTAX      EnabledStatus
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION "The status of checking for TCP/UDP packets with port 0.
                      Set this to enabled(1) to enable the feature, and
                      set this to disabled(2) to disable the feature."
         ::= { dosTcpUdpPortZero 1 }

--
-- appFilterMgt
--
-- Management for application filter to control specific packet transmitted
-- status

appFilterPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AppFilterPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The application filter Table."
        ::= { appFilterMgt 1 }

appFilterPortEntry OBJECT-TYPE
        SYNTAX      AppFilterPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The entry of appFilterPortTable."
        INDEX       {appFilterPortIndex, appFilterProtocolType}
        ::= { appFilterPortTable 1 }

AppFilterPortEntry ::= SEQUENCE
{
      appFilterPortIndex        InterfaceIndex,
      appFilterProtocolType     INTEGER,
      appFilterPktStatus        INTEGER
}

appFilterPortIndex 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."
        ::= { appFilterPortEntry 1 }

appFilterProtocolType OBJECT-TYPE
        SYNTAX        INTEGER
                      {
                        cdp(1),
                        pvst(2)
                      }
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION  "The protocol type defines some specific packets which are
                      supported on this function"
        ::= { appFilterPortEntry 2  }

appFilterPktStatus  OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                      default(0),
                      discard(1)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set discard(1) to discard packet and set default(0) to
                     transmit packet in default behavior."
        ::= { appFilterPortEntry 3  }

--
-- layer3Mgt
--

-- Management for layer 3 settings and protocols.

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

-- arpMgt

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

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

arpTrafficStatistics OBJECT IDENTIFIER ::= { arpMgt 3 }

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

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

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

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

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

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

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

arpProxyArpIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is defined as a VLAN interface.
         A routing interface is a VLAN that binds an IP subnet."
    ::= { arpProxyArpEntry 1 }

arpProxyArpStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable or disable proxy ARP process on an interface."
    DEFVAL { disabled }
    ::= { arpProxyArpEntry 2 }

-- ripMgt


ripBasicTimers OBJECT IDENTIFIER ::= { ripMgt 1 }

ripUpdateBasicTimer OBJECT-TYPE
    SYNTAX      Integer32 (5..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The update time in seconds controls the advertising of regular update
         messages. In the real implementation, the actual timer is this value
         offset by a random time (+/-50%) each time it is set."
    DEFVAL { 30 }
    ::= { ripBasicTimers 1 }

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

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

ripRoutingProcessStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable or disable RIP routing process on a system."
    DEFVAL { disabled }
    ::= { ripMgt 2 }

ripGlobalRouterVersion OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    rip1(1),
                    rip2(2),
                    byInterface(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "To specify a RIP version used globally by the router. If interface
         version is configurated, router will use the interface configuration;
         and if version is not configurated on interface, router will use this
         global version; and if both interface and global are not configurated,
         router will use interface's default configuration."
    DEFVAL { byInterface }
    ::= { ripMgt 3 }

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

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

RipInstabilityPreventingEntry ::= SEQUENCE
{
    ripIfindex                          InterfaceIndex,
    ripSplitHorizonStatus               INTEGER
}


ripIfindex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is defined as a VLAN interface.
         A routing interface is a VLAN and an IP subnet bound to it."
    ::= { ripInstabilityPreventingEntry 1 }

ripSplitHorizonStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    splitHorizon(1),
                    poisonReverse(2),
                    none(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable or disable RIP poison reverse on an interface."
    ::= { ripInstabilityPreventingEntry 2 }


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

ripNetwork OBJECT IDENTIFIER ::= { ripMgt 6 }

ripNetworkByInetAddrTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RipNetworkByInetAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP network address table."
    ::= { ripNetwork 1 }

ripNetworkByInetAddrEntry OBJECT-TYPE
    SYNTAX      RipNetworkByInetAddrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row of the ripNetworkByInetAddrTable."
    INDEX
    {
         ripNetworkByInetAddrAddressType,
         ripNetworkByInetAddrAddress,
         ripNetworkByInetAddrPfxLen
    }
        ::= { ripNetworkByInetAddrTable 1 }

RipNetworkByInetAddrEntry ::= SEQUENCE
{
    ripNetworkByInetAddrAddressType       InetAddressType,
    ripNetworkByInetAddrAddress           InetAddress,
    ripNetworkByInetAddrPfxLen            InetAddressPrefixLength,
    ripNetworkByInetAddrStatus            ValidStatus
}

ripNetworkByInetAddrAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP Network address type."
    ::= { ripNetworkByInetAddrEntry 1 }

ripNetworkByInetAddrAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP Network address."
    ::= { ripNetworkByInetAddrEntry 2 }

ripNetworkByInetAddrPfxLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Network prefix length."
    ::= { ripNetworkByInetAddrEntry 3 }

ripNetworkByInetAddrStatus OBJECT-TYPE
    SYNTAX      ValidStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Set this variable to create or destroy a RIP network address."
    ::= { ripNetworkByInetAddrEntry 4 }

ripNetworkByIfindexTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RipNetworkByIfindexEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIp network ifindex table."
    ::= { ripNetwork 2 }

ripNetworkByIfindexEntry OBJECT-TYPE
    SYNTAX      RipNetworkByIfindexEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row of the ripNetworkByIfindexTable."
    INDEX
    {
         ripNetworkIfindex
    }
        ::= { ripNetworkByIfindexTable 1 }

RipNetworkByIfindexEntry ::= SEQUENCE
{
    ripNetworkIfindex                    InterfaceIndex,
    ripNetworkByIfindexStatus            ValidStatus
}

ripNetworkIfindex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is defined as a layer3 interface."
    ::= { ripNetworkByIfindexEntry 1 }


ripNetworkByIfindexStatus OBJECT-TYPE
    SYNTAX      ValidStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Set this variable to create or destroy a RIP network ifindex table."
    ::= { ripNetworkByIfindexEntry 2 }

ripDistributeListTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RipDistributeListEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP distribute list table. It's used to filter incoming or
         outgoing route updates using the access-list or prefix-list."
    ::= { ripMgt 7 }

ripDistributeListEntry OBJECT-TYPE
    SYNTAX      RipDistributeListEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row of the ripDistributelistTable."
    INDEX
    {
        ripDistributeListInterfaceIndex,
        ripDistributeListType
    }
    ::= { ripDistributeListTable 1 }

RipDistributeListEntry ::= SEQUENCE
{
    ripDistributeListInterfaceIndex             InterfaceIndex,
    ripDistributeListType                       INTEGER,
    ripDistributeListIncomingRouteFilterName    DisplayString,
    ripDistributeListOutgoingRouteFilterName    DisplayString,
    ripDistributeListStatus                     ValidStatus
}

ripDistributeListInterfaceIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index of the interface on which distribute-list is applied, If
         index is 0, the filter will be applied to all the interfaces."
    ::= { ripDistributeListEntry 1 }

ripDistributeListType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    access-list(1),
                    prefix-list(2)
                }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Type of distribute-list applied: access-list or prefix-list."
    ::= { ripDistributeListEntry 2 }

ripDistributeListIncomingRouteFilterName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..15))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Specifies access-list or prefix-list name to filter incoming routing
         updates."
    ::= { ripDistributeListEntry 3}

ripDistributeListOutgoingRouteFilterName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE (1..15))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Specifies access-list or prefix-list name to filter outgoing routing
         updates."
    ::= { ripDistributeListEntry 4}

ripDistributeListStatus OBJECT-TYPE
    SYNTAX      ValidStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Set this variable to create or destroy a distribute list."
    ::= { ripDistributeListEntry 5 }

ripRedistributeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RipRedistributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP Redistribute table. Config rip redistribute type, metric."
    ::= { ripMgt 8 }

ripRedistributeEntry OBJECT-TYPE
    SYNTAX      RipRedistributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row of the ripRedistributeTable."
    INDEX
    {
         ripRedistributeProtocol
    }
    ::= { ripRedistributeTable 1 }

RipRedistributeEntry ::= SEQUENCE
{
    ripRedistributeProtocol      INTEGER,
    ripRedistributeMetric        Integer32,
    ripRedistributeStatus        ValidStatus
}

ripRedistributeProtocol OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    connected(1),
                    static(2),
                    ospf(3)
                }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Protocol redistributed to Intermediate System:
         connected -- redistribute from connected routes;
         static -- redistribute from static routes;
         ospf -- redistribute from Open Shortest Path First (OSPF)."
    ::= { ripRedistributeEntry 1 }

ripRedistributeMetric OBJECT-TYPE
    SYNTAX      Integer32(0..16)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Metric value to be used in redistributing."
    DEFVAL { 1 }
    ::= { ripRedistributeEntry 2 }

ripRedistributeStatus OBJECT-TYPE
    SYNTAX      ValidStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Set this variable to create or destroy redistribute information."
    ::= { ripRedistributeEntry 3 }

ripDefaultMetric OBJECT-TYPE
    SYNTAX      Integer32 (1..16)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A metric for redistributed routes."
    DEFVAL { 1 }
    ::= { ripMgt 9 }


ripNeighborTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RipNeighborEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP neighbor table."
    ::= { ripMgt 10 }

ripNeighborEntry OBJECT-TYPE
    SYNTAX      RipNeighborEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row of the ripNeighborTable."
    INDEX
    {
         ripNeighborAddressType,
         ripNeighborAddress
    }
    ::= { ripNeighborTable 1 }

RipNeighborEntry ::= SEQUENCE
{
    ripNeighborAddressType       InetAddressType,
    ripNeighborAddress           InetAddress,
    ripNeighborAddressStatus     ValidStatus
}

ripNeighborAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP Neighbor address type."
    ::= { ripNeighborEntry 1 }

ripNeighborAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP Neighbor address."
    ::= { ripNeighborEntry 2 }

ripNeighborAddressStatus OBJECT-TYPE
    SYNTAX      ValidStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Set this variable to create or destroy a RIP neighbor address."
    ::= { ripNeighborEntry 3 }

ripPassiveInterfaceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RipPassiveInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of RIP passive interface status."
    ::= { ripMgt 11 }

ripPassiveInterfaceEntry OBJECT-TYPE
    SYNTAX      RipPassiveInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the table, containing information about RIP passive
         interface(s) configuration. The index is a VLAN's ifIndex."
    INDEX
    {
         ripInterfaceIndex
    }
    ::= { ripPassiveInterfaceTable 1 }

RipPassiveInterfaceEntry ::= SEQUENCE
{
    ripInterfaceIndex            InterfaceIndex,
    ripPassiveInterfaceStatus    ValidStatus
}

ripInterfaceIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is defined as a VLAN interface.
         A passive VLAN interface will suppress route updates on it."
    ::= { ripPassiveInterfaceEntry 1 }

ripPassiveInterfaceStatus OBJECT-TYPE
    SYNTAX      ValidStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Set this variable to create or destroy a RIP passive interface."
    ::= { ripPassiveInterfaceEntry 2 }

ripMaxPrefix OBJECT-TYPE
    SYNTAX      Integer32 (1..10240)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Max number of RIP dynamic routes."
    DEFVAL { 10240 }
    ::= { ripMgt 12 }

ripRouteClear OBJECT IDENTIFIER ::= { ripMgt 13 }

ripRouteClearByType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    noClear(1),
                    all(2),
                    connected(3),
                    ospf(4),
                    rip(5),
                    static(6)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Write this object value 2-6 to clear rip route by type, when read, this
         always return noClear(1)."
    DEFVAL { 1 }
    ::= { ripRouteClear 1 }

ripRouteClearByNetworkTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RipRouteClearByNetworkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Clear rip route by network address."
    ::= { ripRouteClear 2 }

ripRouteClearByNetworkEntry OBJECT-TYPE
    SYNTAX      RipRouteClearByNetworkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Clear rip route by network address."
    INDEX
    {
         ripRouteClearByNetworkInetAddrType,
         ripRouteClearByNetworkInetAddr,
         ripRouteClearByNetworkPfxLen
    }
    ::= { ripRouteClearByNetworkTable 1 }

RipRouteClearByNetworkEntry ::= SEQUENCE
{
    ripRouteClearByNetworkInetAddrType       InetAddressType,
    ripRouteClearByNetworkInetAddr           InetAddress,
    ripRouteClearByNetworkPfxLen             InetAddressPrefixLength,
    ripRouteClearByNetworkClearAction        INTEGER
}

ripRouteClearByNetworkInetAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP route network address type."
    ::= { ripRouteClearByNetworkEntry 1 }

ripRouteClearByNetworkInetAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP route network address.Write this object to clear rip route by
         network address."
    ::= { ripRouteClearByNetworkEntry 2 }

ripRouteClearByNetworkPfxLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP route network prefix length."
    ::= { ripRouteClearByNetworkEntry 3 }

ripRouteClearByNetworkClearAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    noClear(1),
                    clear(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Write this object value 2(clear) to clear rip route by spicified network
         address, when read, this always return noClear(1)."
    ::= { ripRouteClearByNetworkEntry 4 }

ripDefaultInformationOriginate OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    noOriginate(1),
                    originate(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Write this object value 2(originate) to originate default information,
         write this object value 1(noOriginate) to not originate default
         information."
    DEFVAL { 1 }
    ::= { ripMgt 14 }

ripDistance OBJECT IDENTIFIER ::= { ripMgt 15 }

ripDefaultDistance OBJECT-TYPE
    SYNTAX      Integer32 (1..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Default distance value."
    DEFVAL { 120 }
    ::= { ripDistance 1 }

ripDistanceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RipDistanceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Rip distance table"
    ::= { ripDistance 2 }

ripDistanceEntry OBJECT-TYPE
    SYNTAX      RipDistanceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Rip distance entry"
    INDEX
    {
         ripDistanceInetAddrType,
         ripDistanceInetAddr,
         ripDistancePfxLen
    }
    ::= { ripDistanceTable 1 }

RipDistanceEntry ::= SEQUENCE
{
    ripDistanceInetAddrType       InetAddressType,
    ripDistanceInetAddr           InetAddress,
    ripDistancePfxLen             InetAddressPrefixLength,
    ripDistanceValue              Integer32,
    ripDistanceAlistName          DisplayString,
    ripDistanceRowStatus          RowStatus
}

ripDistanceInetAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP distace table network address type."
    ::= { ripDistanceEntry 1 }

ripDistanceInetAddr OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP distance table network address."
    ::= { ripDistanceEntry 2 }

ripDistancePfxLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RIP distance table network prefix length."
    ::= { ripDistanceEntry 3 }

ripDistanceValue OBJECT-TYPE
    SYNTAX      Integer32 (1..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The RIP distance table distance value."
    ::= { ripDistanceEntry 4 }

ripDistanceAlistName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..15))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The RIP distance table access list name. If delete the
         access list name ,set null string"
    ::= { ripDistanceEntry 5 }

ripDistanceRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the status of this entry."
    ::= { ripDistanceEntry 6 }
-- ospfMgt


ospfMultiProcessSystemTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OspfMultiProcessSystemEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptually table for ospfMultiProcessSystemEntry."
    ::= { ospfMgt 8 }

ospfMultiProcessSystemEntry OBJECT-TYPE
    SYNTAX      OspfMultiProcessSystemEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptually row for ospfMultiProcessSystemTable."
    INDEX
    {
        ospfMultiProcessProcessId
    }
    ::= { ospfMultiProcessSystemTable 1 }

OspfMultiProcessSystemEntry ::= SEQUENCE
{
    ospfMultiProcessProcessId                         Integer32,
    ospfMultiProcessRouterIdType                      INTEGER,
    ospfMultiProcessRfc1583CompatibleState            EnabledStatus,
    ospfMultiProcessAutoCost                          Integer32,
    ospfMultiProcessOriginateDefaultRoute             EnabledStatus,
    ospfMultiProcessAdvertiseDefaultRoute             INTEGER,
    ospfMultiProcessExternalMetricType                INTEGER,
    ospfMultiProcessDefaultExternalMetric             Integer32,
    ospfMultiProcessSpfHoldTime                       Integer32,
    ospfMultiProcessAreaNumber                        Integer32,
    ospfMultiProcessAreaLimit                         Gauge32,
    ospfMultiProcessSystemStatus                      RowStatus,
    ospfMultiProcessRouterId                          RouterID,
    ospfMultiProcessAdminStat                         Status,
    ospfMultiProcessVersionNumber                     INTEGER,
    ospfMultiProcessAreaBdrRtrStatus                  TruthValue,
    ospfMultiProcessASBdrRtrStatus                    TruthValue,
    ospfMultiProcessExternLsaCount                    Gauge32,
    ospfMultiProcessExternLsaCksumSum                 Integer32,
    ospfMultiProcessOriginateNewLsas                  Counter32,
    ospfMultiProcessRxNewLsas                         Counter32,
    ospfMultiProcessAsLsaCount                        Integer32,
    ospfMultiProcessSpfDelayTime                      Integer32,
    ospfMultiProcessDefaultMetric                     Integer32
}

ospfMultiProcessProcessId OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Process ID of an OSPF instance.
         You can create an OSPF instance from 0 to 65535 with its id.
         0 is reserved for default process."
    DEFVAL { 0 }
    ::= { ospfMultiProcessSystemEntry 1 }

ospfMultiProcessRouterIdType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    auto(1),
                    manual(2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Set router ID automatically or manually."
    DEFVAL { auto }
    ::= { ospfMultiProcessSystemEntry 2 }

ospfMultiProcessRfc1583CompatibleState OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable or disable rfc1583 compatibility."
    DEFVAL { disabled }
    ::= { ospfMultiProcessSystemEntry 3 }

ospfMultiProcessAutoCost OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Set the reference bandwidth of auto cost, the unit is Mbps."
    DEFVAL { 100 }
    ::= { ospfMultiProcessSystemEntry 4 }

ospfMultiProcessOriginateDefaultRoute OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable or disable ASBR to generate a default external route into an
         OSPF domain if the default route already exists."
    DEFVAL { disabled }
    ::= { ospfMultiProcessSystemEntry 5 }

ospfMultiProcessAdvertiseDefaultRoute OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    always(1),
                    notAlways(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If 'always', always advertises default route regardless of whether
         the default route exists.
         Note that any operation on it will not take effect unless
         ospfMultiProcessOriginateDefaultRoute has first been enabled."
    DEFVAL { notAlways }
    ::= { ospfMultiProcessSystemEntry 6 }

ospfMultiProcessExternalMetricType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    type1(1),
                    type2(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "External link type associated with the default route advertised into
         the OSPF routing domain.
         Note that any operation on it will not take effect unless
         ospfMultiProcessOriginateDefaultRoute has first been enabled."
    DEFVAL { type2 }
    ::= { ospfMultiProcessSystemEntry 7 }

ospfMultiProcessDefaultExternalMetric OBJECT-TYPE
    SYNTAX      Integer32 (-1..16777214)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Metric used for generating the default route.
         Note that any operation on it will not take effect unless
         ospfMultiProcessOriginateDefaultRoute has first been enabled;
         '-1' is only for 'unset', that will destroy this metric value."
    ::= { ospfMultiProcessSystemEntry 8 }

ospfMultiProcessSpfHoldTime OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Sets the hold time between two consecutive SPF calculations."
    DEFVAL { 10 }
    ::= { ospfMultiProcessSystemEntry 9 }

ospfMultiProcessAreaNumber OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Records the OSPF area numbers."
    DEFVAL { 0 }
    ::= { ospfMultiProcessSystemEntry 10 }

ospfMultiProcessAreaLimit OBJECT-TYPE
    SYNTAX      Gauge32(1..4294967294)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Max number of ospf area."
    DEFVAL { 4294967294 }
    ::= { ospfMultiProcessSystemEntry 11 }

ospfMultiProcessSystemStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this conceptual row entry. This object is used to manage
         the creation and deletion of conceptual rows.
         Currently only support 4 status:
         1. active    2. notInService    4. createAndGo    6. destroy
         ('active' and 'notInservice' status are used for getting action,
         'createAndGo' and 'destroy' status are used for setting action.)
         - 'active', which indicates that the current OSPF instance exists in
         - the system.
         - 'notInService', if not exist in the system.
         - 'createAndGo', set this status to create an OSPF instance.
         - 'destroy', to delete an OSPF instance."
    ::= { ospfMultiProcessSystemEntry 17 }

ospfMultiProcessRouterId OBJECT-TYPE
    SYNTAX       RouterID
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "A 32-bit integer uniquely identifying the router in the Autonomous
         System.
         By convention, to ensure uniqueness, this should default to the
         value of one of the router's IP interface addresses.

         This object is persistent and when written the entity SHOULD save
         the change to non-volatile storage.
         This is a private substitution for ospfRouterId of RFC1253."

    ::= { ospfMultiProcessSystemEntry 18 }

ospfMultiProcessAdminStat OBJECT-TYPE
    SYNTAX       Status
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The administrative status of OSPF in the router. The value 'enabled'
         denotes that the OSPF Process is active on at least one interface;
         'disabled' disables it on all interfaces.

         This is a private substitution for ospfAdminStat of RFC1253."
    ::= { ospfMultiProcessSystemEntry 19 }

ospfMultiProcessVersionNumber OBJECT-TYPE
    SYNTAX       INTEGER { version2 (2) }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The current version number of the OSPF protocol is 2.
         This is a private substitution for ospfVersionNumber of RFC1253."
    ::= { ospfMultiProcessSystemEntry 20 }

ospfMultiProcessAreaBdrRtrStatus OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "A flag to note whether this router is an Area Border Router.
         This is a private substitution for ospfAreaBdrRtrStatus of RFC1253."
    ::= { ospfMultiProcessSystemEntry 21 }

ospfMultiProcessASBdrRtrStatus OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "A flag to note whether this router is configured as an Autonomous
         System Border Router.

         This is a private substitution for ospfAreaBdrRtrStatus of RFC1253."
    ::= { ospfMultiProcessSystemEntry 22 }

ospfMultiProcessExternLsaCount OBJECT-TYPE
    SYNTAX       Gauge32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of external (LS type-5) link state advertisements in the
         link state database.

         This is a private substitution for ospfExternLsaCount of RFC1253."
    ::= { ospfMultiProcessSystemEntry 23 }

ospfMultiProcessExternLsaCksumSum OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The 32-bit sum of the LS checksums of the external link state
         advertisements contained in the link state database.  This sum
         can be used to determine if there has been a change in a router's
         link state database and to compare the link state database of two
         routers.  The value should be treated as unsigned when comparing
         two sums of checksums.
         This is a private substitution for ospfExternLsaCksumSum of RFC1253."
    ::= { ospfMultiProcessSystemEntry 24 }

ospfMultiProcessOriginateNewLsas OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of new link state advertisements that have been originated.
         This number is incremented each time the router originates a new LSA.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system.
         This is a private substitution for ospfOriginateNewLsas of RFC1253."
    ::= { ospfMultiProcessSystemEntry 25 }

ospfMultiProcessRxNewLsas OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of link state advertisements received that are determined
         to be new instantiations. This number does not include newer
         instantiations of self-originated link state advertisements.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system.
         This is a private substitution for ospfRxNewLsas of RFC1253."
   ::= { ospfMultiProcessSystemEntry 26 }

ospfMultiProcessAsLsaCount OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of AS-scope link state advertisements in the AS-scope link
         state database.
         This is a private substitution for ospfAsLsaCount of RFC4750."
    ::= { ospfMultiProcessSystemEntry 30 }

ospfMultiProcessSpfDelayTime OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Sets the delay between receiving a change to SPF calculation."
    DEFVAL { 5 }
    ::= { ospfMultiProcessSystemEntry 31 }

ospfMultiProcessDefaultMetric OBJECT-TYPE
    SYNTAX       Integer32 (-1..16777214)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The default metric for all redistributed routes. If the value is -1,
        then there is no default metric."
    ::= { ospfMultiProcessSystemEntry 33 }

ospfMultiProcessNssaTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OspfMultiProcessNssaEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual table for ospfNssaEntry."
    ::= { ospfMgt 9 }

ospfMultiProcessNssaEntry OBJECT-TYPE
    SYNTAX      OspfMultiProcessNssaEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row for ospfNssaTable."
    INDEX
    {
        ospfMultiProcessProcessId,
        ospfMultiProcessNssaAreaId
    }
    ::= { ospfMultiProcessNssaTable 1 }

OspfMultiProcessNssaEntry ::= SEQUENCE
{
    ospfMultiProcessNssaAreaId                     Unsigned32,
    ospfMultiProcessNssaTranslatorRole             INTEGER,
    ospfMultiProcessNssaRedistributeStatus         EnabledStatus,
    ospfMultiProcessNssaOriginateDefaultInfoStatus EnabledStatus,
    ospfMultiProcessNssaMetricType                 INTEGER,
    ospfMultiProcessNssaMetric                     Integer32,
    ospfMultiProcessNssaStatus                     RowStatus,
    ospfMultiProcessNssaTranslatorState            INTEGER
}

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

ospfMultiProcessNssaTranslatorRole OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    never(1),
                    always(2),
                    candidate(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specify NSSA-ABR translator-role.
         Candidate: Router may translate NSSA-LSA to Type-5 LSA if it is
         elected.
         Never: Router never translate NSSA-LSA.
         Always: Router always translate NSSA-LSA to Type-5 LSA."
    ::= { ospfMultiProcessNssaEntry 2 }

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

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


ospfMultiProcessNssaMetricType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    type1(1),
                    type2(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specify NSSA external metric type."
    DEFVAL { type2 }
    ::= { ospfMultiProcessNssaEntry 5 }

ospfMultiProcessNssaMetric OBJECT-TYPE
    SYNTAX      Integer32(0..16777214)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specify NSSA external metric value."
    DEFVAL { 1 }
    ::= { ospfMultiProcessNssaEntry 6 }

ospfMultiProcessNssaStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this conceptual row entry. This object is used to manage
         the creation and deletion of conceptual rows.
         Currently only support 4 status:
         1. active    2. notInService    4. createAndGo    6. destroy
         ('active' and 'notInservice' status are used for getting action,
         'createAndGo' and 'destroy' status are used for setting action.)
         - 'active',which indicates that the current NSSA exists in the system.
         - 'notInService', if not exist in the system.
         - 'createAndGo', set this status to create a NSSA instance.
         - 'destroy', to delete a NSSA instance."
    ::= { ospfMultiProcessNssaEntry 7 }

ospfMultiProcessNssaTranslatorState OBJECT-TYPE
    SYNTAX       INTEGER
                 {  enabled (1),
                    elected (2),
                    disabled (3)
                 }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "Indicates if and how an NSSA border router is performing NSSA
         translation of type-7 LSAs into type-5 LSAs.  When this object is set
         to enabled, the NSSA Border router's OspfAreaNssaExtTranslatorRole has
         been set to always.  When this object is set to elected, a candidate
         NSSA Border router is Translating type-7 LSAs into type-5.When this
         object is set to disabled, a candidate NSSA border router is NOT
         translating type-7 LSAs into type-5."
    ::= { ospfMultiProcessNssaEntry 8 }

ospfMultiProcessRedistributeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OspfMultiProcessRedistributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The conceptual table of all of ospfRedistributeEntry."
    ::= { ospfMgt 10 }

ospfMultiProcessRedistributeEntry OBJECT-TYPE
    SYNTAX      OspfMultiProcessRedistributeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The conceptual row for ospfRedistributeTable."
    INDEX
    {
         ospfMultiProcessProcessId,
         ospfMultiProcessRedistributeProtocol
    }
    ::= { ospfMultiProcessRedistributeTable 1 }

OspfMultiProcessRedistributeEntry ::= SEQUENCE
{
     ospfMultiProcessRedistributeProtocol           INTEGER,
     ospfMultiProcessRedistributeMetricType         INTEGER,
     ospfMultiProcessRedistributeMetric             BigMetric,
     ospfMultiProcessRedistributeTag                Gauge32,
     ospfMultiProcessRedistributeFilterListName     DisplayString,
     ospfMultiProcessRedistributeStatus             RowStatus,
     ospfMultiProcessRedistributeRoutemapName       DisplayString
}

ospfMultiProcessRedistributeProtocol OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    rip(1),
                    static(2),
                    connected(3)
                }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Protocol ID, type of the redistribute."
    ::= { ospfMultiProcessRedistributeEntry 1 }

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

ospfMultiProcessRedistributeMetric OBJECT-TYPE
    SYNTAX      BigMetric
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Metric value."
    ::= { ospfMultiProcessRedistributeEntry 3 }


ospfMultiProcessRedistributeTag OBJECT-TYPE
    SYNTAX      Gauge32(0..4294967295)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The external route tag. "
    ::= { ospfMultiProcessRedistributeEntry 4 }

ospfMultiProcessRedistributeFilterListName OBJECT-TYPE
    SYNTAX       DisplayString
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "List name of access filter which is used in other routing protocols."
    ::= { ospfMultiProcessRedistributeEntry 5 }

ospfMultiProcessRedistributeStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this conceptual row entry. This object is used to manage
         the creation and deletion of conceptual rows.
         Currently only support 4 status:
         1. active    2. notInService    4. createAndGo    6. destroy
         ('active' and 'notInservice' status are used for getting action,
         'createAndGo' and 'destroy' status are used for setting action.)
         - 'active', which indicates that the current type of redistribute
         - exists in the system.
         - 'notInService', if not exist in the system.
         - 'createAndGo', set this status to create a type of redistribute
         - instance.
         - 'destroy', to delete a type of redistribute instance."
    ::= { ospfMultiProcessRedistributeEntry 6 }

ospfMultiProcessRedistributeRoutemapName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..15))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Name of the route map. "
    ::= { ospfMultiProcessRedistributeEntry 7 }


ospfMultiProcessSummaryAddressTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OspfMultiProcessSummaryAddressEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The conceptual table of all of ospfSummaryAddressEntry.  "
    ::= { ospfMgt 11 }

ospfMultiProcessSummaryAddressEntry OBJECT-TYPE
    SYNTAX      OspfMultiProcessSummaryAddressEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The conceptual row for ospfSummaryAddressTable. "
    INDEX
    {
        ospfMultiProcessProcessId,
        ospfMultiProcessSummaryAddressType,
        ospfMultiProcessSummaryAddress,
        ospfMultiProcessSummaryPfxLen
    }
    ::= { ospfMultiProcessSummaryAddressTable 1 }

OspfMultiProcessSummaryAddressEntry ::= SEQUENCE
{
    ospfMultiProcessSummaryAddressType           InetAddressType,
    ospfMultiProcessSummaryAddress               InetAddress,
    ospfMultiProcessSummaryPfxLen                InetAddressPrefixLength,
    ospfMultiProcessSummaryStatus                RowStatus
}

ospfMultiProcessSummaryAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Summary address type. "
    ::= { ospfMultiProcessSummaryAddressEntry 1 }

ospfMultiProcessSummaryAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Summary address."
    ::= { ospfMultiProcessSummaryAddressEntry 2 }

ospfMultiProcessSummaryPfxLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Summary address prefix length."
    ::= { ospfMultiProcessSummaryAddressEntry 3 }

ospfMultiProcessSummaryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this conceptual row entry. This object is used to manage
         the creation and deletion of conceptual rows.
         Currently only support 4 status:
         1. active    2. notInService    4. createAndGo    6. destroy
         ('active' and 'notInservice' status are used for getting action,
         'createAndGo' and 'destroy' status are used for setting action.)
         - 'active', which indicates that the current summary address exists in
         - the system.
         - 'notInService', if not exist in the system.
         - 'createAndGo', set this status to create a summary address.
         - 'destroy', to delete a summary address. "
    ::= { ospfMultiProcessSummaryAddressEntry 4 }

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

ospfMultiProcessNetworkAreaAddressEntry OBJECT-TYPE
    SYNTAX      OspfMultiProcessNetworkAreaAddressEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The conceptual row for ospfNetworkAreaAddressTable."
    INDEX
    {
        ospfMultiProcessProcessId,
        ospfMultiProcessNetworkAreaAddressType,
        ospfMultiProcessNetworkAreaAddress,
        ospfMultiProcessNetworkAreaPfxLen
    }
    ::= { ospfMultiProcessNetworkAreaAddressTable 1 }

OspfMultiProcessNetworkAreaAddressEntry ::= SEQUENCE
{
    ospfMultiProcessNetworkAreaAddressType       InetAddressType,
    ospfMultiProcessNetworkAreaAddress           InetAddress,
    ospfMultiProcessNetworkAreaPfxLen            InetAddressPrefixLength,
    ospfMultiProcessNetworkAreaAreaId            Unsigned32,
    ospfMultiProcessNetworkAreaStatus            RowStatus,
    ospfMultiProcessNetworkAreaAreaId2           AreaID
}

ospfMultiProcessNetworkAreaAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "NetworkArea address type."
    ::= { ospfMultiProcessNetworkAreaAddressEntry 1 }

ospfMultiProcessNetworkAreaAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "NetworkArea address.  "
    ::= { ospfMultiProcessNetworkAreaAddressEntry 2 }

ospfMultiProcessNetworkAreaPfxLen OBJECT-TYPE
    SYNTAX      InetAddressPrefixLength
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "NetworkArea prefix length. "
    ::= { ospfMultiProcessNetworkAreaAddressEntry 3 }

ospfMultiProcessNetworkAreaAreaId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "NetworkArea area ID. "
    ::= { ospfMultiProcessNetworkAreaAddressEntry 4 }

ospfMultiProcessNetworkAreaStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of this conceptual row entry. This object is used to manage
         the creation and deletion of conceptual rows.
         Currently only support 4 status:
         1. active    2. notInService    4. createAndGo    6. destroy
         ('active' and 'notInservice' status are used for getting action,
         'createAndGo' and 'destroy' status are used for setting action.)
         - 'active', which indicates that the current network exists in the
         - system.
         - 'notInService', if not exist in the system.
         - 'createAndGo', set this status to create a network.
         - 'destroy', to delete a network. "
    ::= { ospfMultiProcessNetworkAreaAddressEntry 5 }

ospfMultiProcessNetworkAreaAreaId2 OBJECT-TYPE
    SYNTAX      AreaID
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "NetworkArea area ID as IP address format."
    ::= { ospfMultiProcessNetworkAreaAddressEntry 6 }

--Ospf interface Table
ospfMultiProcessIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OspfMultiProcessIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The OSPF Interface Table describes the interfaces from the viewpoint
         of OSPF. "
    ::= { ospfMgt 14 }

ospfMultiProcessIfEntry OBJECT-TYPE
    SYNTAX      OspfMultiProcessIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The OSPF Interface Entry describes one interface from the viewpoint of
         OSPF."
    INDEX
    {
         ospfMultiProcessIfIpAddressType,
         ospfMultiProcessIfIpAddress
    }
    ::= { ospfMultiProcessIfTable 1 }

OspfMultiProcessIfEntry ::= SEQUENCE
{
    ospfMultiProcessIfIpAddressType               InetAddressType,
    ospfMultiProcessIfIpAddress                   InetAddress,
    ospfMultiProcessIfCost                        Integer32,
    ospfMultiProcessIfMtu                         Integer32,
    ospfMultiProcessIfMtuIgnore                   INTEGER,
    ospfMultiProcessIfAreaId                      AreaID,
    ospfMultiProcessIfRtrPriority                 DesignatedRouterPriority,
    ospfMultiProcessIfTransitDelay                UpToMaxAge,
    ospfMultiProcessIfRetransInterval             UpToMaxAge,
    ospfMultiProcessIfHelloInterval               HelloRange,
    ospfMultiProcessIfRtrDeadInterval             PositiveInteger,
    ospfMultiProcessIfState                       INTEGER,
    ospfMultiProcessIfDesignatedRouter            IpAddress,
    ospfMultiProcessIfBackupDesignatedRouter      IpAddress,
    ospfMultiProcessIfEvents                      Counter32,
    ospfMultiProcessIfAuthKey                     OCTET STRING,
    ospfMultiProcessIfStatus                      RowStatus,
    ospfMultiProcessIfAuthType                    OspfAuthenticationType,
    ospfMultiProcessIfDesignatedRouterId          RouterID,
    ospfMultiProcessIfBackupDesignatedRouterId    RouterID
}

ospfMultiProcessIfIpAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The IP address type of this OSPF interface.  "
    ::= { ospfMultiProcessIfEntry 1 }

ospfMultiProcessIfIpAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The IP address of this OSPF interface. "
    ::= { ospfMultiProcessIfEntry 2 }

ospfMultiProcessIfCost OBJECT-TYPE
    SYNTAX      Integer32 (0..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The output cost of this OSPF interface.
     Set 0 means unset the cost, thus the cost is dependent on
         ospfMultiProcessAutoCost. "
    ::= { ospfMultiProcessIfEntry 3 }

ospfMultiProcessIfMtu OBJECT-TYPE
    SYNTAX      Integer32 (576..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mtu of this OSPF interface. Set 0 to unset the mtu. "
    ::= { ospfMultiProcessIfEntry 4 }

ospfMultiProcessIfMtuIgnore OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    check(0),
                    ignore(1)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If check(0), OSPF will check the MTU size during DD (Database
         Description) exchange.
         If ignore(1), OSPF will not check the MTU size during DD exchange. "
    ::= { ospfMultiProcessIfEntry 5 }

ospfMultiProcessIfAreaId OBJECT-TYPE
    SYNTAX       AreaID
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "A 32-bit integer uniquely identifying the area to which the interface
         connects.  Area ID 0.0.0.0 is used for the OSPF backbone.
         This is a private substitution for ospfIfAreaId of RFC1253."
   DEFVAL { '00000000'H }  -- 0.0.0.0
   ::= { ospfMultiProcessIfEntry 6 }

ospfMultiProcessIfRtrPriority OBJECT-TYPE
    SYNTAX       DesignatedRouterPriority(0..255)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The priority of this interface.  Used in multi-access networks, this
         field is used in the designated router election algorithm. The value 0
         signifies that the router is not eligible to become the designated
         router on this particular network.  In the event of a tie in this
         value, routers will use their Router ID as a tie breaker.
         This is a private substitution for ospfIfRtrPriority of RFC1253. "
      DEFVAL { 1 }
      ::= { ospfMultiProcessIfEntry 7 }

ospfMultiProcessIfTransitDelay OBJECT-TYPE
    SYNTAX       UpToMaxAge (1..65535)
    UNITS        "seconds"
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The estimated number of seconds it takes to transmit a link state
         update packet over this interface.  Note that the minimal value SHOULD
         be 1 second.
         This is a private substitution for ospfIfTransitDelay of RFC1253. "
    DEFVAL { 1 }
    ::= { ospfMultiProcessIfEntry 8 }

ospfMultiProcessIfRetransInterval OBJECT-TYPE
    SYNTAX       UpToMaxAge(1..65535)
    UNITS        "seconds"
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The number of seconds between link state advertisement
         retransmissions, for adjacencies belonging to this interface. This
         value is also used when retransmitting database description and Link
         State request packets.
         Note that minimal value SHOULD be 1 second.
         This is a private substitution for ospfIfRetransInterval of RFC1253. "
    DEFVAL { 5 }
    ::= { ospfMultiProcessIfEntry 9 }

ospfMultiProcessIfHelloInterval OBJECT-TYPE
    SYNTAX       HelloRange(1..65535)
    UNITS        "seconds"
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The length of time, in seconds, between the Hello packets that the
         router sends on the interface.  This value must be the same for all
         routers attached to a common network.
         This is a private substitution for ospfIfHelloInterval of RFC1253. "
    DEFVAL { 10 }
    ::= { ospfMultiProcessIfEntry 10 }

ospfMultiProcessIfRtrDeadInterval OBJECT-TYPE
    SYNTAX       PositiveInteger(1..65535)
    UNITS        "seconds"
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The number of seconds that a router's Hello packets have not been seen
         before its neighbors declare the router down.
         This should be some multiple of the Hello interval. This value must be
         the same for all routers attached to a common network. Note that
         1..65535 is for 'set' range ; The read value may be (1...65535)*4 by
         default according to the Hello interval if this dead interval has not
         been set.
         This is a private substitution for ospfIfRtrDeadInterval of RFC1253."
    DEFVAL { 40 }
    ::= { ospfMultiProcessIfEntry 11 }

ospfMultiProcessIfState OBJECT-TYPE
    SYNTAX       INTEGER {
                     down (1),
                     loopback (2),
                     waiting (3),
                     pointToPoint (4),
                     designatedRouter (5),
                     backupDesignatedRouter (6),
                     otherDesignatedRouter (7)
                    }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The OSPF Interface State.
         This is a private substitution for ospfIfState of RFC1253."
    DEFVAL { down }
    ::= { ospfMultiProcessIfEntry 12 }

ospfMultiProcessIfDesignatedRouter OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The IP address of the designated router.
         This is a private substitution for ospfIfDesignatedRouter of RFC1253."
    ::= { ospfMultiProcessIfEntry 13 }

ospfMultiProcessIfBackupDesignatedRouter OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The IP address of the backup designated router.
         This is a private substitution for ospfIfBackupDesignatedRouter of
         RFC1253."
    ::= { ospfMultiProcessIfEntry 14 }

ospfMultiProcessIfEvents OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of times this OSPF interface has changed its state or an
         error has occurred.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system.
         This is a private substitution for ospfIfEvents of RFC1253. "
    ::= { ospfMultiProcessIfEntry 15 }

ospfMultiProcessIfAuthKey OBJECT-TYPE
    SYNTAX       OCTET STRING (SIZE (0..8))
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The cleartext password used as an OSPF authentication key when
         simplePassword security is enabled.  This object does not access any
         OSPF cryptogaphic (e.g., MD5) authentication key under any
         circumstance.

         If the key length is shorter than 8 octets, th agent will left adjust
         and zero fill to 8 octets.

         Unauthenticated interfaces need no authentication key, and simple
         password authentication cannot us a key of more than 8 octets.

         Note that the use of simplePassword authentication is NOT recommended
         when there is concern regarding attack upon the OSPF system.
         SimplePassword authentication is only sufficient to protect against
         accidental misconfigurations because it re-uses cleartext passwords
         [RFC1704].

         When read, ospfIfAuthKey always returns an octet string of length zero.
         This is a private substitution for ospfIfAuthKey of RFC1253."
    DEFVAL { none }
    ::= { ospfMultiProcessIfEntry 16 }

ospfMultiProcessIfStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "This variable displays the status of the ospf interface.
         Currently only active and notInService statuses are supported.

         The value of this object has no effect on whether other objects in
         this conceptual row can be modified.
         This is a private substitution for ospfIfStatus of RFC1253. "
    ::= { ospfMultiProcessIfEntry 17 }

ospfMultiProcessIfAuthType OBJECT-TYPE
    SYNTAX       OspfAuthenticationType
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The authentication type specified for an interface.

         Note that this object can be used to engage in significant attacks
         against an OSPF router.
         This is a private substitution for ospfIfAuthType of RFC1253. "
    DEFVAL { none } -- no authentication, by default
    ::= { ospfMultiProcessIfEntry 18 }

ospfMultiProcessIfDesignatedRouterId OBJECT-TYPE
    SYNTAX       RouterID
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The Router ID of the designated router.
         This is a private substitution for ospfIfDesignatedRouterId of
         RFC4750. "
    ::= { ospfMultiProcessIfEntry 19 }

ospfMultiProcessIfBackupDesignatedRouterId OBJECT-TYPE
    SYNTAX       RouterID
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The Router ID of the backup designated router.
         This is a private substitution for ospfIfBackupDesignatedRouterId
         of RFC4750."
    ::= { ospfMultiProcessIfEntry 20 }

--  OSPF Area Table
--     The OSPF Area Table contains information
--     regarding the various areas.

ospfMultiProcessAreaTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF OspfMultiProcessAreaEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Information describing the configured parameters and cumulative
         statistics of the router's attached areas.
         The interfaces and virtual links are configured as part of these
         areas.  Area 0.0.0.0, by definition, is the backbone area.
         This is a private substitution for ospfAreaTable of RFC1253."
   ::= { ospfMgt 15 }

ospfMultiProcessAreaEntry OBJECT-TYPE
    SYNTAX       OspfMultiProcessAreaEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Information describing the configured parameters and cumulative
         statistics of one of the router's attached areas.
         The interfaces and virtual links are configured as part of these
         areas. Area 0.0.0.0, by definition, is the backbone area.

         Information in this table is persistent and when this object is
     written the entity SHOULD save the change to non-volatile storage. "
    INDEX
    {
        ospfMultiProcessProcessId,
        ospfMultiProcessAreaId
    }
    ::= { ospfMultiProcessAreaTable 1 }

OspfMultiProcessAreaEntry ::=
    SEQUENCE
    {
       ospfMultiProcessAreaId                      AreaID,
       ospfMultiProcessAuthType                    OspfAuthenticationType,
       ospfMultiProcessImportAsExtern              INTEGER,
       ospfMultiProcessSpfRuns                     Counter32,
       ospfMultiProcessAreaBdrRtrCount             Gauge32,
       ospfMultiProcessAsBdrRtrCount               Gauge32,
       ospfMultiProcessAreaLsaCount                Gauge32,
       ospfMultiProcessAreaLsaCksumSum             Integer32,
       ospfMultiProcessAreaSummary                 INTEGER,
       ospfMultiProcessAreaStatus                  RowStatus
    }

ospfMultiProcessAreaId OBJECT-TYPE
    SYNTAX       AreaID
    MAX-ACCESS   not-accessible -- read-only since originally
                           -- an SMIv1 index
    STATUS       current
    DESCRIPTION
        "A 32-bit integer uniquely identifying an area. "
    ::= { ospfMultiProcessAreaEntry 1 }

ospfMultiProcessAuthType OBJECT-TYPE
    SYNTAX       OspfAuthenticationType
    MAX-ACCESS   read-create
    STATUS       obsolete

    DESCRIPTION
        "The authentication type specified for an area."
    DEFVAL { none } -- no authentication, by default
    ::= { ospfMultiProcessAreaEntry 2 }

ospfMultiProcessImportAsExtern OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                     importExternal (1),
                     importNoExternal (2),
                     importNssa (3)
                 }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "Indicates if an area is a stub area, NSSA, or standard area. Type-5
         AS-external LSAs and type-11 Opaque LSAs are not imported into stub
         areas or NSSAs. NSSAs import AS-external data as type-7 LSAs. "
    DEFVAL { importExternal }
    ::= { ospfMultiProcessAreaEntry 3 }

ospfMultiProcessSpfRuns OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of times that the intra-area route table has been
         calculated using this area's link state database.  This is
         typically done using Dijkstra's algorithm.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system."
    ::= { ospfMultiProcessAreaEntry 4 }

ospfMultiProcessAreaBdrRtrCount OBJECT-TYPE
    SYNTAX       Gauge32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The total number of Area Border Routers reachable within this area.
         This is initially zero and is calculated in each Shortest Path First
         (SPF) pass. "
    ::= { ospfMultiProcessAreaEntry 5 }

ospfMultiProcessAsBdrRtrCount OBJECT-TYPE
   SYNTAX       Gauge32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The total number of Autonomous System Border Routers reachable within
         this area.  This is initially zero and is calculated in each SPF pass. "
    ::= { ospfMultiProcessAreaEntry 6 }

ospfMultiProcessAreaLsaCount OBJECT-TYPE
    SYNTAX       Gauge32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The total number of link state advertisements in this area's link
         state database, excluding AS-external LSAs. "
    ::= { ospfMultiProcessAreaEntry 7 }

ospfMultiProcessAreaLsaCksumSum OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The 32-bit sum of the link state advertisements' LS checksums
         contained in this area's link state database.  This sum excludes
         external (LS type-5) link state advertisements. The sum can be used
         to determine if there has been a change in a router's link state
         database, and to compare the link state database of two routers. The
         value should be treated as unsigned when comparing two sums of
         checksums."
    DEFVAL { 0 }
    ::= { ospfMultiProcessAreaEntry 8 }

ospfMultiProcessAreaSummary OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                    noAreaSummary (1),
                    sendAreaSummary (2)
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "This variable  controls the import of summary LSAs into stub and NSSA
         areas. It has no effect on other areas.

         If it is noAreaSummary, the router will not originate summary LSAs
         into the stub or NSSA area. It will rely entirely on its default
         route.

         If it is sendAreaSummary, the router will both summarize and propagate
         summary LSAs."
    DEFVAL { sendAreaSummary }
    ::= { ospfMultiProcessAreaEntry 9 }

ospfMultiProcessAreaStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "Row status of area. Note ospf area can't be created or destroyed
         solely in this table. Only read is permitted.

         The value of this object has no effect on whether other objects in
         this conceptual row can be modified. "
    ::= { ospfMultiProcessAreaEntry 10 }


--  OSPF Area Default Metric Table

ospfMultiProcessStubAreaTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF OspfMultiProcessStubAreaEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The set of metrics that will be advertised by a default Area Border
         Router into a stub area.
         This is a private substitution for ospfStubAreaTable of RFC1253."
    ::= { ospfMgt 16 }

ospfMultiProcessStubAreaEntry OBJECT-TYPE
    SYNTAX       OspfMultiProcessStubAreaEntry

    MAX-ACCESS   not-accessible
    STATUS      current
    DESCRIPTION
        "The metric for a given Type of Service that will be advertised by a
         default Area Border Router into a stub area.

         Information in this table is persistent and when this object is
         written the entity SHOULD save the change to non-volatile storage."
    INDEX { ospfMultiProcessProcessId,
            ospfMultiProcessStubAreaId,
            ospfMultiProcessStubTOS
          }
    ::= { ospfMultiProcessStubAreaTable 1 }

OspfMultiProcessStubAreaEntry ::=
    SEQUENCE {
               ospfMultiProcessStubAreaId
                  AreaID,
               ospfMultiProcessStubTOS
                  TOSType,
               ospfMultiProcessStubMetric
                  BigMetric,
               ospfMultiProcessStubStatus
                  RowStatus
             }

ospfMultiProcessStubAreaId OBJECT-TYPE
    SYNTAX       AreaID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The 32-bit identifier for the stub area. On creation, this can be
         derived from the instance."
    ::= { ospfMultiProcessStubAreaEntry 1 }

ospfMultiProcessStubTOS OBJECT-TYPE
    SYNTAX       TOSType
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The Type of Service associated with the metric. On creation, this can
         be derived from the instance. Currently only support TOS=0."
    ::= { ospfMultiProcessStubAreaEntry 2 }

ospfMultiProcessStubMetric OBJECT-TYPE
    SYNTAX       BigMetric(0..16777215)
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The metric value applied at the indicated Type of Service. By default,
         this equals the least metric at the Type of Service among the
         interfaces to other areas."
    ::= { ospfMultiProcessStubAreaEntry 3 }

ospfMultiProcessStubStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
        "This object permits management of the table by facilitating actions
         such as row creation, construction, and destruction.
         Currently set only support 'createAndGo' and 'destroy'.
         The value of this object has no effect on whether other objects in
         this conceptual row can be modified."
    ::= { ospfMultiProcessStubAreaEntry 4 }


--  OSPF Link State Database

ospfMultiProcessLsdbTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF OspfMultiProcessLsdbEntry
    MAX-ACCESS   not-accessible
    STATUS       current

    DESCRIPTION
        "The OSPF Process's link state database (LSDB).
         The LSDB contains the link state advertisements from throughout the
         areas that the device is attached to.
         This is a private substitution for ospfLsdbTable of RFC1253."
    ::= { ospfMgt 17 }

ospfMultiProcessLsdbEntry OBJECT-TYPE
    SYNTAX   OspfMultiProcessLsdbEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION
        "A single link state advertisement."
    INDEX { ospfMultiProcessProcessId,
            ospfMultiProcessLsdbAreaId,
            ospfMultiProcessLsdbType,
            ospfMultiProcessLsdbLsid,
            ospfMultiProcessLsdbRouterId
          }
    ::= { ospfMultiProcessLsdbTable 1 }

OspfMultiProcessLsdbEntry ::=
    SEQUENCE {
                 ospfMultiProcessLsdbAreaId
                    AreaID,
                 ospfMultiProcessLsdbType
                    INTEGER,
                 ospfMultiProcessLsdbLsid
                    IpAddress,
                 ospfMultiProcessLsdbRouterId
                    RouterID,
                 ospfMultiProcessLsdbSequence
                    Integer32,
                 ospfMultiProcessLsdbAge
                    Integer32,
                 ospfMultiProcessLsdbChecksum
                    Integer32,
                 ospfMultiProcessLsdbAdvertisement
                    OCTET STRING
             }

ospfMultiProcessLsdbAreaId OBJECT-TYPE
    SYNTAX       AreaID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The 32-bit identifier of the area from which the LSA was received."
    ::= { ospfMultiProcessLsdbEntry 1 }

ospfMultiProcessLsdbType OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                    routerLink (1),
                    networkLink (2),
                    summaryLink (3),
                    asSummaryLink (4),
                    asExternalLink (5), -- but see ospfAsLsdbTable
                    multicastLink (6),
                    nssaExternalLink (7),
                    areaOpaqueLink (10)
                 }
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The type of the link state advertisement.
         Each link state type has a separate advertisement format.

         Note: External link state advertisements are permitted for backward
         compatibility, but should be displayed in the
         ospfMultiProcessExtLsdbTable rather than here. "
    ::= { ospfMultiProcessLsdbEntry 2 }

ospfMultiProcessLsdbLsid OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The Link State ID is an LS Type Specific field containing either a
         Router ID or an IP address; It identifies the piece of the routing
         domain that is being described by the advertisement. "
    ::= { ospfMultiProcessLsdbEntry 3 }

ospfMultiProcessLsdbRouterId OBJECT-TYPE
    SYNTAX       RouterID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The 32-bit number that uniquely identifies the originating router in
         the Autonomous System. "
    ::= { ospfMultiProcessLsdbEntry 4 }

ospfMultiProcessLsdbSequence OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The sequence number field is a signed 32-bit integer. It starts with
         the value '80000001'h, or -'7FFFFFFF'h, and increments until
         '7FFFFFFF'h.
         Thus, a typical sequence number will be very negative.
         It is used to detect old and duplicate Link State Advertisements. The
         space of sequence numbers is linearly ordered. The larger the sequence
         number, the more recent the advertisement."
    ::= { ospfMultiProcessLsdbEntry 5 }

ospfMultiProcessLsdbAge OBJECT-TYPE
    SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                           -- doNotAge bit is set
    UNITS        "seconds"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "This field is the age of the link state advertisement in seconds. "
    ::= { ospfMultiProcessLsdbEntry 6 }

ospfMultiProcessLsdbChecksum OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "This field is the checksum of the complete contents of the
         advertisement, excepting the age field.  The age field is excepted so
         that an advertisement's age can be incremented without updating the
         checksum.  The checksum used is the same that is used for ISO
         connectionless datagrams; it is commonly referred to as the Fletcher
         checksum. "
     ::= { ospfMultiProcessLsdbEntry 7 }

ospfMultiProcessLsdbAdvertisement OBJECT-TYPE
    SYNTAX       OCTET STRING (SIZE (1..65535))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The entire link state advertisement, including its header.

         Note that for variable length LSAs, SNMP agents may not be able to
         return the largest string size."
    ::= { ospfMultiProcessLsdbEntry 8 }

--  OSPF Virtual Interface Table

ospfMultiProcessVirtIfTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF OspfMultiProcessVirtIfEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Information about this router's virtual interfaces that the OSPF
         Process is configured to carry on.
         This is a private substitution for ospfVirtIfTable of RFC1253. "
    ::= { ospfMgt 20 }

ospfMultiProcessVirtIfEntry OBJECT-TYPE
    SYNTAX       OspfMultiProcessVirtIfEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Information about a single virtual interface.

         Information in this table is persistent and when this object is written
         the entity SHOULD save the change to non-volatile storage. "
    INDEX
    {
        ospfMultiProcessProcessId,
        ospfMultiProcessVirtIfAreaId,
        ospfMultiProcessVirtIfNeighbor
    }
    ::= { ospfMultiProcessVirtIfTable 1 }

OspfMultiProcessVirtIfEntry ::=
    SEQUENCE
    {
       ospfMultiProcessVirtIfAreaId
          AreaID,
       ospfMultiProcessVirtIfNeighbor
          RouterID,
       ospfMultiProcessVirtIfTransitDelay
          UpToMaxAge,
       ospfMultiProcessVirtIfRetransInterval
          UpToMaxAge,
       ospfMultiProcessVirtIfHelloInterval
          HelloRange,
       ospfMultiProcessVirtIfRtrDeadInterval
          PositiveInteger,
       ospfMultiProcessVirtIfState
          INTEGER,
       ospfMultiProcessVirtIfEvents
          Counter32,
       ospfMultiProcessVirtIfAuthKey
          OCTET STRING,
       ospfMultiProcessVirtIfStatus
          RowStatus,
       ospfMultiProcessVirtIfAuthType
          OspfAuthenticationType
    }

ospfMultiProcessVirtIfAreaId OBJECT-TYPE
    SYNTAX       AreaID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The transit area that the virtual link traverses.  By definition, this
         is not 0.0.0.0. "
    ::= { ospfMultiProcessVirtIfEntry 1 }

ospfMultiProcessVirtIfNeighbor OBJECT-TYPE
    SYNTAX       RouterID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The Router ID of the virtual neighbor. "
    ::= { ospfMultiProcessVirtIfEntry 2 }

ospfMultiProcessVirtIfTransitDelay OBJECT-TYPE
    SYNTAX       UpToMaxAge(1..65535)
    UNITS        "seconds"
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The estimated number of seconds it takes to transmit a Link State
         update packet over this interface.  Note that the minimal value SHOULD
         be 1 second."
    DEFVAL { 1 }
    ::= { ospfMultiProcessVirtIfEntry 3 }

ospfMultiProcessVirtIfRetransInterval OBJECT-TYPE
    SYNTAX       UpToMaxAge(1..65535)
    UNITS        "seconds"
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The number of seconds between link state avertisement retransmissions,
         for adjacencies belonging to this interface.  This value is also used
         when retransmitting database description and Link State request
         packets.  This value should be well over the expected round-trip time.
         Note that the minimal value SHOULD be 1 second. "
    DEFVAL { 5 }
    ::= { ospfMultiProcessVirtIfEntry 4 }

ospfMultiProcessVirtIfHelloInterval OBJECT-TYPE
    SYNTAX       HelloRange(1..65535)
    UNITS        "seconds"
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The length of time, in seconds, between the Hello packets that the
         router sends on the interface.  This value must be the same for the
         virtual neighbor."
    DEFVAL { 10 }
    ::= { ospfMultiProcessVirtIfEntry 5 }

ospfMultiProcessVirtIfRtrDeadInterval OBJECT-TYPE
    SYNTAX       PositiveInteger(1..65535)
    UNITS        "seconds"
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The number of seconds that a router's Hello packets have not been seen
         before its neighbors declare the router down.  This should be 4
         multiple of the Hello interval.  This value must be the same for the
         virtual neighbor.
         Note that 1..65535 is for 'set' range ; The read
         value may be (1...65535)*4 by default according to
         the Hello interval if this dead interval hasn't been set. "
    DEFVAL { 40 }
    ::= { ospfMultiProcessVirtIfEntry 6 }

ospfMultiProcessVirtIfState OBJECT-TYPE
    SYNTAX  INTEGER
            {
                down (1), -- these use the same encoding
                pointToPoint (4) -- as the ospfIfTable
            }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "OSPF virtual interface states. "
    DEFVAL { down }
    ::= { ospfMultiProcessVirtIfEntry 7 }

ospfMultiProcessVirtIfEvents OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of state changes or error events on this virtual link.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system."
    ::= { ospfMultiProcessVirtIfEntry 8 }

ospfMultiProcessVirtIfAuthKey OBJECT-TYPE
    SYNTAX       OCTET STRING (SIZE(0..8))
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The cleartext password used as an OSPF authentication key when
         simplePassword security is enabled.  This object does not access any
         OSPF cryptogaphic (e.g., MD5) authentication key under any
         circumstance.

         If the key length is shorter than 8 octets, the agent will left adjust
         and zero fill to 8 octets.

         Unauthenticated interfaces need no authentication key, and simple
         password authentication cannot use a key of more than 8 octets.

         Note that the use of simplePassword authentication is NOT recommended
         when there is concern regarding attack upon the OSPF system.
         SimplePassword authentication is only sufficient to protect against
         accidental misconfigurations because it re-uses cleartext passwords.
         [RFC1704]

         When read, ospfVirtIfAuthKey always returns an octet string of length
         zero. "
    DEFVAL { none }
    ::= { ospfMultiProcessVirtIfEntry 9 }

ospfMultiProcessVirtIfStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
        "This object permits management of the table by facilitating actions
         such as row creation, construction, and destruction.

         The value of this object has no effect on whether other objects in
         this conceptual row can be modified. "
     ::= { ospfMultiProcessVirtIfEntry 10 }

ospfMultiProcessVirtIfAuthType OBJECT-TYPE
    SYNTAX       OspfAuthenticationType
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The authentication type specified for a virtual interface.

         Note that this object can be used to engage in significant attacks
         against an OSPF router."
    DEFVAL { none } -- no authentication, by default
    ::= { ospfMultiProcessVirtIfEntry 11 }

--  OSPF Neighbor Table

ospfMultiProcessNbrTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF OspfMultiProcessNbrEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A table describing all non-virtual neighbors in the locality of the
         OSPF router.
         This is a private substitution for ospfNbrTable of RFC1253."
    ::= { ospfMgt 21 }

ospfMultiProcessNbrEntry OBJECT-TYPE
    SYNTAX       OspfMultiProcessNbrEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The information regarding a single neighbor. "
    INDEX
    {
        ospfMultiProcessProcessId,
        ospfMultiProcessNbrIpAddr
    }
    ::= { ospfMultiProcessNbrTable 1 }

OspfMultiProcessNbrEntry ::=
    SEQUENCE
    {
       ospfMultiProcessNbrIpAddr
          IpAddress,
       ospfMultiProcessNbrRtrId
          RouterID,
       ospfMultiProcessNbrOptions
          Integer32,
       ospfMultiProcessNbrPriority
          DesignatedRouterPriority,
       ospfMultiProcessNbrState
          INTEGER,
       ospfMultiProcessNbrEvents
          Counter32,
       ospfMultiProcessNbrLsRetransQLen
          Gauge32
    }

ospfMultiProcessNbrIpAddr OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The IP address this neighbor is using in its IP source address."
    ::= { ospfMultiProcessNbrEntry 1 }


ospfMultiProcessNbrRtrId OBJECT-TYPE
    SYNTAX       RouterID
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A 32-bit integer (represented as a type IpAddress) uniquely
         identifying the neighboring router in the Autonomous System. "
    ::= { ospfMultiProcessNbrEntry 2 }

ospfMultiProcessNbrOptions OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "A bit mask corresponding to the neighbor's options field.

         Bit 0, if set, indicates that the system will operate on Type of
         Service metrics other than TOS 0. If zero, the neighbor will ignore
         all metrics except the TOS 0 metric.

         Bit 1, if set, indicates that the associated area accepts and operates
         on external information; if zero, it is a stub area.

         Bit 2, if set, indicates that the system is capable of routing IP
     multicast datagrams, that is that it implements the multicast
     extensions to OSPF.

         Bit 3, if set, indicates that the associated area is an NSSA. These
         areas are capable of carrying type-7 external advertisements, which
         are translated into type-5 external advertisements at NSSA borders. "
    DEFVAL { 0 }
    ::= { ospfMultiProcessNbrEntry 3 }

ospfMultiProcessNbrPriority OBJECT-TYPE
    SYNTAX       DesignatedRouterPriority
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The priority of this neighbor in the designated router election
         algorithm.  The value 0 signifies that the neighbor is not eligible to
         become the designated router on this particular network. "
    DEFVAL { 1 }
    ::= { ospfMultiProcessNbrEntry 4 }

ospfMultiProcessNbrState OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                     down (1),
                     attempt (2),
                     init (3),
                     twoWay (4),
                     exchangeStart (5),
                     exchange (6),
                     loading (7),
                     full (8)
                 }
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
         "The state of the relationship with this neighbor."
     DEFVAL { down }
     ::= { ospfMultiProcessNbrEntry 5 }

ospfMultiProcessNbrEvents OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of times this neighbor relationship has changed state or an
         error has occurred.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system. "
    ::= { ospfMultiProcessNbrEntry 6 }

ospfMultiProcessNbrLsRetransQLen OBJECT-TYPE
    SYNTAX       Gauge32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The current length of the retransmission queue. "
    ::= { ospfMultiProcessNbrEntry 7 }


--  OSPF Virtual Neighbor Table

ospfMultiProcessVirtNbrTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF OspfMultiProcessVirtNbrEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "This table describes all virtual neighbors. Since virtual links are
         configured in the Virtual Interface Table, this table is read-only.
         This is a private substitution for ospfVirtNbrTable of RFC1253. "
    ::= { ospfMgt 22 }

ospfMultiProcessVirtNbrEntry OBJECT-TYPE
    SYNTAX       OspfMultiProcessVirtNbrEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Virtual neighbor information."
    INDEX
    {
       ospfMultiProcessProcessId,
       ospfMultiProcessVirtNbrArea,
       ospfMultiProcessVirtNbrRtrId
    }
    ::= { ospfMultiProcessVirtNbrTable 1 }

OspfMultiProcessVirtNbrEntry ::=
    SEQUENCE
    {
       ospfMultiProcessVirtNbrArea
          AreaID,
       ospfMultiProcessVirtNbrRtrId
          RouterID,
       ospfMultiProcessVirtNbrIpAddr
          IpAddress,
       ospfMultiProcessVirtNbrOptions
          Integer32,
       ospfMultiProcessVirtNbrState
          INTEGER,
       ospfMultiProcessVirtNbrEvents
          Counter32,
       ospfMultiProcessVirtNbrLsRetransQLen
          Gauge32
    }

ospfMultiProcessVirtNbrArea OBJECT-TYPE
    SYNTAX       AreaID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The Transit Area Identifier. "
    ::= { ospfMultiProcessVirtNbrEntry 1 }

ospfMultiProcessVirtNbrRtrId OBJECT-TYPE
    SYNTAX       RouterID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS      current
    DESCRIPTION
        "A 32-bit integer uniquely identifying the neighboring router in the
         Autonomous System."
       ::= { ospfMultiProcessVirtNbrEntry 2 }

ospfMultiProcessVirtNbrIpAddr OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The IP address this virtual neighbor is using. "
    ::= { ospfMultiProcessVirtNbrEntry 3 }

ospfMultiProcessVirtNbrOptions OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "A bit mask corresponding to the neighbor's options field.

         Bit 1, if set, indicates that the system will operate on Type of
         Service metrics other than TOS 0.  If zero, the neighbor will ignore
         all metrics except the TOS 0 metric. Bit 2, if set, indicates that
         the system is network multicast capable, i.e., that it implements
         OSPF multicast routing."
    ::= { ospfMultiProcessVirtNbrEntry 4 }

ospfMultiProcessVirtNbrState OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                    down (1),
                    attempt (2),
                    init (3),
                    twoWay (4),
                    exchangeStart (5),
                    exchange (6),
                    loading (7),
                    full (8)
                 }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The state of the virtual neighbor relationship."
    ::= { ospfMultiProcessVirtNbrEntry 5 }

ospfMultiProcessVirtNbrEvents OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of times this virtual link has changed its state or an
         error has occurred.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system."
       ::= { ospfMultiProcessVirtNbrEntry 6 }

ospfMultiProcessVirtNbrLsRetransQLen OBJECT-TYPE
    SYNTAX       Gauge32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "The current length of the retransmission queue."
    ::= { ospfMultiProcessVirtNbrEntry 7 }


--  OSPF Link State Database, External

ospfMultiProcessExtLsdbTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF OspfMultiProcessExtLsdbEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The OSPF Process's external LSA link state database.

         This table is identical to the OSPF LSDB Table in format, but contains
         only external link state advertisements.  The purpose is to allow
         external LSAs to be displayed once for the router rather than once in
         each non-stub area.

         Note that external LSAs are also in the AS-scope link state database.
         This is a private substitution for ospfExtLsdbTable of RFC1253."
    ::= { ospfMgt 23 }

ospfMultiProcessExtLsdbEntry OBJECT-TYPE
    SYNTAX       OspfMultiProcessExtLsdbEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A single link state advertisement."
    INDEX
    {
        ospfMultiProcessProcessId,
        ospfMultiProcessExtLsdbType,
        ospfMultiProcessExtLsdbLsid,
        ospfMultiProcessExtLsdbRouterId
    }
    ::= { ospfMultiProcessExtLsdbTable 1 }

OspfMultiProcessExtLsdbEntry ::=
    SEQUENCE
    {
       ospfMultiProcessExtLsdbType
          INTEGER,
       ospfMultiProcessExtLsdbLsid
          IpAddress,
       ospfMultiProcessExtLsdbRouterId
          RouterID,
       ospfMultiProcessExtLsdbSequence
          Integer32,
       ospfMultiProcessExtLsdbAge
          Integer32,
       ospfMultiProcessExtLsdbChecksum
          Integer32,
       ospfMultiProcessExtLsdbAdvertisement
          OCTET STRING
    }

ospfMultiProcessExtLsdbType OBJECT-TYPE
    SYNTAX      INTEGER { asExternalLink (5) }
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The type of the link state advertisement.
         Each link state type has a separate advertisement format. "
    ::= { ospfMultiProcessExtLsdbEntry 1 }

ospfMultiProcessExtLsdbLsid OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The Link State ID is an LS Type Specific field containing either a
         Router ID or an IP address; it identifies the piece of the routing
         domain that is being described by the advertisement. "
    ::= { ospfMultiProcessExtLsdbEntry 2 }

ospfMultiProcessExtLsdbRouterId OBJECT-TYPE
    SYNTAX       RouterID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The 32-bit number that uniquely identifies the originating router in
         the Autonomous System."
    ::= { ospfMultiProcessExtLsdbEntry 3 }

ospfMultiProcessExtLsdbSequence OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The sequence number field is a signed 32-bit integer.  It starts with
         the value '80000001'h, or -'7FFFFFFF'h, and increments until
         '7FFFFFFF'h.
         Thus, a typical sequence number will be very negative.
         It is used to detect old and duplicate link state advertisements.
         The space of sequence numbers is linearly ordered.  The larger the
         sequence number, the more recent the advertisement."
    ::= { ospfMultiProcessExtLsdbEntry 4 }


ospfMultiProcessExtLsdbAge OBJECT-TYPE
    SYNTAX       Integer32 -- Should be 0..MaxAge, except when
                           -- doNotAge bit is set
    UNITS        "seconds"
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "This field is the age of the link state
         advertisement in seconds. "
    ::= { ospfMultiProcessExtLsdbEntry 5 }

ospfMultiProcessExtLsdbChecksum OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "This field is the checksum of the complete contents of the
         advertisement, excepting the age field.  The age field is excepted so
         that an advertisement's age can be incremented without updating the
         checksum.  The checksum used is the same that is used for ISO
         connectionless datagrams; it is commonly referred to as the Fletcher
         checksum. "
    ::= { ospfMultiProcessExtLsdbEntry 6 }

ospfMultiProcessExtLsdbAdvertisement OBJECT-TYPE
    SYNTAX       OCTET STRING (SIZE(36))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The entire link state advertisement, including its header."
    ::= { ospfMultiProcessExtLsdbEntry 7 }

--  The OSPF Area Aggregate Table
--
--     This table replaces the OSPF Area Summary Table, being an
--     extension of that for CIDR routers.

ospfMultiProcessAreaAggregateTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF OspfMultiProcessAreaAggregateEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The Area Aggregate Table acts as an adjunct to the Area Table.  It
         describes those address aggregates that are configured to be
         propagated from an area.
         Its purpose is to reduce the amount of information that is known
         beyond an Area's borders.

         It contains a set of IP address ranges specified by an IP address/IP
         network mask pair. For example, a class B address range of X.X.X.X
         with a network mask of 255.255.0.0 includes all IP addresses from
         X.X.0.0 to X.X.255.255.

         Note that if ranges are configured such that one range subsumes
         another range (e.g., 10.0.0.0 mask 255.0.0.0 and 10.1.0.0 mask
         255.255.0.0), the most specific match is the preferred one.
         This is a private substitution for ospfAreaAggregateTable of RFC1253."
    ::= { ospfMgt 24 }

ospfMultiProcessAreaAggregateEntry OBJECT-TYPE
    SYNTAX   OspfMultiProcessAreaAggregateEntry
    MAX-ACCESS   not-accessible
    STATUS   current
    DESCRIPTION
        "A single area aggregate entry.
         Information in this table is persistent and when this object is
         written the entity SHOULD save the change to non-volatile storage. "
    INDEX
    {
       ospfMultiProcessProcessId,
       ospfMultiProcessAreaAggregateAreaID,
       ospfMultiProcessAreaAggregateLsdbType,
       ospfMultiProcessAreaAggregateNet,
       ospfMultiProcessAreaAggregateMask
    }
    ::= { ospfMultiProcessAreaAggregateTable 1 }

OspfMultiProcessAreaAggregateEntry ::=
    SEQUENCE
    {
       ospfMultiProcessAreaAggregateAreaID
          AreaID,
       ospfMultiProcessAreaAggregateLsdbType
          INTEGER,
       ospfMultiProcessAreaAggregateNet
          IpAddress,
       ospfMultiProcessAreaAggregateMask
          IpAddress,
       ospfMultiProcessAreaAggregateStatus
          RowStatus,
       ospfMultiProcessAreaAggregateEffect
          INTEGER
    }

ospfMultiProcessAreaAggregateAreaID OBJECT-TYPE
    SYNTAX       AreaID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The area within which the address aggregate is to be found."
    ::= { ospfMultiProcessAreaAggregateEntry 1 }

ospfMultiProcessAreaAggregateLsdbType OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                    summaryLink (3)
                 }
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The type of the address aggregate.  This field specifies the Lsdb type
         that this address aggregate applies to."
    ::= { ospfMultiProcessAreaAggregateEntry 2 }

ospfMultiProcessAreaAggregateNet OBJECT-TYPE
    SYNTAX   IpAddress
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS   current
    DESCRIPTION
        "The IP address of the net or subnet indicated by the range."
    ::= { ospfMultiProcessAreaAggregateEntry 3 }
ospfMultiProcessAreaAggregateMask OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS      current
    DESCRIPTION
        "The subnet mask that pertains to the net or subnet. "
    ::= { ospfMultiProcessAreaAggregateEntry 4 }

ospfMultiProcessAreaAggregateStatus OBJECT-TYPE
    SYNTAX       RowStatus
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION
        "This object permits management of the table by facilitating actions
         such as row creation, construction, and destruction.

         The value of this object has no effect on whether other objects in
         this conceptual row can be modified. "
   ::= { ospfMultiProcessAreaAggregateEntry 5 }

ospfMultiProcessAreaAggregateEffect OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                    advertiseMatching (1),
                    doNotAdvertiseMatching (2)
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "Subnets subsumed by ranges either trigger the advertisement of the
         indicated aggregate (advertiseMatching) or result in the subnet's not
         being advertised at all outside the area. "
    DEFVAL { advertiseMatching }
    ::= { ospfMultiProcessAreaAggregateEntry 6 }

-- OSPF Interface Message Digest Authentication Table
ospfMultiProcessIfAuthMd5Table OBJECT-TYPE
    SYNTAX      SEQUENCE OF OspfMultiProcessIfAuthMd5Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The OSPF Interface Message Digest Authentication Table
         describes the interfaces from the viewpoint of OSPF."
    ::= { ospfMgt 27 }

ospfMultiProcessIfAuthMd5Entry OBJECT-TYPE
    SYNTAX      OspfMultiProcessIfAuthMd5Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The OSPF Interface Message Digest Authentication Entry
         describes one interface from the viewpoint of OSPF."
    INDEX
    {
         ospfMultiProcessIfAuthMd5IpAddressType,
         ospfMultiProcessIfAuthMd5IpAddress,
         ospfMultiProcessIfAuthMd5KeyId
    }
    ::= { ospfMultiProcessIfAuthMd5Table 1 }

OspfMultiProcessIfAuthMd5Entry ::= SEQUENCE
{
    ospfMultiProcessIfAuthMd5IpAddressType               InetAddressType,
    ospfMultiProcessIfAuthMd5IpAddress                   InetAddress,
    ospfMultiProcessIfAuthMd5KeyId                       Integer32,
    ospfMultiProcessIfAuthMd5Key                         OCTET STRING
}

ospfMultiProcessIfAuthMd5IpAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The IP address type of this OSPF interface."
    ::= { ospfMultiProcessIfAuthMd5Entry 1 }

ospfMultiProcessIfAuthMd5IpAddress OBJECT-TYPE
    SYNTAX      InetAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The IP address of this OSPF interface. "
    ::= { ospfMultiProcessIfAuthMd5Entry 2 }

ospfMultiProcessIfAuthMd5KeyId OBJECT-TYPE
    SYNTAX      Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Message Digest Authentication key ID of this OSPF interface. "
    ::= { ospfMultiProcessIfAuthMd5Entry 3 }

ospfMultiProcessIfAuthMd5Key OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..16))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Message Digest Authentication key of this OSPF interface.
         When read, ospfIfAuthMd5Key always returns an octet string of
         length zero. Set zero-length string to unset the md5 key."
    ::= { ospfMultiProcessIfAuthMd5Entry 4 }

-- OSPF Virtual Link Interface Message Digest Authentication Table
ospfMultiProcessVirtIfAuthMd5Table OBJECT-TYPE
    SYNTAX       SEQUENCE OF OspfMultiProcessVirtIfAuthMd5Entry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The OSPF Virtual Interface Message Digest Authentication Table
         describes the interfaces from the viewpoint of OSPF."
    ::= { ospfMgt 28 }

ospfMultiProcessVirtIfAuthMd5Entry OBJECT-TYPE
    SYNTAX       OspfMultiProcessVirtIfAuthMd5Entry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "The OSPF Virtual Interface Message Digest Authentication Entry
         describes one interface from the viewpoint of OSPF. "
    INDEX
    {
        ospfMultiProcessProcessId,
        ospfMultiProcessVirtIfAuthMd5AreaId,
        ospfMultiProcessVirtIfAuthMd5Neighbor,
        ospfMultiProcessVirtIfAuthMd5KeyId
    }
    ::= { ospfMultiProcessVirtIfAuthMd5Table 1 }

OspfMultiProcessVirtIfAuthMd5Entry ::=
    SEQUENCE
    {
       ospfMultiProcessVirtIfAuthMd5AreaId            AreaID,
       ospfMultiProcessVirtIfAuthMd5Neighbor          RouterID,
       ospfMultiProcessVirtIfAuthMd5KeyId             Integer32,
       ospfMultiProcessVirtIfAuthMd5Key               OCTET STRING
    }

ospfMultiProcessVirtIfAuthMd5AreaId OBJECT-TYPE
    SYNTAX       AreaID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The transit area that the virtual link traverses.  By definition, this
         is not 0.0.0.0."
    ::= { ospfMultiProcessVirtIfAuthMd5Entry 1 }

ospfMultiProcessVirtIfAuthMd5Neighbor OBJECT-TYPE
    SYNTAX       RouterID
    MAX-ACCESS   not-accessible -- read-only since originally an
                           -- SMIv1 index
    STATUS       current
    DESCRIPTION
        "The Router ID of the virtual neighbor. "
    ::= { ospfMultiProcessVirtIfAuthMd5Entry 2 }

ospfMultiProcessVirtIfAuthMd5KeyId OBJECT-TYPE
    SYNTAX      Integer32 (1..255)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Message Digest Authentication key ID of this OSPF virtual
         interface. "
    ::= { ospfMultiProcessVirtIfAuthMd5Entry 3 }

ospfMultiProcessVirtIfAuthMd5Key OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..16))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Message Digest Authentication key of this OSPF virtual interface.
         When read, ospfVirtIfAuthMd5Key always returns an octet string of
         length zero. Set zero-length string to unset the md5 key."
    ::= { ospfMultiProcessVirtIfAuthMd5Entry 4 }

--OSPF Route Table
ospfMultiProcessRouteTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OspfMultiProcessRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual table for ospfRouteEntry."
    ::= { ospfMgt 31 }

ospfMultiProcessRouteEntry OBJECT-TYPE
    SYNTAX      OspfMultiProcessRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A conceptual row for ospfRouteTable."
    INDEX
    {
         ospfMultiProcessProcessId,
         ospfMultiProcessRouteDest,
         ospfMultiProcessRoutePfxLen,
         ospfMultiProcessRouteNexthop
    }
    ::= { ospfMultiProcessRouteTable 1 }

OspfMultiProcessRouteEntry ::= SEQUENCE
{
    ospfMultiProcessRouteDest                IpAddress,
    ospfMultiProcessRoutePfxLen              Integer32,
    ospfMultiProcessRouteNexthop             IpAddress,
    ospfMultiProcessRouteInterface           DisplayString,
    ospfMultiProcessRouteCost                Unsigned32,
    ospfMultiProcessRoutePathType            INTEGER,
    ospfMultiProcessRouteAreaId              IpAddress,
    ospfMultiProcessRouteTransitArea         INTEGER
}

ospfMultiProcessRouteDest OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The destination IP address of this route. "
    ::= { ospfMultiProcessRouteEntry 1 }

ospfMultiProcessRoutePfxLen OBJECT-TYPE
    SYNTAX      Integer32(0..32)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The prefix length of this route."
    ::= { ospfMultiProcessRouteEntry 2 }

ospfMultiProcessRouteNexthop OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The nexthop IP address of this route.
         Note that, discard and directly connected routes have no nexthops.
         They are displayed as 0.0.0.0."
    ::= { ospfMultiProcessRouteEntry 3 }

ospfMultiProcessRouteInterface OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of outgoing interface which links to nexthop.
         Return an octet string of length zero when it is discard route."
    ::= { ospfMultiProcessRouteEntry 4 }

ospfMultiProcessRouteCost OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The cost of this route.
         Always return 4294967295 if it is a discarded route."
    ::= { ospfMultiProcessRouteEntry 5 }

ospfMultiProcessRoutePathType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    unknown(0),
                    connected(1),
                    discard(2),
                    intra(3),
                    inter(4),
                    type1(5),
                    type2(6),
                    nssa1(7),
                    nssa2(8)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The path type of this route.
         unknown, unknown path type.
         connected, directly connected.
         discard, discard route.
         intra, intra-area route.
         inter, inter-area route.
         type1, external type 1 route.
         type2, external type 2 route.
         nssa1, nssa external type 1 route.
         nssa2, nssa external type 2 route."
    ::= { ospfMultiProcessRouteEntry 6 }

ospfMultiProcessRouteAreaId OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Area ID of the path which links to nexthop.
         Note that, discard and external routes have no area option
         for the path. Always return 0.0.0.0."
    ::= { ospfMultiProcessRouteEntry 7 }

ospfMultiProcessRouteTransitArea OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    transitArea(1),
                    normalArea(2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "To display if the area is a transit area or not for the path.
         Note that, discard and external routes have no area option
         for the path. Always return normalArea(2)."
    ::= { ospfMultiProcessRouteEntry 8 }

ospfIfParamTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF OspfIfParamEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "The TOS metrics for  a  non-virtual  interface
           identified by the interface index."
       REFERENCE
          "OSPF Version 2, Appendix C.3  Router  interface
          parameters"
      ::= { ospfMgt 37 }

ospfIfParamEntry OBJECT-TYPE
        SYNTAX   OspfIfParamEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "A particular TOS metric for a non-virtual  in-
           terface identified by the interface index."
       REFERENCE
          "OSPF Version 2, Appendix C.3  Router  interface
          parameters"
      INDEX {ospfIfParamIfindex,
        ospfIfParamIpAddress,
        ospfIfParamTOS }
      ::= { ospfIfParamTable 1 }

OspfIfParamEntry ::=
    SEQUENCE {
        ospfIfParamIfindex
            Integer32,
        ospfIfParamIpAddress
            IpAddress,
        ospfIfParamTOS
            TOSType,
        ospfIfParamCost
            Metric,
        ospfIfParamStatus
            ValidStatus
              }


ospfIfParamIfindex OBJECT-TYPE
        SYNTAX   Integer32(1001..5093)
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "The Ifindex of this OSPF interface. On row
           creation,  this  can  be  derived  from the
           instance."
       ::= { ospfIfParamEntry 1 }


ospfIfParamIpAddress OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "The IP address of this OSPF interface.  On row
           creation,  this  can  be  derived  from the in-
           stance."
       ::= { ospfIfParamEntry 2 }

ospfIfParamTOS OBJECT-TYPE
        SYNTAX   TOSType
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "The type of service metric  being  referenced.
           On  row  creation, this can be derived from the
           instance."
       ::= { ospfIfParamEntry 3 }


ospfIfParamCost OBJECT-TYPE
        SYNTAX   Metric
        MAX-ACCESS   read-write
        STATUS   current
        DESCRIPTION
           "The metric of using this type  of  service  on
           this interface.  The default value of the TOS 0
           Metric is 10^8 / ifSpeed."
       ::= { ospfIfParamEntry 4 }

ospfIfParamStatus 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."
       ::= { ospfIfParamEntry 5 }


-- routeMgt Table
routeMultipath OBJECT-TYPE
    SYNTAX      Integer32 (1..8)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is the multipath numbers installed to FIB.
        The default value is 4."
    DEFVAL {4}
    ::={ routeMgt 3 }

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

--remoteLogServerInetTable

remoteLogServerInetTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RemoteLogServerInetEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table for storing the remote log server list."
        ::= { remoteLogMgt 7 }

remoteLogServerInetEntry OBJECT-TYPE
        SYNTAX      RemoteLogServerInetEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row for remoteLogServerInetTable."
        INDEX { remoteLogServerInetAddressType,
                remoteLogServerInetAddress}
        ::= { remoteLogServerInetTable 1 }

RemoteLogServerInetEntry ::= SEQUENCE
{
    remoteLogServerInetAddressType  InetAddressType,
    remoteLogServerInetAddress      InetAddress,
    remoteLogServerStatus           ValidStatus,
    remoteLogServerUdpPort          Integer32
}

remoteLogServerInetAddressType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION  "Indicates the type of address
                 denoted in remoteLogServerInetAddress type.
                 Only ipv4(1), ipv6(2) and ipv6z(4)
                 types are supported."

    ::= { remoteLogServerInetEntry 1 }

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

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

remoteLogServerUdpPort OBJECT-TYPE
         SYNTAX      Integer32 (1..65535)
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION  "The UDP port number of the remote log Server"
         ::= { remoteLogServerInetEntry 4 }

--
--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  accessible-for-notify
       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 }
vtyMgt               OBJECT IDENTIFIER ::= { lineMgt 3 }

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

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

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

consoleExecTimeout OBJECT-TYPE
        SYNTAX      Integer32 (0 | 60..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 | 1..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 | 1..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 }

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

-- telnetMgt

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 }

-- vtyMgt

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

vtyPasswordThreshold OBJECT-TYPE
    SYNTAX      Integer32 (0 | 1..120)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The number of failed logon attempts that may be made before the
                 system will not accept a further attempt to log on.
                 Setting to 0 means disabled."
    ::= { vtyMgt 2 }

vtyLoginResponseTimeout OBJECT-TYPE
    SYNTAX      Integer32(10..300)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Login response timeout setting."
    ::= { vtyMgt 3 }

vtyMaxSession OBJECT-TYPE
    SYNTAX      Integer32 (0..8)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The maximum number of allowed sessions."
    DEFVAL      { 8 }
    ::= { vtyMgt 4 }

vtySilentTime OBJECT-TYPE
    SYNTAX      Integer32 (0 | 1..65535)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The time the system waits before etablishing a new session
                 after the number of failed logins reaches the specified limit.
                 Setting to 0 means disabled."
    ::= { vtyMgt 5 }

--
-- sysTimeMgt
--

sntpMgt          OBJECT IDENTIFIER ::= { sysTimeMgt 1 }
ntpMgt           OBJECT IDENTIFIER ::= { sysTimeMgt 5 }

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-only
    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. IP addresses
                     must occupy contiguous indexes, starting from 1.
                     If a removed entry is not the last entry, the table
                     will be shifted to contiguous indexes automatically."
        ::= { 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,
    sntpServerInetAddressType       InetAddressType,
    sntpServerInetAddress           InetAddress,
    sntpServerStatus                ValidStatus
}


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

sntpServerInetAddressType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION  "Indicates the type of address
                 denoted in sntpServerInetAddress type.
                 Only ipv4(1), ipv6(2) and ipv6z(4)
                 types are supported."

    ::= { sntpServerEntry 4 }

sntpServerInetAddress OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The IP address of a time server."
    ::= { sntpServerEntry 5 }

sntpServerStatus 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."
         ::= { sntpServerEntry 6 }

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

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
        MAX-ACCESS  read-only
        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      ValidStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION "Setting this to valid(1) creates an entry.
                     Setting this to invalid(2) destroys an entry."
        ::= { 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 create a key by MD5
    And the max length is 32."
        ::= { ntpAuthKeyEntry 2 }

ntpAuthKeyStatus 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."
        ::= { ntpAuthKeyEntry 3 }

ntpServerHostTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NtpServerHostEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table for NTP server host with dns-name."
    ::= { ntpMgt 7 }

ntpServerHostEntry OBJECT-TYPE
    SYNTAX      NtpServerHostEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry for NTP server host with dns-name."
    INDEX       { ntpServerHostAssocId }
    ::= { ntpServerHostTable 1 }

NtpServerHostEntry ::= SEQUENCE
    {
        ntpServerHostAssocId         Integer32,
        ntpServerHostInetAddressType InetAddressType,
        ntpServerHostInetAddress     InetAddress,
        ntpServerHostVersion         Integer32,
        ntpServerHostKeyId           Integer32,
        ntpServerHostStatus          INTEGER
    }

ntpServerHostAssocId OBJECT-TYPE
    SYNTAX      Integer32 (1..50)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An integer value greater than 0 that uniquely
                identifies a NTP server is associated."
    ::= { ntpServerHostEntry 1 }

ntpServerHostInetAddressType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION  "Indicates the type of address
                 denoted in ntpServerHostInetAddress type.
                 Only ipv4(1), dns(16) types are supported."

    ::= { ntpServerHostEntry 2 }

ntpServerHostInetAddress OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The address of a time server."
    ::= { ntpServerHostEntry 3 }

ntpServerHostVersion OBJECT-TYPE
    SYNTAX      Integer32 (3)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "NTP version."
    ::= { ntpServerHostEntry 4 }

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

ntpServerHostStatus OBJECT-TYPE
    SYNTAX    INTEGER
              {
                  active(1),
                  create(4),
                  destroy(6)
              }
    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 three 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."
    ::= { ntpServerHostEntry 6 }

--
-- 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),
                 sftp(10)
                }
    MAX-ACCESS read-write
    STATUS     current
     DESCRIPTION "fileCopySrcOperType specifies where to copy from,
                  and fileCopyDestOperType specifies where to copy to.

                  Possible combinations of 'fileCopySrcOperType to
                  fileCopyDestOperType' and required parameters are listed in
                  the following table.

                  --------------+------------------+---------------------------------
                  Source        | Destination      | Required parameters
                  --------------+------------------+---------------------------------
                  file(1)       | file(1)          | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                +------------------+---------------------------------
                                | runningCfg(2)    | fileCopySrcFileName
                                +------------------+---------------------------------
                                | startUpCfg(3)    | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                +------------------+---------------------------------
                                | tftp(4)          | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyFileType
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                +------------------+---------------------------------
                                | unit(5)          | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyFileType
                                |                  | fileCopyUnitId
                                +------------------+---------------------------------
                                | ftp(7)           | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyFileType
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                                +------------------+---------------------------------
                                | sftp(10)         | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyFileType
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                  --------------+------------------+---------------------------------
                  runningCfg(2) | file(1)          | fileCopyDestFileName
                                +------------------+---------------------------------
                                | startUpCfg(3)    | fileCopyDestFileName
                                +------------------+---------------------------------
                                | tftp(4)          | fileCopyDestFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                +------------------+---------------------------------
                                | ftp(7)           | fileCopyDestFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                                +------------------+---------------------------------
                                | sftp(10)         | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyFileType
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                  --------------+------------------+---------------------------------
                  startUpCfg(3) | file(1)          | fileCopyDestFileName
                                +------------------+---------------------------------
                                | runningCfg(2)    | None.
                                +------------------+---------------------------------
                                | tftp(4)          | fileCopyDestFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                +------------------+---------------------------------
                                | ftp(7)           | fileCopyDestFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                                +------------------+---------------------------------
                                | sftp(10)         | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyFileType
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                  --------------+------------------+---------------------------------
                  tftp(4)       | file(1)          | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyFileType
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                +------------------+---------------------------------
                                | runningCfg(2)    | fileCopySrcFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                +------------------+---------------------------------
                                | startUpCfg(3)    | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                  --------------+------------------+---------------------------------
                  unit(5)       | file(1)          | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyFileType
                                |                  | fileCopyUnitId
                  --------------+------------------+---------------------------------
                  ftp(7)        | file(1)          | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyFileType
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                                +------------------+---------------------------------
                                | runningCfg(2)    | fileCopySrcFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                                +------------------+---------------------------------
                                | startUpCfg(3)    | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                  --------------+------------------+---------------------------------
                  sftp(10)      | file(1)          | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyFileType
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                                +------------------+---------------------------------
                                | runningCfg(2)    | fileCopySrcFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                                +------------------+---------------------------------
                                | startUpCfg(3)    | fileCopySrcFileName
                                |                  | fileCopyDestFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                                +------------------+---------------------------------
                                | addRunningCfg(15)| fileCopySrcFileName
                                |                  | fileCopyServerInetAddressType
                                |                  | fileCopyServerInetAddress
                                |                  | fileCopyServerUserName
                                |                  | fileCopyServerPassword
                  --------------+------------------+---------------------------------"
     ::= { 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)
                }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION "See the description for fileCopySrcOperType."
    ::= { 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) or startupCfg(3),
        this variable can be ignored."
    ::= { fileCopyMgt 4 }

fileCopyFileType  OBJECT-TYPE
    SYNTAX     INTEGER {
                  opcode(1),
                  config(2),
                  bootRom(3),
                  loader(5)
               }
    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)."
    ::= { fileCopyMgt 5 }

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 "Set 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),
--
-- ES4612-20-00499, 2008-12-09, support FTPS
--
                 fileCopyFileNotFound(41),
                 fileCopyServerPermissionDenied(42),
                 fileCopyStorageFull(43),
                 fileCopyConnectError(44),
                 fileCopyServerNotInService(45),
                 fileCopyDataConnectionOpenError(46),
                 fileCopyLogInError(47),
                 fileCopyInvalidFileName(48),
                 fileCopyServerNotAcceptProvidedCiphers(49),
                 fileCopyServerNotSupportFtps(50),
                 fileCopyFileUnavailable(51),
                 fileCopyUnclassifiedError(52),
                 fileCopyTimeout(53),
                 fileCopyProjectIdError(54),
                 fileCopyFileNumExceed(55),
                 fileCopySameVersion(56)
           }
    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. The listed values are
        identical to fileAutoDownloadResultStatus."
    ::= { fileCopyMgt 9 }

fileCopyServerInetAddressType OBJECT-TYPE
     SYNTAX      InetAddressType
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "Internet address type of the remote server. Only ipv4(1)
                  type is supported."
     ::= { fileCopyMgt 20 }

fileCopyServerInetAddress OBJECT-TYPE
     SYNTAX      InetAddress
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "Internet address of the remote server."
     ::= { fileCopyMgt 21 }

fileCopyServerUserName OBJECT-TYPE
     SYNTAX      DisplayString (SIZE(0..127))
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "Login user name for the remote server. When this variable is
                  empty, the system will use 'anonymous' as user name to log in
                  to the remote server."
     ::= { fileCopyMgt 22 }

fileCopyServerPassword OBJECT-TYPE
     SYNTAX      DisplayString (SIZE(0..127))
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION "Login password for the remote server. This variable can only
                  be written. When this variable is read, it always returns a
                  zero-length string."
     ::= { fileCopyMgt 23 }

--
-- This mangement performs the display and delete operation.
--

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

    ::= { fileInfoMgt 1 }

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

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

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

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

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

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

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

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

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

--fileAutoDownloadResultTable

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

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

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

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

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

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

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

fileAutoDownloadResultStatus OBJECT-TYPE
    SYNTAX  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),
--
-- ES4612-20-00499, 2008-12-09, support FTPS
--
                 fileCopyFileNotFound(41),
                 fileCopyServerPermissionDenied(42),
                 fileCopyStorageFull(43),
                 fileCopyConnectError(44),
                 fileCopyServerNotInService(45),
                 fileCopyDataConnectionOpenError(46),
                 fileCopyLogInError(47),
                 fileCopyInvalidFileName(48),
                 fileCopyServerNotAcceptProvidedCiphers(49),
                 fileCopyServerNotSupportFtps(50),
                 fileCopyFileUnavailable(51),
                 fileCopyUnclassifiedError(52),
                 fileCopyTimeout(53),
                 fileCopyProjectIdError(54),
                 fileCopyFileNumExceed(55),
                 fileCopySameVersion(56)
           }
    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.
                The listed values are identical to fileCopyStatus."
    ::= { fileAutoDownloadResultEntry 3 }

--
--dnsMgt
--

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

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

--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           Integer32,
        dnsCacheFlag            Integer32,
        dnsCacheType            INTEGER,
        dnsCacheTtl             Integer32,
        dnsCacheDomain                  DisplayString,
        dnsCacheInetAddressType         InetAddressType,
        dnsCacheInetAddress             InetAddress
    }

dnsCacheIndex OBJECT-TYPE
    SYNTAX       Integer32(1280..6400)
    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 }

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 }

dnsCacheInetAddressType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION  "Indicates the type of address
                 denoted in dnsHostAddrInetAddress type.
                 Only ipv4(1) and ipv6(2) types are supported."
    ::= { dnsCacheEntry 7 }

dnsCacheInetAddress OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "IP address of DNS cache item."
    ::= { dnsCacheEntry 8 }

dnsHostTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DnsHostEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The conceptual table of dnsHostEntry.
                 The dnsHostTable and dnsHostAddrTable are used to define
                 static host name-to-address mapping."
    ::= { dnsMgt 8 }

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

DnsHostEntry ::= SEQUENCE
    {
        dnsHostIndex          Integer32,
        dnsHostName           DisplayString,
        dnsHostStatus         ValidStatus
    }

dnsHostIndex OBJECT-TYPE
    SYNTAX       Integer32(1..16)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The entry sequence number."
    ::= { dnsHostEntry 1 }

dnsHostName OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(1..255))
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION "Host name."
    ::= { dnsHostEntry 2 }

dnsHostStatus 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."
    ::= { dnsHostEntry 3 }

--dnsHostAddrTable
dnsHostAddrTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DnsHostAddrEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The conceptual table of dnsHostAddrEntry.
                 The dnsHostTable and dnsHostAddrTable are used to define
                 static host name-to-address mapping."
    ::= { dnsMgt 9 }

dnsHostAddrEntry OBJECT-TYPE
    SYNTAX       DnsHostAddrEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "A conceptual row for the dnsHostAddrTable."
    INDEX       { dnsHostIndex, dnsHostAddrInetAddressType,
                  IMPLIED dnsHostAddrInetAddress}
    ::= { dnsHostAddrTable 1 }

DnsHostAddrEntry ::= SEQUENCE
{
        dnsHostAddrInetAddressType    InetAddressType,
        dnsHostAddrInetAddress        InetAddress,
        dnsHostAddrStatus             ValidStatus
}

dnsHostAddrInetAddressType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Indicates the type of address
                 denoted in dnsHostAddrInetAddress type.
                 Only ipv4(1), ipv6(2) and ipv6z(4) type are supported."
    ::= { dnsHostAddrEntry 1 }

dnsHostAddrInetAddress OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Specifies the address of the host.
                 Adding one address to two different hosts is not allowed."
    ::= { dnsHostAddrEntry 2 }

dnsHostAddrStatus 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."
    ::= { dnsHostAddrEntry 3 }

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

dnsDomainListEntry OBJECT-TYPE
    SYNTAX       DnsDomainListEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "A conceptual row for the dnsDomainListTable."
    INDEX       { dnsDomainListIndex }
    ::= { dnsDomainListTable 1 }

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

dnsDomainListIndex OBJECT-TYPE
    SYNTAX       Integer32(1..3)
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "The entry sequence number."
    ::= { dnsDomainListEntry 1 }

dnsDomainListName OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(1..255))
    MAX-ACCESS   read-create
    STATUS       current
    DESCRIPTION "Domain name."
    ::= { dnsDomainListEntry 2 }

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

dnsNameServerInetTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DnsNameServerInetEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "Specifies the address of one or more name servers to use for
                 name and address resolution."
    ::= { dnsMgt 11 }

dnsNameServerInetEntry OBJECT-TYPE
    SYNTAX       DnsNameServerInetEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "A conceptual row for dnsNameServerInetTable."
    INDEX       { dnsNameServerInetAddressType, IMPLIED dnsNameServerInetAddress }
    ::= { dnsNameServerInetTable 1 }

DnsNameServerInetEntry ::= SEQUENCE
{
    dnsNameServerInetAddressType    InetAddressType,
    dnsNameServerInetAddress        InetAddress,
    dnsNameServerInetStatus         ValidStatus
}

dnsNameServerInetAddressType OBJECT-TYPE
    SYNTAX       InetAddressType
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION  "Type of address. Only ipv4(1), ipv6(2) and ipv6z(4) types are
                  supported."
    ::= { dnsNameServerInetEntry 1 }

dnsNameServerInetAddress OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION "IP address of name server."
    ::= { dnsNameServerInetEntry 2 }

dnsNameServerInetStatus 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."
    ::= { dnsNameServerInetEntry 3 }

--
-- poeMgt
--
-- PSE Objects
pethPseMainExtTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PethPseMainExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of objects that display and control attributes of the main
        power source in a PSE device. Ethernet switches are one example of
        boxes that would support these objects. Values of all read-write
        objects in this table are persistent at restart/reboot."
    REFERENCE   "IEEE 802.3af, POWER-ETHERNET-MIB.pethMainPseTable"
    ::= { poeMgt 5 }

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

PethPseMainExtEntry ::= SEQUENCE
{
    pethPseMainExtDllPowerType     INTEGER,
    pethPseMainExtDllPowerSource   INTEGER
}

pethPseMainExtDllPowerType OBJECT-TYPE
    SYNTAX      INTEGER
    {
        type2Pse(0),
        type1Pse(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates whether the local system is a PSE or a PD
        and whether it is Type 1 or Type 2."
    REFERENCE
       "IEEE Std 802.3at Section 30.9.1.1.12
        aDLLPowerType"
    ::= { pethPseMainExtEntry 1 }

pethPseMainExtDllPowerSource OBJECT-TYPE
    SYNTAX      INTEGER
    {
        unknown(0),
        primary(1),
        backup(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The power sources of the local system."
    REFERENCE
        "IEEE Std 802.3at Section 30.9.1.1.14
        aDLLPowerSource"
    ::= { pethPseMainExtEntry 2 }

pethPsePortExtTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PethPsePortExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of objects that display and control the power characteristics
        of power Ethernet ports on a Power Source Entity (PSE) device.
        This group will be implemented in managed power Ethernet switches and
        mid-span devices. Values of all read-write objects in this table are
        persistent at restart/reboot."
    REFERENCE   "IEEE 802.3af, POWER-ETHERNET-MIB.pethPsePortTable"
    ::= { poeMgt 6 }

pethPsePortExtEntry OBJECT-TYPE
    SYNTAX      PethPsePortExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A set of objects that display and control the power characteristics of
        a power Ethernet PSE port."
    AUGMENTS    { pethPsePortEntry }
    ::= { pethPsePortExtTable 1 }

PethPsePortExtEntry ::= SEQUENCE
{
    pethPsePortExtMirroredDllPdRequestedPowerValue          INTEGER,
    pethPsePortExtDllPseAllocatedPowerValue                 INTEGER,
    pethPsePortTimeRange                                    DisplayString,
    pethPsePortTimeRangeStatus                              INTEGER,
    pethPsePortExtMaximumPowerValue                         INTEGER,
    pethPsePortExtUsedPowerValue                            INTEGER
}

pethPsePortExtMirroredDllPdRequestedPowerValue OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Returns the PD requested power value received from the remote system.
        The definition and encoding of PD requested power value is the same as
        described in pethPdPortDllPdRequestedPowerValue."
    REFERENCE
        "IEEE Std 802.3at Section 30.9.1.1.18
        aMirroredDLLPDRequestedPowerValue"
    ::= { pethPsePortExtEntry 4 }

pethPsePortExtDllPseAllocatedPowerValue OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Returns the PSE allocated power value that the local system has
        currently allocated to the remote system. The PSE allocated power value
        is the maximum input average power that the PSE wants the PD to ever
        draw under this allocation if it is accepted. The PSE allocated power
        value is encoded according to Equation (33-20), where X is the decimal
        value of pethPsePortExtDllPseAllocatedPowerValue."
    REFERENCE
        "IEEE Std 802.3at Section 30.9.1.1.20
        aDLLPSEAllocatedPowerValue"
    ::= { pethPsePortExtEntry 6 }

pethPsePortTimeRange OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..16))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The name of the time range entry bound to the port.
                     This object should be equal to one of the timeRangeName
                     objects in timeRangeTable. The object works when
                     pethPsePortAdminEnable is enabled(1)."
        ::= { pethPsePortExtEntry 11 }

pethPsePortTimeRangeStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        none(0),
                        active(1),
                        inactive(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "If no time range entry is bound to the port, value of this
                     object is none(0). If PoE time range of the port is active,
                     value of this object is active(1). If PoE time range of
                     the port is inactive, value of this object is inactive(2)."
        ::= { pethPsePortExtEntry 12 }

pethPsePortExtMaximumPowerValue OBJECT-TYPE
    SYNTAX      INTEGER
    UNITS       "milliwatts"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
        "Returns the user-configurable maximum power value that
        the local system has currently allocated to the remote system.
        The unit of this variable is milliwatts."
    ::= { pethPsePortExtEntry 13 }

pethPsePortExtUsedPowerValue OBJECT-TYPE
    SYNTAX      INTEGER
    UNITS       "milliwatts"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "Returns the currently used power value that
        the local system is delivering to the remote system.
        The unit of this variable is milliwatts."
    ::= { pethPsePortExtEntry 14 }


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

fileAutoUpgradeOpCodeFileName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..127))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The file name of the image file."
    ::= { fileAutoUpgradeMgt 3 }

--
-- 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      Integer32,
    mcastStormStatus       EnabledStatus,
    mcastStormPktRate      Integer32
}

mcastStormIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port and the trunk (including trunk members) interface of
                     the portTable. The interface identified by a particular value
                     of this index is the same interface as identified by the same
                     value of ifIndex in the IF-MIB."
        ::= { 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. The range is 500 to 14881000."
        ::= { 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      Integer32,
    bcastStormStatus       EnabledStatus,
    bcastStormPktRate      Integer32
}

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

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

bcastStormPktRate OBJECT-TYPE
        SYNTAX      Integer32
        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. The range is 500 to 14881000."
        ::= { 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 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    Integer32,
    unknownUcastStormStatus     EnabledStatus,
    unknownUcastStormPktRate    Integer32
}

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

unknownUcastStormPktRate OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates the packet rate(packet per second) of the storm protection.
                 The range is 500 to 14881000."
    ::= { unknownUcastStormEntry 4 }

--
-- Auto Traffic Control
--
atcMgt OBJECT IDENTIFIER ::= { stormMgt 5 }

atcBcastStormTcApplyTime OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates the timing when the ATC (Auto
                 Traffic Control) is activated after the broadcast traffic
                 being detected as the storm."
    ::= { atcMgt 1 }

atcBcastStormTcReleaseTime OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates the timing when the ATC is released
                 after the broadcast traffic being detected as no storm."
    ::= { atcMgt 2 }

atcBcastStormTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AtcBcastStormEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table contains the Auto Traffic Control configuration
                 and the status for broadcast traffic."
    ::= { atcMgt 3 }

atcBcastStormEntry OBJECT-TYPE
    SYNTAX      AtcBcastStormEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The conceptual row of the table."
    INDEX       { atcBcastStormIfIndex }
    ::= { atcBcastStormTable 1 }

AtcBcastStormEntry ::= SEQUENCE
{
    atcBcastStormIfIndex                Integer32,
    atcBcastStormEnable                 EnabledStatus,
    atcBcastStormAutoRelease            EnabledStatus,
    atcBcastStormSampleType             INTEGER,
    atcBcastStormCurrentTrafficRate     Integer32,
    atcBcastStormAlarmFireThreshold     Integer32,
    atcBcastStormAlarmClearThreshold    Integer32,
    atcBcastStormTcAction               INTEGER,
    atcBcastStormAlarmFireTrapStatus    EnabledStatus,
    atcBcastStormAlarmClearTrapStatus   EnabledStatus,
    atcBcastStormTcApplyTrapStatus      EnabledStatus,
    atcBcastStormTcReleaseTrapStatus    EnabledStatus
}

atcBcastStormIfIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The specified port on which the ATC is applied."
    ::= { atcBcastStormEntry 1 }

atcBcastStormEnable OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the ATC of the broadcast
                 traffic is applied."
    ::= { atcBcastStormEntry 2 }

atcBcastStormAutoRelease OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the Auto-Release feature
                 of ATC is applied."
    ::= { atcBcastStormEntry 3 }

atcBcastStormSampleType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    packet-rate(1),
                    octet-rate(2),
                    percent(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates the unit of traffic rate and threshold."
    ::= { atcBcastStormEntry 4 }
atcBcastStormCurrentTrafficRate OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The parameter indicates the current broadcast traffic rate."
    ::= { atcBcastStormEntry 5 }

atcBcastStormAlarmFireThreshold OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates that if the current broadcast traffic rate
                exceeds the specified threshold, it will be treated as the storm."
    ::= { atcBcastStormEntry 6 }

atcBcastStormAlarmClearThreshold OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates that if the current broadcast traffic
                 falls below the specified threshold it will be treated as
                 normal traffic."
    ::= { atcBcastStormEntry 7 }

atcBcastStormTcAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    rate-control(1),
                    shutdown(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates the protecting action which
                 ATC will apply to the specified port."
    ::= { atcBcastStormEntry 8 }

atcBcastStormAlarmFireTrapStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the trap has
                 to be sent when the broadcast storm has been detected."
    ::= { atcBcastStormEntry 9 }

atcBcastStormAlarmClearTrapStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the trap has
                 to be sent when the broadcast storm has been detected as
                 normal traffic."
    ::= { atcBcastStormEntry 10 }

atcBcastStormTcApplyTrapStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the trap has to be sent when
                 ATC is activated."
    ::= { atcBcastStormEntry 11 }

atcBcastStormTcReleaseTrapStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the trap has to be sent when
                 ATC is released."
    ::= { atcBcastStormEntry 12 }

atcMcastStormTcApplyTime OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates the timing when ATC (Auto
                 Traffic Control) is activated after the broadcast traffic
                 being detected as the storm."
    ::= { atcMgt 4 }

atcMcastStormTcReleaseTime OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates the timing when ATC is released
                 after the broadcast traffic being detected as no storm."
    ::= { atcMgt 5 }

atcMcastStormTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AtcMcastStormEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The table contains the Auto Traffic Control configuration
                 and the status for mulicast traffic."
    ::= { atcMgt 6 }

atcMcastStormEntry OBJECT-TYPE
    SYNTAX      AtcMcastStormEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The conceptual row of the table."
    INDEX       { atcMcastStormIfIndex }
    ::= { atcMcastStormTable 1 }

AtcMcastStormEntry ::= SEQUENCE
{
    atcMcastStormIfIndex                Integer32,
    atcMcastStormEnable                 EnabledStatus,
    atcMcastStormAutoRelease            EnabledStatus,
    atcMcastStormSampleType             INTEGER,
    atcMcastStormCurrentTrafficRate     Integer32,
    atcMcastStormAlarmFireThreshold         Integer32,
    atcMcastStormAlarmClearThreshold         Integer32,
    atcMcastStormTcAction               INTEGER,
    atcMcastStormAlarmFireTrapStatus        EnabledStatus,
    atcMcastStormAlarmClearTrapStatus        EnabledStatus,
    atcMcastStormTcApplyTrapStatus         EnabledStatus,
    atcMcastStormTcReleaseTrapStatus    EnabledStatus
}

atcMcastStormIfIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "The specified port on which ATC is applied."
    ::= { atcMcastStormEntry 1 }

atcMcastStormEnable OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether ATC of the mulicast
                 traffic is applied."
    ::= { atcMcastStormEntry 2 }

atcMcastStormAutoRelease OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the Auto-Release feature
                 of ATC is applied."
    ::= { atcMcastStormEntry 3 }

atcMcastStormSampleType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    packet-rate(1),
                    octet-rate(2),
                    percent(3)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates the unit of traffic rate and threshold."
    ::= { atcMcastStormEntry 4 }
atcMcastStormCurrentTrafficRate OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The parameter indicates the current mulicast traffic rate."
    ::= { atcMcastStormEntry 5 }

atcMcastStormAlarmFireThreshold OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates that if the current mulicast traffic rate
                exceeds the specified threshold, it will be treated as the storm."
    ::= { atcMcastStormEntry 6 }

atcMcastStormAlarmClearThreshold OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates that if the current mulicast traffic
                 falls below the specified threshold it will be treated as
                 normal traffic."
    ::= { atcMcastStormEntry 7 }

atcMcastStormTcAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    rate-control(1),
                    shutdown(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates the protecting action which
                 ATC will apply to the specified port."
    ::= { atcMcastStormEntry 8 }

atcMcastStormAlarmFireTrapStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the trap has
                 to be sent when the mulicast storm has been detected."
    ::= { atcMcastStormEntry 9 }

atcMcastStormAlarmClearTrapStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the trap has
                 to be sent when the mulicast storm has been detected as
                 normal traffic."
    ::= { atcMcastStormEntry 10 }

atcMcastStormTcApplyTrapStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the trap has to be sent when
                 ATC is activated."
    ::= { atcMcastStormEntry 11 }

atcMcastStormTcReleaseTrapStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "The parameter indicates whether the trap has to be sent when
                 ATC is released."
    ::= { atcMcastStormEntry 12 }

--
-- sysResourceMgt
--
-- monitor the configuration changes for the product

        cpuStatus               OBJECT IDENTIFIER ::= { sysResourceMgt 2 }
        memoryStatus            OBJECT IDENTIFIER ::= { sysResourceMgt 3 }

-- cpuStatus

         cpuCurrentUti            OBJECT-TYPE
            SYNTAX      Integer32 (1..100)
            UNITS       "%"
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "The current CPU utilization in percent in the past 5 seconds."
            ::= { cpuStatus 1 }

        cpuStatMaxUti            OBJECT-TYPE
            SYNTAX      Integer32 (1..100)
            UNITS       "%"
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "The maximum CPU utilization in percent in the past 60 seconds."
            ::= { cpuStatus 2 }

        cpuStatAvgUti            OBJECT-TYPE
            SYNTAX      Integer32 (1..100)
            UNITS       "%"
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "The average CPU utilization in percent in the past 60 seconds."
            ::= { cpuStatus 3 }

        cpuPeakTime            OBJECT-TYPE
            SYNTAX      DisplayString
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "The time when the CPU utilization reaches cpuUtiRisingThreshold
                 in the format of 'Mmm _d hh:mm:ss yyyy' as defined
                 in sysCurrentTime of this MIB."
            ::= { cpuStatus 4 }

        cpuPeakDuration       OBJECT-TYPE
            SYNTAX      Integer32
            UNITS       "second"
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "The duration from when CPU utilization reaches cpuUtiRisingThreshold
                 to reaching cpuUtiFallingThreshold, in seconds."
            ::= { cpuStatus 5 }

        cpuUtiRisingThreshold            OBJECT-TYPE
            SYNTAX      Integer32 (1..100)
            UNITS       "%"
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "The rising threshold of cpu utilization."
            ::= { cpuStatus 6 }

        cpuUtiFallingThreshold           OBJECT-TYPE
            SYNTAX      Integer32 (1..100)
            UNITS       "%"
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "The falling threshold of cpu utilization."
            ::= { cpuStatus 7 }

-- memoryStatus

         memoryTotal    OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "The total amount of the memory in kilobytes."
            ::= { memoryStatus 1 }

          memoryAllocated       OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "The amount of the memory allocated in kilobytes."
            ::= { memoryStatus 2 }

          memoryFreed    OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "The amount of the free memory in kilobytes."
            ::= { memoryStatus 3}

         memoryFreedInPercent         OBJECT-TYPE
            SYNTAX      Integer32 (1..100)
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "the memory freed in proportion to the total memory."
            ::= { memoryStatus 4 }

         memoryUtiRisingThreshold            OBJECT-TYPE
            SYNTAX      Integer32 (1..100)
            UNITS       "%"
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                 "The rising threshold of the memory utilization."
            ::= { memoryStatus 5 }

         memoryUtiFallingThreshold            OBJECT-TYPE
            SYNTAX      Integer32 (1..100)
            UNITS       "%"
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                 "The falling threshold of the memory utilization."
            ::= { memoryStatus 6 }

-- taskCpuTable

taskCpuTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF TaskCpuEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Table of descriptive and status information describing the
             CPU utilization of each task."
        ::= { sysResourceMgt 4 }

taskCpuEntry OBJECT-TYPE
        SYNTAX      TaskCpuEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An entry in the table, describing the CPU utilization of one
             task."
        INDEX       { taskCpuName }
        ::= { taskCpuTable 1 }

TaskCpuEntry ::= SEQUENCE
{
        taskCpuName             DisplayString,
        taskCpuCurrentUti       Integer32,
        taskCpuStatMaxUti       Integer32,
        taskCpuStatAvgUti       Integer32
}

taskCpuName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..15))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The name of the task."
        ::= { taskCpuEntry 1 }

taskCpuCurrentUti OBJECT-TYPE
        SYNTAX      Integer32 (1..10000)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The current CPU utilization in hundredths of a percent in the
             past 5 seconds."
        ::= { taskCpuEntry 2 }

taskCpuStatMaxUti OBJECT-TYPE
        SYNTAX      Integer32 (1..10000)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The maximum CPU utilization in hundredths of a percent in the
             past 60 seconds."
        ::= { taskCpuEntry 3 }

taskCpuStatAvgUti OBJECT-TYPE
        SYNTAX      Integer32 (1..10000)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The average CPU utilization in hundredths of a percent in the
             past 60 seconds."
        ::= { taskCpuEntry 4 }

-- cpuGuard

cpuGuard                OBJECT IDENTIFIER ::= { sysResourceMgt 5 }

cpuGuardStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The CPU guard status."
        ::= { cpuGuard 1 }

cpuGuardHighWatermark OBJECT-TYPE
        SYNTAX      Integer32 (20..100)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The CPU guard high-watermark."
        ::= { cpuGuard 2 }

cpuGuardLowWatermark OBJECT-TYPE
        SYNTAX      Integer32 (20..100)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The CPU guard low-watermark."
        ::= { cpuGuard 3 }

cpuGuardMaxThreshold OBJECT-TYPE
        SYNTAX      Integer32 (50..500)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The CPU guard maximum threshold."
        ::= { cpuGuard 4 }

cpuGuardMinThreshold     OBJECT-TYPE
        SYNTAX      Integer32 (50..500)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The CPU guard minimum threshold."
        ::= { cpuGuard 5 }

cpuGuardTrapStatus       OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The CPU guard trap status."
        ::= { cpuGuard 6 }

cpuGuardCurrentThreshold OBJECT-TYPE
        SYNTAX      Integer32 (50..500)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The current CPU guard threshold."
        ::= { cpuGuard 7 }

--
--mvrMgt
--


mvrForwardingPriority OBJECT-TYPE
        SYNTAX  Integer32(0..7|65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Configure MVR multicast stream forwarding priority.
                     If value is 65535, it means the priority is disabled."
        ::= { mvrMgt 18 }

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

mvrDomainEntry OBJECT-TYPE
       SYNTAX      MvrDomainEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR Domain."
       INDEX  {mvrDomainId}
       ::= { mvrDomainTable 1 }

MvrDomainEntry ::= SEQUENCE
{
    mvrDomainId                  Integer32,
    mvrDomainStatus              EnabledStatus,
    mvrDomainRunningStatus       INTEGER,
    mvrDomainVlanId              VlanIndex,
    mvrDomainUpstreamSourceIp    IpAddress,
    mvrDomainClearDynamicGroups  TruthValue
}

mvrDomainId OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Speicfies which MVR domain to configure."
        ::= { mvrDomainEntry 1 }

mvrDomainStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable MVR(Multicast VLAN
                     Registration) on the device."
        ::= { mvrDomainEntry 2}

mvrDomainRunningStatus OBJECT-TYPE
        SYNTAX      INTEGER
        {
            active(1),
            inactive(2)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Describes the running status of MVR (Multicast VLAN Registration)
                     to the switch. A value of active(1) indicates that all necessary
                     conditions in the MVR environment are satisfied. A value of inactive(2)
                     indicates that some necessary conditions in the MVR environment are
                     not satisfied."
        ::= { mvrDomainEntry 3}

mvrDomainVlanId OBJECT-TYPE
        SYNTAX      VlanIndex
        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."
        ::= { mvrDomainEntry 4 }


mvrDomainUpstreamSourceIp OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set the source IP address which MVR will carry in IP header when sending IGMP packet to upstream router
                     through MVR source port."
        ::= { mvrDomainEntry 5 }

mvrDomainClearDynamicGroups   OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Clear dynamic learned groups"
        ::= { mvrDomainEntry 6}

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

mvrDomainPortEntry OBJECT-TYPE
       SYNTAX      MvrDomainPortEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR port."
       INDEX  {
               mvrPortDomainId,
               mvrDomainIfIndex
              }
       ::= { mvrDomainPortTable 1 }

MvrDomainPortEntry ::= SEQUENCE
{
    mvrPortDomainId              Integer32,
    mvrDomainIfIndex             InterfaceIndex,
    mvrDomainPortType            INTEGER,
    mvrDomainPortImmediateLeave  EnabledStatus,
    mvrDomainPortActive          INTEGER,
    mvrDomainPortImmediateLeaveByHostIp    EnabledStatus

}

mvrPortDomainId OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Speicfies which MVR domain to configure."
        ::= { mvrDomainPortEntry 1 }

mvrDomainIfIndex   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."
        ::= { mvrDomainPortEntry 2 }

mvrDomainPortType   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 none(0)."
        ::= { mvrDomainPortEntry 3 }

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

mvrDomainPortActive   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)."
        ::= { mvrDomainPortEntry 5 }

mvrDomainPortImmediateLeaveByHostIp   OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To enable immediate leave by host IP on MVR port."
        ::= { mvrDomainPortEntry 6 }

mvrProfileTable  OBJECT IDENTIFIER ::= {mvrMgt 22 }


mvrProfileCtlTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF MvrProfileCtlEntry
        MAX-ACCESS  not-accessible
        STATUS      current
       DESCRIPTION "The entry for configuring the MVR profile."
      ::= { mvrProfileTable 1 }

MvrProfileCtlEntry ::= SEQUENCE
{
    mvrProfileCtlId            Integer32,
    mvrProfileName             OCTET STRING,
    mvrProfileCtlAction        INTEGER
}


mvrProfileCtlEntry OBJECT-TYPE
       SYNTAX      MvrProfileCtlEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR profile."
       INDEX  {mvrProfileCtlId}
       ::= { mvrProfileCtlTable 1 }


mvrProfileCtlId   OBJECT-TYPE
        SYNTAX      Integer32 (0..31)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR profile"
        ::= { mvrProfileCtlEntry 1 }

mvrProfileName   OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "MVR Profile name which identifies a group range.

                     NOTE: All mvrProfileCtlEntry use the same buffer to temporarily store the mvrProfileName before
                     mvrProfileCtlAction really creates the profile."
        ::= { mvrProfileCtlEntry 2 }

mvrProfileCtlAction   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            noAction(0),
            create(1),
            destory(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this object to create(2) to create profile. Set this object
                     to destory(3) to delete profile. When
                     the action is complete, this object becomes noAction(1)."
        ::= { mvrProfileCtlEntry 5 }

mvrProfileGroupCtlTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF MvrProfileGroupCtlEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR group ranges for MVR profile."
       ::= { mvrProfileTable 2 }

MvrProfileGroupCtlEntry ::= SEQUENCE
{
    mvrProfileGropuCtlProfileId     Integer32,
    mvrProfileGroupCtlId            Integer32,
    mvrProfileGroupStartIPAddress   IpAddress,
    mvrProfileGroupEndIPAddress     IpAddress,
    mvrProfileGroupCtlAction        INTEGER
}

mvrProfileGroupCtlEntry OBJECT-TYPE
       SYNTAX      MvrProfileGroupCtlEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the group ranges on MVR profile."
       INDEX  {mvrProfileGropuCtlProfileId, mvrProfileGroupCtlId}
       ::= { mvrProfileGroupCtlTable 1 }

mvrProfileGropuCtlProfileId   OBJECT-TYPE
        SYNTAX      Integer32 (0..31)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR profile"
        ::= {mvrProfileGroupCtlEntry 1}


mvrProfileGroupCtlId   OBJECT-TYPE
        SYNTAX      Integer32 (0..63)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which group range in MVR profile"
        ::= { mvrProfileGroupCtlEntry 2 }

mvrProfileGroupStartIPAddress   OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "MVR Profile range start IP address.

                     NOTE: All mvrProfileGroupCtlEntry use the same buffer to temporarily store the mvrProfileStartIPAddress before
                     mvrProfileGroupCtlAction really creating the group range on profile."
        ::= { mvrProfileGroupCtlEntry 3}

mvrProfileGroupEndIPAddress   OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "MVR Profile range end IP address.

                     NOTE: All mvrProfileGroupCtlEntry use the same buffer to temporarily store the mvrProfileEndIPAddress before
                     mvrProfileGroupCtlAction really creating the group range on profile."
        ::= { mvrProfileGroupCtlEntry 4 }

mvrProfileGroupCtlAction   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            noAction(0),
            create(1),
            destory(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this object to create(2) to create group range. Set this object
                     to destory(3) to delete group range. When
                     the action is completed, this object becomes noAction(1).

                     NOTE: If mvrProfileGroupStartIPAddress and mvrProfileGroupEndIPAddress
                           pattern already exist on other mvrProfileGroupCtlId, it won't be  stored.
                     "
        ::= { mvrProfileGroupCtlEntry 5 }


mvrDomainAssociatedProfileTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF MvrDomainAssociatedProfileEntry
       MAX-ACCESS  not-accessible
       STATUS      current
        DESCRIPTION "Configure MVR domain associate which MVR profile"
        ::= {mvrMgt 23 }

mvrDomainAssociatedProfileEntry OBJECT-TYPE
       SYNTAX      MvrDomainAssociatedProfileEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring MVR domain associate MVR profile."
       INDEX  {
              mvrProfileDomainId,
              mvrProfileId
              }
       ::= { mvrDomainAssociatedProfileTable 1 }

MvrDomainAssociatedProfileEntry ::= SEQUENCE
{
    mvrProfileDomainId          Integer32,
    mvrProfileId                Integer32,
    mvrProfileAction            INTEGER
}

mvrProfileDomainId   OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR profile"
        ::= { mvrDomainAssociatedProfileEntry 1 }

mvrProfileId   OBJECT-TYPE
        SYNTAX      Integer32 (0..63)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR profile"
        ::= { mvrDomainAssociatedProfileEntry 2 }

mvrProfileAction   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            noAction(0),
            create(1),
            destory(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this object to create(1) to associate profile. Set this object
                     to destory(2) to deassociate profile. When
                     the action is complete, this object becomes noAction(0)."
        ::= { mvrDomainAssociatedProfileEntry 3 }

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

mvrDomainGroupStaticEntry OBJECT-TYPE
       SYNTAX      MvrDomainGroupStaticEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the static members of the
                    MVR group."
       INDEX  {
               mvrGroupStaticDomainId,
               mvrDomainGroupStaticAddress,
               mvrDomainGroupStaticReceiverVlan}
       ::= { mvrDomainGroupStaticTable 1 }

MvrDomainGroupStaticEntry ::= SEQUENCE
{
    mvrGroupStaticDomainId           Integer32,
    mvrDomainGroupStaticAddress      IpAddress,
    mvrDomainGroupStaticReceiverVlan Integer32,
    mvrDomainGroupStaticPorts        PortList

}

mvrGroupStaticDomainId   OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR profile"
        ::= { mvrDomainGroupStaticEntry 1 }

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

mvrDomainGroupStaticReceiverVlan   OBJECT-TYPE
        SYNTAX      Integer32(1..4093)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The receiver vlan of this MVR group"
        ::= { mvrDomainGroupStaticEntry 3 }

mvrDomainGroupStaticPorts  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."
        ::= { mvrDomainGroupStaticEntry 4 }


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

mvrDomainGroupCurrentEntry OBJECT-TYPE
       SYNTAX      MvrDomainGroupCurrentEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for the current members of the MVR group."
       INDEX  {
               mvrGroupCurrenDomainId,
               mvrDomainGroupCurrentAddress,
               mvrDomainGroupCurrentReceiverVlan
              }
       ::= { mvrDomainGroupCurrentTable 1 }

MvrDomainGroupCurrentEntry ::= SEQUENCE
{
    mvrGroupCurrenDomainId              Integer32,
    mvrDomainGroupCurrentAddress        IpAddress,
    mvrDomainGroupCurrentReceiverVlan   Integer32,
    mvrDomainGroupCurrentPorts          PortList
}

mvrGroupCurrenDomainId   OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR profile"
        ::= { mvrDomainGroupCurrentEntry 1 }

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

mvrDomainGroupCurrentReceiverVlan   OBJECT-TYPE
        SYNTAX      Integer32(1..4093)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the receiver VLAN of the MVR group."
        ::= { mvrDomainGroupCurrentEntry 3 }

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

mvrProxySwitching OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable MVR(Multicast VLAN
                     Registration) proxy switching ability on the device. "
        ::= { mvrMgt 27 }

mvrRobustnessValue OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Paremete to set IGMP robustness value.
                     This value applies to proxy-switching for how many IGMP report/leave will be sent out from source port,
                     and how many g-s query will be sent on receiver port.
                     "
        ::= { mvrMgt 28 }

mvrProxyQueryInterval OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set the query interval that active receiver port will use to send out general query "
        ::= { mvrMgt 29 }

mvrSourcePortmode OBJECT-TYPE
        SYNTAX      INTEGER
        {
            dynamic(1),
            forward(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Paremete to set MVR Source Port forward mode.
                     When set dynamic, MVR source port won't forward multicast streams received from other source port.
                     When set forward, MVR source port will forward multicast streams received from other source port.
                     These multicast stream all are in MVR group range.
                     "
        ::= { mvrMgt 30 }

mvrPortStatisticsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MvrPortStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of service per port."
    ::= {mvrMgt 32 }

mvrPortStatisticsEntry OBJECT-TYPE
    SYNTAX      MvrPortStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry of service per port."
    INDEX       { mvrPortStatisticsDomainId, mvrPortStatisticsPortIndex }
    ::= {mvrPortStatisticsTable 1}

MvrPortStatisticsEntry ::=
    SEQUENCE {
        mvrPortStatisticsDomainId            Integer32,
        mvrPortStatisticsPortIndex           InterfaceIndex,
        mvrPortStatisticsNumGroups           Unsigned32,
        mvrPortStatisticsNumJoinSend         Unsigned32,
        mvrPortStatisticsNumJoins            Unsigned32,
        mvrPortStatisticsNumJoinSuccess      Unsigned32,
        mvrPortStatisticsNumLeavesSend       Unsigned32,
        mvrPortStatisticsNumLeaves           Unsigned32,
        mvrPortStatisticsNumGeneralQuerySend Unsigned32,
        mvrPortStatisticsNumGeneralQueryRecevied  Unsigned32,
        mvrPortStatisticsNumSepcificQuerySend     Unsigned32,
        mvrPortStatisticsNumSpecificQueryReceived Unsigned32,
        mvrPortStatisticsNumInvalidReport         Unsigned32,
        mvrPortStatisticsClearStatistics          TruthValue
    }

mvrPortStatisticsDomainId OBJECT-TYPE
        SYNTAX      Integer32(1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
    DESCRIPTION
        "MVR domain ID."
        ::= { mvrPortStatisticsEntry 1 }

mvrPortStatisticsPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
    DESCRIPTION
        "The port and the trunk (excluding trunk members)
         interface of the mvrPortTable. 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."
        ::= { mvrPortStatisticsEntry 2 }

mvrPortStatisticsNumGroups OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Current learned groups "
        ::= { mvrPortStatisticsEntry 3 }

mvrPortStatisticsNumJoinSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join sent "
        ::= { mvrPortStatisticsEntry 4 }

mvrPortStatisticsNumJoins OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join recieved "
        ::= { mvrPortStatisticsEntry 5 }

mvrPortStatisticsNumJoinSuccess OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join group success "
        ::= { mvrPortStatisticsEntry 6 }

mvrPortStatisticsNumLeavesSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave sent"
        ::= { mvrPortStatisticsEntry 7 }

mvrPortStatisticsNumLeaves OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave received "
        ::= { mvrPortStatisticsEntry 8}

mvrPortStatisticsNumGeneralQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query sent. "
        ::= { mvrPortStatisticsEntry 9}

mvrPortStatisticsNumGeneralQueryRecevied OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query received. "
        ::= { mvrPortStatisticsEntry 10}

mvrPortStatisticsNumSepcificQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific query sent. "
        ::= { mvrPortStatisticsEntry 11}

mvrPortStatisticsNumSpecificQueryReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific query received. "
        ::= { mvrPortStatisticsEntry 12}

mvrPortStatisticsNumInvalidReport OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of invalid report received. "
        ::= { mvrPortStatisticsEntry 13}

mvrPortStatisticsClearStatistics OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Clear this VLAN all statistics "
        ::= { mvrPortStatisticsEntry 14}

mvrVlanStatisticsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MvrVlanStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of Mvr statistics VLAN."
    ::= {mvrMgt 33 }

mvrVlanStatisticsEntry OBJECT-TYPE
    SYNTAX      MvrVlanStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry of Mvr statistics VLAN."
    INDEX       { mvrVlanStatisticsDomainId, mvrVlanStatisticsVlanId }
    ::= {mvrVlanStatisticsTable 1}

MvrVlanStatisticsEntry ::=
    SEQUENCE {
        mvrVlanStatisticsDomainId            Integer32,
        mvrVlanStatisticsVlanId              VlanIndex,
        mvrVlanStatisticsNumGroups           Unsigned32,
        mvrVlanStatisticsNumJoinSend         Unsigned32,
        mvrVlanStatisticsNumJoins            Unsigned32,
        mvrVlanStatisticsNumJoinSuccess      Unsigned32,
        mvrVlanStatisticsNumLeavesSend       Unsigned32,
        mvrVlanStatisticsNumLeaves           Unsigned32,
        mvrVlanStatisticsNumGeneralQuerySend Unsigned32,
        mvrVlanStatisticsNumGeneralQueryRecevied  Unsigned32,
        mvrVlanStatisticsNumSepcificQuerySend     Unsigned32,
        mvrVlanStatisticsNumSpecificQueryReceived Unsigned32,
        mvrVlanStatisticsNumInvalidReport         Unsigned32,
        mvrVlanStatisticsClearStatistics          TruthValue
    }

mvrVlanStatisticsDomainId OBJECT-TYPE
        SYNTAX      Integer32(1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "VLAN ID"
        ::= { mvrVlanStatisticsEntry 1 }

mvrVlanStatisticsVlanId OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "VLAN ID"
        ::= { mvrVlanStatisticsEntry 2 }

mvrVlanStatisticsNumGroups OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Current learned groups "
        ::= { mvrVlanStatisticsEntry 3 }

mvrVlanStatisticsNumJoinSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join sent."
        ::= { mvrVlanStatisticsEntry 4 }

mvrVlanStatisticsNumJoins OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join received "
        ::= { mvrVlanStatisticsEntry 5 }

mvrVlanStatisticsNumJoinSuccess OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of jion success "
        ::= { mvrVlanStatisticsEntry 6 }

mvrVlanStatisticsNumLeavesSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave sent."
        ::= { mvrVlanStatisticsEntry 7 }

mvrVlanStatisticsNumLeaves OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave received "
        ::= { mvrVlanStatisticsEntry 8}

mvrVlanStatisticsNumGeneralQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query sent "
        ::= { mvrVlanStatisticsEntry 9}

mvrVlanStatisticsNumGeneralQueryRecevied OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query received "
        ::= { mvrVlanStatisticsEntry 10}

mvrVlanStatisticsNumSepcificQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific query sent"
        ::= { mvrVlanStatisticsEntry 11}

mvrVlanStatisticsNumSpecificQueryReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of sepcific query received "
        ::= { mvrVlanStatisticsEntry 12}

mvrVlanStatisticsNumInvalidReport OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of invalid report received"
        ::= { mvrVlanStatisticsEntry 13}

mvrVlanStatisticsClearStatistics OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Clear this VLAN statistics"
        ::= { mvrVlanStatisticsEntry 14}

--
-- mvr6Mgmt
--

mvr6DomainTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF Mvr6DomainEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for configuring the MVR port."
        ::= { mvr6Mgt 1 }

mvr6DomainEntry OBJECT-TYPE
       SYNTAX      Mvr6DomainEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR Domain."
       INDEX  {mvr6DomainId}
       ::= { mvr6DomainTable 1 }

Mvr6DomainEntry ::= SEQUENCE
{
    mvr6DomainId                  Integer32,
    mvr6DomainStatus              EnabledStatus,
    mvr6DomainRunningStatus       INTEGER,
    mvr6DomainVlanId              VlanIndex,
    mvr6DomainUpstreamSourceIpv6  InetAddressIPv6,
    mvr6DomainClearDynamicGroups  TruthValue
}

mvr6DomainId OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Speicfies which MVR domain to configure."
        ::= { mvr6DomainEntry 1 }

mvr6DomainStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable MVR(Multicast VLAN
                     Registration) on the device."
        ::= { mvr6DomainEntry 2 }

mvr6DomainRunningStatus OBJECT-TYPE
        SYNTAX      INTEGER
        {
            active(1),
            inactive(2)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Describes the running status of MVR (Multicast VLAN Registration)
                     on the switch. A value of active(1) indicates that all necessary
                     conditions in the MVR environment are satisfied. A value of inactive(2)
                     indicates that some necessary conditions in the MVR environment are
                     not satisfied."
        ::= { mvr6DomainEntry 3 }

mvr6DomainVlanId OBJECT-TYPE
        SYNTAX      VlanIndex
        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."
        ::= { mvr6DomainEntry 4 }


mvr6DomainUpstreamSourceIpv6 OBJECT-TYPE
        SYNTAX      InetAddressIPv6
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set the source IP address which MVR will carry in IP header when sending IGMP packet to upstream router
                     through MVR source port."
        ::= { mvr6DomainEntry 5 }

mvr6DomainClearDynamicGroups   OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Clear dynamic learned groups"
        ::= { mvr6DomainEntry 6}

mvr6DomainPortTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF Mvr6DomainPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for configuring the MVR port."
        ::= { mvr6Mgt 2 }

mvr6DomainPortEntry OBJECT-TYPE
       SYNTAX      Mvr6DomainPortEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR port."
       INDEX  {
               mvr6PortDomainId,
               mvr6DomainIfIndex
              }
       ::= { mvr6DomainPortTable 1 }

Mvr6DomainPortEntry ::= SEQUENCE
{
    mvr6PortDomainId              Integer32,
    mvr6DomainIfIndex             InterfaceIndex,
    mvr6DomainPortType            INTEGER,
    mvr6DomainPortImmediateLeave  EnabledStatus,
    mvr6DomainPortActive          INTEGER,
    mvr6DomainPortImmediateLeaveByHostIp  EnabledStatus

}

mvr6PortDomainId OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Speicfies which MVR domain to configure."
        ::= { mvr6DomainPortEntry 1 }

mvr6DomainIfIndex   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."
        ::= { mvr6DomainPortEntry 2 }

mvr6DomainPortType   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 none(0)."
        ::= { mvr6DomainPortEntry 3 }

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

mvr6DomainPortActive   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)."
        ::= { mvr6DomainPortEntry 5 }

mvr6DomainPortImmediateLeaveByHostIp   OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "To enable immediate leave by host IP on MVR port."
        ::= { mvr6DomainPortEntry 6 }

mvr6ProfileTable  OBJECT IDENTIFIER ::= {mvr6Mgt 22 }


mvr6ProfileCtlTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF Mvr6ProfileCtlEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The entry for configuring the MVR6 profile."
        ::= { mvr6ProfileTable 1 }

Mvr6ProfileCtlEntry ::= SEQUENCE
{
    mvr6ProfileCtlId            Integer32,
    mvr6ProfileName             OCTET STRING,
    mvr6ProfileCtlAction        INTEGER
}


mvr6ProfileCtlEntry OBJECT-TYPE
       SYNTAX      Mvr6ProfileCtlEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR6 profile."
       INDEX  { mvr6ProfileCtlId }
       ::= { mvr6ProfileCtlTable 1 }


mvr6ProfileCtlId   OBJECT-TYPE
        SYNTAX      Integer32 (0..15)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR6 profile"
        ::= { mvr6ProfileCtlEntry 1 }

mvr6ProfileName   OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "MVR6 Profile name which identifies a group range.

                     NOTE: All mvr6ProfileCtlEntry use the same buffer to temporarily store the mvrProfileName before
                     mvr6ProfileCtlAction really creating the profile."
        ::= { mvr6ProfileCtlEntry 2 }

mvr6ProfileCtlAction   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            noAction(0),
            create(1),
            destory(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this object to create(2) to create profile. Set this object
                     to destory(3) to delete profile. When
                     the action is complete, this object becomes noAction(1)."
        ::= { mvr6ProfileCtlEntry 5 }

mvr6ProfileGroupCtlTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF Mvr6ProfileGroupCtlEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the MVR group ranges for MVR6 profile."
       ::= { mvr6ProfileTable 2 }

Mvr6ProfileGroupCtlEntry ::= SEQUENCE
{
    mvr6ProfileGropuCtlProfileId     Integer32,
    mvr6ProfileGroupCtlId            Integer32,
    mvr6ProfileGroupStartIPAddress   InetAddress,
    mvr6ProfileGroupEndIPAddress     InetAddress,
    mvr6ProfileGroupCtlAction        INTEGER
}

mvr6ProfileGroupCtlEntry OBJECT-TYPE
       SYNTAX      Mvr6ProfileGroupCtlEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the group ranges on MVR6 profile."
       INDEX  {mvr6ProfileGropuCtlProfileId, mvr6ProfileGroupCtlId}
       ::= { mvr6ProfileGroupCtlTable 1 }

mvr6ProfileGropuCtlProfileId   OBJECT-TYPE
        SYNTAX      Integer32 (0..15)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR6 profile"
        ::= {mvr6ProfileGroupCtlEntry 1}


mvr6ProfileGroupCtlId   OBJECT-TYPE
        SYNTAX      Integer32 (0..3)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which group range in MVR6 profile"
        ::= { mvr6ProfileGroupCtlEntry 2 }

mvr6ProfileGroupStartIPAddress   OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "MVR Profile range start IP address.

                     NOTE: All Mvr6ProfileGroupCtlEntry use the same buffer to temporarily store the mvr6ProfileStartIPAddress before
                     mvr6ProfileGroupCtlAction really creating the group range on profile."
        ::= { mvr6ProfileGroupCtlEntry 3}

mvr6ProfileGroupEndIPAddress   OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "MVR6 Profile range end IP address.

                     NOTE: All Mvr6ProfileGroupCtlEntry use the same buffer to temporarily store the mvr6ProfileEndIPAddress before
                     mvr6ProfileGroupCtlAction really creating the group range on profile."
        ::= { mvr6ProfileGroupCtlEntry 4 }

mvr6ProfileGroupCtlAction   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            noAction(0),
            create(1),
            destory(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this object to create(2) to create group range. Set this object
                     to destory(3) to delete group range. When
                     the action is complete, this object becomes noAction(1).

                     NOTE: If mvr6ProfileGroupStartIPAddress and mvr6ProfileGroupEndIPAddress
                           pattern already exist on other mvr6ProfileGroupCtlAction, it won't be  stored."

        ::= { mvr6ProfileGroupCtlEntry 5 }

mvr6DomainAssociatedProfileTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF Mvr6DomainAssociatedProfileEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Configure MVR domain associate which MVR profile"
        ::= {mvr6Mgt 4}

mvr6DomainAssociatedProfileEntry OBJECT-TYPE
       SYNTAX      Mvr6DomainAssociatedProfileEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring MVR domain associate MVR profile."
       INDEX  {
              mvr6ProfileDomainId,
              mvr6ProfileId
              }
       ::= { mvr6DomainAssociatedProfileTable 1 }

Mvr6DomainAssociatedProfileEntry ::= SEQUENCE
{
    mvr6ProfileDomainId         Integer32,
    mvr6ProfileId               Integer32,
    mvr6ProfileAction           INTEGER
}

mvr6ProfileDomainId   OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR profile"
        ::= { mvr6DomainAssociatedProfileEntry 1 }

mvr6ProfileId   OBJECT-TYPE
        SYNTAX      Integer32 (0..15)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR profile"
        ::= { mvr6DomainAssociatedProfileEntry 2 }

mvr6ProfileAction   OBJECT-TYPE
        SYNTAX      INTEGER
        {
            noAction(0),
            create(1),
            destory(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set this object to create(1) to associate profile. Set this object
                     to destory(2) to deassociate profile. When
                     the action is complete, this object becomes noAction(0)."
        ::= { mvr6DomainAssociatedProfileEntry 3 }

mvr6DomainGroupStaticTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF Mvr6DomainGroupStaticEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for configuring the static members of the
                     MVR group."
        ::= { mvr6Mgt 5 }

mvr6DomainGroupStaticEntry OBJECT-TYPE
       SYNTAX      Mvr6DomainGroupStaticEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for configuring the static members of the
                    MVR group."
       INDEX  {
               mvr6GroupStaticDomainId,
               mvr6DomainGroupStaticAddress,
               mvr6DomainGroupStaticReceiverVlan}
       ::= { mvr6DomainGroupStaticTable 1 }

Mvr6DomainGroupStaticEntry ::= SEQUENCE
{
    mvr6GroupStaticDomainId           Integer32,
    mvr6DomainGroupStaticAddress      InetAddressIPv6,
    mvr6DomainGroupStaticReceiverVlan Integer32,
    mvr6DomainGroupStaticPorts        PortList

}

mvr6GroupStaticDomainId   OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR profile"
        ::= { mvr6DomainGroupStaticEntry 1 }

mvr6DomainGroupStaticAddress  OBJECT-TYPE
        SYNTAX      InetAddressIPv6
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The multicast address of the MVR group."
        ::= { mvr6DomainGroupStaticEntry 2 }

mvr6DomainGroupStaticReceiverVlan   OBJECT-TYPE
        SYNTAX      Integer32(1..4093)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The receiver vlan of this MVR group"
        ::= { mvr6DomainGroupStaticEntry 3 }

mvr6DomainGroupStaticPorts  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."
        ::= { mvr6DomainGroupStaticEntry 4 }


mvr6DomainGroupCurrentTable   OBJECT-TYPE
        SYNTAX      SEQUENCE OF Mvr6DomainGroupCurrentEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for the current members of the MVR group."
        ::= { mvr6Mgt 6 }

mvr6DomainGroupCurrentEntry OBJECT-TYPE
       SYNTAX      Mvr6DomainGroupCurrentEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION "The entry for the current members of the MVR group."
       INDEX  {
               mvr6GroupCurrenDomainId,
               mvr6DomainGroupCurrentAddress,
               mvr6DomainGroupCurrentReceiverVlan
              }
       ::= { mvr6DomainGroupCurrentTable 1 }

Mvr6DomainGroupCurrentEntry ::= SEQUENCE
{
    mvr6GroupCurrenDomainId              Integer32,
    mvr6DomainGroupCurrentAddress        OCTET STRING,
    mvr6DomainGroupCurrentReceiverVlan   Integer32,
    mvr6DomainGroupCurrentPorts          PortList
}

mvr6GroupCurrenDomainId   OBJECT-TYPE
        SYNTAX      Integer32 (1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Profile ID to index which MVR profile"
        ::= { mvr6DomainGroupCurrentEntry 1 }

mvr6DomainGroupCurrentAddress   OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (1..47))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The multicast address of the MVR group."
        ::= { mvr6DomainGroupCurrentEntry 2 }

mvr6DomainGroupCurrentReceiverVlan   OBJECT-TYPE
        SYNTAX      Integer32(1..4093)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the receiver VLAN of the MVR group."
        ::= { mvr6DomainGroupCurrentEntry 3 }

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



mvr6ProxySwitching OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable MVR(Multicast VLAN
                     Registration) proxy switching ability on the device. "
        ::= { mvr6Mgt 16 }

mvr6RobustnessValue OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Paremete to set IGMP robustness value.
                     This value applies to proxy-switching for how many IGMP report/leave will be sent out from source port,
                     and how many g-s query will be sent on receiver port.
                     "
        ::= { mvr6Mgt 17 }

mvr6ProxyQueryInterval OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set the query interval that active receiver port will use to send out general query "
        ::= { mvr6Mgt 23 }

mvr6SourcePortMode OBJECT-TYPE
        SYNTAX      INTEGER
        {
            dynamic(1),
            forward(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Dynamic means active source port will only forward multicast stream when it has group joined.
                     Forward means active source port will always forward MVR group range multicast streams recieved on
                     another acitve source port."
        ::= { mvr6Mgt 24 }


mvr6PortStatisticsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Mvr6PortStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of Mvr6 statistics VLAN."
    ::= {mvr6Mgt 26 }

mvr6PortStatisticsEntry OBJECT-TYPE
    SYNTAX      Mvr6PortStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry of Mvr6 statistics VLAN."
    INDEX       { mvr6PortStatisticsDomainId, mvr6PortStatisticsPortIndex }
    ::= {mvr6PortStatisticsTable 1}

Mvr6PortStatisticsEntry ::=
    SEQUENCE {
        mvr6PortStatisticsDomainId            Integer32,
        mvr6PortStatisticsPortIndex           InterfaceIndex,
        mvr6PortStatisticsNumGroups           Unsigned32,
        mvr6PortStatisticsNumJoinSend         Unsigned32,
        mvr6PortStatisticsNumJoins            Unsigned32,
        mvr6PortStatisticsNumJoinSuccess      Unsigned32,
        mvr6PortStatisticsNumLeavesSend       Unsigned32,
        mvr6PortStatisticsNumLeaves           Unsigned32,
        mvr6PortStatisticsNumGeneralQuerySend Unsigned32,
        mvr6PortStatisticsNumGeneralQueryRecevied  Unsigned32,
        mvr6PortStatisticsNumSepcificQuerySend     Unsigned32,
        mvr6PortStatisticsNumSpecificQueryReceived Unsigned32,
        mvr6PortStatisticsNumInvalidReport         Unsigned32,
        mvr6PortStatisticsClearStatistics          TruthValue
    }

mvr6PortStatisticsDomainId OBJECT-TYPE
        SYNTAX      Integer32(1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
    DESCRIPTION
        "The port and the trunk (excluding trunk members)
         interface of the mvr6PortTable. 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."
        ::= { mvr6PortStatisticsEntry 1 }


mvr6PortStatisticsPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
    DESCRIPTION
        "The port and the trunk (excluding trunk members)
         interface of the mvr6PortTable. 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."
        ::= { mvr6PortStatisticsEntry 2 }

mvr6PortStatisticsNumGroups OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Current learned groups "
        ::= { mvr6PortStatisticsEntry 3 }

mvr6PortStatisticsNumJoinSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join sent "
        ::= { mvr6PortStatisticsEntry 4 }

mvr6PortStatisticsNumJoins OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join recieved "
        ::= { mvr6PortStatisticsEntry 5 }

mvr6PortStatisticsNumJoinSuccess OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join group success "
        ::= { mvr6PortStatisticsEntry 6 }

mvr6PortStatisticsNumLeavesSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave sent"
        ::= { mvr6PortStatisticsEntry 7 }

mvr6PortStatisticsNumLeaves OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave received "
        ::= { mvr6PortStatisticsEntry 8}

mvr6PortStatisticsNumGeneralQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query sent. "
        ::= { mvr6PortStatisticsEntry 9}

mvr6PortStatisticsNumGeneralQueryRecevied OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query received. "
        ::= { mvr6PortStatisticsEntry 10}

mvr6PortStatisticsNumSepcificQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific query send. "
        ::= { mvr6PortStatisticsEntry 11}

mvr6PortStatisticsNumSpecificQueryReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific query received. "
        ::= { mvr6PortStatisticsEntry 12}

mvr6PortStatisticsNumInvalidReport OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of invalid report received. "
        ::= { mvr6PortStatisticsEntry 13}

mvr6PortStatisticsClearStatistics OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Clear this VLAN all statistics "
        ::= { mvr6PortStatisticsEntry 14}

mvr6VlanStatisticsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF Mvr6VlanStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of Mvr6 statistics VLAN."
    ::= {mvr6Mgt 27 }

mvr6VlanStatisticsEntry OBJECT-TYPE
    SYNTAX      Mvr6VlanStatisticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry of Mvr6 statistics VLAN."
    INDEX       { mvr6VlanStatisticsDomainId, mvr6VlanStatisticsVlanId }
    ::= {mvr6VlanStatisticsTable 1}

Mvr6VlanStatisticsEntry ::=
    SEQUENCE {
        mvr6VlanStatisticsDomainId            Integer32,
        mvr6VlanStatisticsVlanId              VlanIndex,
        mvr6VlanStatisticsNumGroups           Unsigned32,
        mvr6VlanStatisticsNumJoinSend         Unsigned32,
        mvr6VlanStatisticsNumJoins            Unsigned32,
        mvr6VlanStatisticsNumJoinSuccess      Unsigned32,
        mvr6VlanStatisticsNumLeavesSend       Unsigned32,
        mvr6VlanStatisticsNumLeaves           Unsigned32,
        mvr6VlanStatisticsNumGeneralQuerySend Unsigned32,
        mvr6VlanStatisticsNumGeneralQueryRecevied  Unsigned32,
        mvr6VlanStatisticsNumSepcificQuerySend     Unsigned32,
        mvr6VlanStatisticsNumSpecificQueryReceived Unsigned32,
        mvr6VlanStatisticsNumInvalidReport         Unsigned32,
        mvr6VlanStatisticsClearStatistics          TruthValue
    }

mvr6VlanStatisticsDomainId OBJECT-TYPE
        SYNTAX      Integer32(1..5)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "domain ID"
        ::= { mvr6VlanStatisticsEntry 1 }

mvr6VlanStatisticsVlanId OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "VLAN ID"
        ::= { mvr6VlanStatisticsEntry 2 }

mvr6VlanStatisticsNumGroups OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Current learned groups "
        ::= { mvr6VlanStatisticsEntry 3 }

mvr6VlanStatisticsNumJoinSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join sent."
        ::= { mvr6VlanStatisticsEntry 4 }

mvr6VlanStatisticsNumJoins OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join received "
        ::= { mvr6VlanStatisticsEntry 5 }

mvr6VlanStatisticsNumJoinSuccess OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of jion success "
        ::= { mvr6VlanStatisticsEntry 6 }

mvr6VlanStatisticsNumLeavesSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave sent."
        ::= { mvr6VlanStatisticsEntry 7 }

mvr6VlanStatisticsNumLeaves OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave received "
        ::= { mvr6VlanStatisticsEntry 8}

mvr6VlanStatisticsNumGeneralQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query sent "
        ::= { mvr6VlanStatisticsEntry 9}

mvr6VlanStatisticsNumGeneralQueryRecevied OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query received "
        ::= { mvr6VlanStatisticsEntry 10}

mvr6VlanStatisticsNumSepcificQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific query sent"
        ::= { mvr6VlanStatisticsEntry 11}

mvr6VlanStatisticsNumSpecificQueryReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of sepcific query received "
        ::= { mvr6VlanStatisticsEntry 12}

mvr6VlanStatisticsNumInvalidReport OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of invalid report received"
        ::= { mvr6VlanStatisticsEntry 13}

mvr6VlanStatisticsClearStatistics OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Clear this VLAN statistics"
        ::= { mvr6VlanStatisticsEntry 14}

mvr6ForwardingPriority OBJECT-TYPE
        SYNTAX  Integer32(0..7|65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Configure MVR multicast stream forwarding priority.
                     If value is 65535, it means the priority is disabled."
        ::= { mvr6Mgt 28 }



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

dhcpSnoopLimitRate OBJECT-TYPE
        SYNTAX      Integer32(0..2048)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates the limit rate that DHCP packet redirects to CPU.
                     Set this to 0 means no rate limit for DHCP packet."
        ::= { dhcpSnoopGlobal 6}

dhcpSnoopInformationOptionRID     OBJECT-TYPE
        SYNTAX     INTEGER
                    {
                        macHex(1),
                        macAscii(2),
                        ipHex(3),
                        ipAscii(4),
                        string(5),
                        tr101IP(6),
                        tr101Sysname(7)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates the different option that insert to relay agent
                     information remote ID sub-option."
        ::= { dhcpSnoopGlobal 7 }

dhcpSnoopInformationOptionRIDString OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Inserts string in remote ID sub-option."
        ::= { dhcpSnoopGlobal 8 }

dhcpSnoopInformationOptionRIDTr101VlanField  OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether the remote ID TR101 vlan field is enabled."
        ::= { dhcpSnoopGlobal 9 }

dhcpSnoopInformationOptionTr101BoardID OBJECT-TYPE
        SYNTAX      Integer32(0..9)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates the TR101 board ID.
                     The value 255 means board ID is none, packet doesn't carry board Id information."
        ::= { dhcpSnoopGlobal 10 }

--
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,
        dhcpSnoopPortInformationOptionCID               INTEGER,
        dhcpSnoopPortInformationOptionCIDString         OCTET STRING,
        dhcpSnoopPortInformationOptionCIDTr101VlanField 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 }

dhcpSnoopPortInformationOptionCID    OBJECT-TYPE
        SYNTAX     INTEGER
                    {
                        vlanUnitPort(1),
                        string(2),
                        tr101IP(3),
                        tr101Sysname(4)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates the different option that is inserted to relay agent
                     information circuit ID sub-option."
        ::= { dhcpSnoopPortConfigEntry 3 }

dhcpSnoopPortInformationOptionCIDString OBJECT-TYPE
        SYNTAX      OCTET STRING
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Inserts string in circuit ID sub-option."
        ::= { dhcpSnoopPortConfigEntry 4 }

dhcpSnoopPortInformationOptionCIDTr101VlanField  OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether the circuit ID TR101 vlan field is enabled."
        ::= { dhcpSnoopPortConfigEntry 5 }

--
dhcpSnoopBindingsTable      OBJECT-TYPE
        SYNTAX      SEQUENCE OF DhcpSnoopBindingsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the DHCP binding 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
                     binding."
        ::= { dhcpSnoopBindingsEntry 7 }

--

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

dhcpSnoopUntrustedPortDroppedPkts   OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the number of packets subjected to DHCP Snooping
                     which are 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 identifies 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      INTEGER (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 traverse multiple routers so that the routers will forward
                 multicast messages to the UPnP device."
    ::= { upnpMgt 3 }

--
-- oamMgt
--
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          InterfaceIndex,
    oamLoopbackTestPacketNumber     Integer32,
    oamLoopbackTestPacketSize       Integer32,
    oamLoopbackTestAction           INTEGER,
    oamLoopbackTestResultTx         Counter32,
    oamLoopbackTestResultRx         Counter32,
    oamLoopbackTestResultLossRate   Integer32
}

oamLoopbackTestIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The ifIndex value of the port
                 (excluding trunk and trunk members). 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}

oamLoopbackTestResultLossRate OBJECT-TYPE
    SYNTAX     Integer32 (0..10000)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Packet loss rate of this loopback test operation in hundredths
                 of a percent. This variable is calculated by
                 oamLoopbackTestResultRx and oamLoopbackTestResultTx."
    ::= { oamLoopbackEntry 7}

oamPrivateEventLogType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    connectionToRemoteDeviceUp(1001),
                    connectionToRemoteDeviceDown(1002),
                    linkFaultClear(1003),
                    dyingGaspEventClear(1004),
                    criticalLinkEventClear(1005)
                }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This object augments the dot3OamEventLogType
                 of dot3OamEventLogTable in DOT3-OAM-MIB.
                 When the OUI (dot3OamEventLogOui) is 0x0012CF, the following
                 event types are defined:
                    connectionToRemoteDeviceUp(1001),
                    connectionToRemoteDeviceDown(1002),
                    linkFaultClear(1003),
                    dyingGaspEventClear(1004),
                    criticalLinkEventClear(1005)
                 All these events are not threshold crossing events."
    ::= { oamMgt 5 }

oamPortClearEventLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OamPortClearEventLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "A table containing the information of clear OAM event log
                 at each port."
    ::= { oamMgt 6 }

oamPortClearEventLogEntry OBJECT-TYPE
        SYNTAX      OamPortClearEventLogEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry containing the information of clear OAM event log
                     at each port."
        INDEX       { oamPortClearEventLogIndex }
        ::= { oamPortClearEventLogTable 1 }

OamPortClearEventLogEntry       ::= SEQUENCE
{
        oamPortClearEventLogIndex   InterfaceIndex,
        oamPortClearEventLogAction  INTEGER
}

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

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

--
-- mldSnoopMgt
--

-- Management for MLD
-- Snooping.


mldSnoopStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable MLD snooping on the device.
                     When enabled, the device will examine MLD packets and set
                     up filters for MLD ports. "
        DEFVAL      { disabled }
        ::= { mldSnoopMgt 1 }

mldSnoopQuerier OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Enables (disables) whether the switch acts as an MLD
                     querier."
        DEFVAL      { disabled }
        ::= { mldSnoopMgt 2 }

mldSnoopRobustness OBJECT-TYPE
        SYNTAX      Integer32 (2..10)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The Robustness Variable allows tuning for the expected
                     packet loss on a subnet. If a subnet is expected to be
                     lossy, the Robustness Variable may be increased. MLD is
                     robust to (Robustness Variable-1) packet losses. The
                     discussion of the Robustness Variable is in Section 7.1
                     of RFC 2710."
        DEFVAL      { 2 }
        ::= { mldSnoopMgt 3 }

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

mldSnoopQueryMaxResponseTime 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 mldSnoopRobustness,
                     but an endstation has not responded, a countdown
                     timer is started using an initial value set by
                     mldSnoopQueryMaxResponseTime.  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 }
        ::= { mldSnoopMgt 5 }

mldSnoopRouterPortExpireTime 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 }
        ::= { mldSnoopMgt 6 }

mldSnoopVersion OBJECT-TYPE
        SYNTAX      Integer32 (1..2)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "MLD version snooped"
        DEFVAL      { 2 }
        ::= { mldSnoopMgt 7 }

mldSnoopUnknownMcastMode OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        flood(1),
                        toRouterPort(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Sets the mldSnoopUnknownMcastMode to define the flooding
                     behavior when receiving unknown multicast traffic."
        ::= { mldSnoopMgt 8 }

mldSnoopRouterCurrentTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MldSnoopRouterCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table for current router ports."
    ::= { mldSnoopMgt 9 }

mldSnoopRouterCurrentEntry OBJECT-TYPE
    SYNTAX      MldSnoopRouterCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry for current router ports."
    INDEX   { mldSnoopRouterCurrentVlanIndex }
    ::= {mldSnoopRouterCurrentTable 1 }

MldSnoopRouterCurrentEntry ::=
    SEQUENCE {
        mldSnoopRouterCurrentVlanIndex Unsigned32,
        mldSnoopRouterCurrentPorts     PortList
    }

mldSnoopRouterCurrentVlanIndex 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
                 mldSnoopRouterStaticTable."
    ::= { mldSnoopRouterCurrentEntry 1 }

mldSnoopRouterCurrentPorts 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
                 mldSnoopRouterStaticTable."
    ::= { mldSnoopRouterCurrentEntry 2 }

mldSnoopRouterStaticTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MldSnoopRouterStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table for static router ports."
    ::= { mldSnoopMgt 10 }

mldSnoopRouterStaticEntry OBJECT-TYPE
    SYNTAX      MldSnoopRouterStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry for static router ports."
    INDEX   { mldSnoopRouterStaticVlanIndex }
        ::= { mldSnoopRouterStaticTable 1 }

MldSnoopRouterStaticEntry ::=
    SEQUENCE {
        mldSnoopRouterStaticVlanIndex Unsigned32,
        mldSnoopRouterStaticPorts     PortList
    }

mldSnoopRouterStaticVlanIndex 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
                 mldSnoopRouterStaticTable."
    ::= { mldSnoopRouterStaticEntry 1 }

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

mldSnoopMulticastCurrentTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MldSnoopMulticastCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table for current multicast addresses."
    ::= { mldSnoopMgt 11 }

mldSnoopMulticastCurrentEntry OBJECT-TYPE
    SYNTAX      MldSnoopMulticastCurrentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry for current multicast addresses."
    INDEX   { mldSnoopMulticastCurrentVlanIndex,
              mldSnoopMulticastCurrentIpAddress,
              mldSnoopMulticastCurrentSourceIpAddress }
    ::= {
mldSnoopMulticastCurrentTable 1 }

MldSnoopMulticastCurrentEntry ::=
    SEQUENCE {
        mldSnoopMulticastCurrentVlanIndex Unsigned32,
        mldSnoopMulticastCurrentIpAddress InetAddressIPv6,
        mldSnoopMulticastCurrentSourceIpAddress InetAddressIPv6,
        mldSnoopMulticastCurrentPorts     PortList
    }

mldSnoopMulticastCurrentVlanIndex 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
                 mldSnoopMulticastStaticTable."
    ::= { mldSnoopMulticastCurrentEntry 1 }

mldSnoopMulticastCurrentIpAddress OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "IPv6 address of multicast group."
    ::= { mldSnoopMulticastCurrentEntry 2 }

mldSnoopMulticastCurrentSourceIpAddress OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "IPv6 address of the source."
    ::= { mldSnoopMulticastCurrentEntry 3 }

mldSnoopMulticastCurrentPorts 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
                 mldSnoopMulticastStaticTable."
    ::= { mldSnoopMulticastCurrentEntry 4 }

mldSnoopMulticastStaticTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MldSnoopMulticastStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table for static multicast addresses."
    ::= { mldSnoopMgt 12 }

mldSnoopMulticastStaticEntry OBJECT-TYPE
    SYNTAX      MldSnoopMulticastStaticEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry for static multicast addresses."
    INDEX   { mldSnoopMulticastStaticVlanIndex,
              mldSnoopMulticastStaticIpAddress }
    ::= { mldSnoopMulticastStaticTable 1 }

MldSnoopMulticastStaticEntry ::=
    SEQUENCE {
        mldSnoopMulticastStaticVlanIndex Unsigned32,
        mldSnoopMulticastStaticIpAddress InetAddressIPv6,
            mldSnoopMulticastStaticPorts     PortList
    }

mldSnoopMulticastStaticVlanIndex 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
                 mldSnoopMulticastStaticTable."
    ::= { mldSnoopMulticastStaticEntry 1 }

mldSnoopMulticastStaticIpAddress OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "IPv6 address of multicast group."
    ::= { mldSnoopMulticastStaticEntry 2 }

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

mldSnoopCurrentVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MldSnoopCurrentVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for configuring MLD snooping for each VLAN
                     which exists in the device by (local or network)
                     management, or dynamically created as a result of
                     GVRP requests received."
        ::= { mldSnoopMgt 13 }

mldSnoopCurrentVlanEntry OBJECT-TYPE
        SYNTAX      MldSnoopCurrentVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for configuring MLD snooping."
        INDEX       { mldSnoopCurrentVlanIndex }
        ::= { mldSnoopCurrentVlanTable 1 }

MldSnoopCurrentVlanEntry ::= SEQUENCE
{
    mldSnoopCurrentVlanIndex           Unsigned32,
    mldSnoopCurrentVlanImmediateLeave  EnabledStatus,
    mldSnoopCurrentVlanImmediateLeaveByHostIp  EnabledStatus
}

mldSnoopCurrentVlanIndex 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."
        ::= { mldSnoopCurrentVlanEntry 1 }

mldSnoopCurrentVlanImmediateLeave OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The parameter to enable or disable the
                     Immediate-Leave feature on this VLAN."
        ::= { mldSnoopCurrentVlanEntry 2 }

mldSnoopCurrentVlanImmediateLeaveByHostIp OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The parameter to enable or disable the
                     Immediate-Leave by-host-ip feature on this VLAN."
        ::= { mldSnoopCurrentVlanEntry 3 }

mldSnoopProxyReporting OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable MLD snooping proxy reporting
                     on the device."
        DEFVAL      { enabled }
        ::= { mldSnoopMgt 14 }

mldSnoopUnsolicitedReportInterval OBJECT-TYPE
        SYNTAX      Unsigned32(1..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Setting this value to specify how long (in seconds) the
                     uplink ports should transmit unsolicited reports."
        DEFVAL      { 400 }
        ::= { mldSnoopMgt 15 }

mldSnoopPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MldSnoopPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of MLD Snooping service per port."
    ::= {mldSnoopMgt 16 }

mldSnoopPortEntry OBJECT-TYPE
    SYNTAX      MldSnoopPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry of MLD Snooping service per port."
    INDEX       { mldSnoopPortIndex }
    ::= {mldSnoopPortTable 1}

MldSnoopPortEntry ::=
    SEQUENCE {
        mldSnoopPortIndex           Unsigned32,
        mldSnoopQueryDrop           INTEGER,
        mldSnoopMulticastDataDrop   INTEGER,
        mldSnoopPortNumGroups           Unsigned32,
        mldSnoopPortNumJoinSend         Unsigned32,
        mldSnoopPortNumJoins            Unsigned32,
        mldSnoopPortNumJoinSuccess      Unsigned32,
        mldSnoopPortNumLeavesSend       Unsigned32,
        mldSnoopPortNumLeaves           Unsigned32,
        mldSnoopPortNumGeneralQuerySend Unsigned32,
        mldSnoopPortNumGeneralQueryRecevied  Unsigned32,
        mldSnoopPortNumSepcificQuerySend     Unsigned32,
        mldsnoopPortNumSpecificQueryReceived Unsigned32,
        mldSnoopPortNumInvalidReport         Unsigned32,
        mldSnoopPortClearStatistics          TruthValue
    }

mldSnoopPortIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port and the trunk (excluding trunk members)
         interface of the mldsnpPortTable. 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."
    ::= { mldSnoopPortEntry 1 }


mldSnoopQueryDrop OBJECT-TYPE
        SYNTAX      INTEGER
                {
                    enable(1),
                    disable(2)
                }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable dropping MLD Query packet."
        DEFVAL      { disable }
        ::= { mldSnoopPortEntry 3 }

mldSnoopMulticastDataDrop OBJECT-TYPE
        SYNTAX      INTEGER
                {
                    enable(1),
                    disable(2)
                }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Parameter to enable or disable dropping IPv6 multicast data "
        DEFVAL      { disable }
        ::= { mldSnoopPortEntry 4 }


mldSnoopPortNumGroups OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Current learned groups "
        ::= { mldSnoopPortEntry 5 }

mldSnoopPortNumJoinSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join send "
        ::= { mldSnoopPortEntry 6 }

mldSnoopPortNumJoins OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join recieved "
        ::= { mldSnoopPortEntry 7 }

mldSnoopPortNumJoinSuccess OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join group success "
        ::= { mldSnoopPortEntry 8 }

mldSnoopPortNumLeavesSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave sent"
        ::= { mldSnoopPortEntry 9 }

mldSnoopPortNumLeaves OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave received "
        ::= { mldSnoopPortEntry 10}

mldSnoopPortNumGeneralQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query sent. "
        ::= { mldSnoopPortEntry 11}

mldSnoopPortNumGeneralQueryRecevied OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query received. "
        ::= { mldSnoopPortEntry 12}

mldSnoopPortNumSepcificQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific query sent. "
        ::= { mldSnoopPortEntry 13}

mldsnoopPortNumSpecificQueryReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific query received. "
        ::= { mldSnoopPortEntry 14}

mldSnoopPortNumInvalidReport OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of invalid report received. "
        ::= { mldSnoopPortEntry 15}

mldSnoopPortClearStatistics OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Clear this VLAN all statistics "
        ::= { mldSnoopPortEntry 16}


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

mldSnoopProfileTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MldSnoopProfileEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for configuring the MLD snooping profile."
        ::= { mldSnoopMgt 18 }

mldSnoopProfileEntry OBJECT-TYPE
        SYNTAX      MldSnoopProfileEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The entry for configuring the MLD snooping profile."
        INDEX       { mldSnoopProfileId }
        ::= { mldSnoopProfileTable 1 }

MldSnoopProfileEntry ::= SEQUENCE
{
    mldSnoopProfileId               Unsigned32,
    mldSnoopProfileAction           INTEGER,
    mldSnoopProfileStatus           ValidStatus
}

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

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

mldSnoopProfileStatus 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."
        ::= { mldSnoopProfileEntry 3 }

mldSnoopProfileCtl      OBJECT IDENTIFIER   ::= { mldSnoopMgt 19 }

mldSnoopProfileCtlId OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The ID of the MLD snooping profile. The default value
                     is zero, meaning that no ID is specified.  In order to
                     create a profile, a non-zero value must be specified."
        ::= { mldSnoopProfileCtl 1 }

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

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

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

mldSnoopProfileCtlAction 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)."
        ::= { mldSnoopProfileCtl 5 }

mldSnoopProfileRangeTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MldSnoopProfileRangeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The table for configuring the range of the MLD snooping
                     profile."
        ::= { mldSnoopMgt 20 }

mldSnoopProfileRangeEntry OBJECT-TYPE
        SYNTAX      MldSnoopProfileRangeEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The entry for configuring the range of the MLD snooping
                     profile."
        INDEX       { mldSnoopProfileRangeProfileId,
                      mldSnoopProfileRangeInetAddressType,
                      mldSnoopProfileRangeStartInetAddress,
                      mldSnoopProfileRangeEndInetAddress
                    }
        ::= { mldSnoopProfileRangeTable 1 }

MldSnoopProfileRangeEntry ::= SEQUENCE
{
    mldSnoopProfileRangeProfileId           Unsigned32,
    mldSnoopProfileRangeInetAddressType     InetAddressType,
    mldSnoopProfileRangeStartInetAddress    InetAddress,
    mldSnoopProfileRangeEndInetAddress      InetAddress,
    mldSnoopProfileRangeAction              INTEGER
}

mldSnoopProfileRangeProfileId  OBJECT-TYPE
        SYNTAX      Unsigned32 (1..4294967295)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This is defined as mldSnoopProfileId."
        ::= { mldSnoopProfileRangeEntry 1 }

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

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

mldSnoopProfileRangeEndInetAddress OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The specified addresses in the end of the controlled
                     IPv6 multicast addresses."
        ::= { mldSnoopProfileRangeEntry 4 }

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

mldSnoopFilterPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MldSnoopFilterPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port configuration in MLD filtering."
        ::= { mldSnoopMgt 21 }

mldSnoopFilterPortEntry OBJECT-TYPE
        SYNTAX      MldSnoopFilterPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port configuration in MLD filtering."
        INDEX       { mldSnoopFilterPortIndex }
        ::= { mldSnoopFilterPortTable 1 }

MldSnoopFilterPortEntry ::= SEQUENCE
{
    mldSnoopFilterPortIndex              Unsigned32,
    mldSnoopFilterPortProfileId          Integer32
}

mldSnoopFilterPortIndex 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."
        ::= { mldSnoopFilterPortEntry 1 }

mldSnoopFilterPortProfileId OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "The mldSnoopProfileEntry identified by a particular value of this index
             is the same interface identified by the same value of the mldSnoopProfileId
             object. If there is no corresponding entry in the mldSnoopProfileTable,
             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."
        ::= { mldSnoopFilterPortEntry 2 }

mldSnoopThrottlePortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MldSnoopThrottlePortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port configuration in MLD throttling."
        ::= { mldSnoopMgt 22 }

mldSnoopThrottlePortEntry OBJECT-TYPE
        SYNTAX      MldSnoopThrottlePortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port configuration in MLD throttling."
        INDEX       { mldSnoopThrottlePortIndex }
        ::= { mldSnoopThrottlePortTable 1 }

MldSnoopThrottlePortEntry ::= SEQUENCE
{
    mldSnoopThrottlePortIndex            Unsigned32,
    mldSnoopThrottlePortRunningStatus    INTEGER,
    mldSnoopThrottlePortAction           INTEGER,
    mldSnoopThrottlePortMaxGroups        Integer32,
    mldSnoopThrottlePortCurrentGroups    Integer32
}

mldSnoopThrottlePortIndex 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."
        ::= { mldSnoopThrottlePortEntry 1 }

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

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

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

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


mldSnoopClearDynamicGroups   OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The current number of MLD groups that the interface has joined."
        ::= { mldSnoopMgt 23}

mldSnoopVlanTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MldSnoopVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of MLD Snooping service per port."
    ::= {mldSnoopMgt 24 }

mldSnoopVlanEntry OBJECT-TYPE
    SYNTAX      MldSnoopVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Entry of MLD Snooping service per VLAN."
    INDEX       { mldSnoopVlanIndex }
    ::= {mldSnoopVlanTable 1}

MldSnoopVlanEntry ::=
    SEQUENCE {
        mldSnoopVlanIndex               VlanIndex,
        mldSnoopVlanNumGroups           Unsigned32,
        mldSnoopVlanNumJoinSend         Unsigned32,
        mldSnoopVlanNumJoins            Unsigned32,
        mldSnoopVlanNumJoinSuccess      Unsigned32,
        mldSnoopVlanNumLeavesSend       Unsigned32,
        mldSnoopVlanNumLeaves           Unsigned32,
        mldSnoopVlanNumGeneralQuerySend Unsigned32,
        mldSnoopVlanNumGeneralQueryRecevied  Unsigned32,
        mldSnoopVlanNumSepcificQuerySend     Unsigned32,
        mldsnoopVlanNumSpecificQueryReceived Unsigned32,
        mldSnoopVlanNumInvalidReport         Unsigned32,
        mldSnoopVlanClearStatistics          TruthValue
    }

mldSnoopVlanIndex OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "VLAN ID"
        ::= { mldSnoopVlanEntry 1 }

mldSnoopVlanNumGroups OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Current learned groups "
        ::= { mldSnoopVlanEntry 2 }

mldSnoopVlanNumJoinSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join sent."
        ::= { mldSnoopVlanEntry 3 }

mldSnoopVlanNumJoins OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of join received "
        ::= { mldSnoopVlanEntry 4 }

mldSnoopVlanNumJoinSuccess OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of jion success "
        ::= { mldSnoopVlanEntry 5 }

mldSnoopVlanNumLeavesSend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave sent."
        ::= { mldSnoopVlanEntry 6 }

mldSnoopVlanNumLeaves OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of leave received "
        ::= { mldSnoopVlanEntry 7}

mldSnoopVlanNumGeneralQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query sent "
        ::= { mldSnoopVlanEntry 8}

mldSnoopVlanNumGeneralQueryRecevied OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of general query received "
        ::= { mldSnoopVlanEntry 9}

mldSnoopVlanNumSepcificQuerySend OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of specific query send"
        ::= { mldSnoopVlanEntry 10}

mldsnoopVlanNumSpecificQueryReceived OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of sepcific query received "
        ::= { mldSnoopVlanEntry 11}

mldSnoopVlanNumInvalidReport OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Number of invalid report received"
        ::= { mldSnoopVlanEntry 12}

mldSnoopVlanClearStatistics OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Clear this VLAN statistics"
        ::= { mldSnoopVlanEntry 13}

--
-- dynamicArpInspectionMgt
--

daiGlobal           OBJECT IDENTIFIER ::= { dynamicArpInspectionMgt 1 }
daiVlan             OBJECT IDENTIFIER ::= { dynamicArpInspectionMgt 2 }
daiInterface        OBJECT IDENTIFIER ::= { dynamicArpInspectionMgt 3 }
daiLog              OBJECT IDENTIFIER ::= { dynamicArpInspectionMgt 4 }
daiStatistics       OBJECT IDENTIFIER ::= { dynamicArpInspectionMgt 5 }

daiGlobalStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set enabled(1) to enable dynamic ARP inspection.
                     Set disabled(2) to disable dynamic ARP inspection."
        ::= { daiGlobal 1 }

daiGlobalSrcMacValidation OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set enabled(1) to enable validation of source MAC address.
                     Set disabled(2) to disable validation of source MAC
                     address."
        ::= { daiGlobal 2 }

daiGlobalDestMacValidation OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set enabled(1) to enable validation of destination
                     MAC address. Set disabled(2) to disable validation
                     of destination MAC address."
        ::= { daiGlobal 3 }

daiGlobalIpAddrValidation OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set enabled(1) to enable validation of IP address.
                     Set disabled(2) to disable validation of IP address."
        ::= { daiGlobal 4 }

daiGlobalLogNumber OBJECT-TYPE
        SYNTAX      Integer32(0..256)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The number of log buffers for saving log message.
                     The value 0 means not generating system messages."
        ::= { daiGlobal 5 }

daiGlobalLogInterval OBJECT-TYPE
        SYNTAX      Integer32(0..86400)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The value of the time interval for saving log messages."
        ::= { daiGlobal 6 }

daiGlobalAdditionalValidStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The vaule of this object is disabled(2) when the status of
                     daiGlobalSrcMacValidation, daiGlobalDestMacValidation,
                     and daiGlobalIpAddrValidation are disabled; enabled(1)
                     when one or more of these variables are enabled."
        ::= { daiGlobal 7 }

daiGlobalIpAddrValidationAllowZeros OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set enabled(1) to enable validation of IP address allow zeros.
                     Set disabled(2) to disable validation of IP address allow zeros."
        ::= { daiGlobal 8 }

daiVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DaiVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains dynamic ARP inspection configurations
                     for existing VLANs."
        ::= { daiVlan 1 }

daiVlanEntry OBJECT-TYPE
        SYNTAX      DaiVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance containing the configuration of dynamic ARP
                     inspection for each existing VLAN."
        INDEX       { daiVlanIndex }
        ::= { daiVlanTable 1 }

DaiVlanEntry  ::= SEQUENCE
{
        daiVlanIndex          VlanIndex,
        daiVlanStatus         EnabledStatus,
        daiVlanArpAclName     DisplayString,
        daiVlanArpAclStatus   INTEGER
}

daiVlanIndex OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the VLAN ID on which dynamic ARP
                     inspection is configured."
        ::= { daiVlanEntry 1 }

daiVlanStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether dynamic ARP inspection
                     is enabled in this VLAN."
        ::= { daiVlanEntry 2 }

daiVlanArpAclName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..15))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies the ARP ACL name bound to the interface.
                     The default value of daiVlanArpAclStatus is dynamic(2)."
        ::= { daiVlanEntry 3 }

daiVlanArpAclStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        static(1),
                        dynamic(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set to static(1) means packets not matching the ACL are
                     dropped. Set to dynamic(2) means packets not matching the
                     ACL are validated by the DHCP snooping binding table.
                     When daiVlanArpAclName is configured, the default value
                     of daiVlanArpAclStatus is dynamic(2)."
        ::= { daiVlanEntry 4 }

daiPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DaiPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table containing dynamic ARP inspection configurations
                     for port interfaces."
        ::= { daiInterface 1 }

daiPortEntry OBJECT-TYPE
        SYNTAX      DaiPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance containing the configuration of dynamic ARP
                     inspection at each port interface."
        INDEX       { daiPortIfIndex }
        ::= { daiPortTable 1 }

DaiPortEntry    ::= SEQUENCE
{
        daiPortIfIndex           InterfaceIndex,
        daiPortTrustStatus       EnabledStatus,
        daiPortRateLimit         Unsigned32
}

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

daiPortTrustStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether the port is trusted for
                     dynamic ARP inspection."
        ::= { daiPortEntry 2 }

daiPortRateLimit OBJECT-TYPE
        SYNTAX      Unsigned32(0..2048|'FFFFFFFF'h)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The value of rate limit threshold per second of disposing
                     ARP messages. Set the value 0xFFFFFFFF as no rate limit."
        ::= { daiPortEntry 3 }

daiLogTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF DaiLogEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table containing dynamic ARP inspection log
                     information."
        ::= { daiLog 1 }

daiLogEntry OBJECT-TYPE
        SYNTAX      DaiLogEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance containing log information of dynamic ARP
                     inspection at each VLAN interface."
        INDEX       { daiLogIndex }
        ::= { daiLogTable 1 }

DaiLogEntry    ::= SEQUENCE
{
        daiLogIndex          Integer32,
        daiLogVlan           VlanIndex,
        daiLogPort           InterfaceIndex,
        daiLogSrcIpAddress   IpAddress,
        daiLogDestIpAddress  IpAddress,
        daiLogSrcMacAddress  MacAddress,
        daiLogDestMacAddress MacAddress
}

daiLogIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the index of dynamic ARP
                     inspection log information."
        ::= { daiLogEntry 1 }

daiLogVlan OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates the VLAN ID of dynamic ARP
                     inspection log information."
        ::= { daiLogEntry 2 }

daiLogPort OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates the ifIndex of dynamic ARP
                     inspection log information."
        ::= { daiLogEntry 3 }

daiLogSrcIpAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The source IP address of dynamic ARP inspection
                     log information."
        ::= { daiLogEntry 4 }

daiLogDestIpAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The destination IP address of dynamic ARP inspection
                     log information."
        ::= { daiLogEntry 5 }

daiLogSrcMacAddress OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The source MAC address of dynamic ARP inspection
                     log information."
        ::= { daiLogEntry 6 }

daiLogDestMacAddress OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The destination MAC address of dynamic ARP inspection
                     log information."
        ::= { daiLogEntry 7 }

daiTotalReceivedPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of ARP packets received
                     before rate limiting."
        ::= { daiStatistics 1 }

daiTotalDroppedPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of ARP packets dropped
                     due to rate limt."
        ::= { daiStatistics 2 }

daiTotalProcessedPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of ARP packets processed
                     by ARP inspection."
        ::= { daiStatistics 3 }

daiTotalSrcMacDroppedPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of ARP packets dropped
                     by source MAC address validation."
        ::= { daiStatistics 4 }

daiTotalDestMacDroppedPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of ARP packets dropped
                     by destination MAC address validation."
        ::= { daiStatistics 5 }

daiTotalIpAddrDroppedPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of ARP packets dropped
                     by IP address validation."
        ::= { daiStatistics 6 }

daiTotalArpAclDroppedPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of ARP packets dropped
                     by ARP ACL."
        ::= { daiStatistics 7 }

daiTotalDhcpSnoopingDroppedPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of ARP packets dropped
                     by DHCP snooping."
        ::= { daiStatistics 8 }

--
-- PPPoE Intermediate Agent
--

pppoeiaGlobal OBJECT IDENTIFIER ::= { pppoeiaMgt 1 }

pppoeiaGlobalStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set enabled(1) to enable global status of PPPoE
                     Intermediate Agent. Set disbaled(2) to disable
                     global status of PPPoE Intermediate Agent."
        ::= { pppoeiaGlobal 1 }

pppoeiaGlobalAccessNodeId OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..48))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies access node identifier. Use empty to revert to
                     default value."
        ::= { pppoeiaGlobal 2 }

pppoeiaGlobalOperAccessNodeId OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The operational access node identifier."
        ::= { pppoeiaGlobal 3 }

pppoeiaGlobalGenericErrorMsg OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..127))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies generic error message. Use empty to revert to
                     default value."
        ::= { pppoeiaGlobal 4 }

pppoeiaGlobalOperGenericErrorMsg OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The operational generic error message."
        ::= { pppoeiaGlobal 5 }

pppoeiaGlobalClearStatisticsAction OBJECT-TYPE
        SYNTAX       INTEGER
                     {
                        clear(1),
                        noClear(2)
                     }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION "This variable is used to clear the counters of all
                     interfaces. Set clear(1) to perform  the clear operation.
                     The value noClear(2) will always be displayed when reading."
        ::= { pppoeiaGlobal 6 }

pppoeiaPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PppoeiaPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port configuration in PPPoE Intermediate Agent."
        ::= { pppoeiaMgt 2 }

pppoeiaPortEntry OBJECT-TYPE
        SYNTAX      PppoeiaPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port configuration in PPPoE Intermediate Agent."
        INDEX       { pppoeiaPortIndex }
        ::= { pppoeiaPortTable 1 }

PppoeiaPortEntry ::= SEQUENCE
{
    pppoeiaPortIndex                    InterfaceIndex,
    pppoeiaPortStatus                   EnabledStatus,
    pppoeiaPortTrustStatus              EnabledStatus,
    pppoeiaPortVendorTagStrip           EnabledStatus,
    pppoeiaPortCircuitId                DisplayString,
    pppoeiaPortOperCircuitId            DisplayString,
    pppoeiaPortRemoteId                 DisplayString,
    pppoeiaPortOperRemoteId             DisplayString,
    pppoeiaPortRemoteIdDelimiterEnable  EnabledStatus,
    pppoeiaPortRemoteIdDelimiterAscii   Integer32
}

pppoeiaPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        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."
        ::= { pppoeiaPortEntry 1 }

pppoeiaPortStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This parameter is used to enable/disable PPPoE
                     Intermediate Agent on interfaces."
        ::= { pppoeiaPortEntry 2 }

pppoeiaPortTrustStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This parameter is used to enable/disable trust mode of
                     PPPoE Intermediate Agent on interfaces."
        ::= { pppoeiaPortEntry 3 }

pppoeiaPortVendorTagStrip OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This parameter is used to enable/disable stripping of
                     vendor tag status of PPPoE Intermediate Agent on
                     interfaces."
        ::= { pppoeiaPortEntry 4 }

pppoeiaPortCircuitId OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..10))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies circuit ID of PPPoE Intermediate Agent on
                     interfaces. Use empty to revert to default value."
        ::= { pppoeiaPortEntry 5 }

pppoeiaPortOperCircuitId OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The operational circuit ID of PPPoE Intermediate Agent on
                     interfaces."
        ::= { pppoeiaPortEntry 6 }

pppoeiaPortRemoteId OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..63))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies remote ID of PPPoE Intermediate Agent on
                     interfaces. Use empty to revert to default value."
        ::= { pppoeiaPortEntry 7 }

pppoeiaPortOperRemoteId OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The operational remote ID of PPPoE Intermediate Agent on
                     interfaces."
        ::= { pppoeiaPortEntry 8 }

pppoeiaPortRemoteIdDelimiterEnable OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This parameter is used to enable/disable delimiter for
                     remote ID of PPPoE Intermediate Agent on interfaces."
        ::= { pppoeiaPortEntry 9 }

pppoeiaPortRemoteIdDelimiterAscii OBJECT-TYPE
        SYNTAX      Integer32(0..256)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Specifies the ASCII code of delimiter for remote ID
                     of PPPoE Intermediate Agent on interfaces. Use 256 to
                     revert to default value."
        ::= { pppoeiaPortEntry 10 }

pppoeiaPortStatsTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF PppoeiaPortStatsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port statistics in PPPoE Intermediate Agent."
        ::= { pppoeiaMgt 3 }

pppoeiaPortStatsEntry OBJECT-TYPE
        SYNTAX      PppoeiaPortStatsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port statistics in PPPoE Intermediate Agent."
        INDEX       { pppoeiaPortStatsIndex }
        ::= { pppoeiaPortStatsTable 1 }

PppoeiaPortStatsEntry ::= SEQUENCE
{
    pppoeiaPortStatsIndex               InterfaceIndex,
    pppoeiaPortStatsRecvPkts            Counter32,
    pppoeiaPortStatsRecvPadiPkts        Counter32,
    pppoeiaPortStatsRecvPadoPkts        Counter32,
    pppoeiaPortStatsRecvPadrPkts        Counter32,
    pppoeiaPortStatsRecvPadsPkts        Counter32,
    pppoeiaPortStatsRecvPadtPkts        Counter32,
    pppoeiaPortStatsDropUntrustRespPkts Counter32,
    pppoeiaPortStatsDropUntrustReqPkts  Counter32,
    pppoeiaPortStatsDropMalformedPkts   Counter32,
    pppoeiaPortStatsClearAction         INTEGER
}

pppoeiaPortStatsIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        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."
        ::= { pppoeiaPortStatsEntry 1 }

pppoeiaPortStatsRecvPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of received packets of the
                     interface."
        ::= { pppoeiaPortStatsEntry 2 }

pppoeiaPortStatsRecvPadiPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of received PPPoE Active
                     Discovery Initiation packets of the interface."
        ::= { pppoeiaPortStatsEntry 3 }

pppoeiaPortStatsRecvPadoPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of received PPPoE Active
                     Discovery Offer packets of the interface."
        ::= { pppoeiaPortStatsEntry 4 }

pppoeiaPortStatsRecvPadrPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of received PPPoE Active
                     Discovery Request packets of the interface."
        ::= { pppoeiaPortStatsEntry 5 }

pppoeiaPortStatsRecvPadsPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of received PPPoE Active
                     Discovery Session-confirmation packets of the interface."
        ::= { pppoeiaPortStatsEntry 6 }

pppoeiaPortStatsRecvPadtPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of received PPPoE Active
                     Discovery Terminate packets of the interface."
        ::= { pppoeiaPortStatsEntry 7 }

pppoeiaPortStatsDropUntrustRespPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of response packets
                     dropped because they were untrusted."
        ::= { pppoeiaPortStatsEntry 8 }

pppoeiaPortStatsDropUntrustReqPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of request packets
                     dropped because they were untrusted."
        ::= { pppoeiaPortStatsEntry 9 }

pppoeiaPortStatsDropMalformedPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of malformed packets
                     dropped because they were untrusted."
        ::= { pppoeiaPortStatsEntry 10 }

pppoeiaPortStatsClearAction OBJECT-TYPE
        SYNTAX       INTEGER
                     {
                        clear(1),
                        noClear(2)
                     }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION "This variable is used to clear the counters of specified
                     interface. Set clear(1) to perform  the clear operation.
                     The value noClear(2) will always be displayed when reading."
        ::= { pppoeiaPortStatsEntry 11 }

--
-- erpsMgt
--

-- Management for Ethernet Ring Protection Switching(ERPS) protocol.

erpsGlobalStatus OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    enabled(1),
                    disabled(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Configures the ERPS function for an entire switch.
                 Note that the ERPS domain will not take effect unless
                 it becomes active and the global status is enabled."
    ::= { erpsMgt 1 }

erpsGlobalClearStatisticsAction OBJECT-TYPE
    SYNTAX       INTEGER
                 {
                    clear(1),
                    noClear(2)
                 }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "This variable is used to clear the counters of all
                 ERPS domains. Set to clear(1) to perform  the clear operation.
                 The value noClear(2) will always be displayed when reading."
    ::= { erpsMgt 3 }

erpsDomainTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ErpsDomainEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table for ERPS domain configuration."
    ::= { erpsMgt 2 }

erpsDomainEntry OBJECT-TYPE
    SYNTAX      ErpsDomainEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Entry for ERPS domain configuration."
    INDEX
    {
        erpsDomainIndex
    }
    ::= { erpsDomainTable 1 }

ErpsDomainEntry ::= SEQUENCE
{
    erpsDomainIndex             Integer32,
    erpsDomainName              DisplayString,
    erpsDomainMegLevel          INTEGER,
    erpsDomainNodeId            MacAddress,
    erpsDomainWestRingPort      Integer32,
    erpsDomainEastRingPort      Integer32,
    erpsDomainRplPort           INTEGER,
    erpsDomainGuardTimer        Integer32,
    erpsDomainHoldoffTimer      Integer32,
    erpsDomainWtrTimer          Integer32,
    erpsDomainControlVlanID     Integer32,
    erpsDomainNodeState         INTEGER,
    erpsDomainWestRingPortState INTEGER,
    erpsDomainEastRingPortState INTEGER,
    erpsDomainRowStatus         RowStatus,
    erpsDomainMajorDomainIndex  Integer32,
    erpsDomainPropagateTC       INTEGER,
    erpsDomainWestMepId         Integer32,
    erpsDomainEastMepId         Integer32,
    erpsDomainNonErpsDevProtect INTEGER,

    erpsDomainNodeType          INTEGER,
    erpsDomainNonRevertive      INTEGER,
    erpsDomainRapsDefMac        INTEGER,
    erpsDomainRapsWithoutVc     INTEGER,
    erpsDomainVersion           INTEGER,
    erpsDomainForcedSwitch      INTEGER,
    erpsDomainManualSwitch      INTEGER,
    erpsDomainClear             INTEGER,
    erpsDomainStatsClearAction  INTEGER,

    erpsDomainWtbTimer          Integer32,
    erpsDomainWtrExpire         Integer32,
    erpsDomainWtbExpire         Integer32,
    erpsDomainWestRingPortSf    INTEGER,
    erpsDomainEastRingPortSf    INTEGER,
    erpsDomainMultiRplOwnerWarn INTEGER
}

erpsDomainIndex OBJECT-TYPE
    SYNTAX      Integer32(1..255)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An index that uniquely identifies an entry in the
                 erpsDomainTable."
    ::= { erpsDomainEntry 1 }

erpsDomainName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(1..12))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The domain name that uniquely identifies an entry in the
                 erpsDomainTable."
    ::= { erpsDomainEntry 2 }

erpsDomainMegLevel OBJECT-TYPE
    SYNTAX      INTEGER(0..7)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures the maintenance entity group (MEG) level which is
                 used to provide a communication channel for ring automatic
                 protection switching (R-APS) information."
    ::= { erpsDomainEntry 3 }

erpsDomainNodeId OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures the node id whcih is a MAC address unique to the
                 ring node."
    ::= { erpsDomainEntry 4 }

erpsDomainWestRingPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Each node on the ring connects to the ring through two ports.
                 As part of the protection switching scheme, one port can be
                 configured as the west port for the specified domain. The east
                 port and west port can not be configured as the same 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. A value of 0 means no west ring port
                 configured for this domain."
    ::= { erpsDomainEntry 5 }

erpsDomainEastRingPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Each node on the ring connects to the ring through two ports.
                 As part of the protection switching scheme, one port can be
                 configured as the east port for the specified domain. The east
                 port and west port can not be configured as the same 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. A value of 0 means no east ring port
                 configured for this domain."
    ::= { erpsDomainEntry 6 }

erpsDomainRplPort OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    none(1),
                    west(2),
                    east(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This value displays the port for ring protection link which
                 under normal conditions, i.e., without any failure or request,
                 is blocked for traffic channel, to prevent the formation of
                 loops."
    ::= { erpsDomainEntry 8 }

erpsDomainGuardTimer OBJECT-TYPE
    SYNTAX      Integer32 (10..2000)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures the value of the guard timer which is used to
                 prevent ring nodes from receiving outdated R-APS messages.
                 The range is in 10 ms steps between 10 ms and 2 seconds,
                 with a default value of 500 ms."
    DEFVAL      { 500 }
    ::= { erpsDomainEntry 9 }

erpsDomainHoldoffTimer OBJECT-TYPE
    SYNTAX      Integer32 (0..10000)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures the value of the holdoff timer which is used to
                 prevent reporting error event immediately to protection
                 switching if the provisioned holdoff timer value is non-zero.
                 The range is in 100 ms steps between 0 and 10 seconds,
                 with a default value of 0 ms."
    DEFVAL      { 0 }
    ::= { erpsDomainEntry 10 }

erpsDomainWtrTimer OBJECT-TYPE
    SYNTAX      Integer32 (5..12)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures the value of the wait-to-restore timer which is used
                 by the RPL owner node to prevent frequent switching operations
                 that may be caused by intermittent failures.
                 The range is in 1 minute steps between 5 and 12 minutes
                 with a default value of 5 minutes.
                 This object will not take effect for the non RPL owner node."
    DEFVAL      { 5 }
    ::= { erpsDomainEntry 11 }

erpsDomainControlVlanID OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "This is defined as dot1qVlanIndex in the Q-BRIDGE-MIB.
                 Configures one control VLAN for each ERPS domain. The control
                 VLAN is used only to send and receive ERPS message. A control
                 VLAN can not belong to more than one ERPS domain. A value of 0
                 means no control VLAN configured for this domain."
    ::= { erpsDomainEntry 12 }

erpsDomainNodeState OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    init(1),
                    idle(2),
                    protection(3),
                    manualSwitch(4),
                    forcedSwitch(5),
                    pending(6)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This value displays the node's current state.
                 It displays one of the following states
                 (1) init -- The node is in the init state.
                      (The node state will stay in init state if global status
                      or domain status is not enabled.)
                 (2) idle -- The node is in idle state (i.e., no detected
                      failures, and receiving only 'NR, RB' R-APS frames).
                 (3) protection -- The node is in protection state.
                 (4) manualSwitch -- The node is in manual switch state.
                 (5) forcedSwitch -- The node is in forced switch state.
                 (6) pending -- The node is in pending state."
    ::= { erpsDomainEntry 13 }

erpsDomainWestRingPortState OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    unknown(1),
                    blocking(2),
                    forwarding(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This value displays the west ring port's current state.
                 It displays one of the following states
                 (1) unknown -- The port's current state is unknown.
                     (The port's current state will stay in unknown state
                     if the node's current state is in init state.)
                 (2) blocking -- The transmission and reception of traffic
                     are blocked.
                 (3) forwarding -- The traffic can be transmitted and received
                     normally."
    ::= { erpsDomainEntry 14 }

erpsDomainEastRingPortState OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    unknown(1),
                    blocking(2),
                    forwarding(3)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This value displays the east ring port's current state.
                 It displays one of the following states
                 (1) unknown -- The port's current state is unknown.
                     (The port's current state will stay in unknown state
                     if the node's current state is in init state.)
                 (2) blocking -- The transmission and reception of traffic
                     are blocked.
                 (3) forwarding -- The traffic can be transmitted and received
                     normally."
    ::= { erpsDomainEntry 15 }

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

                 The status column has six defined values:

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

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

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

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

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

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

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

                 For a detailed description of this object, please refer to
                 SNMPv2-TC MIB.

                 Note that other objects can not be modified when the status
                 is active."
    ::= { erpsDomainEntry 16 }

erpsDomainMajorDomainIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "An index that uniquely identifies an entry in the
                 erpsDomainTable. A value of 0 means this domain has no major
                 domain.
                 Notes: This objest can not be configured if
                        erpsDomainRingPortEast has a vaule other than 0."
    ::= { erpsDomainEntry 17 }

erpsDomainPropagateTC OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    enabled(1),
                    disabled(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to enabled(1) to transmit topology change signal to the
                 major domain. It will not take effect,
                 if erpsDomainMajorDomainIndex has a value of 0."
    ::= { erpsDomainEntry 18 }

erpsDomainWestMepId OBJECT-TYPE
    SYNTAX      Integer32 (0..8191)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures a CFM Down MEP on west ring port. A down MEP can be
                 uniquely selected by given a MEPID, domain's MEG level, and
                 domain's control VLAN ID. A value of 0 means no west MEP is
                 configured for this domain."
    ::= { erpsDomainEntry 20 }

erpsDomainEastMepId OBJECT-TYPE
    SYNTAX      Integer32 (0..8191)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Configures a CFM Down MEP on east ring port. A down MEP can be
                 uniquely selected by given a MEPID, domain's MEG level, and
                 domain's control VLAN ID. A value of 0 means no east MEP is
                 configured for this domain."
    ::= { erpsDomainEntry 21 }

erpsDomainNonErpsDevProtect OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    enabled(1),
                    disabled(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to enabled(1) to use non-standard protection mechanism for
                 network containing non-ERPS devices."
    ::= { erpsDomainEntry 22 }

erpsDomainNodeType OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    none(1),
                    owner(2),
                    neighbor(3)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to none(1) to make this node act as a normal node.
                 Set to owner(2) to make this node act as an RPL owner.
                 Set to neighbor(3) to make this node act as an RPL neighbor."
    ::= { erpsDomainEntry 23 }

erpsDomainNonRevertive OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    enabled(1),
                    disabled(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to enabled(1) to enable non-revertive mode operation."
    ::= { erpsDomainEntry 24 }

erpsDomainRapsDefMac OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    enabled(1),
                    disabled(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to enabled(1) to use R-APS default MAC."
    ::= { erpsDomainEntry 25 }

erpsDomainRapsWithoutVc OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    enabled(1),
                    disabled(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to enabled(1) to enable R-APS sub ring without
                 virtual-channel for a sub domain."
    ::= { erpsDomainEntry 26 }

erpsDomainVersion OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    v1(1),
                    v2(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to v2(2) to enable ERPS v2 operation."
    DEFVAL      { 2 }
    ::= { erpsDomainEntry 27 }

erpsDomainForcedSwitch OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    none(1),
                    west(2),
                    east(3)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to west(2) to perform the forced switch command on west
                 ring port of specified domain.
                 Set to east(3) to perform the forced switch command on east
                 ring port of specified domain.
                 The value none(1) will be displayed if no forced switch command
                 is issued on local node."
    ::= { erpsDomainEntry 28 }

erpsDomainManualSwitch OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    none(1),
                    west(2),
                    east(3)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to west(2) to perform the manual switch command on west
                 ring port of specified domain.
                 Set to east(3) to perform the manual switch command on east
                 ring port of specified domain.
                 The value none(1) will be displayed if no manual switch command
                 is issued on local node."
    ::= { erpsDomainEntry 29 }

erpsDomainClear OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    clear(1),
                    noClear(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Set to clear(1) to perform the clear command on specified
                 domain.
                 The value noClear(2) will always be displayed when reading."
    ::= { erpsDomainEntry 30 }

erpsDomainStatsClearAction OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    clear(1),
                    noClear(2)
                }
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION "This variable is used to clear the counters of specified
                 domain. Set to clear(1) to perform the clear operation.
                 The value noClear(2) will always be displayed when reading."
    ::= { erpsDomainEntry 31 }

erpsDomainWtbTimer OBJECT-TYPE
    SYNTAX      Integer32 (5010..7000)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Displays the value of the wait-to-block timer in ms
                 which is used by the RPL owner node when recovering from an
                 operator command (i.e. FS or MS).
                 This object will not take effect for a non RPL owner node."
    ::= { erpsDomainEntry 32 }

erpsDomainWtbExpire OBJECT-TYPE
    SYNTAX      Integer32 (0..7000)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Displays the time remaining in ms until the
                 wait-to-block timer countdown expires.
                 A value of 0 means no countdown is running."
    ::= { erpsDomainEntry 33 }

erpsDomainWtrExpire OBJECT-TYPE
    SYNTAX      Integer32 (0..720)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Displays the time remaining in seconds until the
                 wait-to-restore timer countdown expires.
                 A value of 0 means no countdown is running."
    ::= { erpsDomainEntry 34 }

erpsDomainWestRingPortSf OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    none(1),
                    detected(2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This value displays the west ring port's current SF state.
                 It displays one of the following states
                 (1) none -- No SF is detected.
                 (2) detected -- SF is detected."
    ::= { erpsDomainEntry 35 }

erpsDomainEastRingPortSf OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    none(1),
                    detected(2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "This value displays the east ring port's current SF state.
                 It displays one of the following states
                 (1) none -- No SF is detected.
                 (2) detected -- SF is detected."
    ::= { erpsDomainEntry 36 }

erpsDomainMultiRplOwnerWarn OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    none(1),
                    detected(2)
                }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION "This value displays the multiple PPL owner warning state.
                 It displays one of the following states
                 (1) none -- No multiple PPL owner warning is detected.
                 (2) detected -- Multiple RPL owner warning is detected."
    ::= { erpsDomainEntry 37 }

erpsPortStatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ErpsPortStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Table for port statistics in ERPS."
    ::= { erpsMgt 4 }

erpsPortStatsEntry OBJECT-TYPE
        SYNTAX      ErpsPortStatsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port statistics in ERPS."
        INDEX       { erpsPortStatsDomainIndex, erpsPortStatsPortIndex }
        ::= { erpsPortStatsTable 1 }

ErpsPortStatsEntry ::= SEQUENCE
{
    erpsPortStatsDomainIndex         Integer32,
    erpsPortStatsPortIndex           INTEGER,
    erpsPortStatsLocalSfCount        Counter32,
    erpsPortStatsLocalClrSfCount     Counter32,
    erpsPortStatsSentSfPkts          Counter32,
    erpsPortStatsSentNrPkts          Counter32,
    erpsPortStatsSentNrRbPkts        Counter32,
    erpsPortStatsSentFsPkts          Counter32,
    erpsPortStatsSentMsPkts          Counter32,
    erpsPortStatsSentEventPkts       Counter32,
    erpsPortStatsSentHealthPkts      Counter32,
    erpsPortStatsRecvSfPkts          Counter32,
    erpsPortStatsRecvNrPkts          Counter32,
    erpsPortStatsRecvNrRbPkts        Counter32,
    erpsPortStatsRecvFsPkts          Counter32,
    erpsPortStatsRecvMsPkts          Counter32,
    erpsPortStatsRecvEventPkts       Counter32,
    erpsPortStatsRecvHealthPkts      Counter32,
    erpsPortStatsIgnoreSfPkts        Counter32,
    erpsPortStatsIgnoreNrPkts        Counter32,
    erpsPortStatsIgnoreNrRbPkts      Counter32,
    erpsPortStatsIgnoreFsPkts        Counter32,
    erpsPortStatsIgnoreMsPkts        Counter32,
    erpsPortStatsIgnoreEventPkts     Counter32,
    erpsPortStatsIgnoreHealthPkts    Counter32
}

erpsPortStatsDomainIndex OBJECT-TYPE
        SYNTAX      Integer32(1..255)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An index that uniquely identifies an entry in the
                     erpsDomainTable."
        ::= { erpsPortStatsEntry 1 }

erpsPortStatsPortIndex OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        west(1),
                        east(2)
                    }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the port in an ERPS domain.
                     The value west(1) means the west ring port.
                     The value east(2) means the east ring port."
        ::= { erpsPortStatsEntry 2 }

erpsPortStatsLocalSfCount OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of
                     local SF events that occurred on this ring port."
        ::= { erpsPortStatsEntry 3 }

erpsPortStatsLocalClrSfCount OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of
                     local Clear SF events that occurred on this ring port."
        ::= { erpsPortStatsEntry 4 }

erpsPortStatsSentSfPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS SF messages sent
                     via this ring port (not including the forwarded ones)."
        ::= { erpsPortStatsEntry 5 }

erpsPortStatsSentNrPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS NR messages sent
                     via this ring port (not including the forwarded ones)."
        ::= { erpsPortStatsEntry 6 }

erpsPortStatsSentNrRbPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS NR-RB messages sent
                     via this ring port (not including the forwarded ones)."
        ::= { erpsPortStatsEntry 7 }

erpsPortStatsSentFsPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS FS messages sent
                     via this ring port (not including the forwarded ones)."
        ::= { erpsPortStatsEntry 8 }

erpsPortStatsSentMsPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS MS messages sent
                     via this ring port (not including the forwarded ones)."
        ::= { erpsPortStatsEntry 9 }

erpsPortStatsSentEventPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS EVENT messages sent
                     via this ring port (not including the forwarded ones)."
        ::= { erpsPortStatsEntry 10 }

erpsPortStatsSentHealthPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of non-standard health-check
                     messages sent via this ring port
                     (not including the forwarded ones)."
        ::= { erpsPortStatsEntry 11 }

erpsPortStatsRecvSfPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS SF messages received
                     via this ring port (not including the ignored ones)."
        ::= { erpsPortStatsEntry 12 }

erpsPortStatsRecvNrPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS NR messages received
                     via this ring port (not including the ignored ones)."
        ::= { erpsPortStatsEntry 13 }

erpsPortStatsRecvNrRbPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS NR-RB messages received
                     via this ring port (not including the ignored ones)."
        ::= { erpsPortStatsEntry 14 }

erpsPortStatsRecvFsPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS FS messages received
                     via this ring port (not including the ignored ones)."
        ::= { erpsPortStatsEntry 15 }

erpsPortStatsRecvMsPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS MS messages received
                     via this ring port (not including the ignored ones)."
        ::= { erpsPortStatsEntry 16 }

erpsPortStatsRecvEventPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS EVENT messages received
                     via this ring port (not including the ignored ones)."
        ::= { erpsPortStatsEntry 17 }

erpsPortStatsRecvHealthPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of non-standard health-check
                     messages received via this ring port
                     (not including the ignored ones)."
        ::= { erpsPortStatsEntry 18 }

erpsPortStatsIgnoreSfPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS SF messages ignored
                     by this ring port because they have been timed out or
                     for other reasons."
        ::= { erpsPortStatsEntry 19 }

erpsPortStatsIgnoreNrPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS NR messages ignored
                     by this ring port because they have been timed out or
                     for other reasons."
        ::= { erpsPortStatsEntry 20 }

erpsPortStatsIgnoreNrRbPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS NR-RB messages ignored
                     by this ring port because they have been timed out or
                     for other reasons."
        ::= { erpsPortStatsEntry 21 }

erpsPortStatsIgnoreFsPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS FS messages ignored
                     by this ring port because they have been timed out or
                     for other reasons."
        ::= { erpsPortStatsEntry 22 }

erpsPortStatsIgnoreMsPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS MS messages ignored
                     by this ring port because they have been timed out or
                     for other reasons."
        ::= { erpsPortStatsEntry 23 }

erpsPortStatsIgnoreEventPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of R-APS EVENT messages ignored
                     by this ring port because they have been timed out or
                     for other reasons."
        ::= { erpsPortStatsEntry 24 }

erpsPortStatsIgnoreHealthPkts OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the total number of non-standard health-check
                     messages ignored by this ring port because they have been
                     timed out or for other reasons."
        ::= { erpsPortStatsEntry 25 }

--
-- IPv6 RA Guard
--

ipv6RaGuardPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF Ipv6RaGuardPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for IPv6 RA Guard port configuration."
        ::= { ipv6RaGuardMgt 1 }

ipv6RaGuardPortEntry OBJECT-TYPE
        SYNTAX      Ipv6RaGuardPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for IPv6 RA Guard port configuration."
        INDEX       { ipv6RaGuardPortIndex }
        ::= { ipv6RaGuardPortTable 1 }

Ipv6RaGuardPortEntry ::= SEQUENCE
{
    ipv6RaGuardPortIndex    InterfaceIndex,
    ipv6RaGuardPortStatus   INTEGER
}

ipv6RaGuardPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        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."
        ::= { ipv6RaGuardPortEntry 1 }

ipv6RaGuardPortStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "A value of enabled (1) indicates that IPv6 RA Guard feature
                     is enabled on interfaces. A value of disabled (2) indicates
                     that the feature is disabled."
        ::= { ipv6RaGuardPortEntry 2 }

--
-- lbdMgt
--

lbdGlobal       OBJECT IDENTIFIER ::= { lbdMgt 1 }
lbdInterface    OBJECT IDENTIFIER ::= { lbdMgt 2 }

lbdGlobalStatus OBJECT-TYPE
        SYNTAX      INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Set enabled(1) to enable global LBD status.
                     Set disabled(2) to disable global LBD status."
        ::= { lbdGlobal 1 }

lbdTransmitInterval OBJECT-TYPE
        SYNTAX      Unsigned32(1..32767)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The transmission interval for LBD control frames."
        ::= { lbdGlobal 2 }

lbdRecoverTime OBJECT-TYPE
        SYNTAX      Unsigned32(0|60..1000000)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The recover time used by LBD auto recovery mechanism. A
                     value of 0 disables auto recovery."
        ::= { lbdGlobal 3 }

lbdMode OBJECT-TYPE
        SYNTAX      INTEGER { port-based(1), vlan-based(2) }
        MAX-ACCESS  read-write
        STATUS      deprecated
        DESCRIPTION "The detection mode of LBD."
        ::= { lbdGlobal 4 }

lbdAction OBJECT-TYPE
        SYNTAX      INTEGER { none(1), shutdown(2), block(3) }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The protection action of LBD."
        ::= { lbdGlobal 5 }

lbdTrap OBJECT-TYPE
        SYNTAX      INTEGER { none(1), detect(2), recover(3), both(4) }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The kind of SNMP traps for LBD to send."
        ::= { lbdGlobal 6 }

lbdPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF LbdPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table containing LBD configurations for all interfaces."
        ::= { lbdInterface 1 }

lbdPortEntry OBJECT-TYPE
        SYNTAX      LbdPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance containing the configuration of LBD at each
                     interface."
        INDEX       { lbdPortIfIndex }
        ::= { lbdPortTable 1 }

LbdPortEntry    ::= SEQUENCE
{
        lbdPortIfIndex          InterfaceIndex,
        lbdPortAdminState       INTEGER,
        lbdPortOperState        INTEGER,
        lbdPortLoopedVlan       OCTET STRING
}

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

lbdPortAdminState OBJECT-TYPE
        SYNTAX      INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The LBD administrative port status."
        ::= { lbdPortEntry 2 }

lbdPortOperState OBJECT-TYPE
        SYNTAX      INTEGER { normal(1), looped(2) }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The LBD operative port status."
        ::= { lbdPortEntry 3 }

lbdPortLoopedVlan OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE (0..512))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The list of VLANs on which loopback is detected. Only when
                     oper state is looped and mode is VLAN-based, the value is
                     nonzero."
        ::= { lbdPortEntry 4 }

--
-- udldMgt
--

udldGlobalMessageInterval OBJECT-TYPE
        SYNTAX      INTEGER(7..90)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The message interval (in seconds) between UDLD probe
                     messages on ports that are in advertisement phase and are
                     determined to be bidirectional."
        DEFVAL { 15 }
        ::= { udldMgt 1 }

udldGlobalDetectionInterval OBJECT-TYPE
        SYNTAX      INTEGER(5..255)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The detection interval (in seconds) used for UDLD detection
                     process."
        DEFVAL { 5 }
        ::= { udldMgt 4 }

udldGlobalRecoveryInterval OBJECT-TYPE
        SYNTAX      INTEGER(30..86400)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The recovery interval (in seconds) used to recover
                     interface shut down by UDLD automatically."
        DEFVAL { 300 }
        ::= { udldMgt 5 }

udldGlobalRecovery OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This parameter is used to enable/disable auto recovery
                     feature."
        DEFVAL      { disabled }
       ::= { udldMgt 6 }

udldPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF UdldPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table for port configuration of UDLD."
        ::= { udldMgt 2 }

udldPortEntry OBJECT-TYPE
        SYNTAX      UdldPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Entry for port configuration of UDLD."
        INDEX       { udldPortIndex }
        ::= { udldPortTable 1 }

UdldPortEntry ::= SEQUENCE
{
    udldPortIndex                InterfaceIndex,
    udldPortStatus               EnabledStatus,
    udldPortAggressiveStatus     EnabledStatus,
    udldPortOperState            INTEGER,
    udldPortPortState            INTEGER,
    udldPortOperMessageInterval  INTEGER,
    udldPortOperTimeout          INTEGER,
    udldPortNeighborDevCount     INTEGER
}

udldPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION "The port (excluding trunk and 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."
        ::= { udldPortEntry 1 }

udldPortStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This parameter is used to enable/disable UDLD
                     on this interface."
        ::= { udldPortEntry 2 }

udldPortAggressiveStatus OBJECT-TYPE
        SYNTAX      EnabledStatus
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This parameter is used to enable/disable aggressive mode of
                     UDLD on this interface."
        ::= { udldPortEntry 3 }

udldPortOperState OBJECT-TYPE
        SYNTAX      INTEGER {
                                disabled(1),
                                linkDown(2),
                                linkUp(3),
                                advertisement(4),
                                detection(5),
                                disabledPort(6)
                            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The operational state of UDLD on this interface."
        ::= { udldPortEntry 4 }

udldPortPortState OBJECT-TYPE
        SYNTAX      INTEGER {
                                unknown(1),
                                neighborsEchoIsEmpty(2),
                                bidirectional(3),
                                mismatchWithneighborStateReported(4),
                                transmitToReceiveLoop(5),
                                unidirectional(6),
                                aggressiveModeFailure(7)
                            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The port state of UDLD on this interface."
        ::= { udldPortEntry 5 }

udldPortOperMessageInterval OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The operational message interval (in seconds) used by UDLD
                     on this interface."
        ::= { udldPortEntry 6 }

udldPortOperTimeout OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The operational timeout interval (in seconds) used by UDLD
                     to decide the basic length of the detection phase on
                     this interface."
        ::= { udldPortEntry 7 }

udldPortNeighborDevCount OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The total number of neighbor devices discovered on this
                     interface."
        ::= { udldPortEntry 8 }

udldPortNeighborDevTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF UdldPortNeighborDevEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "Table of neighbor devices discovered by UDLD
                     for each interface."
        ::= { udldMgt 3 }

udldPortNeighborDevEntry OBJECT-TYPE
        SYNTAX      UdldPortNeighborDevEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A conceptual row containing the information
                     of a neighbor device."
        INDEX       { udldPortNeighborDevPortIndex, udldPortNeighborDevIndex }
        ::= { udldPortNeighborDevTable 1 }

UdldPortNeighborDevEntry ::= SEQUENCE
{
    udldPortNeighborDevPortIndex           InterfaceIndex,
    udldPortNeighborDevIndex               Integer32,
    udldPortNeighborDevDevID               DisplayString,
    udldPortNeighborDevPortID              DisplayString,
    udldPortNeighborDevDevName             DisplayString,
    udldPortNeighborDevNeighborState       INTEGER,
    udldPortNeighborDevExpire              INTEGER,
    udldPortNeighborDevMessageInterval     INTEGER,
    udldPortNeighborDevTimeout             INTEGER
}

udldPortNeighborDevPortIndex OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "The port (excluding trunk and 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."
        ::= { udldPortNeighborDevEntry 1 }

udldPortNeighborDevIndex OBJECT-TYPE
        SYNTAX      Integer32(1..500)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A 32-bit integer uniquely identifying the nieghbor device
                     discovered by UDLD on a port interface."
        ::= { udldPortNeighborDevEntry 2 }

udldPortNeighborDevDevID OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The device ID of this neighbor device."
        ::= { udldPortNeighborDevEntry 3 }

udldPortNeighborDevPortID OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The port ID of this neighbor device."
        ::= { udldPortNeighborDevEntry 4 }

udldPortNeighborDevDevName OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The device name of this neighbor device."
        ::= { udldPortNeighborDevEntry 5 }

udldPortNeighborDevNeighborState OBJECT-TYPE
        SYNTAX      INTEGER {
                                unknown(1),
                                neighborsEchoIsEmpty(2),
                                bidirectional(3),
                                mismatchWithneighborStateReported(4),
                                unidirectional(5)
                            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The neighbor state of this neighbor device."
        ::= { udldPortNeighborDevEntry 6 }

udldPortNeighborDevExpire OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The amount of time remaining (in seconds) before this
                     entry should expire. Whenever this period expires,
                     this entry will be removed."
        ::= { udldPortNeighborDevEntry 7 }

udldPortNeighborDevMessageInterval OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The message interval (in seconds) of this neighbor device."
        ::= { udldPortNeighborDevEntry 8 }

udldPortNeighborDevTimeout OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The timeout interval (in seconds) of this neighbor device."
        ::= { udldPortNeighborDevEntry 9 }


--
-- dhcpv6SnoopMgt
--

-- Management of DHCPv6 snooping.

dhcpv6SnoopGlobal         OBJECT IDENTIFIER ::= { dhcpv6SnoopMgt 1 }
dhcpv6SnoopVlan           OBJECT IDENTIFIER ::= { dhcpv6SnoopMgt 2 }
dhcpv6SnoopInterface      OBJECT IDENTIFIER ::= { dhcpv6SnoopMgt 3 }
dhcpv6SnoopBinding        OBJECT IDENTIFIER ::= { dhcpv6SnoopMgt 4 }
dhcpv6SnoopStatistics     OBJECT IDENTIFIER ::= { dhcpv6SnoopMgt 5 }

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

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

dhcpv6SnoopStatisticsClearAction   OBJECT-TYPE
        SYNTAX     INTEGER
                   {
                      noClear(1),
                      clear(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "Action for clearing dhcpSnoopStatistics.
                     When this object is set to clear(2), statistics in dhcpSnoopStatistics will be cleared.
                     When this object is read, the value of this object is
                     always noClear(1)."
        ::= { dhcpv6SnoopGlobal 3 }
--
dhcpv6SnoopVlanConfigTable    OBJECT-TYPE
        SYNTAX      SEQUENCE OF Dhcpv6SnoopVlanConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains DHCPv6 Snooping configurations of existing VLANs."
        ::= { dhcpv6SnoopVlan 1 }

dhcpv6SnoopVlanConfigEntry    OBJECT-TYPE
        SYNTAX      Dhcpv6SnoopVlanConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance contains the configuration to enable
                     or disable DHCPv6 Snooping at each existing VLAN."
        INDEX       { dhcpv6SnoopVlanIndex }
        ::= { dhcpv6SnoopVlanConfigTable 1 }

Dhcpv6SnoopVlanConfigEntry  ::= SEQUENCE
{
        dhcpv6SnoopVlanIndex      VlanIndex,
        dhcpv6SnoopVlanEnable     EnabledStatus
}

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

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

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

dhcpv6SnoopPortConfigEntry    OBJECT-TYPE
        SYNTAX      Dhcpv6SnoopPortConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance contains the configuration to enable or disable
                     trust state of each port or trunk for DHCPv6 Snooping purpose."
        INDEX       { dhcpv6SnoopPortIfIndex }
        ::= { dhcpv6SnoopPortConfigTable 1 }

Dhcpv6SnoopPortConfigEntry    ::= SEQUENCE
{
        dhcpv6SnoopPortIfIndex        InterfaceIndex,
        dhcpv6SnoopPortTrustEnable    EnabledStatus,
        dhcpv6SnoopPortMaxBinding     Integer32,
        dhcpv6SnoopPortCurrentBinding Integer32
}

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

dhcpv6SnoopPortTrustEnable    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."
        ::= { dhcpv6SnoopPortConfigEntry 2 }

dhcpv6SnoopPortMaxBinding     OBJECT-TYPE
        SYNTAX     Integer32(1..5)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "The maximum number of binding entries of the port or trunk"
        ::= { dhcpv6SnoopPortConfigEntry 3}

dhcpv6SnoopPortCurrentBinding OBJECT-TYPE
        SYNTAX     Integer32(0..5)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "The number of dynamic binding entrires learned on the port or trunk."
        ::= { dhcpv6SnoopPortConfigEntry 4}
--
dhcpv6SnoopBindingTable      OBJECT-TYPE
        SYNTAX      SEQUENCE OF Dhcpv6SnoopBindingEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the DHCPv6 binding entries information
                     learned by the device."
        ::= { dhcpv6SnoopBinding 1 }

dhcpv6SnoopBindingEntry      OBJECT-TYPE
        SYNTAX      Dhcpv6SnoopBindingEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance contains the link-layer address, ia type,
                    ia id, IPv6 address, VLAN number, interface number, lifetime."
        INDEX       {
                      dhcpv6SnoopBindingLinkLayerAddress,
                      dhcpv6SnoopBindingIaType,
                      dhcpv6SnoopBindingIaId,
                      dhcpv6SnoopBindingIpv6Address
                    }
        ::= { dhcpv6SnoopBindingTable 1 }

Dhcpv6SnoopBindingEntry      ::= SEQUENCE
{
        dhcpv6SnoopBindingLinkLayerAddress  MacAddress,
        dhcpv6SnoopBindingIaType            INTEGER,
        dhcpv6SnoopBindingIaId              Unsigned32,
        dhcpv6SnoopBindingIpv6Address       InetAddress,
        dhcpv6SnoopBindingVlanIndex         VlanIndex,
        dhcpv6SnoopBindingPortIfIndex       InterfaceIndex,
        dhcpv6SnoopBindingLifeTime          Unsigned32
}

dhcpv6SnoopBindingLinkLayerAddress      OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the link-layer address of a DHCPv6
                     client host."
        ::= { dhcpv6SnoopBindingEntry 1 }


dhcpv6SnoopBindingIaType      OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                       na(3),
                       ta(4)
                    }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the IPv6 address is a type of a DHCPv6
                     client host. na - Non-temporary address, ta - temporary address"
        ::= { dhcpv6SnoopBindingEntry 2 }

dhcpv6SnoopBindingIaId      OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the IPv6 address is an id of a DHCPv6
                     client host."
        ::= { dhcpv6SnoopBindingEntry 3 }

dhcpv6SnoopBindingIpv6Address      OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object indicates the IPv6 address of a DHCPv6
                     client host."
        ::= { dhcpv6SnoopBindingEntry 4 }

dhcpv6SnoopBindingVlanIndex      OBJECT-TYPE
        SYNTAX      VlanIndex
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates the VLAN which a DHCPv6 client host
                     belongs to."
        ::= { dhcpv6SnoopBindingEntry 5 }

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

dhcpv6SnoopBindingLifeTime      OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This object indicates the life time of this DHCPv6
                     binding."
        ::= { dhcpv6SnoopBindingEntry 7 }

--

dhcpSnoopRecvClientPkts     OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the received number of client packets"
        ::= { dhcpv6SnoopStatistics 1 }

dhcpSnoopSentClientPkts     OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the sent number of client packets"
        ::= { dhcpv6SnoopStatistics 2 }

dhcpSnoopDroppedClientPkts     OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the dropped number of client packets"
        ::= { dhcpv6SnoopStatistics 3 }

dhcpSnoopRecvServerPkts     OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the received number of server packets"
        ::= { dhcpv6SnoopStatistics 4 }

dhcpSnoopSentServerPkts     OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the sent number of server packets"
        ::= { dhcpv6SnoopStatistics 5 }

dhcpSnoopDroppedServerPkts     OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the dropped number of server packets"
        ::= { dhcpv6SnoopStatistics 6}

dhcpSnoopRecvRelayPkts     OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the received number of relay packets"
        ::= { dhcpv6SnoopStatistics 7 }

dhcpSnoopSentRelayPkts     OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the sent number of relay packets"
        ::= { dhcpv6SnoopStatistics 8 }

dhcpSnoopDroppedRelayPkts     OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "Indicates the dropped number of relay packets"
        ::= { dhcpv6SnoopStatistics 9}

-- ip6SrcGuardMgt Table
ip6SrcGuardConfigTable       OBJECT-TYPE
        SYNTAX      SEQUENCE OF Ip6SrcGuardConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the configurations to set
                     IPv6 Source Guard at each port."
        ::= { ip6SrcGuardMgt 1 }

ip6SrcGuardConfigEntry       OBJECT-TYPE
        SYNTAX      Ip6SrcGuardConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance contains the configuration to set
                 IPv6 Source Guard at each port."
        INDEX       { ip6SrcGuardPortIfIndex }
    ::= { ip6SrcGuardConfigTable 1}

Ip6SrcGuardConfigEntry       ::= SEQUENCE
{
        ip6SrcGuardPortIfIndex       InterfaceIndex,
        ip6SrcGuardMode              INTEGER,
    ip6SrcGuardMaxBinding        Integer32
}

ip6SrcGuardPortIfIndex       OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This object identifies the port which is capable of
                     IPv6 Source Guard feature."
        ::= { ip6SrcGuardConfigEntry 1 }

ip6SrcGuardMode      OBJECT-TYPE
        SYNTAX      INTEGER { disabled(1), srcIp(2)}
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION "This object indicates whether IPv6 Source Guard is enabled
                     at this interface. If the value equals 0, it means IPv6 Source
                     Guard  is disabled. If the value equals 1, it means IPv6 Source
                     Guard is enabled, and packets are filtered by checking source ip."
        ::= { ip6SrcGuardConfigEntry 2 }

ip6SrcGuardMaxBinding OBJECT-TYPE
    SYNTAX    Integer32 (1..5)
    MAX-ACCESS  read-write
    STATUS    current
    DESCRIPTION "This object indicates the maximum number of bindings associated with the port."
    ::= { ip6SrcGuardConfigEntry 3}
--
ip6SrcGuardAddrTable     OBJECT-TYPE
        SYNTAX      SEQUENCE OF Ip6SrcGuardAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table contains the IPv6 Source Guard bindings information
                     learnt by the device or configured by the user."
        ::= { ip6SrcGuardMgt 2 }

ip6SrcGuardAddrEntry     OBJECT-TYPE
        SYNTAX      Ip6SrcGuardAddrEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An instance contains the Mac address, binding type,
                     IPv6 address, VLAN id, interface id, and status."
    INDEX { ip6SrcGuardBindingType, ip6SrcGuardBindingMacAddress, ip6SrcGuardBindingIpv6Address}
        ::= { ip6SrcGuardAddrTable 1 }

Ip6SrcGuardAddrEntry     ::= SEQUENCE
{
    ip6SrcGuardBindingType        INTEGER,
    ip6SrcGuardBindingMacAddress    MacAddress,
    ip6SrcGuardBindingIpv6Address   InetAddressIPv6,
    ip6SrcGuardBindingVlanIndex     VlanIndex,
    ip6SrcGuardBindingPortIfIndex   InterfaceIndex,
        ip6SrcGuardBindingStatus          RowStatus
}

ip6SrcGuardBindingType       OBJECT-TYPE
    SYNTAX    INTEGER
          {
            static(1),
            dhcp6snp(2),
            ndsnp(3)
          }
    MAX-ACCESS  not-accessible
    STATUS    current
    DESCRIPTION "This object indicates the binding type of the associated client."
    ::= {ip6SrcGuardAddrEntry 1}

ip6SrcGuardBindingMacAddress  OBJECT-TYPE
    SYNTAX    MacAddress
    MAX-ACCESS  not-accessible
        STATUS      current
    DESCRIPTION "This object indicates the MAC address of the associated client."
    ::= {ip6SrcGuardAddrEntry 2}

ip6SrcGuardBindingIpv6Address OBJECT-TYPE
    SYNTAX    InetAddressIPv6
    MAX-ACCESS  not-accessible
    STATUS    current
    DESCRIPTION "This object indicates the IPv6 address of the associated client."
    ::= {ip6SrcGuardAddrEntry 3}

ip6SrcGuardBindingVlanIndex   OBJECT-TYPE
    SYNTAX    VlanIndex
    MAX-ACCESS  read-create
    STATUS    current
    DESCRIPTION "This object indicates the VLAN id of the associated client."
    ::= {ip6SrcGuardAddrEntry 4}

ip6SrcGuardBindingPortIfIndex OBJECT-TYPE
    SYNTAX    InterfaceIndex
    MAX-ACCESS  read-create
    STATUS    current
    DESCRIPTION "This object indicates the port of the associated client."
    ::= {ip6SrcGuardAddrEntry 5}

ip6SrcGuardBindingStatus    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."
    ::= {ip6SrcGuardAddrEntry 6}


--
-- trap definitions
--

ecs4510Traps  OBJECT IDENTIFIER ::= { ecs4510Notifications  1 }
ecs4510TrapsPrefix OBJECT IDENTIFIER ::= { ecs4510Traps 0 }

swPowerStatusChangeTrap NOTIFICATION-TYPE
        OBJECTS     { swIndivPowerUnitIndex, swIndivPowerIndex, swIndivPowerStatus }
        STATUS      current
        DESCRIPTION "This trap is sent when the power state changes."
        ::= { ecs4510TrapsPrefix 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."
        ::= { ecs4510TrapsPrefix 36 }

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

tcnTrap NOTIFICATION-TYPE
        OBJECTS  {
                     trapTcnReason,
                     trapTcnStackingUnitIndex,
                     trapTcnStackingUnitRole,
                     trapTcnStackingTplg,
                     trapTcnStackingUpPortIndex,
                     trapTcnStackingUpPortLinkStatus,
                     trapTcnStackingUpPortLinkStatusChanged,
                     trapTcnStackingDownPortIndex,
                     trapTcnStackingDownPortLinkStatus,
                     trapTcnStackingDownPortLinkStatusChanged
                 }
        STATUS        current
        DESCRIPTION
              "The variable represents the function of TCN:
                     pushButton(1): Push button to enable the unit as the Master unit in the stack.
                     stackingLinkDown(2): Stacking link is down.
                     stackingLinkUp(3): Stacking link is up.
                     hbtTimeout(4): Control packet sent from the Master through all units has timed-out.
                     hbtError(5): Control packet sent from the Master through all units was received with errors."
        ::= { ecs4510TrapsPrefix 63 }

--
-- ATC trap
--
swAtcBcastStormAlarmFireTrap NOTIFICATION-TYPE
        OBJECTS     {
                        atcBcastStormIfIndex,
                        atcBcastStormSampleType,
                        atcBcastStormCurrentTrafficRate,
                        atcBcastStormAlarmFireThreshold
                    }
        STATUS      current
        DESCRIPTION
            "When the broadcast traffic is detected as a storm, this trap
             will be fired."
        ::= { ecs4510TrapsPrefix 70 }

swAtcBcastStormAlarmClearTrap NOTIFICATION-TYPE
        OBJECTS     {
                        atcBcastStormIfIndex,
                        atcBcastStormSampleType,
                        atcBcastStormCurrentTrafficRate,
                        atcBcastStormAlarmClearThreshold
                    }
        STATUS      current
        DESCRIPTION
            "When the broadcast storm is detected as normal traffic, this
             trap will be fired."
        ::= { ecs4510TrapsPrefix 71 }

swAtcBcastStormTcApplyTrap NOTIFICATION-TYPE
        OBJECTS     {
                        atcBcastStormIfIndex,
                        atcBcastStormSampleType,
                        atcBcastStormCurrentTrafficRate,
                        atcBcastStormAlarmFireThreshold,
                        atcBcastStormTcApplyTime
                    }
        STATUS      current
        DESCRIPTION
            "When the ATC is activated, this trap will be fired."
        ::= { ecs4510TrapsPrefix 72 }

swAtcBcastStormTcReleaseTrap NOTIFICATION-TYPE
        OBJECTS     {
                        atcBcastStormIfIndex,
                        atcBcastStormSampleType,
                        atcBcastStormCurrentTrafficRate,
                        atcBcastStormAlarmClearThreshold,
                        atcBcastStormTcReleaseTime
                    }
        STATUS      current
        DESCRIPTION
            "When ATC is released, this trap will be fired."
        ::= { ecs4510TrapsPrefix 73 }

swAtcMcastStormAlarmFireTrap      NOTIFICATION-TYPE
        OBJECTS     {
                        atcMcastStormIfIndex,
                        atcMcastStormSampleType,
                        atcMcastStormCurrentTrafficRate,
                        atcMcastStormAlarmFireThreshold
                    }
        STATUS      current
        DESCRIPTION
            "When the multicast traffic is detected as the storm, this trap
             will be fired."
        ::= { ecs4510TrapsPrefix 74 }

swAtcMcastStormAlarmClearTrap NOTIFICATION-TYPE
        OBJECTS     {
                        atcMcastStormIfIndex,
                        atcMcastStormSampleType,
                        atcMcastStormCurrentTrafficRate,
                        atcMcastStormAlarmClearThreshold
                    }
        STATUS      current
        DESCRIPTION
            "When the multicast storm is detected as normal traffic, this
             trap will be fired."
        ::= { ecs4510TrapsPrefix 75 }

swAtcMcastStormTcApplyTrap NOTIFICATION-TYPE
        OBJECTS     {
                        atcMcastStormIfIndex,
                        atcMcastStormSampleType,
                        atcMcastStormCurrentTrafficRate,
                        atcMcastStormAlarmFireThreshold,
                        atcMcastStormTcApplyTime
                    }
        STATUS      current
        DESCRIPTION
            "When ATC is activated, this trap will be fired."
        ::= { ecs4510TrapsPrefix 76 }

swAtcMcastStormTcReleaseTrap NOTIFICATION-TYPE
        OBJECTS     {
                        atcMcastStormIfIndex,
                        atcMcastStormSampleType,
                        atcMcastStormCurrentTrafficRate,
                        atcMcastStormAlarmClearThreshold,
                        atcMcastStormTcReleaseTime
                    }
        STATUS      current
        DESCRIPTION
            "When ATC is released, this trap will be fired."
        ::= { ecs4510TrapsPrefix 77 }

stpBpduGuardPortShutdownTrap NOTIFICATION-TYPE
        OBJECTS     { ifIndex }
        STATUS   current
        DESCRIPTION "This trap will be sent when an interface is shut down
                     because of BPDU guard."
        ::= { ecs4510TrapsPrefix  91}

swLoopbackDetectionTrap NOTIFICATION-TYPE
        OBJECTS     { staLoopbackDetectionPortIfIndex }
        STATUS   current
        DESCRIPTION "This trap will be sent when loopback BPDUs have been detected."
        ::= { ecs4510TrapsPrefix  95}

networkAccessPortLinkDetectionTrap    NOTIFICATION-TYPE
        OBJECTS     {
                        ifIndex,
                        ifOperStatus,
                        networkAccessPortLinkDetectionMode,
                        networkAccessPortLinkDetectionAciton
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when a networkAccessPortLinkDetection
                     event is triggered."
        ::= { ecs4510TrapsPrefix 96 }

dot1agCfmMepUpTrap NOTIFICATION-TYPE
        OBJECTS     {
                        dot1agCfmMepDbRMepIdentifier
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when a new remote MEP is discovered."
        ::= { ecs4510TrapsPrefix 97 }

dot1agCfmMepDownTrap NOTIFICATION-TYPE
        OBJECTS     {
                        dot1agCfmMepDbRMepIdentifier
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when port status or interface status TLV
                     received from remote MEP indicates it is not up."
        ::= { ecs4510TrapsPrefix 98 }

dot1agCfmConfigFailTrap NOTIFICATION-TYPE
        OBJECTS     {
                        dot1agCfmMepIdentifier
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when a MEP receives a CCM with MPID
                     which already exists on the same MA in this switch."
        ::= { ecs4510TrapsPrefix 99 }

dot1agCfmLoopFindTrap NOTIFICATION-TYPE
        OBJECTS     {
                        dot1agCfmMepIdentifier
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when a MEP receives its own CCMs."
        ::= { ecs4510TrapsPrefix 100 }

dot1agCfmMepUnknownTrap NOTIFICATION-TYPE
        OBJECTS     {
                        dot1agCfmMepIdentifier
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when a CCM is received from
                     an unexpected MEP."
        ::= { ecs4510TrapsPrefix 101 }

dot1agCfmMepMissingTrap NOTIFICATION-TYPE
        OBJECTS     {
                        dot1agCfmMepDbRMepIdentifier
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when the cross-check enable timer expires
                     and no CCMs were received from an expected (configured) MEP."
        ::= { ecs4510TrapsPrefix 102 }

dot1agCfmMaUpTrap NOTIFICATION-TYPE
        OBJECTS     {
                        dot1agCfmMaIndex
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when all expected remote MEPs are up."
        ::= { ecs4510TrapsPrefix 103 }

autoUpgradeTrap NOTIFICATION-TYPE
        OBJECTS     {
                        fileCopyFileType,
                        trapAutoUpgradeResult,
                        trapAutoUpgradeNewVer
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when auto upgrade is executed."
        ::= { ecs4510TrapsPrefix 104 }

swCpuUtiRisingNotification NOTIFICATION-TYPE
        STATUS      current
        DESCRIPTION
              "This notification indicates that the CPU utilization has risen
               from cpuUtiFallingThreshold to cpuUtiRisingThreshold."
        ::= { ecs4510TrapsPrefix 107 }

swCpuUtiFallingNotification NOTIFICATION-TYPE
        STATUS      current
        DESCRIPTION
              "This notification indicates that the CPU utilization has fallen
               from cpuUtiRisingThreshold to cpuUtiFallingThreshold."
        ::= { ecs4510TrapsPrefix 108 }

swMemoryUtiRisingThresholdNotification NOTIFICATION-TYPE
        STATUS      current
        DESCRIPTION
              "This notification indicates that the memory utilization has risen
               from memoryUtiFallingThreshold to memoryUtiRisingThreshold."
        ::= { ecs4510TrapsPrefix 109 }

swMemoryUtiFallingThresholdNotification NOTIFICATION-TYPE
        STATUS      current
        DESCRIPTION
              "This notification indicates that the memory utilization has fallen
               from memoryUtiRisingThreshold to memoryUtiFallingThreshold."
        ::= { ecs4510TrapsPrefix 110 }

dhcpRogueServerAttackTrap NOTIFICATION-TYPE
        OBJECTS
        {
            trapDhcpClientPortIfIndex,
            trapDhcpServerIpAddress,
            trapDhcpServerMacAddress
        }
        STATUS      current
        DESCRIPTION "This trap is sent when receiving a DHCP packet from a
                    rogue server."
        ::= { ecs4510TrapsPrefix 114 }

macNotificationTrap NOTIFICATION-TYPE
    OBJECTS
    {
        trapIfIndex,
        trapVlanId,
        trapVarMacAddr,
        trapMacNotifyAction
    }
    STATUS      current
    DESCRIPTION "This trap is sent when there are changes of the
                 dynamic MAC addresses on the switch."
    ::= { ecs4510TrapsPrefix 138 }

lbdDetectionTrap NOTIFICATION-TYPE
        OBJECTS     {
                        trapIfIndex,
                        trapVlanId
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when a loopback condition is detected
                     by LBD."
        ::= { ecs4510TrapsPrefix 141 }

lbdRecoveryTrap NOTIFICATION-TYPE
        OBJECTS     {
                        trapIfIndex
                    }
        STATUS      current
        DESCRIPTION "This trap is sent when a recovery is done by LBD."
        ::= { ecs4510TrapsPrefix 142 }

sfpThresholdAlarmWarnTrap NOTIFICATION-TYPE
        OBJECTS
        {
            trapSfpThresholdAlarmWarnIfIndex,
            trapSfpThresholdAlarmWarnType
        }
        STATUS      current
        DESCRIPTION
          "This trap is sent when the sfp's A/D quantity is not within alarm/warning thresholds."
        ::= { ecs4510TrapsPrefix 189 }

--
-- UDLD trap
--
udldPortShutdownTrap NOTIFICATION-TYPE
    OBJECTS     {
                    udldPortIndex,
                    trapUdldPortShutdownReason
                }
    STATUS      current
    DESCRIPTION "This trap is sent when the port is shut down by UDLD."
    ::= { ecs4510TrapsPrefix 192 }

userAuthenticationFailureTrap NOTIFICATION-TYPE
    OBJECTS     {
                    trapVarLoginUserName,
                    trapVarSessionType,
                    trapVarLoginInetAddressType,
                    trapVarLoginInetAddress
                }
    STATUS      current
    DESCRIPTION "This trap will be triggered if authentication is fail."
    ::= { ecs4510TrapsPrefix 199 }

userAuthenticationSuccessTrap NOTIFICATION-TYPE
    OBJECTS     {
                    trapVarLoginUserName,
                    trapVarSessionType,
                    trapVarLoginInetAddressType,
                    trapVarLoginInetAddress
                }
    STATUS      current
    DESCRIPTION "This trap will be triggered if authentication is successful."
    ::= { ecs4510TrapsPrefix 200 }

loginTrap NOTIFICATION-TYPE
    OBJECTS     {
                    trapVarLoginUserName,
                    trapVarSessionType,
                    trapVarLoginInetAddressType,
                    trapVarLoginInetAddress
                }
    STATUS      current
    DESCRIPTION "This trap is sent when user login."
    ::= { ecs4510TrapsPrefix 201 }

logoutTrap NOTIFICATION-TYPE
    OBJECTS     {
                    trapVarLoginUserName,
                    trapVarSessionType,
                    trapVarLoginInetAddressType,
                    trapVarLoginInetAddress
                }
    STATUS      current
    DESCRIPTION "This trap is sent when user logout."
    ::= { ecs4510TrapsPrefix 202 }

fileCopyTrap NOTIFICATION-TYPE
    OBJECTS     {
                    trapVarLoginUserName,
                    trapVarSessionType,
                    trapVarLoginInetAddressType,
                    trapVarLoginInetAddress,
                    fileCopySrcOperType,
                    fileCopySrcFileName,
                    fileCopyDestOperType,
                    fileCopyDestFileName,
                    fileCopyFileType,
                    fileCopyUnitId,
                    fileCopyStatus,
                    fileCopyServerInetAddressType,
                    fileCopyServerInetAddress
                }
    STATUS      current
    DESCRIPTION "This trap is sent when file copy is executed.
                 If the copy action is triggered by system,
                 the login user information(trapVarLoginUserName/
                 trapVarSessionType/trapVarLoginInetAddressType/
                 trapVarLoginInetAddress) will be null value."
    ::= { ecs4510TrapsPrefix 208 }

userauthCreateUserTrap NOTIFICATION-TYPE
    OBJECTS     {
                    userAuthUserName
                }
    STATUS      current
    DESCRIPTION "This trap is sent when create user account."
    ::= { ecs4510TrapsPrefix 209 }

userauthDeleteUserTrap NOTIFICATION-TYPE
    OBJECTS     {
                    userAuthUserName
                }
    STATUS      current
    DESCRIPTION "This trap is sent when delete user account."
    ::= { ecs4510TrapsPrefix 210 }

userauthModifyUserPrivilegeTrap NOTIFICATION-TYPE
    OBJECTS     {
                    userAuthUserName,
                    userAuthPrivilege
                }
    STATUS      current
    DESCRIPTION "This trap is sent when modify user privilege."
    ::= { ecs4510TrapsPrefix 211 }

cpuGuardControlTrap NOTIFICATION-TYPE
    STATUS      current
    DESCRIPTION "This trap is sent when CPU utilization
                 rises above the high-watermark first time or when CPU utilization
                 rises from below the low-watermark to above the high-watermark."
    ::= { ecs4510TrapsPrefix 213 }

cpuGuardReleaseTrap NOTIFICATION-TYPE
    STATUS      current
    DESCRIPTION "This trap is sent when CPU utilization falls from
                 above the high-watermark to below the low-watermark."
    ::= { ecs4510TrapsPrefix 214 }

END
