    GBNPlatformOAM-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,
        Integer32, IpAddress,
        NOTIFICATION-TYPE                       FROM SNMPv2-SMI

        DisplayString, MacAddress,
        RowStatus, TruthValue                   FROM SNMPv2-TC

        MODULE-COMPLIANCE, OBJECT-GROUP         FROM SNMPv2-CONF

        gbnPlatform                             FROM GREENTECH-MASTER-MIB

        SnmpAdminString                         FROM SNMP-FRAMEWORK-MIB

        PortList, dot1qStaticMulticastEntry     FROM Q-BRIDGE-MIB;

    gbnPlatformOAM MODULE-IDENTITY
        LAST-UPDATED    "201802140000Z"  -- February 14, 2018
        ORGANIZATION    "Greentech"
        CONTACT-INFO    "Adam Armstrong
                         E-mail: adama@observium.org"

        DESCRIPTION     "Gbn Common Enterprise MIB definition."

        REVISION        "201802140000Z"  -- February 14, 2018
        DESCRIPTION     "Fix a few ASN.1 syntax errors (replace underscores
                         with hyphens in descriptors) so that Net-SNMP tools
                         can now load the MIB."

        REVISION        "0011020000Z"  -- November 2, 2000
        DESCRIPTION     "Initial MIB creation."

        ::= { gbnPlatform 1 }

VctRunResultTxRxPairNoType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "txpair1rxpair1txpair2rxpair2"
    SYNTAX      INTEGER { txpair1(0), rxpair1 (1), txpair2(2),  rxpair2(3) }

VctRunResultStatusType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "normalshortopenimpedance mismatch"
    SYNTAX      INTEGER { normal(0), short (1), open(2),  impedance-mismatch(3) }

------------------------------------------------------------------------------
--  define groups in GBN-COMMON-MIB
------------------------------------------------------------------------------
    gbnPlatformOAMSysIf           OBJECT IDENTIFIER ::= { gbnPlatformOAM 1 }
    gbnPlatformOAMSystem          OBJECT IDENTIFIER ::= { gbnPlatformOAM 2 }
    gbnPlatformOAMIpAccessControl OBJECT IDENTIFIER ::= { gbnPlatformOAM 3 }
    gbnPlatformOAMWatchDog        OBJECT IDENTIFIER ::= { gbnPlatformOAM 4 }
    gbnPlatformOAMMuser           OBJECT IDENTIFIER ::= { gbnPlatformOAM 5 }
    gbnPlatformOAMUpDownLoad      OBJECT IDENTIFIER ::= { gbnPlatformOAM 6 }
    gbnPlatformOAMSnmp            OBJECT IDENTIFIER ::= { gbnPlatformOAM 7 }
    gbnPlatformOAMSntpClient      OBJECT IDENTIFIER ::= { gbnPlatformOAM 8 }
    gbnPlatformOAMSyslog          OBJECT IDENTIFIER ::= { gbnPlatformOAM 9 }
    gbnPlatformOAMPortCar         OBJECT IDENTIFIER ::= { gbnPlatformOAM 10 }
    gbnPlatformOAMSsh             OBJECT IDENTIFIER ::= { gbnPlatformOAM 11 }
    gbnPlatformOAMMailalarm       OBJECT IDENTIFIER ::= { gbnPlatformOAM 12 }
    gbnPlatformOAMVctRun           OBJECT IDENTIFIER ::= { gbnPlatformOAM 13 }
    gbnPlatformOAMVctRunResult  OBJECT IDENTIFIER ::= { gbnPlatformOAM 14 }

