--
-- Lustre Filesystem MIB Module
--

LUSTRE-MIB DEFINITIONS ::= BEGIN
    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, enterprises, Integer32,
        Unsigned32, Counter64
            FROM SNMPv2-SMI
        DisplayString, TruthValue, RowStatus
            FROM SNMPv2-TC;

lustreMIB MODULE-IDENTITY
    LAST-UPDATED "200505150100Z"
    ORGANIZATION "Sun Microsystems, Inc."
    CONTACT-INFO
    "         http://www.lustre.org/

    Postal: Sun Microsystems, Inc.,
	    4150 Network Circle, Santa Clara,
            CA 95054 USA"

    DESCRIPTION
        "Management information for the Lustre parallel filesystem."

    ::= { clusterFileSystemsSNMP 1 }

--============================================================================
--
-- Administrative assignments
--
--============================================================================

clusterFileSystems     OBJECT IDENTIFIER ::= { enterprises 13140 }
clusterFileSystemsSNMP OBJECT IDENTIFIER ::= { clusterFileSystems 2 }

lustreMgmtTraps        OBJECT IDENTIFIER ::= { lustreMIB 0 }
systemInformation      OBJECT IDENTIFIER ::= { lustreMIB 1 }
objectStorageTargets   OBJECT IDENTIFIER ::= { lustreMIB 2 }
objectStorageClients   OBJECT IDENTIFIER ::= { lustreMIB 3 }
metaDataServers        OBJECT IDENTIFIER ::= { lustreMIB 4 }
metaDataClients        OBJECT IDENTIFIER ::= { lustreMIB 5 }
lustreClients          OBJECT IDENTIFIER ::= { lustreMIB 6 }
logicalObjectVolume    OBJECT IDENTIFIER ::= { lustreMIB 7 }
lustreLDLM             OBJECT IDENTIFIER ::= { lustreMIB 8 }
lnetInformation        OBJECT IDENTIFIER ::= { lustreMIB 9 }


--============================================================================
--
-- System Information
--
--============================================================================

sysVersion OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre version string."
    ::= { systemInformation 1 }
    
sysKernelVersion OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre kernel version string."
    ::= { systemInformation 2 }
    
sysHealthCheck OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre kernel health check string. Contains 'healthy' or
         'NOT healthy' plus descriptive information on the failure"
    ::= { systemInformation 3 }    
    
sysStatus OBJECT-TYPE
    SYNTAX INTEGER {
        -- The following two values are states:
        -- they may be read, or written
        online(1),
        offline(2),
        -- The following two values are states:
        -- they may be read, but not written
        onlinePending(3),
        offlinePending(4),
        -- The following value is an action:
        -- this value may be written, but never read.
        restart(5)
    }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The sysStatus variable is used to manage the overall state of the
        Lustre components on a system.  It has five defined values:

            - 'online', which indicates that all of the configured
            Lustre components have been successfully activated;

            - 'offline', which indicates that all of the Lustre
            components have been successfully deactivated;

            - 'onlinePending', which indicates one or more failures
            occurred in transitioning to the 'online' state;

            - 'offlinePending', which indicates one or more failures
            occurred in transitioning to the 'offline' state;

            - 'restart', which is supplied by a management station
            wishing to transition first to the 'offline' state, and
            then to the 'online' state.

        Only three of these five values may be specified in a
        management protocol set operation: 'online', 'offline',
        'restart'.  Only four of the five values will be returned in
        response to a management protocol retrieval operation:
        'online', 'offline', 'onlinePending', 'offlinePending'."

    ::= { systemInformation 4 }    

--============================================================================
--
-- Object Storage Targets
--
--============================================================================

osdNumber OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
	"The number of Object Storage Devices on an OST system."
    ::= { objectStorageTargets 1 }

osdTable OBJECT-TYPE
    SYNTAX SEQUENCE OF OsdEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
	"A table listing the Object Storage Devices available on an OST system.
         The number of entries in this table is available in osdNumber."
    ::= { objectStorageTargets 2 }

