NAS-DISK-MIB DEFINITIONS ::= BEGIN

IMPORTS
    enterprises,
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32                        FROM SNMPv2-SMI

    DisplayString                    FROM SNMPv2-TC

    MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF
;

nasDisk MODULE-IDENTITY
    LAST-UPDATED "201610060000Z"
    ORGANIZATION "Please contact the vendor"
    CONTACT-INFO
         "Please contact the vendor"
    DESCRIPTION
        "Characteristics of the disk information"
    REVISION     "201610060000Z"
    DESCRIPTION
        "First draft"
    ::= { nas 2 }

nasstorage    OBJECT IDENTIFIER ::= { enterprises 38243 }
nas               OBJECT IDENTIFIER ::= { nasstorage 1 }

diskTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DiskEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION
        "nas disk table
        NOTE:
            1. The module 'nasDisk' will query some disk information by S.M.A.R.T(Self-Monitoring, Analysis and Reporting Technology), and it will resume the disk under 'spin down' status.  
            2. In above case, it also needs more response time and sometimes will cause the time-out of disk information requests in your SNMP MIB browse program.
        "
    ::= { nasDisk 1 }

diskEntry  OBJECT-TYPE
    SYNTAX      DiskEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION
        "For all disk entry"
    INDEX   { diskIndex }
    ::= { diskTable 1 }

DiskEntry ::= SEQUENCE {
    diskIndex    Integer32,
    diskTrayNum        Integer32,
    diskID        DisplayString,
    diskModel        DisplayString,
    diskCapacity        DisplayString,
    diskStatus    Integer32,
    diskSMARTHealthCheck        Integer32,
    diskSMARTAttr5    Integer32,
    diskSMARTAttr9    Integer32,
    diskSMARTAttr184    Integer32,
    diskSMARTAttr194    Integer32,
    diskSMARTAttr197    Integer32
}

diskIndex OBJECT-TYPE
    SYNTAX      Integer32(1..100)
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION
        "The index of every connected disk
        NOTE: 
            1. Used as the index of every entry and NOT responsed as OID.
        "
    ::= { diskEntry 1 }

diskTrayNum OBJECT-TYPE
    SYNTAX      Integer32(0..2147483647)
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The tray num of every connected disk"
    ::= { diskEntry 2 }

diskID OBJECT-TYPE
    SYNTAX    DisplayString
    MAX-ACCESS  read-only
    STATUS    current
    DESCRIPTION
        "The device node of every connected disk"
    ::= { diskEntry 3 }

diskModel OBJECT-TYPE
    SYNTAX    DisplayString
    MAX-ACCESS  read-only
    STATUS     current
    DESCRIPTION
        "The model name of every connected disk"
    ::= { diskEntry 4 }

diskCapacity OBJECT-TYPE
    SYNTAX    DisplayString
    MAX-ACCESS  read-only
    STATUS     current
    DESCRIPTION
        "The capacity (KB) of every connected disk"
    ::= { diskEntry 5 }

diskStatus OBJECT-TYPE
    SYNTAX      Integer32(0..2147483647)
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The status of every connected disk
            0 = Clean (The disk is NOT partitioned)
            1 = Initialized (The disk has the standard partitions)
            2 = Other (The disk has the other partitions)
            3 = Error (Unknown Error)
        "
    ::= { diskEntry 6 }

diskSMARTHealthCheck OBJECT-TYPE
    SYNTAX     Integer32(0..2147483647)
    MAX-ACCESS  read-only
    STATUS    current
    DESCRIPTION
        "The S.M.A.R.T health check result of every connected disk
            0 = Normal
            1 = Failed
        "
    ::= { diskEntry 7 }

diskSMARTAttr5 OBJECT-TYPE
    SYNTAX      Integer32(0..2147483647)
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The value of S.M.A.R.T attribute id 5 (Reallocated_Sector_Ct) of every connected disk
        NOTE:
            1. Please pay attention when this value > 0
        "
    ::= { diskEntry 8 }

diskSMARTAttr9 OBJECT-TYPE
    SYNTAX      Integer32(0..2147483647)
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The value of S.M.A.R.T attribute id 9 (Power_On_Hours) of every connected disk"
    ::= { diskEntry 9 }

diskSMARTAttr184 OBJECT-TYPE
    SYNTAX      Integer32(0..2147483647)
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The value of S.M.A.R.T attribute id 184 (End-to-End_Error) of every connected disk
        NOTE:
            1. Please pay attention when this value > 0
            2. Some disk may NOT has this attribute, so return -1 for this case.
        "
    ::= { diskEntry 10 }

diskSMARTAttr194 OBJECT-TYPE
    SYNTAX      Integer32(0..2147483647)
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The value of S.M.A.R.T attribute id 194 (Temperature_Celsius) of every connected disk"
    ::= { diskEntry 11 }

diskSMARTAttr197 OBJECT-TYPE
    SYNTAX      Integer32(0..2147483647)
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The value of S.M.A.R.T attribute id 197 (Current_Pending_Sector) of every connected disk
        NOTE:
            1. Please pay attention when this value > 0
        "
    ::= { diskEntry 12 }


diskConformance OBJECT IDENTIFIER ::= { nasDisk 2 }

diskCompliances OBJECT IDENTIFIER ::= { diskConformance 1 }
diskGroups     OBJECT IDENTIFIER ::= { diskConformance 2 }

diskCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for nasDisk entities which implement the NAS DISK MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { diskGroup }

    ::= { diskCompliances 1 }

diskGroup OBJECT-GROUP
    OBJECTS { diskTrayNum,
              diskID,
              diskModel,
              diskCapacity,
              diskStatus,
              diskSMARTHealthCheck,
              diskSMARTAttr5,
              diskSMARTAttr9,
              diskSMARTAttr184,
              diskSMARTAttr194,
              diskSMARTAttr197
    }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing basic information of a nas disk entity."
    ::= { diskGroups 1 }

END