------------------------------------------------------------------------------
--
--  gbnPlatformOAMSysIf - System IP Group
--
--  This group include manually config system ip-address,or using dhcp/bootp client,
--  and manageVLAN.
--
------------------------------------------------------------------------------
--
    sysIfMACAddr OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { '000000000000'H }
             The base (i.e., first) MAC address used by the gbn agent for its
             in-band ports."
        ::= { gbnPlatformOAMSysIf 1 }

    sysIfIpAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { '00000000'H }
             The IP Address for sw0 (swEND 0); only applies after reset -
             see 'gbnCommonMiscReset'."
        ::= { gbnPlatformOAMSysIf 2 }

    sysIfIPGateAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { '00000000'H }
             The default Gateway Address (i.e., next hop router) for sw0
             (swEND 0); only applies after reset - see 'gbnCommonMiscReset'."
        ::= { gbnPlatformOAMSysIf 3 }

    sysIfIPNetMask OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { 'ffffff00'H }
             The IP NetMask for sw0 (swEND 0); only applies after reset -
             see 'gbnCommonMiscReset'."
        ::= { gbnPlatformOAMSysIf 4 }

    sysIfIPStatus OBJECT-TYPE
        SYNTAX INTEGER {
               notModified(1),
               modified(2),
               restore(3),
               apply(4)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This object is used to synchronize the modification of the IP
            parameters used by the protocol stack based on the gbnCommonIP
            MIB objects.  This allows the user to change gbnCommonIPMACAddr,
            gbnCommonIPIpAddress, gbnCommonIPGateAddress, and
            gbnCommonIPNetMask, and then apply the changes to the unit
            using apply(4).  If gbnCommonIPStatus returns notModified(1),
            no modifications were made to any gbnCommonIP MIB objects.
            If gbnCommonIPStatus returns modified(2), one or more objects
            were changed, but have not been applied.  Both notModified(1)
            and modified(2) are read-only values; the agent returns a
            SNMP_BADVALUE for sets using these values.  Both restore(3) and
            apply(4) are valid SET values.  If one or more of the gbnCommonIP
            objects were modified, the user can restore the parameters to a
            mirror of the NVM values using restore(3)."
        ::= { gbnPlatformOAMSysIf 5 }

    sysIfBOOTPOnOff OBJECT-TYPE
        SYNTAX INTEGER {
               enable(1),
               disable(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { disable }
             Enable/Disable BOOTP operation for the gbn agent.
             When 'disable(2)', no BOOTPs are transmitted by the Application.
             When 'enable(1)', the Application sends BOOTP requests during
             system startup."
        ::= { gbnPlatformOAMSysIf 7 }

    sysIfDHCPOnOff OBJECT-TYPE
        SYNTAX INTEGER {
               enable(1),
               disable(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { disable }
             Enable/Disable DHCP operation for the gbn agent.
             When 'disable(2)', no DHCPs are transmitted by the Application.
             When enabled, the Application sends DHCP requests during
             system startup."
        ::= { gbnPlatformOAMSysIf 8 }

    sysIfManageVLANTbale OBJECT-TYPE
              SYNTAX  SEQUENCE OF SysIfManageVLANEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "ManageVlan table"
              ::= { gbnPlatformOAMSysIf 9 }

    sysIfManageVLANEntry OBJECT-TYPE
              SYNTAX  SysIfManageVLANEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "ManageVlan entry"
              INDEX   { sysIfManageVLANVid }
              ::= { sysIfManageVLANTbale 1 }

    SysIfManageVLANEntry ::=
              SEQUENCE {
                  sysIfManageVLANVid
                      INTEGER,
                  sysIfManageVLANRowStatus
                      RowStatus
                   }

    sysIfManageVLANVid OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "ManageVLAN-ID, as an index, the maximum number is 26."
              ::= { sysIfManageVLANEntry 1 }

    sysIfManageVLANRowStatus OBJECT-TYPE
              SYNTAX  RowStatus
              ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "ManageVLAN status"
              ::= { sysIfManageVLANEntry 2 }


------------------------------------------------------------------------------
--
--  gbnPlatformOAMSystem - System Group
--
------------------------------------------------------------------------------
    softwarePlate OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..100))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Software platform used by switches."
            ::= { gbnPlatformOAMSystem 1 }

    softwareVersion OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..100))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Software version, the format is V100R001B02D06P03SP3"
            ::= { gbnPlatformOAMSystem 2 }

    softwareCompiledTimeE OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..100))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Software Compiled time displayed in English, the format is Feburary 17 2003 15:47:00"
            ::= { gbnPlatformOAMSystem 3 }

    softwareCompiledTimeC OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..100))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Software Compiled time "
            ::= { gbnPlatformOAMSystem 4 }

    cpuDescription OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..100))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "System CPU description, the format is Mips 32334, 133MHz"
            ::= { gbnPlatformOAMSystem 5 }

    sdramDescription OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..100))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "System Memory description, the format is 32M"
            ::= { gbnPlatformOAMSystem 6 }

    flashDescription OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..100))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "System Flash description, the format is 4096k"
            ::= { gbnPlatformOAMSystem 7 }

    hardwareVersion OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..100))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Hardware version, the format is V3.0"
            ::= { gbnPlatformOAMSystem 8 }

    bootromVersion OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..100))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Bootrom version, the format is V2.0"
            ::= { gbnPlatformOAMSystem 9 }

    hostName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (1..32))
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "System host name"
            ::= { gbnPlatformOAMSystem 10 }

    cpuIdle OBJECT-TYPE
        SYNTAX       INTEGER (0..100)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The percentage of free CPU in the current system."
        ::= {  gbnPlatformOAMSystem 11 }

    memorySize OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The current system memory size, unit is byte."
        ::= {  gbnPlatformOAMSystem 12 }

    memoryIdle OBJECT-TYPE
        SYNTAX       Integer32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The current system free memory size, unit is byte."
        ::= {  gbnPlatformOAMSystem 13 }

    systemClock OBJECT IDENTIFIER ::= { gbnPlatformOAMSystem 14 }

    clockTime OBJECT-TYPE
        SYNTAX   Unsigned32
        MAX-ACCESS   read-write
        STATUS   current
        DESCRIPTION
           "The current calendar time in seconds. The based time is 1979/1/1.
            Year of the date must be the number between 2000 and 2099"
      ::= { systemClock 1 }

    timeZoneName OBJECT-TYPE
        SYNTAX   DisplayString (SIZE (1..32))
        MAX-ACCESS   read-write
        STATUS   current
        DESCRIPTION
           "the timezone name,1-32 letters."
       ::= { systemClock 2 }

    timeZoneOffset OBJECT-TYPE
        SYNTAX   Integer32 (0..86399)
        MAX-ACCESS   read-write
        STATUS   current
        DESCRIPTION
           "seconds between current timezone and GMT "
      ::= { systemClock 3 }

    offsetNegFlag OBJECT-TYPE
        SYNTAX   TruthValue
        MAX-ACCESS   read-write
        STATUS   current
        DESCRIPTION
           "earlier or latter than GMT,it is true when timeZoneOffset is negative"
      ::= { systemClock 4 }

    productName OBJECT-TYPE
        SYNTAX DisplayString (SIZE (1..255))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { 'WindRiver gbn Agent' }
             The product name associated with this agent.  This name is
             displayed on the console screens and Web pages."
        ::= { gbnPlatformOAMSystem 15 }

    systemReset OBJECT-TYPE
        SYNTAX INTEGER {
               noop(1),           -- no operation
               reset(2),          -- reset unit
               resetToDefaults(3) -- reset to factory defaults/reset unit
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Physically performs a hardware reset of the unit.
             Use with care.  A 'reset(2)' resets the unit, a
             'resetToDefaults(3)' resets the NVM configuration
             to factory defaults and then resets the unit, and 'noop(1)'
             does nothing.  A value of 'noop(1)' is always returned for a
             GET operation."
        ::= { gbnPlatformOAMSystem 16 }

    writeConfig OBJECT-TYPE
        SYNTAX INTEGER {
               noop(1),             -- no operation
               save(2),             -- save all configuration parameters to NVM
               saveInProgress(3),   -- read-only: NVM save in progress
               saveFailed(4)        -- read-only: NVM save failed
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "When set to 'save(2)', config file is saved to NVM (Nonvolatile
             Memory).  NVM save operations may be slow (e.g., erasing/writing
             Flash device).

             Consequently, all or many updates should be made before
             saving to NVM.  Note that the SNMP set to 'save(2)' returns
             immediately to the caller.  Gets on this object then return
             'saveInProgress(3)' until the save operation completes, at
             which time 'noop(1)' is returned if the save operation is
             succeeded, otherwise 'saveFailed(4)' is returned.  Consequently,
             a get operation always returns 'noop(1)', 'saveInProgress(3)'
             or 'saveFailed(4) depending on the current state and the result
             of the save operation.

             The agent returns 'badValue' for SNMPv1 or 'inconsistentValue'
             for SNMPv2c/v3 for a set to 'Save(2)' while the current get
             state is 'saveInProgress(3)'.

             Attempts to set this object to 'saveInProgress(3)' or 'saveFailed(4)'
             returns 'badValue' for SNMPv1 or 'wrongValue' for SNMPv2c/v3."
        ::= { gbnPlatformOAMSystem 17 }

------------------------------------------------------------------------------
--  define groups in GBN-COMMON-MIB
------------------------------------------------------------------------------
    saveNMInterfaceConfig   OBJECT IDENTIFIER ::= { gbnPlatformOAMSystem 18 }
------------------------------------------------------------------------------
--
--  saveNMInterfaceConfig - Save nm_interface configuration Group
--
------------------------------------------------------------------------------
    nmInterfaceId OBJECT-TYPE
        SYNTAX INTEGER(0..4094)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "interface id of vlan saved for nm_interface configuration."
        ::= { saveNMInterfaceConfig 1 }

    nmInterfaceIpAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "ip address saved for nm_interface configuration."
        ::= { saveNMInterfaceConfig 2 }

    nmInterfaceNetMask OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "mask saved for nm_interface configuration. "
        ::= { saveNMInterfaceConfig 3 }

    nmInterfaceGateAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "gateway address saved for nm_interface configuration. "
        ::= { saveNMInterfaceConfig 4 }

        writeNMInterfaceConifig OBJECT-TYPE
        SYNTAX INTEGER{
                   saveNmconfig(1)        -- save nm_interface configuration parameters to NVM
          }
          MAX-ACCESS read-write
          STATUS current
          DESCRIPTION
            "We save the nm_interface configuration through setting this Mib. When setting to
            'saveNmconfig(1)', nm_interface configuration is starting to be saved.
            At the same time the value of writeNMInterfaceConifigStatus Mib is set to 'saveInProgress(2)'.
            Then the value of nmInterfaceId, nmInterfaceIpAddress, nmInterfaceNetMask,
            nmInterfaceGateAddress will be read one by one.According to these value,
            the nm_interface configuration is to be saved.
            Untill the process was over the value of writeNMInterfaceConifigStatus Mib is
            changed to 'saveSuccess(1)'. And if the process was ended for exception the value
            of writeNMInterfaceConifigStatus Mib is set to a error code from
            'saveFailed(3)' to 'invalidIpOrMask(11)'. "
          ::= { saveNMInterfaceConfig 5 }

    writeNMInterfaceConifigStatus OBJECT-TYPE
        SYNTAX INTEGER{
               saveSuccess(1),             -- NVM save succeeded
               saveInProgress(2),          -- read-only: NVM save in progress
               saveFailed(3),              -- read-only: NVM save failed
               noInterface(4),             -- the vlan interface doesn't exist
               noIpAddress(5),             -- no ip for the vlan interface
               differentSubnet(6),         -- ip address and gateway address are not in the same subnet
               noInterfaceParameter(7),    -- need to input a vlan interface
               noIpAddressParameter(8),    -- need to input an ip address
               noMaskParameter(9),         -- need to input a mask
               noGatewayParameter(10),     -- need to input a gateway address
               invalidIpOrMask(11)         -- the ip address or mask is invalid
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Reserve the status of process in saving Nmconfig."
        ::= { saveNMInterfaceConfig 6 }

    prodSerialNo OBJECT-TYPE
        SYNTAX DisplayString (SIZE (1..31))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
           "Product Serial Number"
        ::= { gbnPlatformOAMSystem 19 }

    cpuBusyStatus OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "CPU busy status"
        ::= { gbnPlatformOAMSystem 20 }

    cpuBusyAlarmEnable OBJECT-TYPE
        SYNTAX TruthValue {
                  true     (1),
                  false    (2)
                          }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "the enable status of cpu busy alarm."
        DEFVAL {true}    
        ::= { gbnPlatformOAMSystem 21 }

    cpuBusyThreshold OBJECT-TYPE
        SYNTAX  INTEGER(0..100)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "CPU busy threshold."
        ::= { gbnPlatformOAMSystem 22 }

    cpuUnbusyThreshold OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "CPU unbusy threshold."
        ::= { gbnPlatformOAMSystem 23 }

------------------------------------------------------------------------------
--
--  cpuStatusTrap - CPU status TRAP
--
------------------------------------------------------------------------------
    cpuStatusTrap      OBJECT IDENTIFIER ::= { gbnPlatformOAMSystem 24 }

    cpuBusyTrap NOTIFICATION-TYPE
        STATUS  current
        DESCRIPTION
               "cpu busy trap."
        ::= { cpuStatusTrap 1 }

    cpuUnbusyTrap NOTIFICATION-TYPE
        STATUS  current
        DESCRIPTION
               "cpu unbusy trap."
        ::= { cpuStatusTrap 2 }

------------------------------------------------------------------------------
--
--  gbnPlatformOAMIpAccessControl - IP Access Control Group
--
------------------------------------------------------------------------------
    ipAccessControlTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IpAccessControlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "IP address access control table."
        ::= { gbnPlatformOAMIpAccessControl 1 }

    ipAccessControlEntry OBJECT-TYPE
        SYNTAX IpAccessControlEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "IP address access control entry."
        INDEX { controlIpAddress, controlIpMask, controlTeminal}
        ::= { ipAccessControlTable 1 }

    IpAccessControlEntry ::= SEQUENCE {
        controlIpAddress     IpAddress,
        controlIpMask         IpAddress,
        controlTeminal        INTEGER,
        controlStatus          INTEGER
      }

    controlIpAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The accessible ip address of the switch"
        ::= { ipAccessControlEntry 1 }

    controlIpMask OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The accessible ip address mask of the switch, wildcard supports mask and unmask"
        ::= { ipAccessControlEntry 2 }

    controlTeminal OBJECT-TYPE
        SYNTAX      INTEGER
         {
            snmp(1),
            web(2),
            telnet(3)
        }
       MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The client type connected to switch, snmp(1) means connecting switch by SNMP,
            web(2) means connecting switch by WEB, telnet(3) means connecting switch by telnet."
        ::= { ipAccessControlEntry 3 }

    controlStatus OBJECT-TYPE
        SYNTAX      INTEGER
        {
            active(1),
            destroy(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "IP address control status, active(1) means adding the ip address to list,
            destroy(2) means deleting the ip address from list"
        ::= { ipAccessControlEntry 4 }

------------------------------------------------------------------------------
--
--  gbnPlatformOAMWatchDog - Watch Dog Group
--
------------------------------------------------------------------------------
    softDogProxy OBJECT-TYPE
        SYNTAX      INTEGER{
                        enable(1),
                        disable(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Enable/disable the soft dog."
            ::= { gbnPlatformOAMWatchDog 1 }

------------------------------------------------------------------------------
--
--  gbnPlatformOAMMuser - Manage User Group
--
------------------------------------------------------------------------------
    musrTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MusrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A Table of usr_name and Password."
        ::= { gbnPlatformOAMMuser 1 }

    musrEntry OBJECT-TYPE
        SYNTAX MusrEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of usr parameters."
        INDEX { musrIndex }
        ::= { musrTable 1 }

    MusrEntry ::= SEQUENCE {
            musrIndex            Integer32,
            musrName             DisplayString,
            musrPassword         DisplayString,
            musrType             INTEGER,
            musrRowStatus        INTEGER
        }

    musrIndex OBJECT-TYPE
        SYNTAX Integer32 (1..8)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A simple index into 'gbnCommonUsrTable'."
        ::= { musrEntry 1 }

    musrName OBJECT-TYPE
        SYNTAX DisplayString (SIZE(1..32))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            " A simple usrname of gbnCommonUsrEntry."
        ::= { musrEntry 2 }

    musrPassword OBJECT-TYPE
        SYNTAX DisplayString (SIZE(1..16))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            " A simple password of gbnCommonUsrEntry."
        ::= { musrEntry 3 }

    musrType OBJECT-TYPE
        SYNTAX INTEGER {
                    normalUser(0),
                    superUser(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { NormalUser }
            A simple UsrType into 'gbnCommonUsrTable'.
            when 'NomalUser' configuration is limitted"
        ::= { musrEntry 4 }

    musrRowStatus OBJECT-TYPE
        SYNTAX INTEGER {
                    enable(1),
                    disable(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { disable }
            A simple RowStatus into 'gbnCommonUsrTable'.
            when 'disable' the user is deleted"
        ::= { musrEntry 5 }

    manageUserAuthenType OBJECT-TYPE
        SYNTAX INTEGER {
               locacl(1),
               radius(2),
               radiusFailLocal(3),
               tacacsplus(4),
               tacacsplusFailLocal(5)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Authentication method 1:local, 2:radius, 3:radius first and then local after failed,4:tacacsplus,5:tacacsplus first, and then local after failed."
        ::= { gbnPlatformOAMMuser 2 }

    manageUserAuthenRadiusName OBJECT-TYPE
        SYNTAX  DisplayString(SIZE (1..32))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "radius server name."
        ::= { gbnPlatformOAMMuser 3 }

    manageUserAuthChallegeType OBJECT-TYPE
        SYNTAX  INTEGER{
               chap(1),
               pap(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Radius authentication method1:CHAP, 2:PAP."
        ::= { gbnPlatformOAMMuser 4 }

    manageUserTacacsAuthor OBJECT-TYPE
        SYNTAX  TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "authorization afer authenticastion."
        ::= { gbnPlatformOAMMuser 5 }

    manageUserTacacsAccount OBJECT-TYPE
        SYNTAX  TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "accounting after authorization."
        ::= { gbnPlatformOAMMuser 6 }

------------------------------------------------------------------------------
--
--  gbnPlatformOAMUpDownLoad - Upload/Download Group
--
------------------------------------------------------------------------------
    loadTftpAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE:
             The IP Address for the TFTP server used for downloading
             and/or uploading files."
        ::= { gbnPlatformOAMUpDownLoad 1 }

    loadTftpFileName OBJECT-TYPE
        SYNTAX DisplayString (SIZE (1..128))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE:
             The TFTP file path and name."
        ::= { gbnPlatformOAMUpDownLoad 2 }

    loadType OBJECT-TYPE
        SYNTAX INTEGER {
               application(1),
               normalBootRom(2),
               configuration(3),
               bootCode(4),
               alarm(5),
               syslog(6),
               wholeBootRom(7)

        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE: { application }
             The type of file to download or upload upon an
             'gbnCommonLoadExecute'.
             application:program file of the switch
             configuration:configuration file,should be uploaded before
                           you download it.
             miccode:microcode is the program file of vdsl chip.
             removed during the boot Flash write operation, the agent
             cannot be recovered)."
        ::= { gbnPlatformOAMUpDownLoad 3 }

    loadExecute OBJECT-TYPE
        SYNTAX INTEGER {
               noop(1),         -- no operation
               downloadTftp(2),     -- Application, Boot, or Configuration
               uploadTftp(3),        -- Configuration only
               downloadFtp(4),     -- Application, Boot, or Configuration
               uploadFtp(5),       -- Configuration only
               downloadXmodem(6)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Execute file download or upload procedure.  A SET of this
             object starts the load procedure.  Note that the Application
             and Boot images can only be downloaded.  The NVM Configuration
             file can be uploaded and downloaded.  A GET of this object
             will return the status of the executed operation.
             Use 'gbnCommonLoadExecuteStatus' to determine the status of
             the executed load."
        ::= { gbnPlatformOAMUpDownLoad 4 }

    loadExecuteStatus OBJECT-TYPE
        SYNTAX INTEGER {
               notStarted(1),       -- download has not yet started
               inProgressTftp(2),       -- download has not yet finished
               successTftp(3),          -- download has finished successfully
               errorConnectionTftp(4),  -- download cannot connect
               errorFilenameTftp(5),    -- download has bad image path/filename
               errorFaultTftp(6),        -- download has fault condition on device
               inProgressFtp(7),       -- download has not yet finished
               successFtp(8),          -- download has finished successfully
               errorConnectionFtp(9),  -- download cannot connect
               errorFilenameFtp(10),    -- download has bad image path/filename
               errorFaultFtp(11),        -- download has fault condition on device

               inProgressXmodem(12),       -- download has not yet finished
               successXmodem(13),          -- download has finished successfully
               errorConnectionXmodem(14),  -- download cannot connect
               errorFilenameXmodem(15),    -- download has bad image path/filename
               errorFaultXmodem(16)        -- download has fault condition on device

        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Provides status on the execute file load progress."
        ::= { gbnPlatformOAMUpDownLoad 5 }

    loadFtpAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE:
             The IP Address for the FTP server used for downloading
             and/or uploading files."
        ::= { gbnPlatformOAMUpDownLoad 6 }

    loadFtpFileName OBJECT-TYPE
        SYNTAX DisplayString (SIZE (1..128))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE:
             The FTP file path and name."
        ::= { gbnPlatformOAMUpDownLoad 7 }

    loadFtpUserName OBJECT-TYPE
        SYNTAX DisplayString (SIZE (1..64))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE:
             The FTP user name."
        ::= { gbnPlatformOAMUpDownLoad 8 }

    loadFtpUserPassword OBJECT-TYPE
        SYNTAX DisplayString (SIZE (1..64))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DURABLE:
             The FTP user password."
        ::= { gbnPlatformOAMUpDownLoad 9 }

------------------------------------------------------------------------------
--
--  gbnPlatformOAMSnmp - Snmp Group
--
------------------------------------------------------------------------------
    snmpCommunityToViewTable OBJECT-TYPE
        SYNTAX SEQUENCE OF SnmpCommunityToViewEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table of SNMPv1/v2c community string to view name mappings."
        ::= { gbnPlatformOAMSnmp 1 }

    snmpCommunityToViewEntry OBJECT-TYPE
        SYNTAX SnmpCommunityToViewEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of community-to-view parameters."
        INDEX { snmpComm2ViewIndex }
        ::= { snmpCommunityToViewTable 1 }

    SnmpCommunityToViewEntry ::= SEQUENCE {
        snmpComm2ViewIndex         Integer32,
        snmpComm2ViewCommName      DisplayString,
        snmpComm2ViewViewName      SnmpAdminString,
        snmpComm2ViewPermission    INTEGER,
        snmpComm2ViewRowStatus     RowStatus
    }

    snmpComm2ViewIndex  OBJECT-TYPE
        SYNTAX Integer32 (1..8)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A simple index into 'gbnCommonCommunityToViewTable'."
        ::= { snmpCommunityToViewEntry 1 }

    snmpComm2ViewCommName  OBJECT-TYPE
        SYNTAX DisplayString (SIZE(1..20))
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "DURABLE: { 'public','':all }
             The SNMPv1/v2c community name string.  Duplicate community
             names are not allowed in this table.  Note that a null string
             is not a valid community name (i.e., a null string forces
             'gbnCommonComm2ViewRowStatus' to 'notReady(3)')."
        ::= { snmpCommunityToViewEntry 2 }

    snmpComm2ViewViewName  OBJECT-TYPE
        SYNTAX SnmpAdminString (SIZE(1..32))
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "DURABLE: { 'internet':all }
             At runtime (i.e., not when this object is SET), this view name
             is compared to the 'vacmViewTreeFamilyViewName' in the
             'vacmViewTreeFamilyTable' (see RFC2575).  If a match is
             found and the varbind(s) specify valid object type and instance,
             the 'gbnCommonComm2ViewPermission' privilege is permitted.

             Note that a null string is not a valid view name value.
             Also note that the value of this object does not have to match
             an existing entry in the 'vacmViewTreeFamilyTable' (if no match,
             no access is allowed).

             Note that the factory default value for this object is 'internet',
             which allows access to the subtree under '1.3.6.1'."
        ::= { snmpCommunityToViewEntry 3 }

    snmpComm2ViewPermission OBJECT-TYPE
        SYNTAX INTEGER {
               readOnly(1),
               readWrite(2)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "DURABLE: { readWrite:all }
             This object specifies the type of access allowed. 'readOnly(1)'
             allows GET operations (i.e., GET, GET-NEXT, GET-BULK) and
             'readWrite(2)' allows both GET and SET operations."
        ::= { snmpCommunityToViewEntry 4 }

    snmpComm2ViewRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "DURABLE:
             This object indicates the status of this entry.  A row in this
             table can be created using the 'createAndGo(4)' (i.e., all
             parameters must be valid - supplied in a single SNMP PDU or have
             default values) or the 'createAndWait(5)' action states.  Until
             all parameters are valid for a conceptual row, this object is
             'notReady(3)'.  All parameters must be valid before this object
             can be set to 'active(1)'.

             Any object in a conceptual row can be modified independent of the
             value of this object (e.g., can be changed while 'active(1)')."
        ::= { snmpCommunityToViewEntry 5 }

    snmpNotifyTypeTable OBJECT-TYPE
        SYNTAX SEQUENCE OF SnmpNotifyTypeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table of SNMPv1/v2c notify type ."
        ::= { gbnPlatformOAMSnmp 2 }

    snmpNotifyTypeEntry OBJECT-TYPE
        SYNTAX SnmpNotifyTypeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of notify type parameters."
        INDEX { snmpPrivateNotifyType }
        ::= { snmpNotifyTypeTable 1 }

    SnmpNotifyTypeEntry ::=
    SEQUENCE {
        snmpPrivateNotifyType      DisplayString,
        snmpNotifyTypeStatus       INTEGER
        }

    snmpPrivateNotifyType OBJECT-TYPE
        SYNTAX DisplayString (SIZE(1..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "notify type."
        ::= { snmpNotifyTypeEntry 1 }

     snmpNotifyTypeStatus  OBJECT-TYPE
        SYNTAX INTEGER
        {
            enable(1),
            disable(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "It signifies if the traps with corresponding notify-type can be sent."
        ::= { snmpNotifyTypeEntry 2 }

      gbnPlatformOAMSnmpNotifyType       OBJECT IDENTIFIER ::= { gbnPlatformOAMSnmp 3 }

      snmpNotifyTypeSaveConfiguration NOTIFICATION-TYPE
        STATUS  current
        DESCRIPTION
            "A private type for traps or informs. It signifies that the SNMPv2 entity
            have just saved the configuration."
        ::= { gbnPlatformOAMSnmpNotifyType 1 }

     snmpTrapSource OBJECT-TYPE
        SYNTAX INTEGER (0..4094)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The id of vlan or supervlan which interface traps or informs are
             sent from belongs to.  vlan id: 0-4094; supervlan id: 0-11."
        ::= { gbnPlatformOAMSnmp 4 }

    snmpRemoteEngineTable OBJECT-TYPE
        SYNTAX SEQUENCE OF SnmpRemoteEngineEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table of remote engine ."
        ::= { gbnPlatformOAMSnmp 5 }

    snmpRemoteEngineEntry OBJECT-TYPE
        SYNTAX SnmpRemoteEngineEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of remote engine."
        INDEX { snmpRemoteEngineID }
        ::= { snmpRemoteEngineTable 1 }

    SnmpRemoteEngineEntry ::=
    SEQUENCE {
        snmpRemoteHostTAddr      OCTET STRING,
        snmpRemoteEngineID       DisplayString,
        snmpDeleteRemoteEngineTableRow  INTEGER
        }

    snmpRemoteEngineID  OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The remote engine's id.Note that the engine id can
            only appear once in the table."
        ::= { snmpRemoteEngineEntry 1 }

    snmpRemoteHostTAddr OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(6))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The ip and port number of remote host.Note that the value including ip and
            port number can only appear once in the table."
        ::= { snmpRemoteEngineEntry 2 }

    snmpDeleteRemoteEngineTableRow OBJECT-TYPE
        SYNTAX INTEGER {
               deleteRow(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "You can delete a row by setting the value to 'deleteRow(1)'."
        ::= { snmpRemoteEngineEntry 3 }

     snmpTrapSourceType OBJECT-TYPE
        SYNTAX INTEGER (1..2)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The type of the interface which traps or informs are sent from.
             1: vlan interface; 2: supervlan interface."
        ::= { gbnPlatformOAMSnmp 6 }

------------------------------------------------------------------------------
--
--  gbnPlatformOAMPortCar - Port Car Group
--
------------------------------------------------------------------------------
    portCarTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PortCarEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A Table of port CAR."
        ::= { gbnPlatformOAMPortCar 1 }

    portCarEntry OBJECT-TYPE
        SYNTAX PortCarEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of port CAR."
        INDEX { portCarPort }
        ::= { portCarTable 1 }

    PortCarEntry ::= SEQUENCE {
            portCarPort            Integer32,
            portCarEnable          TruthValue,
            portDiscardBpdu        Integer32,
            portCarRateBpdu      Integer32
        }

    portCarPort OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The port number."
        ::= { portCarEntry 1 }

    portCarEnable OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The enable status of the port CAR"
        ::= { portCarEntry 2 }

    portDiscardBpdu OBJECT-TYPE
        SYNTAX Integer32 (0..1)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The enable status of the port discard BPDU"
        ::= { portCarEntry 3 }

    portCarRateBpdu OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The port CAR max packet receive rate."
        ::= { portCarEntry 4 }

    portCarGlobalEnable OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The global enable status of port CAR."
        ::= { gbnPlatformOAMPortCar 2 }

    portCarOpenTime OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The closed port Re-open time."
        ::= { gbnPlatformOAMPortCar 3 }

    discardBpdu OBJECT-TYPE
        SYNTAX  Integer32 (0..1)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The global enable status of port discard BPDU."
        ::= { gbnPlatformOAMPortCar 4 }

    portCarRate OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The port CAR max packet receive rate."
        ::= { gbnPlatformOAMPortCar 5 }

------------------------------------------------------------------------------
--
--  gbnPlatformOAMVctRun - Vct Run Group
--
------------------------------------------------------------------------------
    vctRunTable OBJECT-TYPE
        SYNTAX SEQUENCE OF VctRunEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A Table of VCT run."
        ::= { gbnPlatformOAMVctRun 1 }

    vctRunEntry OBJECT-TYPE
        SYNTAX VctRunEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of VCT run."
        INDEX { vctRunPort }
        ::= { vctRunTable 1 }

    VctRunEntry ::= SEQUENCE {
            vctRunPort            Integer32,
            vctRunEnable          TruthValue,
            vctAutoRunEnable          TruthValue
        }

    vctRunPort OBJECT-TYPE
        SYNTAX Integer32 (1..24)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The port number."
        ::= { vctRunEntry 1 }

    vctRunEnable OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The enable status of the VCT run"
        ::= { vctRunEntry 2 }

    vctAutoRunEnable OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The enable status of the VCT auto run"
        ::= { vctRunEntry 3 }

    vctAutoRunGlobalEnable OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The global enable status of VCT auto run."
        ::= { gbnPlatformOAMVctRun 2 }

------------------------------------------------------------------------------
--
--  gbnPlatformOAMVctRunResult - Vct Run Result Group
--  MIBֻ2926V֧
--
------------------------------------------------------------------------------
    vctRunResultTable OBJECT-TYPE
        SYNTAX SEQUENCE OF VctRunResultEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A Table of VCT run result."
        ::= { gbnPlatformOAMVctRunResult 1 }

    vctRunResultEntry OBJECT-TYPE
        SYNTAX VctRunResultEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of VCT run result."
        INDEX { vctRunResultPort, vctRunResultTxRxPairNo }
        ::= { vctRunResultTable 1 }

    VctRunResultEntry ::= SEQUENCE {
            vctRunResultPort            Integer32,
            vctRunResultTxRxPairNo VctRunResultTxRxPairNoType,
            vctRunResultStatus         VctRunResultStatusType,
            vctRunResultErrorLocation  Integer32
        }

    vctRunResultPort OBJECT-TYPE
        SYNTAX Integer32 (1..24)
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The port number."
        ::= { vctRunResultEntry 1 }

    vctRunResultTxRxPairNo OBJECT-TYPE
        SYNTAX VctRunResultTxRxPairNoType
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The tx rx pair NO."
        ::= { vctRunResultEntry 2 }

    vctRunResultStatus OBJECT-TYPE
        SYNTAX VctRunResultStatusType
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The status of the VCT run result"
        ::= { vctRunResultEntry 3 }

    vctRunResultErrorLocation OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The error location of the VCT run result"
        ::= { vctRunResultEntry 4 }

--
-- END of GBN-COMMON-MIB
--

END
