librenms/librenms

View on GitHub
mibs/moxa/MOXA-EDSG512E8POE-MIB

Summary

Maintainability
Test Coverage

-- *****************************************************************
-- Moxa EtherDevice Switch EDSG512E-8PoE MIB
--
-- Copyright (c) 2016 by Moxa Inc.
-- All rights reserved.
-- *****************************************************************

MOXA-EDSG512E8POE-MIB DEFINITIONS ::= BEGIN
    IMPORTS
        enterprises, MODULE-IDENTITY, NOTIFICATION-TYPE, IpAddress, OBJECT-TYPE
            FROM SNMPv2-SMI
        DateAndTime, TEXTUAL-CONVENTION, MacAddress, DisplayString
            FROM SNMPv2-TC;

    moxa         OBJECT IDENTIFIER ::= { enterprises 8691 }    -- 1.3.6.1.4.1.8691
    industrialEthernet    OBJECT IDENTIFIER ::= { moxa 7 }        -- 1.3.6.1.4.1.8691.7

    edsg512epoe   MODULE-IDENTITY
        LAST-UPDATED "201607150000Z"
        ORGANIZATION "Moxa Inc."
        CONTACT-INFO
                "Postal: Moxa Inc.
                 Fl.4, No.135,Lane 235,Pao-Chiao Rd.
                 Shing Tien City,Taipei,Taiwan,R.O.C

                 Tel: +866-2-89191230 "

        DESCRIPTION
                "The MIB module for Moxa EDS-G512E-PoE series specific information."

        REVISION    "201607150000Z"
        DESCRIPTION
            "Support TurboPack3 v5.1 firmware,
             Added new objects:
                accessControlList,
                Password Policy,
                Login Lockout,
                System Notification Message,
                Audit and Log Management,
                Certificate Management,
                supportIfXTable,
                MAC Authentication Bypass,
                SMTP2,
                ivlSwitch,
                supportMacSticky,
                varRemoteAuthSuccessTrap,
                remoteAuthSuccessTrap,
                varRemoteAuthFailTrap,
                remoteAuthFailTrap,
                configEncryptEnable,
                fiberSN,
                accessControlProfileTable,
                calibratePeriod,
                varFiberWarningTrap,
                moxaNewCmdEnable,
                modbusSetting,
                snmpVersion,
                snmpAdminSecurityLevel,
                snmpUserSecurityLevel

             Modified objects:
                portAccessControl,
                userLoginServer,
                removeACLEgressPort,
                mgmtInterfaceAutoLogout,
                dscpMapping,
                dscpInspection"

        REVISION    "201506300000Z"
        DESCRIPTION
            "Support v4.2 firmware,
             Added new objects:
                multicastFastForwarding,

             Modified objects:
                 n/a"

        REVISION    "201407020000Z"
        DESCRIPTION
            "Support TurboPack2 v3.1 firmware,
             Added new objects:
                spanningTreePortEdge,
                enableEtherNetIP,
                enableModbus,
                enableNTPServer,
                userLoginSetting,
                cpuLoading5s,
                cpuLoading30s,
                cpuLoading300s,
                totalMemory,
                freeMemory,
                usedMemory,
                memoryUsage,

             Modified objects:
                 Vlan,
                 commRedundancy,
                 rateLimiting,
                 ieee1588Setting"

        ::= { industrialEthernet 108 }    -- 1.3.6.1.4.1.8691.7.108
                                         -- {enterprises moxa(8691) industrialEthernet7 108 }
-- -------------------------------------------------------------
-- groups in the MOXA-EDSG512E-PoE MIB
-- -------------------------------------------------------------

swMgmt        OBJECT IDENTIFIER ::= { edsg512epoe 1 }            -- 1.3.6.1.4.1.8691.7.108.1
swTraps        OBJECT IDENTIFIER ::= { edsg512epoe 2 }            -- 1.3.6.1.4.1.8691.7.108.2

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

PortList ::= TEXTUAL-CONVENTION
    STATUS            current
    DESCRIPTION
        "Each octet within this value specifies a set of eight
        ports, with the first octet specifying ports 1 through
        8, the second octet specifying ports 9 through 16, etc.
        Within each octet, the most significant bit represents
        the lowest numbered port, and the least significant bit
        represents the highest numbered port.  Thus, each port
        of the bridge is represented by a single bit within the
        value of this object.  If that bit has a value of '1'
        then that port is included in the set of ports; the port
        is not included if its bit has a value of '0'."
    SYNTAX      OCTET STRING