osdEntry OBJECT-TYPE
    SYNTAX OsdEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
	"Table entry with information an Object Storage Device on an OST
         system."
    INDEX { osdIndex }
    ::= { osdTable 1 }

OsdEntry ::=
    SEQUENCE {
        osdIndex         Unsigned32,
        osdUUID          DisplayString,
        osdCommonName    DisplayString,
        osdCapacity      Counter64,
        osdFreeCapacity  Counter64,
        osdObjects       Counter64,
        osdFreeObjects   Counter64
    }

osdIndex OBJECT-TYPE
    SYNTAX Unsigned32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
	"Index into the table of Object Storage Devices on an OST system."
    ::= { osdEntry 1 }

osdUUID OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre Universally Unique Identifier (UUID) for the Object
         Storage Device."
    ::= { osdEntry 2 }

osdCommonName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Its the instance name given by Lustre proc subsystem for
         each of the object storage device."
    ::= { osdEntry 3 }

osdCapacity OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The capacity of the Object Storage Device in bytes."
    ::= { osdEntry 4 }

osdFreeCapacity OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The remaining free capacity of the Object Storage Device in bytes."
    ::= { osdEntry 5 }

osdObjects OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The maximum number of objects that may be stored in an Object
         Storage Device."
    ::= { osdEntry 6 }

osdFreeObjects OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of unused objects on an Object Storage Device."
    ::= { osdEntry 7 }

--============================================================================
--
-- Object Storage Client
--
--============================================================================

oscNumber OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of Object Storage Clients."
    ::= { objectStorageClients 1 }

oscTable OBJECT-TYPE
    SYNTAX SEQUENCE OF OscEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table listing the Object Storage Clients available.
         The number of entries in this table is available in oscNumber."
    ::= { objectStorageClients 2 }

oscEntry OBJECT-TYPE
    SYNTAX OscEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table entry with information an Object Storage Clients."
    INDEX { oscIndex }
    ::= { oscTable 1 }

OscEntry ::=
    SEQUENCE {
        oscIndex         Unsigned32,
        oscUUID          DisplayString,
        oscCommonName    DisplayString,
        oscOSTServerUUID DisplayString,
        oscCapacity      Counter64,
        oscFreeCapacity  Counter64,
        oscObjects       Counter64,
        oscFreeObjects   Counter64
    }

oscIndex OBJECT-TYPE
    SYNTAX Unsigned32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Index into the table of Object Storage Clients."
    ::= { oscEntry 1 }

oscUUID OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre Universally Unique Identifier (UUID) for the Object
         Storage Device."
    ::= { oscEntry 2 }

oscCommonName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Its the instance name given by Lustre proc subsystem for
         each of the object storage device."
    ::= { oscEntry 3 }
    
oscOSTServerUUID OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre Object Storage Target UUID accessed by Object Storage Client.
         This string also contains a state name, and possibly a DEACTIVATED flag." 
    ::= { oscEntry 4 }       

oscCapacity OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The capacity of the Object Storage Client in bytes."
    ::= { oscEntry 5 }

oscFreeCapacity OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The remaining free capacity of the Object Storage Client in bytes."
    ::= { oscEntry 6 }

oscObjects OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The maximum number of objects that may be stored in an Object
         Storage Client."
    ::= { oscEntry 7 }

oscFreeObjects OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of unused objects on an Object Storage Client."
    ::= { oscEntry 8 }

--============================================================================
--
-- Metadata Servers
--
--============================================================================

mddNumber OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of Metadata Devices on a MDS system."
    ::= { metaDataServers 1 }

mddTable OBJECT-TYPE
    SYNTAX SEQUENCE OF MddEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table listing the Meta Data Devices available on a MDS system.
         The number of entries in this table is available in mddNumber."
    ::= { metaDataServers 2 }

mddEntry OBJECT-TYPE
    SYNTAX MddEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table entry with information an Meta Data Device on a MDS system."
    INDEX { mddIndex }
    ::= { mddTable 1 }