-- -------------------------------------------------------------
-- swMgmt group
-- -------------------------------------------------------------

    numberOfPorts OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Total Ports."
        ::= { swMgmt 1 }

    switchModel OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The switch model."
        ::= { swMgmt 2 }

    firmwareVersion OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The firmware version."
        ::= { swMgmt 4 }

    enableWebConfig OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), httpOrHttps(1), httpsOnly(2) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the Web. configuration function."
        ::= { swMgmt 5 }

    consoleLoginMode OBJECT-TYPE
        SYNTAX INTEGER  { menu(0), cli(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This option can change console login mode."
        ::= { swMgmt 51 }

    enableTelnetConsole OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable telnet console."
        ::= { swMgmt 6 }

    lineSwapRecovery OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable line-swap-fast-recovery function."
        ::= { swMgmt 7 }

     agingTime OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Web Timeout"
        ::= { swMgmt 44 }

    supportIfXTable OBJECT-TYPE
        SYNTAX INTEGER  { no(0), yes(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Support 64 bit Counter (ifXTable)."
        ::= { swMgmt 69 }

-- -------------------------------------------------------------
-- network settings
-- -------------------------------------------------------------

    networkSetting OBJECT IDENTIFIER ::= { swMgmt 8 }

    switchIpAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The IP Address of this switch."
        ::= { networkSetting 1 }

    switchIpMask OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The netmask of this switch."
        ::= { networkSetting 2 }

    defaultGateway OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The default gateway of this switch."
        ::= { networkSetting 3 }

    enableAutoIpConfig OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enableDHCP(1),enableBOOTP(2)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the automatic IP address configuration function."
        ::= { networkSetting 4 }

    dnsServer1IpAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The first DNS server's IP address"
        ::= { networkSetting 5 }

    snmpTrapCommunity OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The SNMP trap community name"
        ::= { networkSetting 6 }

    trapServerAddr OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The IP address/Domain name of SNMP trap server"
        ::= { networkSetting 7 }

    dnsServer2IpAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The second DNS server's IP address"
        ::= { networkSetting 8 }

    snmpReadCommunity OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The SNMP read community name"
        ::= { networkSetting 9 }

    snmpTrap2Community OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The Second SNMP trap community name"
        ::= { networkSetting 11 }

    trap2ServerAddr OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The IP address/Domain name of Second SNMP trap server"
        ::= { networkSetting 12 }

    snmpInformEnable OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the snmpInform function."
        ::= { networkSetting 13 }

    snmpInformRetries OBJECT-TYPE
        SYNTAX INTEGER (1..99)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The snmp inform retry times of SNMP trap server"
        ::= { networkSetting 14 }

    snmpInformTimeout OBJECT-TYPE
        SYNTAX INTEGER (1..300)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The snmp inform interval of SNMP trap server"
        ::= { networkSetting 15 }

     dhcpRetryPeriods  OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The DHCP retry periods."
        ::= { networkSetting 16 }

     dhcpRetryTimes  OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The dhcp retry times."
        ::= { networkSetting 17 }

     trapVersion  OBJECT-TYPE
        SYNTAX INTEGER {
            snmpv1-Trap(0),
            snmpv2-Notification(1),
            snmpv2-Inform(2),
            snmpv3-Trap(3),
            snmpv3-Inform(4)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Version of SNMP trap"
        ::= { networkSetting 18 }

    snmpVersion  OBJECT-TYPE
        SYNTAX INTEGER {
                snmpv1-v2c-v3 (1),
                snmpv1-v2c (2),
                snmpv3 (3)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Version of SNMP"
        ::= { networkSetting 21 }

    snmpAdminSecurityLevel  OBJECT-TYPE
        SYNTAX INTEGER {
                noAuthNoPriv (1),
                authNoPriv (2),
                authPriv (3)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Admin security level"
        ::= { networkSetting 22 }

    snmpUserSecurityLevel  OBJECT-TYPE
        SYNTAX INTEGER {
                noAuthNoPriv (1),
                authNoPriv (2),
                authPriv (3)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "User security level"
        ::= { networkSetting 23 }


-- -------------------------------------------------------------
-- port settings
-- -------------------------------------------------------------

    portSetting OBJECT IDENTIFIER ::= { swMgmt 9 }

    portTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The port table."
        ::= { portSetting 1 }

    portEntry OBJECT-TYPE
        SYNTAX PortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The port entry."
        INDEX { portIndex }
        ::= { portTable 1 }

    PortEntry ::=
        SEQUENCE {
            portIndex
                INTEGER,
            portDesc
                DisplayString,
            portEnable
                INTEGER,
            portSpeed
                INTEGER,
            portMDI
                INTEGER,
            portFDXFlowCtrl
                INTEGER,
            portName
                DisplayString,
            portSubdesc
                DisplayString
        }

    portIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The port index."
        ::= { portEntry 1 }

    portDesc OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The port description"
        ::= { portEntry 2 }

    portEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the port."
        ::= { portEntry 3 }

    portSpeed OBJECT-TYPE
        SYNTAX INTEGER {
            auto(0),
            speed100M-Full(1),
            speed100M-Half(2),
            speed10M-Full(3),
            speed10M-Half(4),
            speed1000M-Full(5)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The port speed and duplex."
        ::= { portEntry 4 }

    portMDI OBJECT-TYPE
        SYNTAX INTEGER
        {
            na(0),
            auto(1),
            mdi(2),
            mdiX(3)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The port MDI/MDIX."
        ::= { portEntry 5 }

    portFDXFlowCtrl OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The port FDX Flow Control"
        ::= { portEntry 6 }

    portName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The port Name"
        ::= { portEntry 7 }

    portSubdesc OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The port second description"
        ::= { portEntry 8 }

-- -------------------------------------------------------------
-- monitor
-- -------------------------------------------------------------

    monitor OBJECT IDENTIFIER ::= { swMgmt 10 }

    power1InputStatus OBJECT-TYPE
        SYNTAX INTEGER { not-present(0), present(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The status of the first power input."
        ::= { monitor 1 }

    power2InputStatus OBJECT-TYPE
        SYNTAX INTEGER { not-present(0), present(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The status of the second power input."
        ::= { monitor 2 }

    monitorPortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MonitorPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The  port table of monitor function."
        ::= { monitor 3 }

    monitorPortEntry OBJECT-TYPE
        SYNTAX MonitorPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The port table entry of monitor function."
        INDEX { portIndex }
        ::= { monitorPortTable 1 }

    MonitorPortEntry ::=
        SEQUENCE {
            monitorLinkStatus
                INTEGER,
            monitorSpeed
                INTEGER,
            monitorAutoMDI
                INTEGER,
            monitorTraffic
                INTEGER,
            monitorFDXFlowCtrl
                INTEGER,
            monitorTxTraffic
                INTEGER,
            monitorRxTraffic
                INTEGER
        }

    monitorLinkStatus OBJECT-TYPE
        SYNTAX INTEGER { disable(-1), off(0), on(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The port link status."
        ::= { monitorPortEntry 2}

    monitorSpeed OBJECT-TYPE
        SYNTAX INTEGER
            {
            speed1000M-Full(5),
            speed1000M-Half(4),
            speed100M-Full(3),
            speed100M-Half(2),
            speed10M-Full(1),
            speed10M-Half(0),
            na(-1)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The port speed and duplex status."
        ::= { monitorPortEntry 3 }

    monitorAutoMDI OBJECT-TYPE
        SYNTAX INTEGER
            {
            auto(2),
            mdix(1),
            mdi(0),
            na(-1)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The port MDI/MDIX status."
        ::= { monitorPortEntry 4 }

    monitorTraffic OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The trafic loading percentage of port."
        ::= { monitorPortEntry 5 }

    monitorFDXFlowCtrl OBJECT-TYPE
        SYNTAX INTEGER { off(0),on(1)}
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Full-Duplex flow control status"
        ::= { monitorPortEntry 6 }

        monitorTxTraffic OBJECT-TYPE
            SYNTAX INTEGER
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The TX  traffic loading percentage of port."
            ::= { monitorPortEntry 7 }

        monitorRxTraffic OBJECT-TYPE
            SYNTAX INTEGER
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "The RTX  traffic loading percentage of port."
            ::= { monitorPortEntry 8 }
    monitorDiTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MonitorDiEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The DI table of monitor function."
        ::= { monitor 4 }

    monitorDiEntry OBJECT-TYPE
        SYNTAX MonitorDiEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The DI table entry of monitor function."
        INDEX { diIndex }
        ::= { monitorDiTable 1 }

    MonitorDiEntry ::=
        SEQUENCE {
            diIndex
                INTEGER,
            diInputStatus
                INTEGER
        }

    diIndex OBJECT-TYPE
        SYNTAX INTEGER (1..2)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The DI index of monitor function"
        ::= { monitorDiEntry 1 }

    diInputStatus OBJECT-TYPE
        SYNTAX INTEGER { off(0), on(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The DI input status."
        ::= { monitorDiEntry 2 }

-- -------------------------------------------------------------
-- Monitor Fiber Check Informations
-- -------------------------------------------------------------

    monitorFiberCheckTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MonitorFiberCheckEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The Fiber Check table of monitor function."
        ::= { monitor 11 }

    monitorFiberCheckEntry OBJECT-TYPE
        SYNTAX MonitorFiberCheckEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The fiber check table entry of monitor function."
        INDEX { portIndex }
        ::= { monitorFiberCheckTable 1 }


    MonitorFiberCheckEntry ::=
        SEQUENCE {
            fiberPort
                DisplayString,
            fiberModelName
                DisplayString,
            fiberWaveLength
                DisplayString,
            fiberVoltage
                DisplayString,
            fiberTemperature
                DisplayString,
            fiberTempWarn
                DisplayString,
            fiberTxPower
                DisplayString,
            fiberTxPowerWarn
                DisplayString,
            fiberRxPower
                DisplayString,
            fiberRxPowerWarn
                DisplayString,
            fiberSN
                DisplayString
        }

    fiberPort OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The fiber index of monitor function"
        ::= { monitorFiberCheckEntry 1 }

    fiberModelName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The fiber ModelName of monitor function"
        ::= { monitorFiberCheckEntry 2 }

    fiberWaveLength OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The fiber wavelength"
        ::= { monitorFiberCheckEntry 3 }

    fiberVoltage OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The fiber Voltage of monitor function"
        ::= { monitorFiberCheckEntry 4 }

    fiberTemperature OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The fiber Temperature of monitor function"
        ::= { monitorFiberCheckEntry 5 }

    fiberTempWarn OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Fiber Temperature warning value of monitor function"
        ::= { monitorFiberCheckEntry 6 }

    fiberTxPower OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The fiber TX power of monitor function"
        ::= { monitorFiberCheckEntry 7 }

    fiberTxPowerWarn OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The fiber TX power warning value of monitor function"
        ::= { monitorFiberCheckEntry 8 }

    fiberRxPower OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The fiber RX power of monitor function"
        ::= { monitorFiberCheckEntry 9 }

    fiberRxPowerWarn OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Fiber RX power warning value of monitor function"
        ::= { monitorFiberCheckEntry 10 }

    fiberSN OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The fiber serial number"
        ::= { monitorFiberCheckEntry 13 }

-- -------------------------------------------------------------
-- power consumption
-- -------------------------------------------------------------

    powerConsumption OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Current power comsuption(Watts). Accurate to second decimal place."
        ::= { monitor 8 }


-- -------------------------------------------------------------
-- email warning
-- -------------------------------------------------------------

    emailWarning OBJECT IDENTIFIER ::= { swMgmt 11 }
    emailService OBJECT IDENTIFIER ::= { emailWarning 1 }

    emailWarningSMTPServer OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The SMTP server's Ip Address/Domain name of email warning function."
        ::= { emailService 1 }

    emailWarningFirstRecipientEmailAddr OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The first recipient email address of email warning function."
        ::= { emailService 2 }

    emailWarningSecondRecipientEmailAddr OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The second recipient email address of email warning function."
        ::= { emailService 3 }

    emailWarningThirdRecipientEmailAddr OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The third recipient email address of email warning function."
        ::= { emailService 4 }

    emailWarningFourthRecipientEmailAddr OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The fourth recipient email address of email warning function."
        ::= { emailService 5 }

    emailWarningSMTPPort OBJECT-TYPE
        SYNTAX INTEGER (1..65536)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The SMTP server's port of email warning function."
        ::= { emailService 6 }

    emailWarningSMTPUser OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The registered user account for SMTP service of email warning function."
        ::= { emailService 7 }

    emailWarningSMTPPassword OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The registered user password for SMTP service of email warning function."
        ::= { emailService 8 }

    emailWarningSMTPTLS OBJECT-TYPE
        SYNTAX INTEGER { no(0), yes(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The SMTP server use TLS of email warning function."
        ::= { emailService 9 }

    emailWarningSMTPAuthMethod OBJECT-TYPE
        SYNTAX INTEGER { plain(0), login(1), cram-md5(2) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The SMTP server use login method of email warning function."
        ::= { emailService 10 }

    emailWarningSenderEmailAddr OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The sender email address of email warning function."
        ::= { emailService 11 }

-- -------------------------------------------------------------
-- set device ip
-- -------------------------------------------------------------

    setDeviceIp OBJECT IDENTIFIER ::= { swMgmt 12 }

      setDevIpTable OBJECT-TYPE
        SYNTAX SEQUENCE OF SetDevIpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The set devvice IP table."
        ::= { setDeviceIp 1 }

    setDevIpEntry OBJECT-TYPE
        SYNTAX SetDevIpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The set devvice IP table entry."
        INDEX { setDevIpIndex }
        ::= { setDevIpTable 1 }

    SetDevIpEntry ::=
        SEQUENCE {
            setDevIpIndex
                INTEGER,
            setDevIpCurrentIpofDevice
                DisplayString,
            setDevIpPresentBy
                INTEGER,
            setDevIpDedicatedIp
                IpAddress
        }
    setDevIpIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The set devvice IP index."
        ::= { setDevIpEntry 1 }

    setDevIpCurrentIpofDevice OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current IP address of connected to this port."
        ::= { setDevIpEntry 2 }

    setDevIpPresentBy OBJECT-TYPE
        SYNTAX INTEGER
            {
            no(0),
            dhcpClient(1),
            rarp(2),
            bootp(4)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The protocol used that assigning IP to the device."
        ::= { setDevIpEntry 3 }

    setDevIpDedicatedIp OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The IP address when assign to the device connected to this port."
        ::= { setDevIpEntry 4 }

-- -------------------------------------------------------------
-- port mirror
-- -------------------------------------------------------------

    mirroring OBJECT IDENTIFIER ::= { swMgmt 13 }

    targetPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The mirrored port of mirroring function."
        ::= { mirroring 1 }

    mirroringPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The mirroring port of mirroring function."
        ::= { mirroring 2 }

    monitorDirection OBJECT-TYPE
        SYNTAX INTEGER
            {
            inputDataStream(0),
            outputDataStream(1),
            biDirectional(2)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The traffic direction of mirroring function."
        ::= { mirroring 3 }

-- -------------------------------------------------------------
-- port trunking
-- -------------------------------------------------------------

    portTrunking OBJECT IDENTIFIER ::= { swMgmt 14 }

    -- trunk setting table

    trunkSettingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF TrunkSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port Trunking Setting Table."
        ::= { portTrunking 1 }

    trunkSettingEntry OBJECT-TYPE
        SYNTAX TrunkSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port Trunking Setting Entry."
        INDEX { trunkSettingIndex }
        ::= { trunkSettingTable 1 }

    TrunkSettingEntry ::=
        SEQUENCE {
            trunkSettingIndex
                INTEGER,
            trunkType
                INTEGER,
            trunkMemberPorts
                PortList
            }

    trunkSettingIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Trunking Group Index."
        ::= { trunkSettingEntry 1 }

    trunkType OBJECT-TYPE
        SYNTAX INTEGER {
            static(1),
            lacp(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Trunking Group Type."
        ::= { trunkSettingEntry 2 }

    trunkMemberPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Trunking Group Member Ports."
        ::= { trunkSettingEntry 3 }

    -- trunk table

    trunkTable OBJECT-TYPE
        SYNTAX SEQUENCE OF TrunkEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port Trunking Table."
        ::= { portTrunking 2 }

    trunkEntry OBJECT-TYPE
        SYNTAX TrunkEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port Trunking Entry."
        INDEX { trunkIndex, trunkPort }
        ::= { trunkTable 1 }

    TrunkEntry ::=
        SEQUENCE {
            trunkIndex
                INTEGER,
            trunkPort
                INTEGER,
            trunkStatus
                INTEGER
            }

    trunkIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Trunking Group Index."
        ::= { trunkEntry 1 }

    trunkPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Trunking Group Member Port."
        ::= { trunkEntry 2 }

    trunkStatus OBJECT-TYPE
        SYNTAX INTEGER {
            success(1),
            fail(2),
            standby(3)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Trunking Port Status."
        ::= { trunkEntry 3 }

-- -------------------------------------------------------------
-- communication redundancy
-- -------------------------------------------------------------

    commRedundancy OBJECT IDENTIFIER ::= { swMgmt 16 }

    protocolOfRedundancySetup OBJECT-TYPE
        SYNTAX INTEGER  { spanningTree(1), turboRing(2), turboRingV2(3), turboChain(4), mstp(5)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
        "This set the redundancy protocol of this switch. "
        ::= { commRedundancy 1 }

    turboRing OBJECT IDENTIFIER ::= { commRedundancy 2}

    turboRingMaster OBJECT-TYPE
        SYNTAX INTEGER  { no(0), yes(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Is this a Master or Slave."
        ::= { turboRing 1 }

    turboRingMasterSetup OBJECT-TYPE
        SYNTAX INTEGER  { no(0), yes(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set this to be Master."
        ::= { turboRing 2 }

    turboRingPortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF TurboRingPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Turbo Ring Port Table."
        ::= { turboRing 3 }

    turboRingPortEntry OBJECT-TYPE
        SYNTAX TurboRingPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Turbo Ring Port Entry."
        INDEX { turboRingPortIndex  }
        ::= { turboRingPortTable 1 }

    TurboRingPortEntry ::=
        SEQUENCE {
            turboRingPortIndex
                INTEGER,
            turboRingPortStatus
                INTEGER,
            turboRingPortDesignatedBridge
                OCTET STRING,
            turboRingPortDesignatedPort
                INTEGER
        }
    turboRingPortIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Turbo Ring Port Index."
        ::= { turboRingPortEntry 1 }

    turboRingPortStatus OBJECT-TYPE
        SYNTAX INTEGER
            {
            portDisabled(0),
            notTurboRingPort(1),
            linkDown(2),
            blocked(3),
            learning(4),
            forwarding(5)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Turbo Ring Port Status."
        ::= { turboRingPortEntry 2 }

     turboRingPortDesignatedBridge OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
             "The MAC address of the bridge which this
              port considers to be the Designated Bridge for
              this port's segment."
        ::= { turboRingPortEntry 3 }

    turboRingPortDesignatedPort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
              "The Port Number of the port on the Designated
               Bridge for this port's segment."
     ::= { turboRingPortEntry 4 }

    turboRingDesignatedMaster OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
             "The MAC address of the bridge which is the Master of the TURBO RING."
        ::= { turboRing 6 }

    turboRingRdntPort1 OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
             "The port number of 1st Redundant Port on the TURBO RING."
        ::= { turboRing 7 }

    turboRingRdntPort2 OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
             "The port number of 2nd Redundant Port on the TURBO RING."
        ::= { turboRing 8 }

    turboRingEnableCoupling OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the ring coupling function."
        ::= { turboRing 9 }

    turboRingCouplingPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The coupling port of ring coupling function."
        ::= { turboRing 10 }

    turboRingCouplingPortStatus OBJECT-TYPE
        SYNTAX INTEGER
            {
            portDisabled(0),
            notCouplingPort(1),
            linkDown(2),
            blocked(3),
            forwarding(5)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The coupling port status of ring coupling function."
        ::= { turboRing 11 }

    turboRingControlPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The control port of ring coupling function."
        ::= { turboRing 12 }

    turboRingControlPortStatus OBJECT-TYPE
        SYNTAX INTEGER
            {
            portDisabled(0),
            notControlPort(1),
            linkDown(2),
            blocked(3),
            forwarding(5),
            inactive(6),
            active(7)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The control port status of ring coupling function."
        ::= { turboRing 13 }

    turboRingBrokenStatus OBJECT-TYPE
        SYNTAX INTEGER
            {
            na(0),
            normal(1),
            broken(2)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Turbo Ring broken display."
        ::= { turboRing 14 }

    spanningTree OBJECT IDENTIFIER ::= { commRedundancy 3 }

    spanningTreeRoot OBJECT-TYPE
        SYNTAX INTEGER  { no(0), yes(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The root of spanning tree."
        ::= { spanningTree 1 }

    spanningTreeBridgePriority OBJECT-TYPE

        SYNTAX INTEGER {priority0(0), priority4096(4096), priority8192(8192), priority12288(12288),
                        priority16384(16384), priority20480(20480), priority24576(24576),
                        priority28672(28672), priority32768(32768), priority36864(36864),
                        priority40960(40960), priority45056(45056), priority49152(49152),
                        priority53248(53248), priority57344(57344), priority61440(61440)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The bridge priority of spanning tree protocol."
        ::= { spanningTree 2 }

    spanningTreeHelloTime OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The hello time of spanning tree protocol."
        ::= { spanningTree 3 }

    spanningTreeMaxAge OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The max. age of spanning tree protocol."
        ::= { spanningTree 4 }

    spanningTreeForwardingDelay OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Tje forwarding delay of spanning tree protocol."
        ::= { spanningTree 5 }

    spanningTreeTable OBJECT-TYPE
        SYNTAX SEQUENCE OF SpanningTreeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The spanning tree table."
        ::= { spanningTree 6 }

    spanningTreeEntry OBJECT-TYPE
        SYNTAX SpanningTreeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The spanning tree port entry."
        INDEX { spanningTreeIndex }
        ::= { spanningTreeTable 1 }

    SpanningTreeEntry ::=
        SEQUENCE {
            spanningTreeIndex
                INTEGER,
            enableSpanningTree
                INTEGER,
            spanningTreePortPriority
                INTEGER,
            spanningTreePortCost
                INTEGER,
            spanningTreePortStatus
                INTEGER,
            spanningTreePortEdge
                INTEGER
        }
    spanningTreeIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The index of spanning tree table."
        ::= { spanningTreeEntry 1 }
    enableSpanningTree OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable of spanning tree protocol for this port."
        ::= { spanningTreeEntry 2 }

    spanningTreePortPriority OBJECT-TYPE

        SYNTAX INTEGER {priority0(0), priority16(16), priority32(32), priority48(48),
                        priority64(64), priority80(80), priority96(96), priority112(112),
                        priority128(128), priority144(144), priority160(160), priority176(176),
                        priority192(192), priority208(208), priority224(224), priority240(240)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The port priority of spanning tree protocol."
        ::= { spanningTreeEntry 3 }

    spanningTreePortCost OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The port cost of spanning tree protocol."
        ::= { spanningTreeEntry 4 }

    spanningTreePortStatus OBJECT-TYPE
        SYNTAX INTEGER
            {
            portDisabled(0),
            notSpanningTreePort(1),
            linkDown(2),
            blocked(3),
            learning(4),
            forwarding(5)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The port status of spanning tree protocol."
        ::= { spanningTreeEntry 5 }

   spanningTreePortEdge OBJECT-TYPE
        SYNTAX INTEGER { auto(0), true(1), false(2) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This configures the Edge Port property for this port."
        ::= { spanningTreeEntry 6 }

   activeProtocolOfRedundancy OBJECT-TYPE
        SYNTAX INTEGER  { none(0), spanningTree(1), turboRing(2), turboRingV2(3), turboChain(4), mstp(5)}
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
        "This shows the active redundancy protocol of this switch now. The none(0) stauts will
         be showed if only if the switch's redundancy protocol is set to spanning tree and none of
         ports enable spanning tree."
        ::= { commRedundancy 4 }

   turboRingV2 OBJECT IDENTIFIER ::= { commRedundancy 5}

   turboRingV2Ring1 OBJECT IDENTIFIER ::= { turboRingV2 1 }

   ringIndexRing1 OBJECT-TYPE
        SYNTAX INTEGER (1..2)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The turboRingV2 Ring Index."
        ::= { turboRingV2Ring1 1 }

    ringEnableRing1 OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The turboRingV2 Ring1 Enalbe Config."
        ::= { turboRingV2Ring1 2 }

    masterSetupRing1 OBJECT-TYPE
        SYNTAX INTEGER  { no(0), yes(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Is this a Master or Slave."
        ::= { turboRingV2Ring1 3 }

    masterStatusRing1 OBJECT-TYPE
        SYNTAX INTEGER  { no(0), yes(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Set this to be Master."
        ::= { turboRingV2Ring1 4 }

    designatedMasterRing1 OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
             "The MAC address of the bridge which is the Master of the turboRingV2."
        ::= { turboRingV2Ring1 5 }

    rdnt1stPortRing1 OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
             "The port number of 1st Redundant Port on the turboRingV2."
        ::= { turboRingV2Ring1 6 }

    rdnt1stPortStatusRing1 OBJECT-TYPE
        SYNTAX INTEGER
            {
            disabled(0),
            notRedundant(1),
            linkdown(2),
            blocking(3),
            learning(4),
            forwarding(5)
            }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
             "The status of 1st Redundant Port on the turboRingV2."
        ::= { turboRingV2Ring1 7 }

    rdnt2ndPortRing1 OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
             "The port number of 2nd Redundant Port on the turboRingV2."
        ::= { turboRingV2Ring1 8 }


      rdnt2ndPortStatusRing1 OBJECT-TYPE
        SYNTAX INTEGER
            {
            disabled(0),
            notRedundant(1),
            linkdown(2),
            blocking(3),
            learning(4),
            forwarding(5)
            }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
             "The status of 2nd Redundant Port on the turboRingV2."
        ::= { turboRingV2Ring1 9 }

    brokenStatusRing1 OBJECT-TYPE
        SYNTAX INTEGER
            {
            na(0),
            normal(1),
            broken(2)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "turboRingV2 broken display."
        ::= { turboRingV2Ring1 10 }

    turboRingV2Ring2 OBJECT IDENTIFIER ::= { turboRingV2 2 }

    ringIndexRing2 OBJECT-TYPE
        SYNTAX INTEGER (1..2)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The turboRingV2 Ring Index."
        ::= { turboRingV2Ring2 1 }

    ringEnableRing2 OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The turboRingV2 Ring2 Enalbe Config."
        ::= { turboRingV2Ring2 2 }

    masterSetupRing2 OBJECT-TYPE
        SYNTAX INTEGER  { no(0), yes(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Is this a Master or Slave."
        ::= { turboRingV2Ring2 3 }

    masterStatusRing2 OBJECT-TYPE
        SYNTAX INTEGER  { no(0), yes(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Set this to be Master."
        ::= { turboRingV2Ring2 4 }

    designatedMasterRing2 OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
             "The MAC address of the bridge which is the Master of the turboRingV2."
        ::= { turboRingV2Ring2 5 }

    rdnt1stPortRing2 OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
             "The port number of 1st Redundant Port on the turboRingV2."
        ::= { turboRingV2Ring2 6 }

    rdnt1stPortStatusRing2 OBJECT-TYPE
        SYNTAX INTEGER
            {
            disabled(0),
            notRedundant(1),
            linkdown(2),
            blocking(3),
            learning(4),
            forwarding(5)
            }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
             "The status of 1st Redundant Port on the turboRingV2."
        ::= { turboRingV2Ring2 7 }

    rdnt2ndPortRing2 OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
             "The port number of 2nd Redundant Port on the turboRingV2."
        ::= { turboRingV2Ring2 8 }


      rdnt2ndPortStatusRing2 OBJECT-TYPE
        SYNTAX INTEGER
            {
            disabled(0),
            notRedundant(1),
            linkdown(2),
            blocking(3),
            learning(4),
            forwarding(5)
            }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
             "The status of 2nd Redundant Port on the turboRingV2."
        ::= { turboRingV2Ring2 9 }

    brokenStatusRing2 OBJECT-TYPE
        SYNTAX INTEGER
            {
            na(0),
            normal(1),
            broken(2)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "turboRingV2 broken display."
        ::= { turboRingV2Ring2 10 }

    turboRingV2Coupling OBJECT IDENTIFIER ::= { turboRingV2 3 }

    couplingEnable OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting the ring coupling enable."
        ::= { turboRingV2Coupling 1 }

    couplingMode OBJECT-TYPE
        SYNTAX INTEGER  { dualHoming(1), couplingBackup(2), couplingPrimary(3) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting the ring coupling mode."
        ::= { turboRingV2Coupling 2 }

    coupling1stPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "If in 'DUAL HOMING' mode,port name is 'Primary port',If in 'COUPLING' mode,port name is 'Coupling port'"
        ::= { turboRingV2Coupling 3 }

    coupling1stPortStatus OBJECT-TYPE
        SYNTAX INTEGER
            {
            disabled(0),
            notRedundant(1),
            linkdown(2),
            blocking(3),
            learning(4),
            forwarding(5)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The 1st coupling port status of coupling function."
        ::= { turboRingV2Coupling 4 }

    coupling2ndPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "If in 'DUAL HOMING' mode,port name is 'Backup port',If in 'COUPLING' mode,port name is no used."
        ::= { turboRingV2Coupling 5 }

    coupling2ndPortStatus OBJECT-TYPE
        SYNTAX INTEGER
            {
            disabled(0),
            notRedundant(1),
            linkdown(2),
            blocking(3),
            learning(4),
            forwarding(5)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The 2nd coupling port status of coupling function."
        ::= { turboRingV2Coupling 6 }


 turboChain OBJECT IDENTIFIER ::= { commRedundancy 6}

    turboChainRole OBJECT-TYPE
        SYNTAX  INTEGER
            {
            head(1),
            member(2),
            tail(3)
            }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
             "The Role of TURBO CHAIN."
        ::= { turboChain 1 }

    turboChainPort1 OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
             "The port number of 1st Redundant Port on the TURBO CHAIN.
             If switch role is Turbo Chain Head, this is Head port,
             If Switch role is  Turbo Chain Tail, this is Tail port."
        ::= { turboChain 2 }

    turboChainPort2 OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
             "The port number of 2nd Redundant Port on the TURBO CHAIN.
             It is the member port of TurboChain"
        ::= { turboChain 3 }

    turboChainPort1Status OBJECT-TYPE
        SYNTAX INTEGER
            {
            notTurboChainPort(0),
            linkDown(1),
            blocking(2),
            blocked(3),
            forwarding(4),
            na(5)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Turbo Chain Port Status."
        ::= { turboChain 4 }

     turboChainPort2Status OBJECT-TYPE
        SYNTAX INTEGER
            {
            notTurboChainPort(0),
            linkDown(1),
            blocking(2),
            blocked(3),
            forwarding(4),
            na(5)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Turbo Chain Port Status."
        ::= { turboChain 5 }

     turboChainPort1PartnerBridge OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
             "The MAC address of the next bridge "
        ::= { turboChain 6 }

     turboChainPort2PartnerBridge OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
             "The MAC address of the neighbor Turbo Chain switch"
        ::= { turboChain 7 }

-- -------------------------------------------------------------
-- relay warning
-- -------------------------------------------------------------

    relayWarning OBJECT IDENTIFIER ::= { swMgmt 17 }

    relayWarningTable OBJECT-TYPE
        SYNTAX SEQUENCE OF RelayWarningEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The relay warning table."
        ::= { relayWarning 11 }

    relayWarningEntry OBJECT-TYPE
        SYNTAX RelayWarningEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Relay Warning Entry."
        INDEX { relayAlarmIndex }
        ::= { relayWarningTable 1 }

    RelayWarningEntry ::=
        SEQUENCE {
            relayAlarmIndex
                INTEGER,
            relayWarningRelayContact
                INTEGER,
            overrideRelayWarningSetting
                INTEGER,
            relayWarningPower1Off
                INTEGER,
            relayWarningPower1OffStatus
                INTEGER,
            relayWarningPower2Off
                INTEGER,
            relayWarningPower2OffStatus
                INTEGER,
            relayWarningTurboRingBreak
                INTEGER,
            relayWarningTurboRingBreakStatus
                INTEGER
        }

    relayAlarmIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Relay alarm index."
        ::= { relayWarningEntry 1 }

    relayWarningRelayContact OBJECT-TYPE
        SYNTAX INTEGER  {closed(0) ,opened(1)}
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The first Relay contact status."
        ::= { relayWarningEntry 2 }


    overrideRelayWarningSetting OBJECT-TYPE
        SYNTAX INTEGER { no(0), yes(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Override the relay warning setting."
        ::= { relayWarningEntry 3 }

    relayWarningPower1Off OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The relay contact will be opened while the first power input off."
        ::= { relayWarningEntry 4 }

    relayWarningPower1OffStatus OBJECT-TYPE
        SYNTAX INTEGER  { not-triggered(0), triggered(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The relay contact is opened as the first power input off.."
        ::= { relayWarningEntry 5 }

    relayWarningPower2Off OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The relay contact will be opened while the second power input off."
        ::= { relayWarningEntry 6 }

    relayWarningPower2OffStatus OBJECT-TYPE
        SYNTAX INTEGER  { not-triggered(0), triggered(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The relay contact is opened as the second power input off."
        ::= { relayWarningEntry 7 }

     relayWarningTurboRingBreak OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The relay contact will be opened while turbo ring break."
        ::= { relayWarningEntry 8 }

    relayWarningTurboRingBreakStatus OBJECT-TYPE
             SYNTAX INTEGER  { not-triggered(0), triggered(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The relay contact is opened while turbo ring is broken."
        ::= { relayWarningEntry 9 }

    portRelayWarningTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PortRelayWarningEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The relay warning port table."
        ::= { relayWarning 12 }

    portRelayWarningEntry OBJECT-TYPE
        SYNTAX PortRelayWarningEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port Relay Warning Entry."
        INDEX { portIndex,relayAlarmIndex }
        ::= { portRelayWarningTable 1 }

    PortRelayWarningEntry ::=
        SEQUENCE {
            relayWarningLinkChanged
                INTEGER,
            relayWarningLinkChangedStatus
                INTEGER,
            relayWarningTrafficOverload
                INTEGER,
            relayWarningTrafficOverloadStatus
                INTEGER,
            relayWarningRxTrafficThreshold
                INTEGER,
            relayWarningTrafficDuration
                INTEGER
        }

    relayWarningLinkChanged OBJECT-TYPE
        SYNTAX INTEGER  { ignore(0), on2off(1), off2on(2) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The relay contact will be opened while this port's link status is changed."
        ::= { portRelayWarningEntry 1 }

    relayWarningLinkChangedStatus OBJECT-TYPE
        SYNTAX INTEGER  { not-triggered(0), triggered(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The relay contact is opened as this port's link status is changed."
        ::= { portRelayWarningEntry 2 }

    relayWarningTrafficOverload OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The relay contact will be opened while this port's traffic is overload."
        ::= { portRelayWarningEntry 3 }

    relayWarningTrafficOverloadStatus OBJECT-TYPE
        SYNTAX INTEGER  { not-triggered(0), triggered(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The relay contact is opened as this port's traffic is overload."
        ::= { portRelayWarningEntry 4 }

    relayWarningRxTrafficThreshold OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The threshold of the port traffic will be over loading."
        ::= { portRelayWarningEntry 5 }

    relayWarningTrafficDuration OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The duration of the port traffic will be over loading."
        ::= { portRelayWarningEntry 6 }

    diRelayWarningTable OBJECT-TYPE
        SYNTAX SEQUENCE OF DiRelayWarningEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The relay warning DI table."
        ::= { relayWarning 13 }

    diRelayWarningEntry OBJECT-TYPE
        SYNTAX DiRelayWarningEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "DI Relay Warning Entry."
        INDEX { diIndex,relayAlarmIndex }
        ::= { diRelayWarningTable 1 }

    DiRelayWarningEntry ::=
        SEQUENCE {
            relayWarningDiInputChanged
                INTEGER,
            relayWarningDiInputChangedStatus
                INTEGER
        }

    relayWarningDiInputChanged OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), off(1), on(2) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The relay contact will be opened while the DI input changed."
        ::= { diRelayWarningEntry 1 }

    relayWarningDiInputChangedStatus OBJECT-TYPE
        SYNTAX INTEGER  { not-triggered(0), triggered(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The relay contact is opened as the first DI input changed.."
        ::= { diRelayWarningEntry 2 }

-- -------------------------------------------------------------
-- traffic prioritization
-- -------------------------------------------------------------

    trafficPrioritization OBJECT IDENTIFIER ::= { swMgmt 18 }

   qosClassification OBJECT IDENTIFIER ::= { trafficPrioritization 1 }
    schedulingMechanism OBJECT-TYPE
        SYNTAX INTEGER {schedweightfair(0),schedstrict(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The scheduling mechanism."
        ::= { qosClassification 1 }

    qosPortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QosPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The QoS port table."
        ::= { qosClassification 2 }

    qosPortEntry OBJECT-TYPE
        SYNTAX QosPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The QoS Port Entry."
        INDEX { portIndex }
        ::= { qosPortTable 1 }

    QosPortEntry ::=
        SEQUENCE {
            dscpInspection
                INTEGER,
            cosInspection
                INTEGER,
            portPriority
                INTEGER
            }

    dscpInspection OBJECT-TYPE
        SYNTAX INTEGER {no (0),yes(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the inspection of dscp field."
        ::= { qosPortEntry 1 }

    cosInspection OBJECT-TYPE
        SYNTAX INTEGER {no (0),yes(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the inspection of CoS field."
        ::= { qosPortEntry 2 }

    portPriority OBJECT-TYPE
       SYNTAX INTEGER {priority0(0), priority1(1), priority2(2), priority3(3),
       priority4(4), priority5(5), priority6(6), priority7(7)
           }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The deault priority of the port."
        ::= { qosPortEntry 3 }

    priorityMapping OBJECT IDENTIFIER ::= { trafficPrioritization 2 }
    priorityMappingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PriorityMappingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The priority mapping table."
        ::= { priorityMapping 1 }

    priorityMappingEntry OBJECT-TYPE
        SYNTAX PriorityMappingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The Priority mapping Entry."
        INDEX { priorityTag}
        ::= { priorityMappingTable 1 }

    PriorityMappingEntry ::=
        SEQUENCE {
            priorityTag
                INTEGER,
            priorityMappedQueue
                INTEGER
            }

    priorityTag OBJECT-TYPE
        SYNTAX INTEGER (0..7)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The priority tag of QOS field."
        ::= { priorityMappingEntry 1 }

    priorityMappedQueue OBJECT-TYPE
        SYNTAX INTEGER {trafficclass0(0),trafficclass1(1),trafficclass2(2),trafficclass3(3)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The egress queue corresponding to it's priority value."
        ::= { priorityMappingEntry 2 }

    dscpMapping OBJECT IDENTIFIER ::= { trafficPrioritization 3 }
    dscpMappingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF DscpMappingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The DSCP mapping table."
        ::= { dscpMapping 1 }

    dscpMappingEntry OBJECT-TYPE
        SYNTAX DscpMappingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "DSCP mapping Entry."
        INDEX { dscpClass }
        ::= { dscpMappingTable 1 }

    DscpMappingEntry ::=
        SEQUENCE {
            dscpClass
                INTEGER,
            dscpMappedPriority
                INTEGER
            }

    dscpClass OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The DSCP class of TOS field."
        ::= { dscpMappingEntry 1 }

    dscpMappedPriority OBJECT-TYPE
        SYNTAX INTEGER {priority0(0), priority1(1), priority2(2), priority3(3),
       priority4(4), priority5(5), priority6(6), priority7(7)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The frame's priority corresponding to it's DSCP class value."
        ::= { dscpMappingEntry 2 }

-- -------------------------------------------------------------
-- vlan
-- -------------------------------------------------------------

    vlan OBJECT IDENTIFIER ::= { swMgmt 19 }
    vlanPortSettingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF VlanPortSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The vlan seting table of ports."
        ::= { vlan 1 }

    vlanPortSettingEntry OBJECT-TYPE
        SYNTAX VlanPortSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port Setting Entry of VLAN."
        INDEX { portIndex }
        ::= { vlanPortSettingTable 1 }

    VlanPortSettingEntry ::=
        SEQUENCE {
            portVlanType
                INTEGER,
            portDefaultVid
                INTEGER,
            portFixedVid
                DisplayString,
            portFixedVidUntag
                DisplayString,
            portForbiddenVid
                DisplayString
            }

    portVlanType OBJECT-TYPE
        SYNTAX INTEGER {access(0),trunk(1),hybrid(2)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The vlan type of port."
        ::= { vlanPortSettingEntry 1 }

    portDefaultVid OBJECT-TYPE
        SYNTAX INTEGER (1..4094)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The PVID of port."
        ::= { vlanPortSettingEntry 2 }

    portFixedVid OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The fixed vids of (trunk) port."
        ::= { vlanPortSettingEntry 3 }

    portForbiddenVid OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The forbidden vids of (trunk)port."
        ::= { vlanPortSettingEntry 4 }

    portFixedVidUntag OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The fixed untag vids of (trunk) port."
        ::= { vlanPortSettingEntry 5 }

    vlanTable OBJECT-TYPE
        SYNTAX SEQUENCE OF VlanEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The VLAN table."
        ::= { vlan 2 }

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

    VlanEntry ::=
        SEQUENCE {
            vlanId
                INTEGER,
            joinedAccessPorts
                PortList,
            joinedTrunkPorts
                PortList,
            joinedHybridPorts
                PortList,
            vlanName
                DisplayString
            }

    vlanId OBJECT-TYPE
        SYNTAX INTEGER (1..4094)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The VLAN id."
        ::= { vlanEntry 1 }

    joinedAccessPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The access ports that joined this VID."
        ::= { vlanEntry 2 }

    joinedTrunkPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The trunk ports that joined this VID."
        ::= { vlanEntry 3 }

    joinedHybridPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The hybrid ports that joined this VID."
        ::= { vlanEntry 4 }

    vlanName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The VLAN name."
        ::= { vlanEntry 5 }

    managementVlanId OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The management VLAN id."
        ::= { vlan 3 }

    vlanType OBJECT-TYPE
        SYNTAX INTEGER {tagBased(0),portBased(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "VLAN Type."
        ::= { vlan 4 }

    portbaseVlanSettingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PortbaseVlanSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port base Vlan Setting Table."
        ::= { vlan 5 }

    portbaseVlanSettingEntry OBJECT-TYPE
        SYNTAX PortbaseVlanSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port base Vlan  Setting Entry."
        INDEX { portbaseVlanSettingIndex }
        ::= { portbaseVlanSettingTable 1 }

    PortbaseVlanSettingEntry ::=
        SEQUENCE {
            portbaseVlanSettingIndex
                INTEGER,
            portbaseVlanMemberPorts
                PortList
            }

    portbaseVlanSettingIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "port base Vlan Group Index."
        ::= { portbaseVlanSettingEntry 1 }

    portbaseVlanMemberPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "port base Vlan  Group Member Ports."
        ::= { portbaseVlanSettingEntry 2 }

    enableGvrp OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable GVRP."
        ::= { vlan 6 }

-- -------------------------------------------------------------
-- multicast filtering
-- -------------------------------------------------------------

    multicastFiltering OBJECT IDENTIFIER ::= { swMgmt 20 }
    igmpSnooping OBJECT IDENTIFIER ::= { multicastFiltering 1 }

    querierQueryInterval OBJECT-TYPE
        SYNTAX INTEGER (20..600)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This query interval of the querier function for this VLAN."
        ::= { igmpSnooping 1 }

    igmpSnoopingSettingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IgmpSnoopingSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The IGMP snooping setting table."
        ::= { igmpSnooping 2 }

    igmpSnoopingSettingEntry OBJECT-TYPE
        SYNTAX IgmpSnoopingSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The IGMP snooping setting Entry."
        INDEX { vlanId }
        ::= { igmpSnoopingSettingTable 1 }

    IgmpSnoopingSettingEntry ::=
        SEQUENCE {
            enableIgmpSnooping
                INTEGER,
            enableQuerier
                INTEGER,
            fixedMulticastQuerierPorts
                PortList,
            learnedMulticastQuerierPorts
                PortList
            }

    enableIgmpSnooping OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the IGMP snooping functon in this VLAN."
        ::= { igmpSnoopingSettingEntry 1 }

    enableQuerier OBJECT-TYPE
        SYNTAX INTEGER {disable(0), igmpv2(1), igmpv3(2)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the querier function for this VLAN."
        ::= { igmpSnoopingSettingEntry 2 }

    fixedMulticastQuerierPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The ports that multicast-Querier exist."
        ::= { igmpSnoopingSettingEntry 3 }

    learnedMulticastQuerierPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The ports that multicast-Querier exist."
        ::= { igmpSnoopingSettingEntry 4 }

    enableGlobalIgmpSnooping OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the IGMP snooping functon ."
        ::= { igmpSnooping 4 }

    multicastFastForwarding OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This Enable Multicast Fast Forwarding Mode functon ."
        ::= { igmpSnooping 7 }

    staticMulticast OBJECT IDENTIFIER ::= { multicastFiltering 2 }
    staticMulticastTable OBJECT-TYPE
        SYNTAX SEQUENCE OF StaticMulticastEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The static multicast table."
        ::= { staticMulticast 1 }

    staticMulticastEntry OBJECT-TYPE
        SYNTAX StaticMulticastEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Static multicast Entry."
        INDEX { staticMulticastAddress }
        ::= { staticMulticastTable 1 }

    StaticMulticastEntry ::=
        SEQUENCE {
            staticMulticastAddress
                MacAddress,
            staticMulticastPorts
                PortList,
            staticMulticastStatus
                INTEGER
            }

    staticMulticastAddress OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The static multicast address."
        ::= { staticMulticastEntry 1 }

    staticMulticastPorts OBJECT-TYPE
        SYNTAX    PortList
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The port map of the static multicast address."
        ::= { staticMulticastEntry 2 }

    staticMulticastStatus OBJECT-TYPE
        SYNTAX INTEGER {
            active(1),
            createAndGo(4),
            createAndWait(5),
            destroy(6)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The status is active to indicate normal.
            Use createAndGo to create new on multiple SET.
            Use createAndWait to create new on one SET all then actvie.
            Use destroy to delete this row."
        ::= { staticMulticastEntry 3 }

    --
    -- GMRP
    --

    gmrp OBJECT IDENTIFIER ::= { multicastFiltering 3 }

    -- gmrp setting table

    gmrpSettingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF GmrpSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The GMRP setting table."
        ::= { gmrp 1 }

    gmrpSettingEntry OBJECT-TYPE
        SYNTAX GmrpSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The GMRP Setting Entry."
        INDEX { portIndex }
        ::= { gmrpSettingTable 1 }

    GmrpSettingEntry ::=
        SEQUENCE {
            enableGMRP
                INTEGER
        }

    enableGMRP OBJECT-TYPE
        SYNTAX INTEGER {
            disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable/Disable GMRP."
        ::= { gmrpSettingEntry 1 }

    -- gmrp status

    gmrpTable OBJECT-TYPE
        SYNTAX SEQUENCE OF GmrpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The GMRP status table."
        ::= { gmrp 2 }

    gmrpEntry OBJECT-TYPE
        SYNTAX GmrpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The GMRP Status Entry."
        INDEX { gmrpMulticastGroup }
        ::= { gmrpTable 1 }

    GmrpEntry ::=
        SEQUENCE {
            gmrpMulticastGroup
                MacAddress,
            gmrpFixedPorts
                PortList,
            gmrpLearnedPorts
                PortList
            }

    gmrpMulticastGroup OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "GMRP multicast group."
        ::= { gmrpEntry 1 }

    gmrpFixedPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The ports that joined GMRP multicast group manually."
        ::= { gmrpEntry 2 }

    gmrpLearnedPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The ports that joined GMRP multicast group by GMRP learning."
        ::= { gmrpEntry 3 }


-- -------------------------------------------------------------
-- rate limiting
-- -------------------------------------------------------------

    rateLimiting OBJECT IDENTIFIER ::= { swMgmt 21 }

    rateLimitingAction OBJECT-TYPE
        SYNTAX INTEGER {droppacket(0),portDisable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The rate limiting mode."
        ::= { rateLimiting 4 }

-- droppacketMode --

-- ingress --
    droppacketModeRateLimitingIngressTable OBJECT-TYPE
        SYNTAX SEQUENCE OF DroppacketModeRateLimitingIngressEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The rate limiting table."
        ::= { rateLimiting 1 }

    droppacketModeRateLimitingIngressEntry OBJECT-TYPE
        SYNTAX DroppacketModeRateLimitingIngressEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Rate limiting Entry."
        INDEX { portIndex }
        ::= { droppacketModeRateLimitingIngressTable 1 }

    DroppacketModeRateLimitingIngressEntry ::=
        SEQUENCE {
            ingressLimitRate
                INTEGER
            }

    ingressLimitRate OBJECT-TYPE
        SYNTAX INTEGER {notlimited(0), percentage03(1), percentage05(2), percentage10(3),
                        percentage15(4), percentage25(5), percentage35(6), percentage50(7),
                        percentage65(8), percentage85(9)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The ingress limit mode."
        ::= { droppacketModeRateLimitingIngressEntry 1 }

--  broadcastStorm --

    broadcastStormProtection OBJECT IDENTIFIER ::= { rateLimiting 2 }

    bcastStormProtection OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Broadcast Storm Protection"
        ::= { broadcastStormProtection 1 }

    bcastStormProtectionIncludeMcast OBJECT-TYPE
        SYNTAX INTEGER {no(0),yes(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Broadcast Storm Protection includes Multicast packets"
        ::= { broadcastStormProtection 2 }

    bcastStormProtectionIncludeUcast OBJECT-TYPE
        SYNTAX INTEGER {no(0),yes(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Broadcast Storm Protection includes Unicast packets"
        ::= { broadcastStormProtection 3 }

--  portDisableMode --

    portDisableMode OBJECT IDENTIFIER ::= { rateLimiting 3 }

    portDisableModePeriod OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Check time. "
        ::= {portDisableMode 1 }

    portDisableModeTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PortDisableModeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The rate limiting table."
        ::= { portDisableMode 2 }

    portDisableModeEntry OBJECT-TYPE
        SYNTAX PortDisableModeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Rate limiting Entry."
        INDEX { portIndex }
        ::= { portDisableModeTable 1 }

    PortDisableModeEntry ::=
        SEQUENCE {
            ingressLimit
                INTEGER
            }

    ingressLimit OBJECT-TYPE
        SYNTAX INTEGER {notlimited(0), rateMega1Fps4464(1), rateMega2Fps7441(2), rateMega3Fps14881(3),
                        rateMega4Fps22322(4), rateMega5Fps37203(5), rateMega6Fps52084(6), rateMega7Fps74405(7), rateGiga1Fps44640(8), rateGiga2Fps74410(9), rateGiga3Fps148810(10),
                        rateGiga4Fps223220(11), rateGiga5Fps372030(12), rateGiga6Fps520840(13), rateGiga7Fps744050(14)
                        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The ingress limit mode."
        ::= { portDisableModeEntry 1 }


-- -------------------------------------------------------------
-- security
-- -------------------------------------------------------------

    security OBJECT IDENTIFIER ::= { swMgmt 22 }
-- -------------------------------------------------------------
-- user login authentication
-- -------------------------------------------------------------
    userLoginSetting OBJECT IDENTIFIER ::= { security 1 }

    userLoginServer OBJECT-TYPE
    SYNTAX INTEGER {
        tacacsLocal(1),
        radiusLocal(2),
        tacacs(3),
        radius(4),
        local(5)
    }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Set user login server option."
    ::= { userLoginSetting 1 }

    tacacsServerSetting OBJECT IDENTIFIER ::= { userLoginSetting 2 }
    tacacsLoginAuthServer OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Tacacs+ Server IP Address/Domain name."
        ::= { tacacsServerSetting 1 }

    tacacsLoginAuthPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Tacacs+ Port."
        ::= {tacacsServerSetting 2 }

    tacacsLoginAuthSharedKey OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Tacacs+ Shared Key."
        ::= { tacacsServerSetting 3 }

   tacacsLoginAuthAuthType OBJECT-TYPE
         SYNTAX INTEGER {
            ascii(0),
            pap(1),
            chap(2),
            mschap(4)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Tacacs+ Shared Key."
        ::= { tacacsServerSetting 4 }

   tacacsLoginAuthTimeout OBJECT-TYPE
        SYNTAX INTEGER (1..255)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Tacacs+ Shared Key."
        ::= { tacacsServerSetting 5 }

    radiusServerSetting OBJECT IDENTIFIER ::= { userLoginSetting 3 }
    radiusLoginAuthServer OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Server IP Address/Domain name."
        ::= { radiusServerSetting 1 }

    radiusLoginAuthPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Port."
        ::= { radiusServerSetting 2 }

    radiusLoginAuthSharedKey OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Shared Key."
        ::= { radiusServerSetting 3 }

    radiusLoginAuthAuthType OBJECT-TYPE
         SYNTAX INTEGER {
            pap(0),
            chap(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Shared Key."
        ::= { radiusServerSetting 4 }

    radiusLoginAuthTimeout OBJECT-TYPE
        SYNTAX INTEGER (1..255)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Shared Key."
        ::= { radiusServerSetting 5 }

-- -------------------------------------------------------------
-- port access control
-- -------------------------------------------------------------

    portAccessControl OBJECT IDENTIFIER ::= { security 2 }

    --
    -- static port lock
    --

    staticPortLockLegacy OBJECT IDENTIFIER ::= { portAccessControl 1 }

    staticPortLockLegacyAddress OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The static port lock address."
        ::= { staticPortLockLegacy 1 }

    staticPortLockLegacyPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The port of the static port lock address."
        ::= { staticPortLockLegacy 2 }

    staticPortLockLegacyStatus OBJECT-TYPE
        SYNTAX INTEGER {
            active(1),
            createAndGo(4)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The status is active to indicate normal.
            Use createAndGo to create new on multiple SET."
        ::= { staticPortLockLegacy 3 }

    --
    -- IEEE 802.1X
    --

    dot1x OBJECT IDENTIFIER ::= { portAccessControl 2 }

    -- ieee 802.1x global settings

    dataBaseOption OBJECT-TYPE
        SYNTAX INTEGER {
            local(1),
            radius(2),
            radiuslocal(3)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set IEEE 802.1X database option."
        ::= { dot1x 1 }

    dot1xReauthEnable OBJECT-TYPE
        SYNTAX INTEGER {
            disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable/Disable IEEE 802.1X Re-authentication."
        ::= { dot1x 5 }

    dot1xReauthPeriod OBJECT-TYPE
        SYNTAX INTEGER (60..3600)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set IEEE 802.1X Re-authentication Period."
        ::= { dot1x 6 }

    -- ieee 802.1X port setting table

    dot1xSettingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF Dot1xSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "IEEE 802.1X Port Setting Table."
        ::= { dot1x 7 }

    dot1xSettingEntry OBJECT-TYPE
        SYNTAX Dot1xSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "IEEE 802.1X Port Setting Entry."
        INDEX { portIndex }
        ::= { dot1xSettingTable 1 }

    Dot1xSettingEntry ::=
        SEQUENCE {
            enableDot1X
                INTEGER
            }

    enableDot1X OBJECT-TYPE
        SYNTAX INTEGER {
            disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable/Disable IEEE 802.1X."
        ::= { dot1xSettingEntry 1 }

    -- ieee 802.1X re-authentication table

    dot1xReauthTable OBJECT-TYPE
        SYNTAX SEQUENCE OF Dot1xReauthEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "IEEE 802.1X Re-authentication Table."
        ::= { dot1x 8 }

    dot1xReauthEntry OBJECT-TYPE
        SYNTAX Dot1xReauthEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "IEEE 802.1X Re-authentication Entry."
        INDEX { dot1xReauthPortIndex }
        ::= { dot1xReauthTable 1 }

    Dot1xReauthEntry ::=
        SEQUENCE {
            dot1xReauthPortIndex
                INTEGER,
            dot1xReauth
                INTEGER
            }

    dot1xReauthPortIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "IEEE 802.1X Enabled Port Index."
        ::= { dot1xReauthEntry 1 }

    dot1xReauth OBJECT-TYPE
        SYNTAX INTEGER {
            no(0),
            yes(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Reauth IEEE 802.1X."
        ::= { dot1xReauthEntry 2 }

        -- ieee 802.1x dot1x Radius Server settings

    dot1xRadius OBJECT IDENTIFIER ::= { dot1x 9 }
    dot1xSameAsAuthServer OBJECT-TYPE
        SYNTAX INTEGER
        {
            notSame(0),
            same(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Server IP Address/Domain name."
        ::= { dot1xRadius 1 }
    dot1x1stRadiusServer OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Server IP Address/Domain name."
        ::= { dot1xRadius 2 }

    dot1x1stRadiusPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Port."
        ::= { dot1xRadius 3 }

    dot1x1stRadiusSharedKey OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Shared Key."
        ::= { dot1xRadius 4 }
    dot1x2ndRadiusServer OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Server IP Address/Domain name."
        ::= { dot1xRadius 5 }

    dot1x2ndRadiusPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Port."
        ::= { dot1xRadius 6 }

    dot1x2ndRadiusSharedKey OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set Radius Shared Key."
        ::= { dot1xRadius 7 }


    --
    -- port access control table
    --

    portAccessControlTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PortAccessControlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The Port Access Control table."
        ::= { portAccessControl 3 }

    portAccessControlEntry OBJECT-TYPE
        SYNTAX PortAccessControlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The Port Access Control table entry."
        INDEX { portAccessControlAddress, portAccessControlVid }
        ::= { portAccessControlTable 1 }

    PortAccessControlEntry ::=
        SEQUENCE {
            portAccessControlAddress
                MacAddress,
            portAccessControlPortNo
                INTEGER,
            portAccessControlAccessStatus
                INTEGER,
            portAccessControlStatus
                INTEGER,
            portAccessControlVid
                INTEGER
            }

    portAccessControlAddress OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The MAC address which is static locked or IEEE 802.1X authorized."
        ::= { portAccessControlEntry 1 }

    portAccessControlPortNo OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The port number that the Port Access Control address resides."
        ::= { portAccessControlEntry 2 }

    portAccessControlAccessStatus OBJECT-TYPE
        SYNTAX INTEGER {
            staticLock(1),
            authorized(2),
            unAuthorized(3),
            authorizing(4),
            macAddrSticky(5)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The access status of the Port Access Control address."
        ::= { portAccessControlEntry 3 }

    portAccessControlStatus OBJECT-TYPE
        SYNTAX INTEGER {
            active(1),
            createAndGo(4),
            createAndWait(5),
            destroy(6)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The status is active to indicate normal.
            Use createAndGo to create new on multiple SET.
            Use createAndWait to create new on one SET all then actvie.
            Use destroy to delete this row."
        ::= { portAccessControlEntry 4 }

    portAccessControlVid OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The vid number that the Port Access Control address resides."
        ::= { portAccessControlEntry 5 }


    --
    -- Port Security
    --
    portSecurity OBJECT IDENTIFIER ::= { portAccessControl 4 }

    portSecurityModeTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PortSecurityModeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port security mode"
        ::= { portSecurity 1 }

    portSecurityModeEntry OBJECT-TYPE
        SYNTAX PortSecurityModeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port security mode entry."
        INDEX { portSecurityModePort }
        ::= { portSecurityModeTable 1 }

    PortSecurityModeEntry ::=
        SEQUENCE {
            portSecurityModePort
                INTEGER,
            portSecurityModeSelect
                INTEGER,
            portSecurityModeLimit
                INTEGER,
            portSecurityModeViolationPortDisable
                INTEGER,
            portSecurityModeStatus
                INTEGER
        }

    portSecurityModePort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Set port security mode to specific port."
        ::= { portSecurityModeEntry 1 }

    portSecurityModeSelect OBJECT-TYPE
        SYNTAX INTEGER { normal-mode(0), static-portlock(1), mac-address-sticky(2) }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Select the port security mode of the port."
        ::= { portSecurityModeEntry 2 }

    portSecurityModeLimit OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "If port security mode is MAC address sticky, set the limit of the port.
             If port security mode is not MAC address sticky, set the limit to 0."
        ::= { portSecurityModeEntry 3 }

    portSecurityModeViolationPortDisable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Enable the violation port disable."
        ::= { portSecurityModeEntry 4 }

    portSecurityModeStatus OBJECT-TYPE
        SYNTAX INTEGER {
            active(1),
            createAndGo(4)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The status is active to indicate normal.
            Use createAndGo to create new on multiple SET."
        ::= { portSecurityModeEntry 5 }

    staticPortLock OBJECT IDENTIFIER ::= { portSecurity 2 }

    staticPortLockAddress OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The static port lock address."
        ::= { staticPortLock 1 }

    staticPortLockPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The port of the static port lock address."
        ::= { staticPortLock 2 }

    staticPortLockStatus OBJECT-TYPE
        SYNTAX INTEGER {
            active(1),
            createAndGo(4)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The status is active to indicate normal.
            Use createAndGo to create new on multiple SET."
        ::= { staticPortLock 3 }

    staticPortLockVid OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Add vlan of the static port lock address. For SVL switch, vid should be 0"
        ::= { staticPortLock 4 }

    macAddressSticky OBJECT IDENTIFIER ::= { portSecurity 3 }

    macAddressStickyAddress OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Manually add a MAC sticky address."
        ::= { macAddressSticky 1 }

    macAddressStickyPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Add MAC sticky address to the specific port."
        ::= { macAddressSticky 2 }

    macAddressStickyVid OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Add MAC sticky address to the specific vlan. For SVL switch, vid should be 0"
        ::= { macAddressSticky 3 }

    macAddressStickyStatus OBJECT-TYPE
        SYNTAX INTEGER {
            active(1),
            createAndGo(4)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The status is active to indicate normal.
            Use createAndGo to create new on multiple SET."
        ::= { macAddressSticky 4 }

    --
    -- MAC Authentication Bypass
    --

    mab OBJECT IDENTIFIER ::= { portAccessControl 5 }

    -- MAB global settings

    mabDBOption OBJECT-TYPE
        SYNTAX INTEGER {
            radius(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set MAB database option."
        ::= { mab 1 }

    mabReauthEnable OBJECT-TYPE
        SYNTAX INTEGER {
            disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable/Disable MAB Re-authorizing."
        ::= { mab 2 }

    mabReauthPeriod OBJECT-TYPE
        SYNTAX INTEGER (60..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set MAB Re-authorizing Period."
        ::= { mab 3 }

    mabRestartEnable OBJECT-TYPE
        SYNTAX INTEGER {
            disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable/Disable MAB Re-start."
        ::= { mab 4 }

    mabRestartPeriod OBJECT-TYPE
        SYNTAX INTEGER (5..300)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set MAB Re-start Period."
        ::= { mab 5 }

    -- ieee 802.1X port setting table

    mabSettingTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MABSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "MAB Setting Table."
        ::= { mab 6 }

    mabSettingEntry OBJECT-TYPE
        SYNTAX MABSettingEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "MAB Port Setting Entry."
        INDEX { portIndex }
        ::= { mabSettingTable 1 }

    MABSettingEntry ::=
        SEQUENCE {
            enableMAB
                INTEGER
            }

    enableMAB OBJECT-TYPE
        SYNTAX INTEGER {
            disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable/Disable MAB."
        ::= { mabSettingEntry 1 }

-- -------------------------------------------------------------
-- accessible ip
-- -------------------------------------------------------------

    accessibleIP OBJECT IDENTIFIER ::= { swMgmt 30 }

    enableAccessibleIP OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable the accessible IP address list."
        ::= { accessibleIP 1 }

    accessibleIpTable OBJECT-TYPE
        SYNTAX SEQUENCE OF AccessibleIpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "accessibleIP."
        ::= { accessibleIP 2 }

    accessibleIpEntry OBJECT-TYPE
        SYNTAX AccessibleIpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Accessible IP address entry."
        INDEX { accessibleIpAddress }
        ::= { accessibleIpTable 1 }

    AccessibleIpEntry ::=
        SEQUENCE {
            accessibleIpAddress
                IpAddress,
            accessibleIpNetMask
                IpAddress,
            accessibleIpStatus
                INTEGER
        }

    accessibleIpAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Accessible IP address"
        ::= { accessibleIpEntry 1 }

    accessibleIpNetMask OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Accessible IP netmask."
        ::= { accessibleIpEntry 2 }

    accessibleIpStatus OBJECT-TYPE
        SYNTAX INTEGER {
            active(1),
            createAndGo(4),
            createAndWait(5),
            destroy(6)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The status is active to indicate normal.
            Use createAndGo to create new on multiple SET.
            Use createAndWait to create new on one SET all then actvie.
            Use destroy to delete this row."
        ::= { accessibleIpEntry 3 }

-- -------------------------------------------------------------
-- system file update
-- -------------------------------------------------------------

    sysFileUpdate OBJECT IDENTIFIER ::= { swMgmt 31 }
    tftpServer OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The TFTP Server name(IP Address)"
        ::= { sysFileUpdate 1 }

    firmwarePathName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The path name of firmware file in the TFTP Server"
        ::= { sysFileUpdate 2 }

    logPathName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The path name of log file in the TFTP Server"
        ::= { sysFileUpdate 3 }

    confPathName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The path name of configuration file in the TFTP Server"
        ::= { sysFileUpdate 4 }

    tftpUpdate OBJECT-TYPE
        SYNTAX INTEGER {
            importFirmware(1),
            importConfig(2),
            exportConfig(3),
            exportLog(4)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            ""
        ::= { sysFileUpdate 5 }




-- -------------------------------------------------------------
-- time setting
-- -------------------------------------------------------------

    timeSetting OBJECT IDENTIFIER ::= { swMgmt 32 }

    sysDateTime OBJECT-TYPE
        SYNTAX DateAndTime
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The date time of system"
        ::= { timeSetting 1 }

    calibratePeriod OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The period (seconds) that calibrate with time server"
        ::= { timeSetting 2 }

    timeServer1 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The first time server"
        ::= { timeSetting 3 }

    timeServer2 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The second time server"
        ::= { timeSetting 4 }

    daylightSaving OBJECT IDENTIFIER ::= { timeSetting 5 }

    startMonth OBJECT-TYPE
        SYNTAX INTEGER  { na(0), jan(1), feb(2), mar(3), apr(4), may(5), jun(6), jul(7), aug(8), sep(9), oct(10), nov(11), dec(12)  }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting Start Month of Daylight Saving time"
        ::= { daylightSaving 1 }

    startWeek OBJECT-TYPE
        SYNTAX INTEGER  { na(0), week1(1), week2(2), week3(3), week4(4), weeklast(6) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting Start Week of Daylight Saving time"
        ::= { daylightSaving 2 }

    startDay OBJECT-TYPE
        SYNTAX INTEGER  { na(0), sun(1), mon(2), tue(3), wed(4), thu(5), fri(6), sat(7)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting Start Day of Daylight Saving time"
        ::= { daylightSaving 3 }

    startHour OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting Start Hour of Daylight Saving time"
        ::= { daylightSaving 4 }

    endMonth OBJECT-TYPE
        SYNTAX INTEGER  { na(0), jan(1), feb(2), mar(3), apr(4), may(5), jun(6), jul(7), aug(8), sep(9), oct(10), nov(11), dec(12)  }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting End Month of Daylight Saving time"
        ::= { daylightSaving 5 }

    endWeek OBJECT-TYPE
        SYNTAX INTEGER  { na(0), week1(1), week2(2), week3(3), week4(4), weeklast(6) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting End Week of Daylight Saving time"
        ::= { daylightSaving 6 }

    endDay OBJECT-TYPE
        SYNTAX INTEGER  { na(0), sun(1), mon(2), tue(3), wed(4), thu(5), fri(6), sat(7)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting End Day of Daylight Saving time"
        ::= { daylightSaving 7 }

    endHour OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting End Hour of Daylight Saving time"
        ::= { daylightSaving 8 }

    offsetHours OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting Offset Hours of Daylight Saving time"
        ::= { daylightSaving 9 }

    enableNTPServer OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable NTP Server."
        ::= { timeSetting 6 }

    clockSource OBJECT-TYPE
        SYNTAX INTEGER  { local(0), sntp(1), ntp(2) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The clock source of system"
        ::= { timeSetting 7 }


-- -------------------------------------------------------------
-- NTP Authentication setting
-- -------------------------------------------------------------
    ntpAuthenticate OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "NTP authentication"
        ::= { timeSetting 8 }

    ntpPeerTable OBJECT-TYPE
        SYNTAX SEQUENCE OF NtpPeerEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "NTP peer table"
        ::= { timeSetting 9 }

    ntpPeerEntry OBJECT-TYPE
        SYNTAX NtpPeerEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "NTP peer settings"
        INDEX { ntpPeerIndex }
        ::= { ntpPeerTable 1 }

    NtpPeerEntry ::=
        SEQUENCE {
            ntpPeerIndex
                INTEGER,
            ntpPeerAddress
                DisplayString,
            ntpPeerAuthenticate
                INTEGER,
            ntpPeerAuthenticateKeyid
                INTEGER
        }

    ntpPeerIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "NTP peer index"
        ::= { ntpPeerEntry 1 }

    ntpPeerAddress OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "NTP peer address"
        ::= { ntpPeerEntry 2 }

    ntpPeerAuthenticate OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "NTP authentication"
        ::= { ntpPeerEntry 3 }

    ntpPeerAuthenticateKeyid OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "NTP authentication key Id"
        ::= { ntpPeerEntry 4 }

    ntpAuthenticateKeyTable OBJECT-TYPE
        SYNTAX SEQUENCE OF NtpAuthenticateKeyEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "NTP authenticate key table"
        ::= { timeSetting 10 }

    ntpAuthenticateKeyEntry OBJECT-TYPE
        SYNTAX NtpAuthenticateKeyEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "NTP authenticate key settings"
        INDEX { ntpAuthenticateKeyIndex }
        ::= { ntpAuthenticateKeyTable 1 }

    NtpAuthenticateKeyEntry ::=
        SEQUENCE {
            ntpAuthenticateKeyIndex
                INTEGER,
            ntpAuthenticateKeyID
                INTEGER,
            ntpAuthenticateKeyString
                DisplayString,
            ntpAuthenticateKeyTrusted
                INTEGER
        }

    ntpAuthenticateKeyIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "NTP authenticate key index"
        ::= { ntpAuthenticateKeyEntry 1 }

    ntpAuthenticateKeyID OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "NTP authenticate key id"
        ::= { ntpAuthenticateKeyEntry 2 }


    ntpAuthenticateKeyString OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "NTP authenticate key string"
        ::= { ntpAuthenticateKeyEntry 3 }

    ntpAuthenticateKeyTrusted OBJECT-TYPE
        SYNTAX INTEGER  { distrust(0), trusted(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "NTP authenticate key trusted"
        ::= { ntpAuthenticateKeyEntry 4 }


-- -------------------------------------------------------------
-- TurboRing Dip Switch setting
-- -------------------------------------------------------------

    dipSwitchSetting OBJECT IDENTIFIER ::= { swMgmt 34 }

    dipSwitchEnableTurboRing OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable TurboRing Dip Switch functions"
        ::= { dipSwitchSetting 1 }

    dipSwitchTurboRingPole OBJECT-TYPE
        SYNTAX INTEGER  { off(0), on(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The TurboRing Pole status of Dip switch."
        ::= { dipSwitchSetting 2 }

    dipSwitchRingCouplingPole OBJECT-TYPE
        SYNTAX INTEGER  { off(0), on(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Ring Coupling Pole status of Dip switch."
        ::= { dipSwitchSetting 3 }

    dipSwitchRingMasterPole OBJECT-TYPE
        SYNTAX INTEGER  { off(0), on(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Ring Master Pole status of Dip switch."
        ::= { dipSwitchSetting 4 }

-- -------------------------------------------------------------
-- Auto-Backup Media setting
-- -------------------------------------------------------------

    backupMediaSetting OBJECT IDENTIFIER ::= { swMgmt 35 }

    abc02Status OBJECT-TYPE
        SYNTAX INTEGER  { device-not-present(0), unauthorized-media(1), detecting(2), working(3), ready-and-removable(4) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Current status of ABC-02"
        ::= { backupMediaSetting 2 }

    abc02AutoImportConfig OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Auto load configuration from ABC to system when boot up"
        ::= { backupMediaSetting 3 }

    abc02AutoExportConfig OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Auto backup to ABC-02 when configuration change"
        ::= { backupMediaSetting 4 }

    abc02AutoExportLog OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Auto backup of event log to prevent overwrite"
        ::= { backupMediaSetting 5 }

-- -------------------------------------------------------------
-- Warm Start setting
-- -------------------------------------------------------------

    enableWarmStart OBJECT-TYPE
        SYNTAX INTEGER
            {
            no(0),
            yes(1)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable to restart MOXA ethernet switch."
        ::= { swMgmt 36 }

-- -------------------------------------------------------------
-- Syslog setting
-- -------------------------------------------------------------

    syslogSetting OBJECT IDENTIFIER ::= { swMgmt 37 }

    syslogServer1 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The syslog server 1"
        ::= { syslogSetting 1 }

    syslogServer1port OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The syslog server 1 port"
        ::= { syslogSetting 2 }

    syslogServer2 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The syslog server 2"
        ::= { syslogSetting 3 }

    syslogServer2port OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The syslog server 2 port"
        ::= { syslogSetting 4 }

    syslogServer3 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The syslog server 3"
        ::= { syslogSetting 5 }

    syslogServer3port OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The syslog server 3 port"
        ::= { syslogSetting 6 }


-- -------------------------------------------------------------
-- DHCP Relay Agent group
-- -------------------------------------------------------------
    dhcpRelayAgentSetting OBJECT IDENTIFIER ::= { swMgmt 39 }

    dhcpServer1 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The dhcp Relay Agent Server 1."
        ::= { dhcpRelayAgentSetting 1 }

    dhcpServer2 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The dhcp Relay Agent Server 2."
        ::= { dhcpRelayAgentSetting 2 }

    dhcpServer3 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The dhcp Relay Agent Server 3."
        ::= { dhcpRelayAgentSetting 3 }

    dhcpServer4 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The dhcp Relay Agent Server 4."
        ::= { dhcpRelayAgentSetting 4 }

        option82Setting OBJECT IDENTIFIER ::= { dhcpRelayAgentSetting 5 }

    enableOption82 OBJECT-TYPE
        SYNTAX INTEGER  { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable DHCP Option 82"
        ::= { option82Setting 1 }

    option82Type OBJECT-TYPE
        SYNTAX INTEGER  { ip(0), mac(1), client-id(2), other(3) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
        "Option 82 Type selector "
        ::= { option82Setting 2 }

    option82Value OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Option 82 Type Value"
        ::= { option82Setting 3 }

    option82ValueDisplay OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Option 82 Type Value Display"
        ::= { option82Setting 4 }

    dhcpFunctionTable OBJECT-TYPE
        SYNTAX SEQUENCE OF DhcpFunctionEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "DHCP Function Table."
        ::= { dhcpRelayAgentSetting 6 }

    dhcpFunctionEntry OBJECT-TYPE
        SYNTAX DhcpFunctionEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "DHCP Function Table Entry."
        INDEX { dhcpPortIndex }
        ::= { dhcpFunctionTable 1 }

    DhcpFunctionEntry ::=
        SEQUENCE {
        dhcpPortIndex
        INTEGER,
            circuitID
                DisplayString,
            option82Enable
              INTEGER
            }

    dhcpPortIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The DHCP Port Index."
        ::= { dhcpFunctionEntry 1 }

    circuitID OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Circuit ID."
        ::= { dhcpFunctionEntry 2 }

    option82Enable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable option 82 of the port."
        ::= { dhcpFunctionEntry 3 }

-- -------------------------------------------------------------
-- Power over Ethernet(POE) Function
-- -------------------------------------------------------------
    poeSetting OBJECT IDENTIFIER ::= { swMgmt 40 }


    -- PoE System Setting
    poeSystemSetting OBJECT IDENTIFIER ::= { poeSetting 9 }

poeSysPowerEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE system power enable."
        ::= { poeSystemSetting 1 }

    poeSysPowerThreshold OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE system power threshold."
        ::= { poeSystemSetting 2 }

    poeSysThresholdCutOff OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE system power threshold cut off."
        ::= { poeSystemSetting 3 }

    poeSysAllocatedPower OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE system allocated power."
        ::= { poeSystemSetting 4 }

    poeSysMeasuredPower OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE system measured power."
        ::= { poeSystemSetting 5 }

    poeSysPowerBudget OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE system power budget."
        ::= { poeSystemSetting 7 }

    -- PoE Port Setting

   poePortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PoePortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Poe Port Function Table."
        ::= { poeSetting 3 }

    poePortEntry OBJECT-TYPE
        SYNTAX PoePortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Poe Port Function Table Entry."
        INDEX { poePortIndex }
        ::= { poePortTable 1 }

    PoePortEntry ::=
        SEQUENCE {
            poePortIndex
                INTEGER,
            poePortEnable
                INTEGER,
            poePowerOutputMode
                    INTEGER,
            powerLimit
                INTEGER,
            poePortLegacyPdDetect
                INTEGER,
               pdfailure
                INTEGER,
              pdipaddr
                DisplayString,
            pdNoResponseTimeout
                INTEGER,
            pdPollingInterval
                INTEGER,
            pdNoResponseAction
                INTEGER,
            poeporttimetabling
                INTEGER
          }

    poePortIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE port index."
        ::= { poePortEntry 1 }

    poePortEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE port Enable."
        ::= { poePortEntry 2 }

    powerLimit OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE Port Power Budget"
        ::= { poePortEntry 4 }

    pdfailure OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PD check Enable per port."
        ::= { poePortEntry 5 }

    pdipaddr OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PD ip address."
        ::= { poePortEntry 6 }

    pdPollingInterval OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PD check interval"
        ::= { poePortEntry 7 }

    poeporttimetabling OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE port timetabling"
        ::= { poePortEntry 8 }

    poePortLegacyPdDetect OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE port legacy PD detection"
        ::= { poePortEntry 9 }

    pdNoResponseTimeout OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "No response timeout times for PD."
        ::= { poePortEntry 10 }

    pdNoResponseAction OBJECT-TYPE
        SYNTAX INTEGER { noAction(0), rebootPD(1), powerOffPD(2)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PD no response action."
        ::= { poePortEntry 11 }

    poePowerOutputMode OBJECT-TYPE
        SYNTAX INTEGER { auto(0), highPower(1), force(2) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE port Power Output Mode."
        ::= { poePortEntry 12 }

    -- PoE Timetabling Table

    poeTimeTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PoeTimeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "PoE Time Table."
        ::= { poeSetting 5 }

    poeTimeEntry OBJECT-TYPE
        SYNTAX PoeTimeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "PoE Time Table Entry."
        INDEX { poeTPortIndex, poeWeekDay }
        ::= { poeTimeTable 1 }

    PoeTimeEntry ::=
        SEQUENCE {
            poeTPortIndex
                INTEGER,
            poeWeekDay
                INTEGER,
           poeDayEnable
                INTEGER,
           poeDayStart
                INTEGER,
           poeDayStop
                INTEGER
            }

    poeTPortIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "port Index for time table."
        ::= { poeTimeEntry 1 }

    poeWeekDay OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "day index for a week."
        ::= { poeTimeEntry 2 }

    poeDayEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable or not for one day."
        ::= { poeTimeEntry 3 }

   poeDayStart OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE Port Start Time"
        ::= { poeTimeEntry 4 }

   poeDayStop OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "PoE Port Stop Time"
        ::= { poeTimeEntry 5 }

    -- PoE Status Table

    poeStatusTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PoeStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "PoE Status Table."
        ::= { poeSetting 6 }

    poeStatusEntry OBJECT-TYPE
        SYNTAX PoeStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "PoE Status Table Entry."
        INDEX { poePortIndex}
        ::= { poeStatusTable 1 }

    PoeStatusEntry ::=
        SEQUENCE {
         poePortStatus
                INTEGER,
         poePortConsumption
                INTEGER,
         poePortVoltage
                INTEGER,
         poePortCurrent
                INTEGER,
         poePortPowerOutput
                INTEGER,
         poePortClass
                INTEGER,
         poePortPdFailCheck
                INTEGER,
         poePortPdStatusDescription
                INTEGER
            }

    poePortStatus OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE port Status."
        ::= { poeStatusEntry 1 }

   poePortConsumption OBJECT-TYPE
        SYNTAX INTEGER { na(-1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE port Consumption"
        ::= { poeStatusEntry  2}

   poePortVoltage OBJECT-TYPE
        SYNTAX INTEGER { na(-1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE port Voltage"
        ::= { poeStatusEntry 3 }

   poePortCurrent OBJECT-TYPE
        SYNTAX INTEGER { na(-1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE port Current"
        ::= { poeStatusEntry 4 }

    poePortPowerOutput OBJECT-TYPE
        SYNTAX INTEGER { off(0), on(1) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE port power output status."
        ::= { poeStatusEntry 5 }

    poePortClass OBJECT-TYPE
        SYNTAX INTEGER { unknown(-1), na(-2)}
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE port class."
        ::= { poeStatusEntry 6 }

    poePortPdFailCheck OBJECT-TYPE
        SYNTAX INTEGER { notAlive(0), alive(1), disable(2)}
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE port PD fail check status."
        ::= { poeStatusEntry 7 }

    poePortPdStatusDescription OBJECT-TYPE
        SYNTAX INTEGER {
            disabled(0),
            notPresent(1),
            powered(2),
            nic(3),
            fault(4),
            legacyPowered(5),
            potentialLegacyPD(6)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "PoE port status description."
        ::= { poeStatusEntry 8 }

-- -------------------------------------------------------------
-- PTP Setting
-- -------------------------------------------------------------

    ieee1588Setting OBJECT IDENTIFIER ::= { swMgmt 41 }

    ptpv1Setting OBJECT IDENTIFIER ::= { ieee1588Setting 1 }

    enablePtpv1 OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the PTP functon."
        ::= { ptpv1Setting 1 }

    clockModev1 OBJECT-TYPE
        SYNTAX INTEGER {
            v1BC(0),
            v2E2E2stepTC(1),
            v2P2PTC(3),
            v2E2EBC(4),
            v2P2PBC(5)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the clock mode of the PTP clock."
        ::= { ptpv1Setting 2 }

    syncIntervalv1 OBJECT-TYPE
        SYNTAX INTEGER {
            oneSec(0),
            twoSec(1),
            fourSec(2),
            eightSec(3),
            sixteenSec(4)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the logSyncInterval of the PTP clock."
        ::= { ptpv1Setting 3 }

    subDomainNamev1 OBJECT-TYPE
        SYNTAX INTEGER {dflt(0),alt1(1),alt2(2),alt3(3)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The subdomain name of the PTP clock."
        ::= { ptpv1Setting 4 }

    preferMasterv1 OBJECT-TYPE
        SYNTAX INTEGER {false(0),true(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the PTP prefer master function."
        ::= { ptpv1Setting 5 }

    ptpv2Setting OBJECT IDENTIFIER ::= { ieee1588Setting 2 }

    enablePtp OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the PTP functon."
        ::= { ptpv2Setting 1 }

    clockMode OBJECT-TYPE
        SYNTAX INTEGER {
            v1BC(0),
            v2E2E2stepTC(1),
            v2P2PTC(3),
            v2E2EBC(4),
            v2P2PBC(5)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the clock mode of the PTP clock."
        ::= { ptpv2Setting 2 }

    transport OBJECT-TYPE
        SYNTAX INTEGER {ieee802dot3(0),ipv4(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the transport mode of the PTP clock."
        ::= { ptpv2Setting 3 }

    syncInterval OBJECT-TYPE
        SYNTAX INTEGER {
            t128msec(-3),
            t256msec(-2),
            t512msec(-1),
            t1sec(0),
            t2sec(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the logSyncInterval of the PTP clock."
        ::= { ptpv2Setting 4 }

    logMinDelayReqInterval OBJECT-TYPE
        SYNTAX INTEGER {t1sec(0),t2sec(1),t4sec(2),t8sec(3),t16sec(4),t32sec(5)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the logMinDelayReqInterval of the PTP clock."
        ::= { ptpv2Setting 5 }

    logMinPdelayReqInterval OBJECT-TYPE
        SYNTAX INTEGER {
            t512msec(-1),
            t1sec(0),
            t2sec(1),
            t4sec(2),
            t8sec(3),
            t16sec(4),
            t32sec(5)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the logMinPdelayReqInterval of the PTP clock."
        ::= { ptpv2Setting 6 }

    logAnnounceInterval OBJECT-TYPE
        SYNTAX INTEGER {t1sec(0),t2sec(1),t4sec(2),t8sec(3),t16sec(4)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the logAnnounceInterval of the PTP clock."
        ::= { ptpv2Setting 7 }

    announceReceiptTimeout OBJECT-TYPE
        SYNTAX INTEGER (2..10)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the announceReceiptTimeout of the PTP clock."
        ::= { ptpv2Setting 8 }

    priority1 OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the priority1 of the PTP clock."
        ::= { ptpv2Setting 9 }

    priority2 OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the priority2 of the PTP clock."
        ::= { ptpv2Setting 10 }

    clockClass OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the clockClass of the PTP clock."
        ::= { ptpv2Setting 11 }

    domainNumber OBJECT-TYPE
        SYNTAX INTEGER {dflt(0),alt1(1),alt2(2),alt3(3)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The domain number of the PTP clock."
        ::= { ptpv2Setting 12 }

    localUtcOffset OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the UTC offset of the local PTP clock."
        ::= { ptpv2Setting 13 }

    localUtcOffsetValid OBJECT-TYPE
        SYNTAX INTEGER {false(0),true(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the UTC offset valid of the local PTP clock."
        ::= { ptpv2Setting 14 }

    localLeap59 OBJECT-TYPE
        SYNTAX INTEGER {false(0),true(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the leap59 of the local PTP clock."
        ::= { ptpv2Setting 15 }

    localLeap61 OBJECT-TYPE
        SYNTAX INTEGER {false(0),true(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the leap61 of the local PTP clock."
        ::= { ptpv2Setting 16 }

    localPtpTimescale OBJECT-TYPE
        SYNTAX INTEGER {arb(0),ptp(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the timescale of the local PTP clock."
        ::= { ptpv2Setting 17 }

    localArbTime OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the ARB time of the local PTP clock."
        ::= { ptpv2Setting 18 }

    ptpv1Status OBJECT IDENTIFIER ::= { ieee1588Setting 3 }

    offsetToMasterv1 OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The offset to master for nsec."
        ::= { ptpv1Status 1 }

    meanPathDelayv1 OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The mean path delay of the PTP clock."
        ::= { ptpv1Status 2 }

    grandMasterUuidv1 OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The grand master UUID address of the PTP clock."
        ::= { ptpv1Status 3 }

    parentUuidv1 OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The parent master UUID address of the PTP clock."
        ::= { ptpv1Status 4 }

    clockStratumv1 OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The clock stratum of the PTP clock."
        ::= { ptpv1Status 5 }

    clockIdentifierv1 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The clock identifier of the PTP clock."
        ::= { ptpv1Status 6 }

    ptpv2Status OBJECT IDENTIFIER ::= { ieee1588Setting 4 }

    offsetToMaster OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The offset to master for nsec."
        ::= { ptpv2Status 1 }

    meanPathDelay OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The mean path delay of the PTP clock."
        ::= { ptpv2Status 2 }

    parentIdentity OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The parent identity of the PTP clock."
        ::= { ptpv2Status 3 }

    grandmasterIdentity OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The grandmaster identity of the PTP clock."
        ::= { ptpv2Status 4 }

    grandmasterClockClass OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The grandmaster clockClass of the PTP clock."
        ::= { ptpv2Status 5 }

    grandmasterClockAccuracy OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The grandmaster clockAccuracy of the PTP clock."
        ::= { ptpv2Status 6 }

    grandmasterPriority1 OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The grandmaster priority1 of the PTP clock."
        ::= { ptpv2Status 7 }

    grandmasterPriority2 OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The grandmaster priority2 of the PTP clock."
        ::= { ptpv2Status 8 }

    stepsRemoved OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The steps removed of the PTP clock."
        ::= { ptpv2Status 9 }

    currentUtcOffset OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current utc offset of the PTP clock."
        ::= { ptpv2Status 10 }

    currentUtcOffsetValid OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current utc offset valid flag of the PTP clock."
        ::= { ptpv2Status 11 }

    leap59 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The leap59 of the PTP clock."
        ::= { ptpv2Status 12 }

    leap61 OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The leap61 of the PTP clock."
        ::= { ptpv2Status 13 }

    ptpTimescale OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The ptp timescale of the PTP clock."
        ::= { ptpv2Status 14 }

    timesource OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The timesource of the PTP clock."
        ::= { ptpv2Status 15 }

    ptpPortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PtpPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The ptp port table."
        ::= { ieee1588Setting 5 }

    ptpPortEntry OBJECT-TYPE
        SYNTAX PtpPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The ptp port entry."
        INDEX { ptpPortIndex }
        ::= { ptpPortTable 1 }

    PtpPortEntry ::=
        SEQUENCE {
            ptpPortIndex
                INTEGER,
            ptpPortEnable
                INTEGER,
            ptpPortStatus
                INTEGER
        }

    ptpPortIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The ptp port index."
        ::= { ptpPortEntry 1 }

    ptpPortEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the ptp port."
        ::= { ptpPortEntry 2 }

    ptpPortStatus OBJECT-TYPE
        SYNTAX INTEGER {
            ptpInitializing(0),
            ptpFaulty(1),
            ptpDisabled(2),
            ptpListening(3),
            ptpPreMaster(4),
            ptpMaster(5),
            ptpPassive(6),
            ptpUncalibrated(7),
            ptpSlave(8)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "This port status of the PTP clock."
        ::= { ptpPortEntry 3 }


-- -------------------------------------------------------------
-- swTraps group
-- -------------------------------------------------------------

    mibNotificationsPrefix OBJECT IDENTIFIER
    ::= { edsg512epoe 0 }

    varconfigChangeTrap OBJECT-TYPE
        SYNTAX    INTEGER {
            none(1),            -- no config change happened
            configChanged(2)    -- config changed
        }
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The configuration has been changed."
        ::= { swTraps 1 }

    configChangeTrap NOTIFICATION-TYPE
    OBJECTS         { varconfigChangeTrap }
    STATUS          current
    DESCRIPTION
            "The configuration has been changed."
    ::= { mibNotificationsPrefix 1 }

    varpower1Trap OBJECT-TYPE
        SYNTAX    INTEGER {
            none(1),            -- no power on/off
            on2off(2),            -- power on to power off
            off2on(3)            -- power off to power on
        }
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The power on/off changed."
        ::= { swTraps 2 }

    power1Trap NOTIFICATION-TYPE
    OBJECTS         { varpower1Trap }
    STATUS          current
    DESCRIPTION
            "The power on/off changed."
    ::= { mibNotificationsPrefix 2 }

    varpower2Trap OBJECT-TYPE
        SYNTAX    INTEGER {
            none(1),            -- no power on/off
            on2off(2),            -- power on to power off
            off2on(3)            -- power off to power on
        }
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The power on/off changed."
        ::= { swTraps 3 }

    power2Trap NOTIFICATION-TYPE
    OBJECTS         { varpower2Trap }
    STATUS          current
    DESCRIPTION
            "The power on/off changed."
    ::= { mibNotificationsPrefix 3 }

    vartrafficOverloadTrap OBJECT-TYPE
        SYNTAX    INTEGER
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The ethernet port's traffic loading exceeds the pre-defined value."
        ::= { swTraps 4 }

    trafficOverloadTrap NOTIFICATION-TYPE
    OBJECTS         { vartrafficOverloadTrap }
    STATUS          current
    DESCRIPTION
            "The ethernet port's traffic loading exceeds the pre-defined value."
    ::= { mibNotificationsPrefix 4 }

    varredundancyTopologyChangedTrap OBJECT-TYPE
        SYNTAX    INTEGER {
            none(1),            -- no topology change
            topologyChanged(2),    -- topology changed
            topologyChangedTurboChainHead(3),    -- topology change turboChain head
            topologyChangedTurboChainTail(4)    -- topology change turboChain tail
        }
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The redundancy topology has been changed."
        ::= { swTraps 5 }

    redundancyTopologyChangedTrap NOTIFICATION-TYPE
    OBJECTS         { varredundancyTopologyChangedTrap }
    STATUS          current
    DESCRIPTION
            "The redundancy topology has been changed."
    ::= { mibNotificationsPrefix 5 }

    varturboRingCouplingPortChangedTrap OBJECT-TYPE
        SYNTAX    INTEGER {
            none(1),                -- no topology change
            couplingPortChanged(2)    -- coupling port changed
        }
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The coupling path of Turbo Ring has been changed."
        ::= { swTraps 6 }

    turboRingCouplingPortChangedTrap NOTIFICATION-TYPE
    OBJECTS         { varturboRingCouplingPortChangedTrap }
    STATUS          current
    DESCRIPTION
            "The coupling path of Turbo Ring has been changed."
    ::= { mibNotificationsPrefix 6 }

    varturboRingMasterChangedTrap OBJECT-TYPE
        SYNTAX    INTEGER {
            none(1),                -- no topology change
            ringMasterChanged(2)    -- ring master changed
        }
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The master of Turbo Ring has been changed."
        ::= { swTraps 7 }

    turboRingMasterChangedTrap NOTIFICATION-TYPE
    OBJECTS         { varturboRingMasterChangedTrap }
    STATUS          current
        DESCRIPTION
            "The master of Turbo Ring has been changed."
    ::= { mibNotificationsPrefix 7 }

    varturboRingMasterMismatchTrap OBJECT-TYPE
        SYNTAX    INTEGER {
            none(1),                -- no topology mismatch
            ringMasterMismatch(2)    -- ring master mismatch
        }
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The master of Turbo Ring has been mismatch."
        ::= { swTraps 22 }

    turboRingMasterMismatchTrap NOTIFICATION-TYPE
    OBJECTS         { varturboRingMasterChangedTrap }
    STATUS          current
        DESCRIPTION
            "The master of Turbo Ring has been mismatch."
    ::= { mibNotificationsPrefix 22 }

       varPoEWarningTrap OBJECT-TYPE
        SYNTAX    INTEGER {
            pdOverCurrent(1),        -- PoE port over-current/short-circuit
            pdCheckFail(2),            -- PD Failure Check (no response)
            pdPowerOn(3),            -- PoE port power on
            pdPowerOff(4),            -- PoE port power off
            exceedSystemThreshold(5),-- Exceed PoE system threshold
            pseFetBad(6),            -- PoE port External FET has failed
            pseOverTemperature(7),    -- PSE chip is over temperature
            pseVeeUvlo(8),            -- PSE chip VEE under voltage lockout
      exceedSystemPowerBudget(9) -- Exceel PoE system power budget
        }
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The POE warning message."
        ::= { swTraps 16 }

     poeWarningTrap NOTIFICATION-TYPE
    OBJECTS         { varPoEWarningTrap }
    STATUS          current
        DESCRIPTION
            "The POE warning message."
    ::= { mibNotificationsPrefix 16 }

   varPortLoopDetectedTrap OBJECT-TYPE
        SYNTAX    INTEGER
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The DUT port is looping."
        ::= { swTraps 17 }

    portLoopDetectedTrap NOTIFICATION-TYPE
    OBJECTS         { varPortLoopDetectedTrap }
    STATUS          current
        DESCRIPTION
            "The DUT port is looping."
    ::= { mibNotificationsPrefix 17 }

    varRateLimitedOnTrap OBJECT-TYPE
        SYNTAX    INTEGER
        {
            none(1),                -- no rate limit
            rateLimitON(2),            -- rate limit ON
            rateLimitOFF(3)            -- rate limit OFF

        }
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The DUT port is rate limit."
        ::= { swTraps 18 }

    rateLimitedOnTrap NOTIFICATION-TYPE
    OBJECTS         { varRateLimitedOnTrap }
    STATUS          current
        DESCRIPTION
            "The DUT port rate limit is ON."

    ::= {  mibNotificationsPrefix 18 }

   varLLDPChgTrap OBJECT-TYPE
        SYNTAX    INTEGER
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "The LLDP table is changing."
        ::= { swTraps 19 }

    lldpChgTrap NOTIFICATION-TYPE
    OBJECTS         { varLLDPChgTrap }
    STATUS          current
        DESCRIPTION
            "The LLDP table is changing."
    ::= { mibNotificationsPrefix 19 }

    varABC02WarningTrap OBJECT-TYPE
    SYNTAX        INTEGER
    {
        noEnoughSpace(1),
        nnauthorizedMediaIsDetected(2),
        exportConfigurationFail(3),
        exportLogFail(4),
        autoImportConfigurationFail(5)
    }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Warning trap while specific error is occured in abc02."
    ::= { swTraps 20 }

    abc02WarningTrap NOTIFICATION-TYPE
    OBJECTS    { varABC02WarningTrap }
    STATUS      current
    DESCRIPTION
            "Warning trap while specific error is occured in abc02."
    ::= { mibNotificationsPrefix 20 }

    varUserAuthSuccessTrap OBJECT-TYPE
        SYNTAX  OCTET STRING
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Account authentication success."
        ::= { swTraps 24 }

    userAuthSuccessTrap NOTIFICATION-TYPE
    OBJECTS         { varUserAuthSuccessTrap }
    STATUS          current
        DESCRIPTION
            "Account authentication success."
    ::= { mibNotificationsPrefix 24 }

   varUserAuthFailTrap OBJECT-TYPE
        SYNTAX  OCTET STRING
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Account authentication failed."
        ::= { swTraps 25 }

    userAuthFailTrap NOTIFICATION-TYPE
    OBJECTS         { varUserAuthFailTrap }
    STATUS          current
        DESCRIPTION
            "Account authentication failed."
    ::= { mibNotificationsPrefix 25 }

    varMacStickyPortViolationPortDisableTrap OBJECT-TYPE
        SYNTAX  INTEGER {
           none(1),                -- no violation port disable
           violationPortDisable(2)    -- violation port disable
        }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
           "The number of sticky Mac address on the port was over the limit. A macStickyPortViolationPortDisableTrap will contain 3 elements: port, macaddr, and vlanid."
    ::= { swTraps 26 }

    macStickyPortViolationPortDisableTrap NOTIFICATION-TYPE
    OBJECTS         { varMacStickyPortViolationPortDisableTrap }
    STATUS          current
        DESCRIPTION
               "The number of sticky Mac address on the port was over the limit. A macStickyPortViolationPortDisableTrap will contain 3 elements: port, macaddr, and vlanid."
    ::= { mibNotificationsPrefix 26 }

   varFiberWarningTrap OBJECT-TYPE
        SYNTAX    INTEGER
        MAX-ACCESS    read-only
        STATUS    current
        DESCRIPTION
            "Warning trap while fiber is over threshold."
        ::= { swTraps 28 }

    fiberWarningTrap NOTIFICATION-TYPE
    OBJECTS         { varFiberWarningTrap }
    STATUS          current
        DESCRIPTION
            "Warning trap while fiber is over threshold."
    ::= { mibNotificationsPrefix 28 }

    varLoggingCapacityTrap OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Warning trap while event log is over capacity threshold."
        ::= { swTraps 29 }

    loggingCapacityTrap NOTIFICATION-TYPE
    OBJECTS         { varLoggingCapacityTrap }
    STATUS          current
        DESCRIPTION
            "Warning trap while event log is over capacity threshold."
    ::= { mibNotificationsPrefix 29 }

    varUserInfoChgTrap OBJECT-TYPE
        SYNTAX  OCTET STRING
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Account information has been changed."
        ::= { swTraps 31 }

    userInfoChgTrap NOTIFICATION-TYPE
    OBJECTS         { varUserInfoChgTrap }
    STATUS          current
        DESCRIPTION
            "Account information has been changed."
    ::= { mibNotificationsPrefix 31 }

   varConfigImportTrap OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Configuration has been imported."
        ::= { swTraps 32 }

    configImportTrap NOTIFICATION-TYPE
    OBJECTS         { varConfigImportTrap }
    STATUS          current
        DESCRIPTION
            "Configuration has been imported."
    ::= { mibNotificationsPrefix 32 }

    varRemoteAuthSuccessTrap OBJECT-TYPE
        SYNTAX  INTEGER {
           tacacs(1),
           radius(2)
        }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
           "The login authentication is successful by the remote server"
    ::= { swTraps 38 }

    remoteAuthSuccessTrap NOTIFICATION-TYPE
    OBJECTS         { varRemoteAuthSuccessTrap }
    STATUS          current
        DESCRIPTION
            "The login authentication is successful by the remote server"
    ::= { mibNotificationsPrefix 38 }

    varRemoteAuthFailTrap OBJECT-TYPE
        SYNTAX  INTEGER {
           tacacs(1),
           radius(2)
        }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
           "The login authentication is failed by the remote server"
    ::= { swTraps 39 }

    remoteAuthFailTrap NOTIFICATION-TYPE
    OBJECTS         { varRemoteAuthFailTrap }
    STATUS          current
        DESCRIPTION
            "The login authentication is failed by the remote server"
    ::= { mibNotificationsPrefix 39 }

-- -------------------------------------------------------------
-- Diagnosis:  LLDP Setting
-- -------------------------------------------------------------

     diagnosis OBJECT IDENTIFIER ::= { swMgmt 42 }
     lldpSetting OBJECT IDENTIFIER ::= { diagnosis 1 }


    enableLLDP OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the LLDP functon."
        ::= { lldpSetting 1 }


         lldpMSGInterval OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The LLDP message transmit interval."
        ::= { lldpSetting 2 }

-- -------------------------------------------------------------
-- Industrial Protocol
-- -------------------------------------------------------------

     industrialProtocol OBJECT IDENTIFIER ::= { swMgmt 47 }
     eipSetting OBJECT IDENTIFIER ::= { industrialProtocol 1 }
     modbusSetting OBJECT IDENTIFIER ::= { industrialProtocol 2 }
     profinetioSetting OBJECT IDENTIFIER ::= { industrialProtocol 3 }

    enableEtherNetIP OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the EtherNet/IP functon."
        ::= { eipSetting 1 }

    enableModbus OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the Modbus functon."
        ::= { modbusSetting 1 }

    enableProfinetIO OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the PROFINET IO functon."
        ::= { profinetioSetting 1 }

-- -------------------------------------------------------------
-- GARP
-- -------------------------------------------------------------

    garpSetting OBJECT IDENTIFIER ::= { swMgmt 45 }


     leaveAllTime OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Leaveall Time (ms)."
        ::= { garpSetting 3 }

    leaveTime OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Leave Time (ms)."
        ::= { garpSetting 2 }

    joinTime OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Join Time (ms)."
        ::= { garpSetting 1 }

-- -------------------------------------------------------------
-- Factory Default setting
-- -------------------------------------------------------------

    enableFactoryDefault OBJECT-TYPE
        SYNTAX INTEGER
            {
            activate(1)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Reset all EtherDevice switch settings to factory default values"
        ::= { swMgmt 48 }

-- -------------------------------------------------------------
-- eventlog
-- -------------------------------------------------------------
    eventlog OBJECT IDENTIFIER ::= { swMgmt 46 }

    eventlogTable OBJECT-TYPE
        SYNTAX SEQUENCE OF EventlogEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of eventlog."
        ::= { eventlog 1 }

    eventlogEntry OBJECT-TYPE
        SYNTAX EventlogEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table entry of eventlog."
        INDEX { eventlogIndex }
        ::= { eventlogTable 1 }

    EventlogEntry ::=
        SEQUENCE {
            eventlogIndex
                INTEGER,
            eventlogBootup
                INTEGER,
            eventlogDate
                DisplayString,
            eventlogTime
                DisplayString,
            eventlogUptime
                DisplayString,
            eventlogEvent
                DisplayString
        }

    eventlogIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The index of eventlog entry."
        ::= { eventlogEntry 1 }

    eventlogBootup OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The reboot count of the system."
        ::= { eventlogEntry 2 }

    eventlogDate OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The date of the event occured."
        ::= { eventlogEntry 3 }

    eventlogTime OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The time of the event occured."
        ::= { eventlogEntry 4 }

    eventlogUptime OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The time of the event occured after booting up."
        ::= { eventlogEntry 5 }

    eventlogEvent OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The event which occured in the system."
        ::= { eventlogEntry 6 }

    eventlogClear OBJECT-TYPE
        SYNTAX INTEGER { noop(0), clear(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "To clear the eventlog, set value 1 to this field."
        ::= { eventlog 2 }
-- -------------------------------------------------------------
-- Access Control List
-- -------------------------------------------------------------

     accessControlList OBJECT IDENTIFIER ::= { swMgmt 52 }

     accessControlTable OBJECT-TYPE
        SYNTAX SEQUENCE OF AccessControlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of ACL rule settings.  This table is used to configure ACL rules."
        ::= { accessControlList 1 }

    accessControlEntry OBJECT-TYPE
        SYNTAX AccessControlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry information of ACL table."
        INDEX { aclRuleIndex }
        ::= { accessControlTable 1 }

    AccessControlEntry ::=
        SEQUENCE {
            aclRuleIndex
                INTEGER,
            listID
                INTEGER,
            filterType
                INTEGER,
            actionFlag
                INTEGER,
            srcMacAddr
                MacAddress,
            srcMacMask
                MacAddress,
            dstMacAddr
                MacAddress,
            dstMacMask
                MacAddress,
            etherType
                INTEGER,
            vlanID
                INTEGER,
            srcIpAddr
                IpAddress,
            srcNetmask
                IpAddress,
            dstIpAddr
                IpAddress,
            dstNetmask
                IpAddress,
            protocolCode
                INTEGER,
            srcsocketPort
                INTEGER,
            dstsocketPort
                INTEGER,
            aclStatus
                INTEGER
            }

    aclRuleIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The index of the ACL rule."
        ::= { accessControlEntry 1 }

    listID OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The listID of the ACL rule."
        ::= { accessControlEntry 2 }

    filterType OBJECT-TYPE
        SYNTAX INTEGER {ipBase(0),macBase(1)}
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The type of the ACL filter."
        ::= { accessControlEntry 3 }

    actionFlag OBJECT-TYPE
        SYNTAX INTEGER {permit(0),deny(1)}
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The action of the ACL rule."
        ::= { accessControlEntry 4 }

    srcMacAddr OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The source MAC address of the ACL rule."
        ::= { accessControlEntry 5 }

    srcMacMask OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The mask of the source MAC address in the ACL rule."
        ::= { accessControlEntry 6 }

    dstMacAddr OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The destination MAC address of the ACL rule."
        ::= { accessControlEntry 7 }

    dstMacMask OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The mask of the destination MAC address in the ACL rule."
        ::= { accessControlEntry 8 }

    etherType OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The ether type of the ACL rule.
             This setting will apply to both ARP and RARP traffic stream due to hardware platform design ! ! !
             Because of hardware platform limitations, when Ether type ARP is selected the switch will not be able to filter packets by specific destination address ! ! !"
        ::= { accessControlEntry 9 }

    vlanID OBJECT-TYPE
        SYNTAX INTEGER (1..4094)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The VLAN ID of the ACL rule."
        ::= { accessControlEntry 10 }

    srcIpAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The source IP address of the ACL rule."
        ::= { accessControlEntry 11 }

    srcNetmask OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The source IP address's mask of the ACL rule."
        ::= { accessControlEntry 12 }

    dstIpAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The destination IP address of the ACL rule"
        ::= { accessControlEntry 13 }

    dstNetmask OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The destination IP address's mask of the ACL rule."
        ::= { accessControlEntry 14 }

    protocolCode OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The protocol code of the ACL rule."
        ::= { accessControlEntry 15 }

    srcsocketPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The source UDP/TCP port of the ACL rule."
        ::= { accessControlEntry 16 }

    dstsocketPort OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The destination UDP/TCP port of the ACL rule."
        ::= { accessControlEntry 17 }

    aclStatus OBJECT-TYPE
        SYNTAX INTEGER {
            active(1),
            createAndGo(4),
            createAndWait(5),
            destroy(6)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The status is active to indicate normal.
             Use createAndGo to create new on multiple SET.
             Use createAndWait to create new on one SET all then actvie.
             Use destroy to delete this row."
        ::= { accessControlEntry 18 }

    aclAttachmentTable OBJECT-TYPE
        SYNTAX SEQUENCE OF AclAttachmentEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The table of ACL attachment settings.  This table is used to configure ACL attachment port and list name."
        ::= { accessControlList 2 }

    aclAttachmentEntry OBJECT-TYPE
        SYNTAX AclAttachmentEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The entry information of ACL attachment table."
        INDEX { aclID }
        ::= { aclAttachmentTable 1 }

    AclAttachmentEntry ::=
        SEQUENCE {
            aclID
                INTEGER,
            ingressPort
                PortList,
            aclListName
                DisplayString

            }

    aclID OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The listID of the ACL attachment entry."
        ::= { aclAttachmentEntry 1 }

    ingressPort OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The ingress ports of the ACL attachment entry."
        ::= { aclAttachmentEntry 2 }

    aclListName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The ACL entry name."
        ::= { aclAttachmentEntry 4 }

-- -------------------------------------------------------------
-- CPU Loading and Free Memory info.
-- -------------------------------------------------------------
    cpuLoading5s OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "CPU Loading for the past 5 seconds in %."
        ::= { swMgmt 53 }

     cpuLoading30s OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "CPU Loading for the past 30 seconds in %."
        ::= { swMgmt 54 }

      cpuLoading300s OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "CPU Loading for the past 5 minutes in %."
        ::= { swMgmt 55 }

       totalMemory OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Total size of System RAM."
        ::= { swMgmt 56 }

        freeMemory OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Total size of free dynamic memory"
        ::= { swMgmt 57 }

     usedMemory OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Total size of used dynamic memory"
        ::= { swMgmt 58 }

     memoryUsage OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The usage of memory size in %."
        ::= { swMgmt 59 }

    ivlSwitch OBJECT-TYPE
        SYNTAX INTEGER {svl(0),ivl(1)}
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Current switch runs IVL(Independent Vlan Learning) or SVL(Shared Vlan Learning)"
        ::= { swMgmt 76 }

    supportMacSticky OBJECT-TYPE
        SYNTAX INTEGER {not-support(0), support(1)}
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Support MAC Sticky feature or not."
        ::= { swMgmt 77 }

-- -------------------------------------------------------------
-- Loop Protection info.
-- -------------------------------------------------------------
     loopProtection OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This enable the Loop Protection functon."
        ::= { swMgmt 61 }

-- -------------------------------------------------------------
-- event settings
-- -------------------------------------------------------------

    eventSettings OBJECT IDENTIFIER ::= { swMgmt 62 }

    -- System Event Settings

    systemEventSettingsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF SystemEventSettingsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The system event settings table."
        ::= { eventSettings 1 }

    systemEventSettingsEntry OBJECT-TYPE
        SYNTAX SystemEventSettingsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "System Event Settings Entry."
        INDEX { systemEventIndex }
        ::= { systemEventSettingsTable 1 }

    SystemEventSettingsEntry ::=
        SEQUENCE {
            systemEventIndex
                INTEGER,
            systemEventActive
                INTEGER,
            systemEventName
                DisplayString,
            systemEventSupport
                INTEGER,
            systemEventModuleEnable
                INTEGER,
            systemEventSeverity
                INTEGER
        }

    systemEventIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Index of system event settings"
        ::= { systemEventSettingsEntry 1 }

    systemEventActive OBJECT-TYPE
        SYNTAX INTEGER {
        inactive(0),
            active(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of active of system event settings"
        ::= { systemEventSettingsEntry 2 }


    systemEventName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Name of system event settings"
        ::= { systemEventSettingsEntry 3 }

    systemEventSupport OBJECT-TYPE
        SYNTAX INTEGER {
        none(0),
            support-SNMPTrap-only(1),
            support-Email-only(2),
            support-SNMP-Trap-Email(3),
            support-Syslog-only(4),
            support-SNMPTrap-Syslog(5),
            support-Email-Syslog(6),
            support-SNMPTrap-Email-Syslog(7),
            support-Relay1-only(8),
            support-SNMPTrap-Relay1(9),
            support-Email-Relay1(10),
            support-SNMPTrap-Email-Relay1(11),
            support-Syslog-Relay1(12),
            support-SNMPTrap-Syslog-Relay1(13),
            support-Email-Syslog-Relay1(14),
            support-SNMPTrap-Email-Syslog-Relay1(15),
            support-Relay2-only(16),
            support-SNMPTrap-Relay2(17),
            support-Email-Relay2(18),
            support-SNMPTrap-Email-Relay2(19),
            support-Syslog-Relay2(20),
            support-SNMPTrap-Syslog-Relay2(21),
            support-Email-Syslog-Relay2(22),
            support-SNMPTrap-Email-Syslog-Relay2(23),
            support-Relay1-Relay2(24),
            support-SNMPTrap-Relay1-Relay2(25),
            support-Syslog-Relay1-Relay2(28),
            support-Email-Syslog-Relay1-Relay2(30),
            support-all-SNMPTrap-Email-Syslog-Relay1-Relay2(31)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Status of support modules of system event settings."
        ::= { systemEventSettingsEntry 4 }

    systemEventModuleEnable OBJECT-TYPE
        SYNTAX INTEGER {
        none(0),
            enable-SNMPTrap-only(1),
            enable-Email-only(2),
            enable-SNMPTrap-Email(3),
            enable-Syslog-only(4),
            enable-SNMPTrap-Syslog(5),
            enable-Email-Syslog(6),
            enable-SNMPTrap-Email-Syslog(7),
            enable-Relay1-only(8),
            enable-SNMPTrap-Relay1(9),
            enable-Email-Relay1(10),
            enable-SNMPTrap-Email-Relay1(11),
            enable-Syslog-Relay1(12),
            enable-SNMPTrap-Syslog-Relay1(13),
            enable-Email-Syslog-Relay1(14),
            enable-SNMPTrap-Email-Syslog-Relay1(15),
            enable-Relay2-only(16),
            enable-SNMPTrap-Relay2(17),
            enable-Email-Relay2(18),
            enable-SNMPTrap-Email-Relay2(19),
            enable-Syslog-Relay2(20),
            enable-SNMPTrap-Syslog-Relay2(21),
            enable-Email-Syslog-Relay2(22),
            enable-SNMPTrap-Email-Syslog-Relay2(23),
            enable-Relay1-Relay2(24),
            enable-SNMPTrap-Relay1-Relay2(25),
            enable-Syslog-Relay1-Relay2(28),
            enable-Email-Syslog-Relay1-Relay2(30),
            enable-All-SNMPTrap-Email-Syslog-Relay1-Relay2(31)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of enable of system event settings."
        ::= { systemEventSettingsEntry 5 }

    systemEventSeverity OBJECT-TYPE
        SYNTAX INTEGER {
        emergency(0),
            alert(1),
            critical(2),
            error(3),
            warning(4),
            notice(5),
            information(6),
            debug(7)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Severity of system event settings"
        ::= { systemEventSettingsEntry 6 }

    -- Port Event Settings

    portEventSettingsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PortEventSettingsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The port event settings table."
        ::= { eventSettings 2 }

    portEventSettingsEntry OBJECT-TYPE
        SYNTAX PortEventSettingsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Port Event Settings Entry."
        INDEX { portEventIndex }
        ::= { portEventSettingsTable 1 }

    PortEventSettingsEntry ::=
        SEQUENCE {
            portEventIndex
                INTEGER,
            portEventLabel
                DisplayString,
            portEventActive
                INTEGER,
            portEventEnable
                INTEGER,
            portEventTrafficThreshold
                INTEGER,
            portEventTrafficDuration
                INTEGER,
            portEventModuleEnable
                INTEGER,
            portEventSeverity
                INTEGER
        }

    portEventIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Index of port event settings"
        ::= { portEventSettingsEntry 1 }

    portEventLabel OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Label of portEventIndex"
        ::= { portEventSettingsEntry 2 }

    portEventActive OBJECT-TYPE
        SYNTAX INTEGER {
        inactive(0),
            active(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of active of port event settings"
        ::= { portEventSettingsEntry 3 }

    portEventEnable OBJECT-TYPE
        SYNTAX INTEGER {
        none(0),
            enable-LinkOn-only(1),
            enable-LinkOff-only(2),
            enable-LinkOn-LinkOff(3),
            enable-TrafficOverload-only(4),
            enable-LinkOn-TrafficOverload(5),
            enable-LinkOff-TrafficOverload(6),
            enable-All-LinkOn-LinkOff-TrafficOverload(7)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of event enable of port event settings"
        ::= { portEventSettingsEntry 4 }

    portEventTrafficThreshold OBJECT-TYPE
        SYNTAX INTEGER (0..100)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Threshold of Traffic-Overload in percentage(%)"
        ::= { portEventSettingsEntry 5 }

    portEventTrafficDuration OBJECT-TYPE
        SYNTAX INTEGER (1..300)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Duration of Traffic-Overload in secs(s)"
        ::= { portEventSettingsEntry 6 }

    portEventModuleEnable OBJECT-TYPE
        SYNTAX INTEGER {
        none(0),
            enable-SNMPTrap-only(1),
            enable-Email-only(2),
            enable-SNMPTrap-Email(3),
            enable-Syslog-only(4),
            enable-SNMPTrap-Syslog(5),
            enable-Email-Syslog(6),
            enable-SNMPTrap-Email-Syslog(7),
            enable-Relay1-only(8),
            enable-SNMPTrap-Relay1(9),
            enable-Email-Relay1(10),
            enable-SNMPTrap-Email-Relay1(11),
            enable-Syslog-Relay1(12),
            enable-SNMPTrap-Syslog-Relay1(13),
            enable-Email-Syslog-Relay1(14),
            enable-SNMPTrap-Email-Syslog-Relay1(15),
            enable-Relay2-only(16),
            enable-SNMPTrap-Relay2(17),
            enable-Email-Relay2(18),
            enable-SNMPTrap-Email-Relay2(19),
            enable-Syslog-Relay2(20),
            enable-SNMPTrap-Syslog-Relay2(21),
            enable-Email-Syslog-Relay2(22),
            enable-SNMPTrap-Email-Syslog-Relay2(23),
            enable-Relay1-Relay2(24),
            enable-SNMPTrap-Relay1-Relay2(25),
            enable-Syslog-Relay1-Relay2(28),
            enable-Email-Syslog-Relay1-Relay2(30),
            enable-All-SNMPTrap-Email-Syslog-Relay1-Relay2(31)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of module enable of port event settings."
        ::= { portEventSettingsEntry 7 }

    portEventSeverity OBJECT-TYPE
        SYNTAX INTEGER {
        emergency(0),
            alert(1),
            critical(2),
            error(3),
            warning(4),
            notice(5),
            information(6),
            debug(7)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Severity of port event settings"
        ::= { portEventSettingsEntry 8 }

-- -------------------------------------------------------------
-- Management Interface
-- -------------------------------------------------------------

    managementInterface OBJECT IDENTIFIER ::= { swMgmt 63 }

    httpEnable OBJECT-TYPE
        SYNTAX INTEGER {
        disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of http service"
        ::= { managementInterface 1 }

    httpPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Port of http service"
        ::= { managementInterface 2 }

    sslEnable OBJECT-TYPE
        SYNTAX INTEGER {
        disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of ssl(https) service"
        ::= { managementInterface 3 }

    sslPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Port of ssl(https) service"
        ::= { managementInterface 4 }

    telnetEnable OBJECT-TYPE
        SYNTAX INTEGER {
        disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of telnet service"
        ::= { managementInterface 5 }

    telnetPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Port of telnet service"
        ::= { managementInterface 6 }

    sshEnable OBJECT-TYPE
        SYNTAX INTEGER {
        disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of ssh service"
        ::= { managementInterface 7 }

    sshPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Port of telnet service"
        ::= { managementInterface 8 }

    mgmtInterfaceAutoLogout OBJECT-TYPE
        SYNTAX INTEGER (0..1440)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Web Timeout (Mins). Set 0 to disable"
        ::= { managementInterface 9 }

    snmpdEnable OBJECT-TYPE
        SYNTAX INTEGER {
        disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of snmp agent"
        ::= { managementInterface 10 }

    snmpdPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Port of snmp agent"
        ::= { managementInterface 11 }

    moxaUtilityServiceEnable OBJECT-TYPE
        SYNTAX INTEGER {
        disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of moxa utility service"
        ::= { managementInterface 12 }

    moxaUtilityServicePort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Port of moxa utility service"
        ::= { managementInterface 13 }

    httpMaxLoginUsers OBJECT-TYPE
        SYNTAX INTEGER (1..10)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Configure HTTP/HTTPS maximum login users"
        ::= { managementInterface 14 }

    telnetMaxLoginUsers OBJECT-TYPE
        SYNTAX INTEGER (1..5)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Configure TELNET/SSH maximum login users"
        ::= { managementInterface 15 }

    moxaNewCmdEnable OBJECT-TYPE
        SYNTAX INTEGER {
              disable(0),
            enable(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Status of new moxa utility service"
        ::= { managementInterface 16 }

-- -------------------------------------------------------------
-- Password Policy.
-- -------------------------------------------------------------

    passwordPolicy OBJECT IDENTIFIER ::= { swMgmt 70 }

     pwdMinLength OBJECT-TYPE
        SYNTAX INTEGER (4..16)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Configure the minimum password length."
        ::= { passwordPolicy 1 }

     pwdComplexityCheckEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable password complexity check."
        ::= { passwordPolicy 2 }

     pwdComplexityCheckDigitEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Add password complexity check with digit."
        ::= { passwordPolicy 3 }

     pwdComplexityCheckAlphabetEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Add password complexity check with alphabet."
        ::= { passwordPolicy 4 }

     pwdComplexityCheckSpecialCharEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Add password complexity check with special-characters."
        ::= { passwordPolicy 5 }

-- -------------------------------------------------------------
-- Login Lockout.
-- -------------------------------------------------------------

    loginLockout OBJECT IDENTIFIER ::= { swMgmt 71 }

     loginFailureLockoutEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable login failure lockout."
        ::= { loginLockout 1 }

     loginFailureLockoutRetrys OBJECT-TYPE
        SYNTAX INTEGER (1..10)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Configure login failure lockout retry threshhold."
        ::= { loginLockout 2 }

     loginFailureLockoutTime OBJECT-TYPE
        SYNTAX INTEGER (1..60)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Configure login failure lockout time.(Min)"
        ::= { loginLockout 3 }

-- -------------------------------------------------------------
-- System Notification Message.
-- -------------------------------------------------------------

    systemNotifyMessage OBJECT IDENTIFIER ::= { swMgmt 72 }

     httpLoginMessage OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Configure HTTP/HTTPS login message."
        ::= { systemNotifyMessage 1 }

     httpLoginFailureMessage OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Configure HTTP/HTTPS login failure message."
        ::= { systemNotifyMessage 2 }

-- -------------------------------------------------------------
-- Audit and Log Management.
-- -------------------------------------------------------------

    syslogManagement OBJECT IDENTIFIER ::= { swMgmt 73 }

     loggingCapacityThreshold OBJECT-TYPE
        SYNTAX INTEGER (0..100)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Configure event log capacity warning threshold."
        ::= { syslogManagement 1 }

     loggingCapacityTrapWarningEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable event log capacity SNMP trap warning."
        ::= { syslogManagement 2 }

     loggingCapacityEmailWarningEnable OBJECT-TYPE
        SYNTAX INTEGER { disable(0), enable(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enable event log capacity email warning."
        ::= { syslogManagement 3 }

     loggingOversizeAction OBJECT-TYPE
        SYNTAX INTEGER { overwrite(0), stoprecord(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set event log over-size action."
        ::= { syslogManagement 4 }

-- -------------------------------------------------------------
-- Certificate Management.
-- -------------------------------------------------------------

    certificateManagement OBJECT IDENTIFIER ::= { swMgmt 74 }

     sslCertGen OBJECT-TYPE
        SYNTAX INTEGER { na(0), generate(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Generate SSL certificate."
        ::= { certificateManagement 1 }

     sshKeyGen OBJECT-TYPE
        SYNTAX INTEGER { na(0), generate(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Generate SSH host key."
        ::= { certificateManagement 2 }

-- -------------------------------------------------------------
-- Switch Locator LED.
-- -------------------------------------------------------------

    switchLocator OBJECT IDENTIFIER ::= { swMgmt 64 }

     blinkingLocatorLED OBJECT-TYPE
        SYNTAX INTEGER{
        off(0),
        on(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Blinking switch locator LED."
        ::= { switchLocator 1 }

     disableLocatorLEDTime OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Configure back-off time for disable switch locator LED."
        ::= { switchLocator 2 }

-- -------------------------------------------------------------
-- New Web UI info.
-- -------------------------------------------------------------
     uiVersion OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "New UI Version"
        ::= { swMgmt 65 }

-- -------------------------------------------------------------
-- Serial Number info.
-- -------------------------------------------------------------
     serialNumber OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Serial Number"
        ::= { swMgmt 78 }

-- -------------------------------------------------------------
-- Configuration File Encryption Setting.
-- -------------------------------------------------------------
     configEncryptEnable OBJECT-TYPE
        SYNTAX INTEGER {disable(0),enable(1)}
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Configuration File Encryption Setting."
        ::= { swMgmt 79 }

END