MddEntry ::=
    SEQUENCE {
        mddIndex        Unsigned32,
        mddUUID         DisplayString,
        mddCommonName   DisplayString,
        mddCapacity     Counter64,
        mddFreeCapacity Counter64,
        mddFiles        Counter64,
        mddFreeFiles    Counter64
    }

mddIndex OBJECT-TYPE
    SYNTAX Unsigned32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Index into the table of Meta Data Devices on a MDS system."
    ::= { mddEntry 1 }

mddUUID OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre Universal Unique Identifier (UUID) for the Meta Data
         Device."
    ::= { mddEntry 2 }

mddCommonName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The common name of the Meta Data Device.
         Its the instance name given by Lustre proc subsystem for
         each of the Meta Data Device."
    ::= { mddEntry 3 }

mddCapacity OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The capacity of the Meta Data Device in bytes."
    ::= { mddEntry 4 }

mddFreeCapacity OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The remaining free capacity of the Meta Data Device in bytes."
    ::= { mddEntry 5 }

mddFiles OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The maximum number of files that may be stored on a Meta Data
         Device."
    ::= { mddEntry 6 }

mddFreeFiles OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of unused files on a Meta Data Device."
    ::= { mddEntry 7 }
  
mdsNbSampledReq OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of sampled requests ."
    ::= { metaDataServers 3 }
    
--============================================================================
--
-- Metadata Clients
--
--============================================================================

mdcNumber OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of Metadata Clients."
    ::= { metaDataClients 1 }

mdcTable OBJECT-TYPE
    SYNTAX SEQUENCE OF MdcEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table listing the Meta Data Clients.
         The number of entries in this table is available in mdcNumber."
    ::= { metaDataClients 2 }

mdcEntry OBJECT-TYPE
    SYNTAX MdcEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table entry with information an Meta Data Client."
    INDEX { mdcIndex }
    ::= { mdcTable 1 }

MdcEntry ::=
    SEQUENCE {
        mdcIndex            Unsigned32,
        mdcUUID             DisplayString,
        mdcCommonName       DisplayString,
        mdcMDSServerUUID    DisplayString,
        mdcCapacity         Counter64,
        mdcFreeCapacity     Counter64,
        mdcFiles            Counter64,
        mdcFreeFiles        Counter64
    }

mdcIndex OBJECT-TYPE
    SYNTAX Unsigned32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Index into the table of Meta Data Client."
    ::= { mdcEntry 1 }

mdcUUID OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre Universal Unique Identifier (UUID) for the Meta Data Client."
    ::= { mdcEntry 2 }

mdcCommonName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The common name of the Meta Data Client.
         Its the instance name given by Lustre proc subsystem for
         each of the Meta Data Client."
    ::= { mdcEntry 3 }
    
mdcMDSServerUUID OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre Meta data server UUID accessed by Metadata Client.
         This string also contains a state name, and possibly a DEACTIVATED flag." 
    ::= { mdcEntry 4 }

mdcCapacity OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The capacity of the Meta Data Client in bytes."
    ::= { mdcEntry 5 }

mdcFreeCapacity OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The remaining free capacity of the Meta Data Client in bytes."
    ::= { mdcEntry 6 }

mdcFiles OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The maximum number of files that may be stored on a Meta Data Client."
    ::= { mdcEntry 7 }

mdcFreeFiles OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of unused files on a Meta Data Client."
    ::= { mdcEntry 8 }
   
--============================================================================
--
-- Lustre Clients
--
--============================================================================

cliMountNumber OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
       "The number of Lustre mounts that are currently on a client system." 
    ::= { lustreClients 1 }

cliMountTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CliMountEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table listing the Lustre file system mount points and their
         configurations. The current number of entries is specified by
         cliMountNumber."
    ::= { lustreClients 2 }

cliMountEntry OBJECT-TYPE
    SYNTAX CliMountEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Information about a single Lustre file system mount point."
    INDEX { cliIndex }
    ::= { cliMountTable 1 }

CliMountEntry ::=
    SEQUENCE {
        cliIndex           Unsigned32,
        cliUUID            DisplayString,
        cliCommonName      DisplayString,
        cliMDSUUID         DisplayString,
        cliMDSCommonName   DisplayString,
        cliUsesLOV         TruthValue,
        cliLOVUUID         DisplayString,
        cliLOVCommonName   DisplayString
    }

cliIndex OBJECT-TYPE
    SYNTAX Unsigned32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Index into the table of Lustre file system mount points on a
         client system."
    ::= { cliMountEntry 1 }

cliUUID OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre Universal Unique Identifier (UUID) for a Lustre
         file system mount point."
    ::= { cliMountEntry 2 }

cliCommonName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Its the instance name given by Lustre proc subsystem for
         each of the Lustre client mount point."
    ::= { cliMountEntry 3 }

cliMDCUUID OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The UUID of the Metadata Client to which a Lustre file system
         mount point is connected."
    ::= { cliMountEntry 4 }

cliMDCCommonName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This is the name of the Metadata Client to which a Lustre client
         file system mount point is connected."
    ::= { cliMountEntry 5 }

cliUsesLOV OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This variable is true(1) if a Lustre file system mount point
        is using a Logical Object volume (LOV), and false(2) otherwise."
    ::= { cliMountEntry 6 }
    
cliLOVUUID OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The UUID of the LOV to which a Lustre file system
         mount point is connected."
    ::= { cliMountEntry 7 }

cliLOVCommonName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "This is the name of the LOV to which a Lustre client
         file system mount point is connected."
    ::= { cliMountEntry 8 }    

  
--============================================================================
--
-- Logical Object Volume
--
--============================================================================

lovNumber OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of LOV instances."
    ::= { logicalObjectVolume 1 }

lovTable OBJECT-TYPE
    SYNTAX SEQUENCE OF LovEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table listing the statistics for LOV instances available on
         a Lustre configured node."
    ::= { logicalObjectVolume 2 }

lovEntry OBJECT-TYPE
    SYNTAX LovEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table entry with information on LOV stats for all LOV instances
         available on a Lustre configured node."
    INDEX { lovIndex }
    ::= { lovTable 1 }

LovEntry ::=
    SEQUENCE {
        lovIndex         Unsigned32,
        lovUUID          DisplayString,
        lovCommonName    DisplayString,        
        lovNumOBD        Unsigned32,
        lovNumActiveOBD  Unsigned32,
        lovCapacity      Counter64,
        lovFreeCapacity  Counter64,
        lovFiles         Counter64,
        lovFreeFiles     Counter64,
        lovStripeCount   Unsigned32,
        lovStripeOffset  Unsigned32,
        lovStripeSize    Unsigned32,
        lovStripeType    Unsigned32
    }

lovIndex OBJECT-TYPE
    SYNTAX Unsigned32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Index into the table of LOV stats for LOV instances available
         on a Lustre configured system."
    ::= { lovEntry 1 }
    
lovUUID OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The Lustre Universally Unique Identifier (UUID) for the LOV."
    ::= { lovEntry 2 }

lovCommonName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Its the instance name given by Lustre proc subsystem for
         each of the LOVs."
    ::= { lovEntry 3 }    
    
lovNumOBD OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of OBDs."
    ::= { lovEntry 4 }
    

lovNumActiveOBD OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The name of the target OBDs."
    ::= { lovEntry 5 }
    
    
lovCapacity OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The capacity of the LOV in bytes."
    ::= { lovEntry 6 }

lovFreeCapacity OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The remaining free capacity of the LOV in bytes."
    ::= { lovEntry 7 }

lovFiles OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The maximum number of files that may be stored on a LOV."
    ::= { lovEntry 8 }

lovFreeFiles OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of unused files on a LOV."
    ::= { lovEntry 9 }
    
lovStripeCount OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of stripes on a LOV."
    ::= { lovEntry 10 }    
    
lovStripeOffset OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The stripe offset on a LOV."
    ::= { lovEntry 11 }    
        
lovStripeSize OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The stripe size on a LOV."
    ::= { lovEntry 12 }     
    
lovStripeType OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The stripe type on a LOV."
    ::= { lovEntry 13 }         
   
--============================================================================
--
-- Lustre Distributed Lock Manager
--
--============================================================================

ldlmNumber OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of LDLM namespaces (Also its the number of instances
         in a LDLM table)"
    ::= { lustreLDLM 1 }

ldlmTable OBJECT-TYPE
    SYNTAX SEQUENCE OF LdlmEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table listing the statistics for LDLM namespaces available on
         a Lustre configured node."
    ::= { lustreLDLM 2 }

ldlmEntry OBJECT-TYPE
    SYNTAX LdlmEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Table entry with information LDLM stats for all LDLM namespaces
         available on a Lustre configured node."
    INDEX { ldlmIndex }
    ::= { ldlmTable 1 }

LdlmEntry ::=
    SEQUENCE {
        ldlmIndex           Unsigned32,
        ldlmNameSpace       DisplayString,
        ldlmLockCount       Unsigned32,
        ldlmUnusedLockCount Unsigned32,
        ldlmResourceCount   Unsigned32
    }

ldlmIndex OBJECT-TYPE
    SYNTAX Unsigned32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Index into the table of LDLM stats for LDLM namespaces available
         on a Lustre configured system."
    ::= { ldlmEntry 1 }

ldlmNameSpace OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The name of the particular LDLM namespace."
    ::= { ldlmEntry 2 }

ldlmLockCount OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Active Lock count of particular LDLM namespace."
    ::= { ldlmEntry 3 }
    
ldlmUnusedLockCount OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Unused Lock count of particular LDLM namespace."
    ::= { ldlmEntry 4 }
    
ldlmResourceCount OBJECT-TYPE
    SYNTAX Unsigned32 
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Resource count of particular LDLM namespace."
    ::= { ldlmEntry 5 }    

--============================================================================
--
-- Lustre Lnet
--
--============================================================================
lnetMsgsAlloc OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet messages allocated."
    ::= { lnetInformation 1 }

lnetMsgsMax OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet messages maximum."
    ::= { lnetInformation 2 }

lnetErrors OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet errors."
    ::= { lnetInformation 3 }

lnetSendCount OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet send RPCs."
    ::= { lnetInformation 4 }

lnetRecvCount OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet receive RPCs."
    ::= { lnetInformation 5 }

lnetRouteCount OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet routed RPCs."
    ::= { lnetInformation 6 }

lnetDropCount OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet dropped RPCs."
    ::= { lnetInformation 7 }

lnetSendBytes OBJECT-TYPE
    SYNTAX Unsigned64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet send bytes."
    ::= { lnetInformation 8 }

lnetRecvBytes OBJECT-TYPE
    SYNTAX Unsigned64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet receive bytes."
    ::= { lnetInformation 9 }

lnetRouteBytes OBJECT-TYPE
    SYNTAX Unsigned64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet routed bytes."
    ::= { lnetInformation 10 }

lnetDropBytes OBJECT-TYPE
    SYNTAX Unsigned64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "LNet dropped bytes."
    ::= { lnetInformation 11 }

--============================================================================
--
-- Lustre Management Traps
--
--============================================================================


lustrePortalsCatastropeTrap NOTIFICATION-TYPE
    OBJECTS {
            lustrePortalsCatastropeReasonString
    }
    STATUS current
    DESCRIPTION
        "The Lustre service Failure traps sent to management station in
         case of Portals Catastrophe."
    ::= { lustreMgmtTraps 1 }
    
lustrePortalsCatastropeReasonString OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The portals catastrophe description string."
    ::= { lustreMgmtTraps 2 }     
    
lustreOBDUnhealthyTrap NOTIFICATION-TYPE
    OBJECTS {
            lustreOBDNameString,
            lustreOBDUnhealthyReasonString
    }
    STATUS current
    DESCRIPTION
        "The Lustre service Failure traps sent to management station in
         on OBD health check failure."
    ::= { lustreMgmtTraps 3 }    
   
lustreOBDNameString OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The health status string."
    ::= { lustreMgmtTraps 4 }    
    
lustreOBDUnhealthyReasonString OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The health status string."
    ::= { lustreMgmtTraps 5 }        

END
