-- Mib files packaged on  Thu Feb 25 14:37:59 EST 2010 for Storage Array Firmware V4.3.5 (R115269)

EQLMEMBER-MIB DEFINITIONS  ::= BEGIN   
IMPORTS  
    MODULE-IDENTITY, OBJECT-TYPE, IpAddress, Integer32, enterprises,TimeTicks,Unsigned32, Counter32, Counter64, Gauge32,
    NOTIFICATION-TYPE
            FROM SNMPv2-SMI        
    DisplayString, RowStatus, TruthValue 
            FROM SNMPv2-TC
    equalLogic
            FROM EQUALLOGIC-SMI
    InetAddressType, InetAddress
            FROM INET-ADDRESS-MIB       -- RFC2851
    eqlGroupId, eqlStorageGroupAdminAccountIndex
            FROM EQLGROUP-MIB;

eqlmemberModule MODULE-IDENTITY      
	LAST-UPDATED "201002251937Z"
    ORGANIZATION  "EqualLogic Inc."
    CONTACT-INFO      
        "Contact: Customer Support
         Postal:  EqualLogic Inc
                  110 Spit Brook Rd, ZKO2., Nashua, NH 03062
         Tel:     +1 603-579-9762             
         E-mail:  support@equallogic.com
         WEB:     www.equallogic.com"

    DESCRIPTION          
        "Dell Inc. Storage Array member information 

         Copyright (c) 2002-2009 by Dell, Inc.

         All rights reserved.  This software may not be copied, disclosed,
         transferred, or used except in accordance with a license granted
         by Dell, Inc.  This software embodies proprietary information
         and trade secrets of Dell, Inc.
        "


    -- Revision history, in reverse chronological order
    REVISION    "200209060000Z"         -- 11-Dec-07
    DESCRIPTION "Initial revision"    
    ::= { enterprises equalLogic(12740) 2 }     


eqlmemberObjects        OBJECT IDENTIFIER       ::= { eqlmemberModule 1 }   
eqlmemberNotifications  OBJECT IDENTIFIER       ::= { eqlmemberModule 2 }   
eqlmemberConformance    OBJECT IDENTIFIER       ::= { eqlmemberModule 3 } 
     


eqlMemberTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberEntry      
    MAX-ACCESS    not-accessible      
    STATUS        current      
    DESCRIPTION          "EqualLogic-Persistent Storage Group Member Table"  
    ::=  {  eqlmemberObjects 1 }    

eqlMemberEntry OBJECT-TYPE      
    SYNTAX        EqlMemberEntry      
    MAX-ACCESS    not-accessible      
    STATUS        current      
    DESCRIPTION          "An entry (row) containing member info"
    INDEX  { eqlGroupId, eqlMemberIndex }    
::=    { eqlMemberTable 1 }
    
EqlMemberEntry ::= 
    SEQUENCE {     
        eqlMemberIndex                  Unsigned32,
        eqlMemberDateAndTime            TimeTicks,          
        eqlMemberTimeZone               INTEGER,
        eqlMemberAdjustDaylightSavTime  INTEGER,
        eqlMemberDefaultRoute       IpAddress,
        eqlMemberUUID                   OCTET STRING,
        eqlMemberName                   DisplayString,
        eqlMemberSite                   DisplayString,
        eqlMemberDescription            DisplayString,
        eqlMemberRowStatus              RowStatus,
        eqlMemberState                  INTEGER,
        eqlMemberPolicySingleControllerSafe INTEGER,
        eqlMemberPolicyLowBatterySafe   INTEGER,
        eqlMemberVersion                Unsigned32,
        eqlMemberDelayDataMove          INTEGER,
        eqlMemberDefaultInetRouteType       InetAddressType,
        eqlMemberDefaultInetRoute           InetAddress,
        eqlMemberDriveMirroring			INTEGER,
        eqlMemberProfileIndex               Unsigned32,
        eqlMemberControllerType             DisplayString,
        eqlMemberControllerMajorVersion     Unsigned32,
        eqlMemberControllerMinorVersion     Unsigned32,
        eqlMemberControllerMaintenanceVersion  Unsigned32
        } 

eqlMemberIndex OBJECT-TYPE      
    SYNTAX          Unsigned32
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "This field unique identifies an array within a group."  
    ::=  {  eqlMemberEntry 1 }  
    
eqlMemberDateAndTime    OBJECT-TYPE      
    SYNTAX          TimeTicks    
    MAX-ACCESS      read-create      
    STATUS          current      
    DESCRIPTION     "This field is dynamic, it contains the date and time for the array.
                     There is no default value."
    ::=   { eqlMemberEntry 2}       
 
eqlMemberTimeZone   OBJECT-TYPE      
    SYNTAX          INTEGER     {
	    hst(1),
		ast(2),
		pst(3),
		pnt(4),
		mst(5),
		cst(6),
		est(7),
		iet(8),
		prt(9),
		gmt(10),
		ect(11),
		eet(12),
		eat(13),
		met(14),
		net(15),
		plt(16),
		ist(17),
		bst(18),
		vst(19),
		ctt(20),
		jst(21),
		act(22),
		aet(23),
		sst(24),
		nst(25),
		mit(26),
		cnt(27),
		agt(28),
		bet(29),
		cat(30)
    }     
    MAX-ACCESS      read-create   
    STATUS          current      
    DESCRIPTION     "The field specifies the default timezone for the group.
                     This can be overwritten on a per Array basis. The default is EST.
                     We need to file in all the supported TZ. For now we punt and do GMT as the catch all."
    DEFVAL          { est }
    ::=   { eqlMemberEntry 3}       

eqlMemberAdjustDaylightSavTime OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        enabled(1),
                        disabled(2)
    }     
    MAX-ACCESS      read-create       
    STATUS          current      
    DESCRIPTION     "This field specifies whether or not dayLight savings time should be applied to the time. 
                     The default value is enabled." 
    DEFVAL          { enabled } 
    ::=   { eqlMemberEntry 4}   

eqlMemberDefaultRoute   OBJECT-TYPE      
    SYNTAX          IpAddress
    MAX-ACCESS      read-create
    STATUS          current      
    DESCRIPTION     "This field is deprecated and will be unsupported in the next release."
     
    ::=   { eqlMemberEntry 5}

eqlMemberSite       OBJECT-TYPE      
    SYNTAX          DisplayString (SIZE (0..64))     
    MAX-ACCESS      read-create     
    STATUS          current      
    DESCRIPTION     "This field specifies the site where the volume res ides.
                     Sites are defined on a per array basis.
                     Sites are used to define where primary and secondary copies of volume mirror reside.
                     The default is the default site." 
    DEFVAL          { "default" }
    ::=   { eqlMemberEntry 6}

eqlMemberDescription    OBJECT-TYPE      
    SYNTAX          DisplayString (SIZE (0..64))    
    MAX-ACCESS      read-create      
    STATUS          current      
    DESCRIPTION     "This field contains a description of the array.
                     For example the location of the array. There is no default."
    ::=   { eqlMemberEntry 7}   

eqlMemberUUID       OBJECT-TYPE      
    SYNTAX          OCTET STRING (SIZE (16))     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "EQL-SECONDARY-KEY
					This field is for internal use only."  
    ::=   { eqlMemberEntry 8}

eqlMemberName       OBJECT-TYPE      
    SYNTAX          DisplayString (SIZE (1..64))     
    MAX-ACCESS      read-create     
    STATUS          current      
    DESCRIPTION     "This field specifies the name of the array.
                     This name must be unique within the group.
                     It can be a DNS name, though it is not required to be one. There is no default."  
    ::=   { eqlMemberEntry 9}   

eqlMemberRowStatus OBJECT-TYPE      
    SYNTAX          RowStatus    
    MAX-ACCESS      read-create      
    STATUS          current      
    DESCRIPTION     "This RowStatus is used only to delete a member.
                     The row in this table could be created only by the subsystem."  
    ::= { eqlMemberEntry 10 }       

eqlMemberState      OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        on-line(1),
                        off-line(2),
                        vacate(3),
                        vacated(4)
    }
    MAX-ACCESS      read-write      
    STATUS          current      
    DESCRIPTION     
     "The field specifies the desired state of the array.
      Currently setting this value to vacate is the only operation that is
      supported." 
    DEFVAL          { on-line } 
    ::=   { eqlMemberEntry 11}

eqlMemberPolicySingleControllerSafe    OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        safe-enabled(1),
                        safe-disabled(2)
    }     
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "This field specifies the cache policy if we boot with only one CM."
    DEFVAL          { safe-enabled }
    ::=   { eqlMemberEntry 12}

eqlMemberPolicyLowBatterySafe    OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        safe-enabled(1),
                        safe-disabled(2)
    }     
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "This field specifies the cache policy if the battery charge is below tolerance."
    DEFVAL          { safe-enabled }
    ::=   { eqlMemberEntry 13}

eqlMemberVersion OBJECT-TYPE      
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "This field specifies the competibility level of a member."
    ::=  {  eqlMemberEntry 14 }  

eqlMemberDelayDataMove OBJECT-TYPE      
    SYNTAX          INTEGER {
                    unconfigured(0),
                    wait(1),
                    use-member-space(2)
    }
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "When a new member is added to the group the value of this column will be zero(unconfigured).
                     Before configuring raid-policy , this value must be set to wait(1) or use-member-space(2).
                     The value can be changed from wait(1) to use-member-space(2) 
                     But once set to use-member-space, it cannot be changed back. 
                     "
    DEFVAL          { unconfigured }
    ::=  {  eqlMemberEntry 15 }  

eqlMemberDefaultInetRouteType OBJECT-TYPE      
    SYNTAX          InetAddressType
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "This field is used to indicate the default gateway for the group.
                     This value can be overriden on a per array basis.
                     This field contains the address of the local router used to forward network traffic
                     beyond the local subnet. Gateways are used to connect multiple subnets.
                     There is no default value for this entry."
     
    ::=  {  eqlMemberEntry 16 }  

eqlMemberDefaultInetRoute OBJECT-TYPE      
    SYNTAX          InetAddress
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "This field is used to indicate the default gateway for the group.
                     This value can be overriden on a per array basis.
                     This field contains the address of the local router used to forward network traffic
                     beyond the local subnet. Gateways are used to connect multiple subnets.
                     There is no default value for this entry."
     
    ::=  {  eqlMemberEntry 17 }  

eqlMemberDriveMirroring OBJECT-TYPE      
    SYNTAX          INTEGER {
                    enabled(0),
                    disabled(1)
    }
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "On disk drive failures, this value is checked for mirroring the data onto the spare drive.
                     The value can be changed from enabled(0) to disabled(1) and vice-versa
                     "
    DEFVAL          { enabled }
    ::=  {  eqlMemberEntry 18 }  
 
eqlMemberProfileIndex  OBJECT-TYPE
    SYNTAX          Unsigned32(1..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "This field represents the profile identifier supported by this member."
    DEFVAL          { 1 }
    ::=  {  eqlMemberEntry 19 }  

eqlMemberControllerType OBJECT-TYPE      
    SYNTAX          DisplayString( SIZE( 0..32 ) )
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This variable specifies the type of the active controller module on this member. Ex: Type II"
    DEFVAL          {"unknown"}
    ::=  {  eqlMemberEntry 20 }  
 
eqlMemberControllerMajorVersion  OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This variable specifies the major version number of the
                     software present on the active controller module."
    DEFVAL          { 1 }
    ::=  {  eqlMemberEntry 21 }  

eqlMemberControllerMinorVersion  OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This variable specifies the minor version number of the
                     software present on the active controller module."
    DEFVAL          { 1 }
    ::=  {  eqlMemberEntry 22 }  

eqlMemberControllerMaintenanceVersion  OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This variable specifies the maintenance version number of the
                     software present on the active controller module."
    DEFVAL          { 0 }
    ::=  {  eqlMemberEntry 23 }  


--**************************************************************************   

eqlMemberStatusTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberStatusEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "EqualLogic-Dynamic Member Status Table"  
    ::=  {  eqlmemberObjects 3 }    

eqlMemberStatusEntry OBJECT-TYPE      
    SYNTAX          EqlMemberStatusEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "An entry (row) containing member status info"
    INDEX  { eqlGroupId, eqlMemberIndex }    
    ::=    { eqlMemberStatusTable 1 }
    
EqlMemberStatusEntry ::= 
    SEQUENCE {     
        eqlMemberStatusTotalSpace           Integer32,
        eqlMemberStatusTotalSpaceUsed       Integer32,
        eqlMemberStatusModel                DisplayString, 
        eqlMemberStatusSerialNumber         DisplayString,
        eqlMemberStatusNumberOfControllers  INTEGER, 
        eqlMemberStatusNumberOfDisks        Integer32, 
        eqlMemberStatusNumberOfSpares       Integer32, 
        eqlMemberStatusCacheSize            Integer32, 
        eqlMemberStatusCacheMode            INTEGER, 
        eqlMemberStatusNumberOfConnections  Integer32,
        eqlMemberStatusAverageTemp          Integer32,
        eqlMemberStatusTempStatus           INTEGER,
        eqlMemberStatusBackplaneTempSensor1 Integer32,
        eqlMemberStatusBackplaneTempSensor2 Integer32,
        eqlMemberStatusPowerSupply1Status   INTEGER,
        eqlMemberStatusPowerSupply2Status   INTEGER,
        eqlMemberStatusTrayOneFanOneSpeed   Integer32,
        eqlMemberStatusTrayOneFanTwoSpeed   Integer32,
        eqlMemberStatusTrayTwoFanOneSpeed   Integer32,
        eqlMemberStatusTrayTwoFanTwoSpeed   Integer32,              
        eqlMemberStatusPowerSupplyOneFanStatus  INTEGER,
        eqlMemberStatusPowerSupplyTwoFanStatus  INTEGER,
        eqlMemberStatusRaidStatus           INTEGER,
        eqlMemberStatusRaidPercentage       Integer32,
        eqlMemberStatusLostRaidBlocks       INTEGER,
        eqlMemberStatusHealth               Integer32,  -- deprecated  by new health tables in v1.1
        eqlMemberStatusShortId              Integer32

        -- This table is deprecated and new tables for Storage, Chassis, RAID etc... are added!!! 
        -- Don't add any more columns here

        }

eqlMemberStatusTotalSpace    OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the total disk space in MBs on the this array."  
    ::=   { eqlMemberStatusEntry 1}     

eqlMemberStatusTotalSpaceUsed OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the total disk space in MBs allocated to volume data 
                     for this array."  
    ::=   { eqlMemberStatusEntry 2}

eqlMemberStatusModel    OBJECT-TYPE      
    SYNTAX          DisplayString (SIZE (0..32))
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the model number for the array."
	-- .jpmfix - acutally model of active CM
    ::=   { eqlMemberStatusEntry 3}

eqlMemberStatusSerialNumber OBJECT-TYPE      
   SYNTAX          DisplayString (SIZE (0..32))    
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the serial number for the array."
	-- -jpmfix looks like SN of active CM
    ::=   { eqlMemberStatusEntry 4}     

eqlMemberStatusNumberOfControllers  OBJECT-TYPE      
    SYNTAX          INTEGER {
                        single(1),
                        dual(2)
    }     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the number of Controller modules in the array."  
    ::=   { eqlMemberStatusEntry 5}      

eqlMemberStatusNumberOfDisks    OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the number of disk installed in the array."  
    ::=   { eqlMemberStatusEntry 6}       

eqlMemberStatusNumberOfSpares   OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the number disks allocated as spares in an array."  
    ::=   { eqlMemberStatusEntry 7}         
    
eqlMemberStatusCacheSize    OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current
    DESCRIPTION     "The field specifies the size in MB of the read/write cache within the array."  
    ::=   { eqlMemberStatusEntry 8}             

eqlMemberStatusCacheMode    OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        write-thru(1),
                        write-back(2)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies the mode the cache is in within the array.
                     The default is write-back. The array will be set to write-thru on battery failure."  
    DEFVAL          { write-back }
    ::=   { eqlMemberStatusEntry 9}   

eqlMemberStatusNumberOfConnections  OBJECT-TYPE      
    SYNTAX          Integer32
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the number of iSCSI initiators which are connected to this array."  
    ::=   { eqlMemberStatusEntry 11}  

eqlMemberStatusAverageTemp  OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the average tempature of the array in degrees C."  
    ::=   { eqlMemberStatusEntry 12}        

eqlMemberStatusTempStatus   OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        good(1),
                        bad(2)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies whether the tempatures for the array
                     are within acceptable tolerances.
                     ** What are acceptable tolerances?"  
    ::=   { eqlMemberStatusEntry 13}    

eqlMemberStatusBackplaneTempSensor1 OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the tempature of backplane sensor 1 in degrees C."  
    ::=   { eqlMemberStatusEntry 14}        

eqlMemberStatusBackplaneTempSensor2 OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the tempature of backplane sensor 2 in degrees C."  
    ::=   { eqlMemberStatusEntry 15}            

eqlMemberStatusPowerSupply1Status   OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        on(1),
                        no-power(2),
                        failed (3),
                        fan-failed (4),
                        not-present (5)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies the state of the first power supply."
    ::=   { eqlMemberStatusEntry 16}  
    
eqlMemberStatusPowerSupply2Status   OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        on (1),
                        no-power (2),
                        failed (3),
                        fan-failed (4),
                        not-present (5)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies the state of the second power supply."  
    ::=   { eqlMemberStatusEntry 17}  
    
eqlMemberStatusTrayOneFanOneSpeed   OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The field specifies the rpm fan speed for fan tray 1, fan 1."  
    ::=   { eqlMemberStatusEntry 18}  

eqlMemberStatusTrayOneFanTwoSpeed   OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The field specifies the rpm fan speed for fan tray 1, fan 2."  
    ::=   { eqlMemberStatusEntry 19}  

eqlMemberStatusTrayTwoFanOneSpeed   OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The field specifies the rpm fan speed for fan tray 2, fan 1."  
    ::=   { eqlMemberStatusEntry 20}  

eqlMemberStatusTrayTwoFanTwoSpeed   OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The field specifies the rpm fan speed for fan tray 2, fan 2."  
    ::=   { eqlMemberStatusEntry 21}
           
eqlMemberStatusPowerSupplyOneFanStatus  OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        on-line(1),
                        off-line (2)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies whether the fan in power supply one is on-line or not."  
    ::=   {eqlMemberStatusEntry 22}
    
eqlMemberStatusPowerSupplyTwoFanStatus  OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        on-line(1),
                        off-line (2)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies whether the fan in power supply two is on-line or not."  
    ::=   {eqlMemberStatusEntry 23 }

eqlMemberStatusRaidStatus  OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        ok              (1),
                        degraded        (2),
                        verifying       (3),
                        reconstructing  (4),
                        failed          (5),
                        catastrophicLoss(6),
                        expanding       (7)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies the status of the raid subsystem. 
                     This is a composite of the view of the underlying subsystems.
                     Status ok means things are ok.
                     Status degraded means we are in a degraded state, possible because no spare is available.
                     Status verifying means a verify pass is run, and a percent complete is available.
                     Status reconstructing means we are reconstructing a drive and a percent complete is available.
                     Status failed means we had a failure while we were up, possibly a drive failed and we have
                        no spare.
                     Status catastrophicLoss may not be visible to the user since the member may not be able to 
                        bootup. It means we need administrator intervention to correct the problem.
                     "
    ::=   {eqlMemberStatusEntry 24 }

eqlMemberStatusRaidPercentage  OBJECT-TYPE      
    SYNTAX          Integer32 (0..100)
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies the percentage complete when the eqlMemberStatusRaidStatus is verifying
                        or reconstructing."
    ::=   {eqlMemberStatusEntry 25 }

eqlMemberStatusLostRaidBlocks  OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        true  (1),
                        false (2)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies whether we have lost blocks in the raid array which
                        the user may want to clear."
    ::=   {eqlMemberStatusEntry 26 }

eqlMemberStatusHealth  OBJECT-TYPE      
    SYNTAX          Integer32 (0..100)
    MAX-ACCESS      read-write      
    STATUS          current      
    DESCRIPTION     "This field specifies what the overall health of the member
                        is on a scale of 0(dead) to 100(healthy)
                        -- deprecated  by new health tables in v1.1"
    ::=   {eqlMemberStatusEntry 27 }

eqlMemberStatusShortId  OBJECT-TYPE      
    SYNTAX          Integer32
    MAX-ACCESS      read-write      
    STATUS          current      
    DESCRIPTION     "This field specifies short member address" 
    ::=   {eqlMemberStatusEntry 28 }

--**************************************************************************   

eqlMemberInfoTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberInfoEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "EqualLogic-Dynamic Member Info Table"  
    ::=  {  eqlmemberObjects 4 }    

eqlMemberInfoEntry OBJECT-TYPE      
    SYNTAX          EqlMemberInfoEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "An entry (row) containing member info"
    INDEX  { eqlGroupId, eqlTargetMemberIndex }    
    ::=    { eqlMemberInfoTable 1 }
    
EqlMemberInfoEntry ::= 
    SEQUENCE {     
        eqlTargetMemberIndex        Integer32,
        eqlMemberInfoStatus         INTEGER
        }

eqlTargetMemberIndex    OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      not-accessible
    STATUS          current      
    DESCRIPTION     " This is a duplication of eqlMemberIndex just to make our code generation happy."

    ::=   { eqlMemberInfoEntry 1}     

eqlMemberInfoStatus      OBJECT-TYPE      
    SYNTAX               INTEGER     {
                           on-line(1),
                           off-line(2),
                           vacating-in-progress(3),
                           vacated(4)
                         }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     " The current state of the member."
    DEFVAL          { on-line } 
    ::=   { eqlMemberInfoEntry 2}             

--**************************************************************************   

eqlMemberHealthTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberHealthEntry
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "EqualLogic-Dynamic Member Health Table"  
    ::=  {  eqlmemberObjects 5 }

eqlMemberHealthEntry OBJECT-TYPE      
    SYNTAX          EqlMemberHealthEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "An entry (row) containing overall member health info"
    INDEX  { eqlGroupId, eqlMemberIndex }    
    ::=    { eqlMemberHealthTable 1 }


EqlMemberHealthEntry ::= 
    SEQUENCE {     
        eqlMemberHealthStatus               INTEGER,
        eqlMemberHealthWarningConditions    BITS,
        eqlMemberHealthCriticalConditions   BITS
        }


eqlMemberHealthStatus      OBJECT-TYPE      
    SYNTAX               INTEGER     {
                            unknown  (0),
                            normal   (1),
                            warning  (2),
                            critical (3)
    }     
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "The value of this object is determinted by the severity of the
                        health condition state variables. The most severe state will
                        be reflected."
    DEFVAL          { unknown } 
    ::=   { eqlMemberHealthEntry 1}

-- these are the encodings based on the definitions in NetBSD/src/sys/EQL/include/emd_info.h
-- Note that snmp bits have bit 0 as the left most (or high order) bit in the octet..
-- so this struct has to be twiddled
eqlMemberHealthWarningConditions      OBJECT-TYPE      
    SYNTAX               BITS {
                            hwComponentFailedWarn   (0), -- A non-critical hardware component has failed
                            powerSupplyRemoved      (1), -- One of the power supplys has been removed;
                            controlModuleRemoved    (2), -- a cm is missing....
                            psfanOffline            (3), -- a power supply fan has failed; 
                            fanSpeed                (4), -- a fan is not operating in its normal ranges;
                                                         -- check the eqllog msgs to see the exact fan and issue
                            cacheSyncing            (5), -- the cache is syncing, it would be unwise to power down while this is occuring 
                            raidSetFaulted          (6), --
                            highTemp                (7), -- one or more sensors has exceeded the sensor's warning temp 
                            raidSetLostblkEntry     (8), -- the raid set has lost blocks; see the Group Admin manual
                            secondaryEjectSWOpen    (9), -- the eject switch on the secondary controller has been opened; Please close it..
                            b2bFailure              (10), -- board to board communication between the active and secondary CMs has failed.. Call support?
            			    replicationNoProg       (11), -- no progress in replicating a volume. Check network connectivity between partners.
                            raidSpareTooSmall       (12), -- a drive considered a spare is too small to use
                            lowTemp                 (13), -- one or more sensors is below the sensor's warning temp range 
                            powerSupplyFailed       (14), -- one of the power supplies failed
                            timeOfDayClkBatteryLow  (15), -- time of day clock battery is low
                            incorrectPhysRamSize    (16), -- incorrect physical ram size
                            enclosureOpenTemp       (17), -- enclosure open
                            sumoChannelCardMissing  (18), -- sumo channel card missing
                            sumoChannelCardFailed   (19), -- sumo channel card failed
                            batteryLessthan72hours  (20), -- The battery has insufficient charge to survive a 72 hour power outage. 
                            cpuFanNotSpinning       (21), -- The CPU fan is not functioning properly
                            warnbit22               (22),
                            warnbit23               (23),
                            warnbit24               (24),
                            warnbit25               (25),
                            warnbit26               (26),
                            warnbit27               (27),
                            warnbit28               (28),
                            warnbit29               (29),
                            warnbit30               (30),
                            warnbit31               (31)
    }     
    MAX-ACCESS      read-only
    STATUS          current      
    DESCRIPTION     "This field defines possible warning health conditions and which
                        ones are present."
    ::=   { eqlMemberHealthEntry 2}

eqlMemberHealthCriticalConditions      OBJECT-TYPE      
    SYNTAX               BITS {
                            raidSetDoubleFaulted    (0), -- the raid set is double faulted; the psg wont come up without user intervention; See the admin guide
                            bothFanTraysRemoved     (1), -- both fan trays are removed; How are you even seeing this message? 
                            highAmbientTemp         (2), -- one or more sensors has exceeded its critical temperature tthreshold
                            raidLostCache           (3), -- The RAID driver is unable to recover the battery-backed cache.  The disk array will not initialize without user intervention.  See the Handling Lost Data section in the Group Administration manual for more information.
                            moreThanOneFanSpeedCondition(4), -- more than one fan is operating outside its normal parameters
                            fanTrayRemoved          (5), -- a fan tray has been removed. Loss of the other fan tray will result in the PSA overheating
                            raidSetLostblkTableFull (6), -- the raid lost block table is full; what is the user supposed to do about this? see the admin guide?
                            critbit7                (7), -- 
                            raidOrphanCache         (8), -- The RAID driver has found data in the battery-backed cache with no matching disk array.  Initialization will not proceed without user intervention. Call EqualLogic Support for assistance.
                            raidMultipleRaidSets    (9), -- Multiple valid RAIDsets were found.  The array cannot choose which one to initialize.  Remove all but one valid RAIDset and power-cycle the array.
                            nVRAMBatteryFailed      (10), -- The NVRAM battery has failed. The NVRAM can no longer be used.
                            hwComponentFailedCrit   (11), -- A critical hardware component has failed
                            incompatControlModule   (12), -- An incorrect control module has been inserted into the chassis
                            lowAmbientTemp          (13), -- one or more sensors is below its critical temperature range
                            opsPanelFailure         (14), -- Ops Panel is missing or broken
                            emmLinkFailure          (15), -- Enclosure management services are unavailable
                            highBatteryTemperature  (16), -- Cache battery temperature exceeds upper limit; battery charger is disabled.
                            enclosureOpenPerm       (17), -- Enclosure open for a long time
                            sumoChannelBothMissing  (18), -- Both Sumo Channel cards missing
                            sumoEIPFailureCOndition (19), -- EIP failed in Sumo.
                            sumoChannelBothFailed   (20), -- Both Sumo Channel cards failed
                            staleMirrorDiskFailure	(21), -- Stale mirror disk failure
                            critbit22               (22),
                            critbit23               (23),
                            critbit24               (24),
                            critbit25               (25),
                            critbit26               (26),
                            critbit27               (27),
                            critbit28               (28),
                            critbit29               (29),
                            critbit30               (30),
                            critbit31               (31)
    }     
    MAX-ACCESS      read-only
    STATUS          current      
    DESCRIPTION     "This field defines possible critical health conditions and which
                        ones are present."
    ::=   { eqlMemberHealthEntry 3}


--**************************************************************************   

eqlMemberHealthDetailsTemperatureTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberHealthDetailsTemperatureEntry
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "EqualLogic-Dynamic Member Health Details Temperature Table.
                    "  
    ::=  {  eqlmemberObjects 6 }

eqlMemberHealthDetailsTemperatureEntry OBJECT-TYPE      
    SYNTAX          EqlMemberHealthDetailsTemperatureEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "An entry (row) containing member health detailed temperature info"
    INDEX  { eqlGroupId, eqlMemberIndex, eqlMemberHealthDetailsTempSensorIndex }    
    ::=    { eqlMemberHealthDetailsTemperatureTable 1 }
    
EqlMemberHealthDetailsTemperatureEntry ::= 
    SEQUENCE {     
        eqlMemberHealthDetailsTempSensorIndex                   INTEGER,
        eqlMemberHealthDetailsTemperatureName                   DisplayString,
        eqlMemberHealthDetailsTemperatureValue                  Unsigned32,
        eqlMemberHealthDetailsTemperatureCurrentState           INTEGER,
        eqlMemberHealthDetailsTemperatureHighCriticalThreshold  Unsigned32,
        eqlMemberHealthDetailsTemperatureHighWarningThreshold   Unsigned32,
        eqlMemberHealthDetailsTemperatureLowCriticalThreshold   Unsigned32,
        eqlMemberHealthDetailsTemperatureLowWarningThreshold    Unsigned32
        }

eqlMemberHealthDetailsTempSensorIndex      OBJECT-TYPE
    SYNTAX          INTEGER {
                        integratedSystemTemperature(1),
                        backplaneSensor0(2),
                        backplaneSensor1(3),
                        controlModule0processor(4),
                        controlModule0chipset(5),
                        controlModule1processor(6),
                        controlModule1chipset(7),
                        controlModule0sasController(8),
                        controlModule0sasExpander(9),
                        controlModule0sesEnclosure(10),
                        controlModule1sasController(11),
                        controlModule1sasExpander(12),
                        controlModule1sesEnclosure(13),
                        sesOpsPanel(14),
                        cemi0(15),
                        cemi1(16),
                        controlModule0batteryThermistor(17),
                        controlModule1batteryThermistor(18)
                     }
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "A unique integer that denotes which temperature sensor
                    this entry refers to"
    ::=   { eqlMemberHealthDetailsTemperatureEntry 1 }

eqlMemberHealthDetailsTemperatureName   OBJECT-TYPE
   SYNTAX          DisplayString (SIZE (0..64))    
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the name of the sensor that we display to the user."
    ::=   { eqlMemberHealthDetailsTemperatureEntry 2 }

eqlMemberHealthDetailsTemperatureValue      OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "The value of this object is temperature in degrees C"
    DEFVAL          { 0 } 
    ::=   { eqlMemberHealthDetailsTemperatureEntry 3 }

eqlMemberHealthDetailsTemperatureCurrentState      OBJECT-TYPE      
    SYNTAX          INTEGER {
                            unknown  (0),
                            normal   (1), -- green 
                            warning  (2), -- yellow
                            critical (3)  -- red
    }
    MAX-ACCESS      read-only
    STATUS          current      
    DESCRIPTION     "This field tells us the state of the temperature sensor.
                        Either normal, warning or critical."
    DEFVAL          { unknown }
    ::=   { eqlMemberHealthDetailsTemperatureEntry 4 }


eqlMemberHealthDetailsTemperatureHighCriticalThreshold      OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "when the TemperatureValue is greater than or equal to this 
                        variable's value the current state is set to critical."
    DEFVAL          { 0 } 
    ::=   { eqlMemberHealthDetailsTemperatureEntry 5 }

eqlMemberHealthDetailsTemperatureHighWarningThreshold      OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "when the TemperatureValue is greater than or equal to this 
                        variable's value and not greater than or equal to the 
                        HighCriticalThreshold, the current state is set to warning."
    DEFVAL          { 0 } 
    ::=   { eqlMemberHealthDetailsTemperatureEntry 6 }

eqlMemberHealthDetailsTemperatureLowCriticalThreshold      OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "when the TemperatureValue is less than or equal to this 
                        variable's value the current state is set to critical."
    DEFVAL          { 0 } 
    ::=   { eqlMemberHealthDetailsTemperatureEntry 7 }

eqlMemberHealthDetailsTemperatureLowWarningThreshold      OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "when the TemperatureValue is less than or equal to this 
                        variable's value and not less than or equal to the 
                        LowCriticalThreshold, the current state is set to warning."
    DEFVAL          { 0 } 
    ::=   { eqlMemberHealthDetailsTemperatureEntry 8 }

--**************************************************************************   

eqlMemberHealthDetailsFanTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberHealthDetailsFanEntry
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "EqualLogic-Dynamic Member Health Details Fan Table."                      
    ::=  {  eqlmemberObjects 7 }

eqlMemberHealthDetailsFanEntry OBJECT-TYPE      
    SYNTAX          EqlMemberHealthDetailsFanEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "An entry (row) containing member health detailed fan info"
    INDEX  { eqlGroupId, eqlMemberIndex, eqlMemberHealthDetailsFanIndex }    
    ::=    { eqlMemberHealthDetailsFanTable 1 }
    
EqlMemberHealthDetailsFanEntry ::= 
    SEQUENCE {     
        eqlMemberHealthDetailsFanIndex                  INTEGER,
        eqlMemberHealthDetailsFanName                   DisplayString,
        eqlMemberHealthDetailsFanValue                  Unsigned32,
        eqlMemberHealthDetailsFanCurrentState           INTEGER,
        eqlMemberHealthDetailsFanHighCriticalThreshold  Unsigned32,
        eqlMemberHealthDetailsFanHighWarningThreshold   Unsigned32,
        eqlMemberHealthDetailsFanLowCriticalThreshold   Unsigned32,
        eqlMemberHealthDetailsFanLowWarningThreshold    Unsigned32
        }

eqlMemberHealthDetailsFanIndex  OBJECT-TYPE
    SYNTAX          INTEGER {
                        emm0fan0(1),
                        emm0fan1(2),
                        emm1fan0(3),
                        emm1fan1(4),
                        emm2fan0(5),
                        emm2fan1(6)
                     }
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "A unique integer that identifies the fan that the
                     corresponding entry refers to
                     "
    ::=   { eqlMemberHealthDetailsFanEntry 1 }

eqlMemberHealthDetailsFanName   OBJECT-TYPE
   SYNTAX          DisplayString (SIZE (0..64))    
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the name of the fan that we display to the user."
    ::=   { eqlMemberHealthDetailsFanEntry 2 }

eqlMemberHealthDetailsFanValue      OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "The value of this object is fan speed in rpm."
    DEFVAL          { 0 } 
    ::=   { eqlMemberHealthDetailsFanEntry 3 }

eqlMemberHealthDetailsFanCurrentState      OBJECT-TYPE      
    SYNTAX          INTEGER {
                            unknown  (0),
                            normal   (1), -- green 
                            warning  (2), -- yellow
                            critical (3)  -- red
    }
    MAX-ACCESS      read-only
    STATUS          current      
    DESCRIPTION     "This field tells us the state of the fan.
                        Either normal, warning or critical."
    DEFVAL          { unknown }
    ::=   { eqlMemberHealthDetailsFanEntry 4 }


eqlMemberHealthDetailsFanHighCriticalThreshold      OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "when the FanValue is greater than or equal to this 
                        variable's value the current state is set to critical."
    DEFVAL          { 0 } 
    ::=   { eqlMemberHealthDetailsFanEntry 5 }

eqlMemberHealthDetailsFanHighWarningThreshold      OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "when the FanValue is greater than or equal to this 
                        variable's value and not greater than or equal to the 
                        HighCriticalThreshold, the current state is set to warning."
    DEFVAL          { 0 } 
    ::=   { eqlMemberHealthDetailsFanEntry 6 }

eqlMemberHealthDetailsFanLowCriticalThreshold      OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "when the FanValue is less than or equal to this 
                        variable's value the current state is set to critical."
    DEFVAL          { 0 } 
    ::=   { eqlMemberHealthDetailsFanEntry 7 }

eqlMemberHealthDetailsFanLowWarningThreshold      OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "when the FanValue is less than or equal to this 
                        variable's value and not less than or equal to the 
                        LowCriticalThreshold, the current state is set to warning."
    DEFVAL          { 0 } 
    ::=   { eqlMemberHealthDetailsFanEntry 8 }


--**************************************************************************   

eqlMemberHealthDetailsPowerSupplyTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberHealthDetailsPowerSupplyEntry
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "EqualLogic-Dynamic Member Health Details Power Supply Table.
                        The mappng of index to power supply:
                        .1 = power supply 0
                        .2 = power supply 1
                    "  
    ::=  {  eqlmemberObjects 8 }

eqlMemberHealthDetailsPowerSupplyEntry OBJECT-TYPE      
    SYNTAX          EqlMemberHealthDetailsPowerSupplyEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "An entry (row) containing power supply status information."
    INDEX  { eqlGroupId, eqlMemberIndex, eqlMemberHealthDetailsPowerSupplyIndex }    
    ::=    { eqlMemberHealthDetailsPowerSupplyTable 1 }
    
EqlMemberHealthDetailsPowerSupplyEntry ::= 
    SEQUENCE {     
        eqlMemberHealthDetailsPowerSupplyIndex                  INTEGER,
        eqlMemberHealthDetailsPowerSupplyName                   DisplayString,
        eqlMemberHealthDetailsPowerSupplyCurrentState           INTEGER,
        eqlMemberHealthDetailsPowerSupplyFanStatus              INTEGER
        }

eqlMemberHealthDetailsPowerSupplyIndex      OBJECT-TYPE
    SYNTAX          INTEGER {
                            powerSupply0(1),
                            powerSupply1(2),
                            powerSupply2(3)
    }
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "Iff the power supply current state is on-and-operating,
                      then this field tells if the fan is operational."
    ::=   { eqlMemberHealthDetailsPowerSupplyEntry 1 }


eqlMemberHealthDetailsPowerSupplyName   OBJECT-TYPE
   SYNTAX          DisplayString (SIZE (0..64))    
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the name of the power supply that we display to the user."
    ::=   { eqlMemberHealthDetailsPowerSupplyEntry 2 }

eqlMemberHealthDetailsPowerSupplyCurrentState      OBJECT-TYPE      
    SYNTAX          INTEGER {
                            on-and-operating    (1),
                            no-ac-power         (2),
                            failed-or-no-data   (3) -- has ac but no dc out
                                                     -- or we have no data
    }
    MAX-ACCESS      read-only
    STATUS          current      
    DESCRIPTION     "This field tells us the state of the power supply."
    DEFVAL          { failed-or-no-data }
    ::=   { eqlMemberHealthDetailsPowerSupplyEntry 3 }


eqlMemberHealthDetailsPowerSupplyFanStatus      OBJECT-TYPE
    SYNTAX          INTEGER {
                            not-applicable (0),
                            fan-is-operational  (1),
                            fan-not-operational (2)
    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "Iff the power supply current state is on-and-operating,
                      then this field tells if the fan is operational."
    DEFVAL          { fan-not-operational } 
    ::=   { eqlMemberHealthDetailsPowerSupplyEntry 4 }

--**************************************************************************   

eqlMemberIdentificationTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberIdentificationEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     " EqualLogic-Dynamic Member Identification Table."  
    ::=  {  eqlmemberObjects 9 }    

eqlMemberIdentificationEntry OBJECT-TYPE      
    SYNTAX          EqlMemberIdentificationEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "List of attributes of the array used to identity the location of that array.
                    "
    AUGMENTS        { eqlMemberStatusEntry }
    ::=    { eqlMemberIdentificationTable 1 }
    
EqlMemberIdentificationEntry ::= 
    SEQUENCE {     
         eqlMemberIdentificationLEDsBlinking       TruthValue
    }

eqlMemberIdentificationLEDsBlinking  OBJECT-TYPE      
    SYNTAX          TruthValue
    MAX-ACCESS      read-write      
    STATUS          current      
    DESCRIPTION     "
                      Setting this variable to true enables blinking of the ALRM and WARN 
                      LEDs on the front panel and the ERR LED on the CM, as seen 
                      from the back. 
                      The blinking stops after 2 hours or when the variable is 
                      set to false. 
                    "  
    DEFVAL          { false }
    ::=   { eqlMemberIdentificationEntry 1}

--**************************************************************************   

eqlMemberStorageTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberStorageEntry
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     " EqualLogic-Dynamic Member Storage Information Table."  
    ::=  {  eqlmemberObjects 10 }    

eqlMemberStorageEntry OBJECT-TYPE      
    SYNTAX          EqlMemberStorageEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "List of attributes used to convey the details of storage space utilization on the array.
                    "
    AUGMENTS        { eqlMemberIdentificationEntry }
    ::=    { eqlMemberStorageTable 1 }
    
EqlMemberStorageEntry ::= 
    SEQUENCE {     
        eqlMemberTotalStorage           Integer32,
        eqlMemberUsedStorage            Integer32,
        eqlMemberSnapStorage            Integer32,
        eqlMemberReplStorage            Integer32
    }

eqlMemberTotalStorage OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the total disk storage in MBs on the array."  
    ::=   { eqlMemberStorageEntry 1}     

eqlMemberUsedStorage OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the total disk storage in MBs allocated to volume and snapshots 
                     on this array."  
    ::=   { eqlMemberStorageEntry 2}

eqlMemberSnapStorage OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the total disk storage in MBs allocated to snapshots 
                     on this array."  
    ::=   { eqlMemberStorageEntry 3}

eqlMemberReplStorage OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the total disk storage in MBs allocated to replica 
                     on this array."  
    ::=   { eqlMemberStorageEntry 4}

--**************************************************************************   

eqlMemberChassisTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberChassisEntry
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     " EqualLogic-Dynamic Member Chassis Information Table."  
    ::=  {  eqlmemberObjects 11 }    

eqlMemberChassisEntry OBJECT-TYPE      
    SYNTAX          EqlMemberChassisEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "List of attributes used to convey the details and type of Chassis present on the array.
                    "
    AUGMENTS        { eqlMemberIdentificationEntry }
    ::=    { eqlMemberChassisTable 1 }
    
EqlMemberChassisEntry ::= 
    SEQUENCE {     
        eqlMemberModel                  DisplayString, 
        eqlMemberSerialNumber           DisplayString,
        eqlMemberNumberOfControllers    INTEGER, 
        eqlMemberNumberOfDisks          Integer32, 
        eqlMemberCacheSize              Integer32, 
        eqlMemberCacheMode              INTEGER,
        eqlMemberChassisType            INTEGER,
        eqlMemberServiceTag             DisplayString,
        eqlMemberProductFamily          DisplayString
    }

eqlMemberModel      OBJECT-TYPE      
    SYNTAX          DisplayString (SIZE (0..32))
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the model number for the array."
	-- .jpmfix - acutally model of active CM
    ::=   { eqlMemberChassisEntry 1}

eqlMemberSerialNumber OBJECT-TYPE      
   SYNTAX          DisplayString (SIZE (0..32))    
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the serial number for the array."
	-- -jpmfix looks like SN of active CM"  
    ::=   { eqlMemberChassisEntry 2}     

eqlMemberNumberOfControllers  OBJECT-TYPE      
    SYNTAX          INTEGER {
                        single(1),
                        dual(2)
    }     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the number of Controller modules in the array."  
    ::=   { eqlMemberChassisEntry 3}      

eqlMemberNumberOfDisks    OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the number of disk installed in the array."  
    ::=   {eqlMemberChassisEntry  4}       

eqlMemberCacheSize    OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current
    DESCRIPTION     "The field specifies the size in MB of the read/write cache within the array."  
    ::=   { eqlMemberChassisEntry 5}             

eqlMemberCacheMode    OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        unknown(0),
                        write-thru(1),
                        write-back(2)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies the mode the cache is in within the array.
                     The default is write-back. The array will be set to write-thru on battery failure."  
    DEFVAL          { write-back }
    ::=   { eqlMemberChassisEntry 6}   

eqlMemberChassisType  OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        unknown(0),
                        t1403(1),
                        t1603(2),
                        t4835(3)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies the chassis type of the array.The default is unknown."  
    DEFVAL          { unknown }
    ::=   { eqlMemberChassisEntry 7}   

eqlMemberServiceTag OBJECT-TYPE      
   SYNTAX          DisplayString (SIZE (0..32))    
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the service tag number for the array."
    ::=   { eqlMemberChassisEntry 8}     

eqlMemberProductFamily OBJECT-TYPE      
   SYNTAX          DisplayString (SIZE (0..64))    
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the product family of the peer storage array. Ex: PS5000 E Series."
    ::=   { eqlMemberChassisEntry 9}     


--**************************************************************************   

eqlMemberConnTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberConnEntry
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     " EqualLogic-Dynamic Member Conn Information Table."  
    ::=  {  eqlmemberObjects 12 }    

eqlMemberConnEntry OBJECT-TYPE      
    SYNTAX          EqlMemberConnEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "List of attributes used to convey the connections information on the array.
                    "
    AUGMENTS        { eqlMemberIdentificationEntry }
    ::=    { eqlMemberConnTable 1 }
    
EqlMemberConnEntry ::= 
    SEQUENCE {     
        eqlMemberNumberOfConnections  Integer32,
        eqlMemberReadLatency          Counter64,
        eqlMemberWriteLatency         Counter64,
        eqlMemberReadAvgLatency       Gauge32,
        eqlMemberWriteAvgLatency      Gauge32,
        eqlMemberReadOpCount          Counter64,
        eqlMemberWriteOpCount         Counter64,
        eqlMemberTxData               Counter64,
        eqlMemberRxData               Counter64
    }

eqlMemberNumberOfConnections  OBJECT-TYPE      
    SYNTAX          Integer32
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the number of iSCSI connections made from initiators to  this array."  
    ::=   {eqlMemberConnEntry 1}  

eqlMemberReadLatency  OBJECT-TYPE      
    SYNTAX          Counter64
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The accumulative latency in milli seconds for read operations on this member. The value will be zero until all members are atleast 3.0. The value is reset to zero upon reboot."  
    ::=   {eqlMemberConnEntry 2}  

eqlMemberWriteLatency  OBJECT-TYPE      
    SYNTAX          Counter64
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The accumulative latency in milli seconds for write operations on this member .The value will be zero until all members are atleast 3.0. The value is reset to zero upon reboot."  
    ::=   {eqlMemberConnEntry 3}  

eqlMemberReadAvgLatency  OBJECT-TYPE      
    SYNTAX          Gauge32
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The average latency for read operations on this member in milli seconds. The value is reset to zero upon reboot."  
    ::=   {eqlMemberConnEntry 4}  

eqlMemberWriteAvgLatency  OBJECT-TYPE      
    SYNTAX          Gauge32
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The average latency for write operations on this member in milli seconds. The value is reset to zero upon reboot."  
    ::=   {eqlMemberConnEntry 5}  

eqlMemberReadOpCount  OBJECT-TYPE      
    SYNTAX          Counter64
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The number of read operations on this member. The value is reset to zero upon reboot."  
    ::=   {eqlMemberConnEntry 6}  

eqlMemberWriteOpCount  OBJECT-TYPE      
    SYNTAX          Counter64
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The number of write operations on this member. The value is reset to zero upon reboot."  
    ::=   {eqlMemberConnEntry 7}  

eqlMemberTxData  OBJECT-TYPE      
    SYNTAX          Counter64
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The count of data octets trasmitted by this member.The value is reset to zero upon reboot."  
    ::=   {eqlMemberConnEntry 8}  

eqlMemberRxData  OBJECT-TYPE      
    SYNTAX          Counter64
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "The count of data octets received by this member.The value is reset to zero upon reboot."  
    ::=   {eqlMemberConnEntry 9}  

--**************************************************************************   

eqlMemberRAIDTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberRAIDEntry
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     " EqualLogic-Dynamic Member RAID Information Table."  
    ::=  {  eqlmemberObjects 13 }    

eqlMemberRAIDEntry OBJECT-TYPE      
    SYNTAX          EqlMemberRAIDEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "List of attributes used to convey the RAID status information on the array.
                    "
    AUGMENTS        { eqlMemberIdentificationEntry }
    ::=    { eqlMemberRAIDTable 1 }
    
EqlMemberRAIDEntry ::= 
    SEQUENCE {     
        eqlMemberRaidStatus           INTEGER,
        eqlMemberRaidPercentage       Integer32,
        eqlMemberLostRaidBlocks       INTEGER,
        eqlMemberNumberOfSpares       Integer32
    }

eqlMemberRaidStatus OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        ok              (1),
                        degraded        (2),
                        verifying       (3),
                        reconstructing  (4),
                        failed          (5),
                        catastrophicLoss(6),
                        expanding       (7),
                        mirroring		(8)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies the status of the raid subsystem. 
                     This is a composite of the view of the underlying subsystems.
                     Status ok means things are ok.
                     Status degraded means we are in a degraded state, possible because no spare is available.
                     Status verifying means a verify pass is run, and a percent complete is available.
                     Status reconstructing means we are reconstructing a drive and a percent complete is available.
                     Status failed means we had a failure while we were up, possibly a drive failed and we have
                        no spare.
                     Status catastrophicLoss may not be visible to the user since the member may not be able to 
                        bootup. It means we need administrator intervention to correct the problem.
                     Status mirroring means we are mirroring a bad drive onto a spare drive.
                     "
    ::=   {eqlMemberRAIDEntry 1 }

eqlMemberRaidPercentage  OBJECT-TYPE      
    SYNTAX          Integer32 (0..100)
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies the percentage complete when the eqlMemberStatusRaidStatus is verifying
                        or reconstructing."
    ::=   {eqlMemberRAIDEntry 2 }

eqlMemberLostRaidBlocks  OBJECT-TYPE      
    SYNTAX          INTEGER     {
                        true  (1),
                        false (2)
    }     
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "This field specifies whether we have lost blocks in the raid array which
                        the user may want to clear."
    ::=   {eqlMemberRAIDEntry 3 }

eqlMemberNumberOfSpares   OBJECT-TYPE      
    SYNTAX          Integer32     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the number disks allocated as spares in an array."  
    ::=   { eqlMemberRAIDEntry 4}         
    

--**************************************************************************   

eqlMemberPSGMapTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberPSGMapEntry
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     " EqualLogic-Dynamic Member PSG Map Table."  
    ::=  {  eqlmemberObjects 14 }    

eqlMemberPSGMapEntry OBJECT-TYPE      
    SYNTAX          EqlMemberPSGMapEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "List of attributes used to convey the PSS ID information of this array in the group map.
                    "
    AUGMENTS        { eqlMemberIdentificationEntry }
    ::=    { eqlMemberPSGMapTable 1 }
    
EqlMemberPSGMapEntry ::= 
    SEQUENCE {     
        eqlMemberShortId              Integer32
    }

eqlMemberShortId  OBJECT-TYPE      
    SYNTAX          Integer32
    MAX-ACCESS      read-write      
    STATUS          current      
    DESCRIPTION     "This field specifies PSS ID of the member in the context of the leader of the PSG." 
    ::=   {eqlMemberPSGMapEntry 1 }

--  SNMP TRAPS
--
-- 
--
--

eqlMemberEnclosureMgmtNotifications OBJECT IDENTIFIER ::= {eqlmemberNotifications 1}

-- traps related to enclosure sensors

eqlMemberHealthTempSensorHighThreshold NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthDetailsTemperatureName,
        eqlMemberHealthDetailsTemperatureValue,                 
        eqlMemberHealthDetailsTemperatureCurrentState, 
        eqlMemberHealthDetailsTemperatureHighCriticalThreshold,
        eqlMemberHealthDetailsTemperatureHighWarningThreshold
   }
   STATUS current
   DESCRIPTION
      "Sent when a high threshold has been exceeded for any of the 
      enclosure temp sensors. The implementation of this trap should 
      not send more than one notification of this type for a sensor 
      in any 10 minute time span"
::= { eqlMemberEnclosureMgmtNotifications 1 }

eqlMemberHealthTempSensorLowThreshold NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthDetailsTemperatureName,
        eqlMemberHealthDetailsTemperatureValue,                 
        eqlMemberHealthDetailsTemperatureCurrentState, 
        eqlMemberHealthDetailsTemperatureLowCriticalThreshold,
        eqlMemberHealthDetailsTemperatureLowWarningThreshold
   }
   STATUS current
   DESCRIPTION
      "Sent when a low threshold has been exceeded for any of the 
      enclosure temp sensors. The implementation of this trap should 
      not send more than one notification of this type for a sensor 
      in any 10 minute time span"
::= { eqlMemberEnclosureMgmtNotifications 2 }

eqlMemberHealthFanSpeedHighThreshold NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthDetailsFanName,                  
        eqlMemberHealthDetailsFanValue,                 
        eqlMemberHealthDetailsFanCurrentState,          
        eqlMemberHealthDetailsFanHighCriticalThreshold,
        eqlMemberHealthDetailsFanHighWarningThreshold
   }
   STATUS current
   DESCRIPTION
      "Sent when a high threshold has been exceeded for any of the 
      enclosure fan speed sensors. The implementation of this trap should 
      not send more than one notification of this type for a sensor 
      in any 10 minute time span"
::= { eqlMemberEnclosureMgmtNotifications 3 }

eqlMemberHealthFanSpeedLowThreshold NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthDetailsFanName,                  
        eqlMemberHealthDetailsFanValue,                 
        eqlMemberHealthDetailsFanCurrentState,          
        eqlMemberHealthDetailsFanLowCriticalThreshold,
        eqlMemberHealthDetailsFanLowWarningThreshold
   }
   STATUS current
   DESCRIPTION
      "Sent when a low threshold has been exceeded for any of the 
      enclosure fan speed sensors. The implementation of this trap should 
      not send more than one notification of this type for a sensor 
      in any 10 minute time span"
::= { eqlMemberEnclosureMgmtNotifications 4 }

eqlMemberHealthPowerSupplyFanFailure NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthDetailsPowerSupplyName,
        eqlMemberHealthDetailsPowerSupplyFanStatus
   }
   STATUS current
   DESCRIPTION
      "Sent when a failure has been detected on any of the power   
      supply fan speed sensors. The implementation of this trap should 
      not send more than one notification of this type for a sensor 
      in any 10 minute time span"
::= { eqlMemberEnclosureMgmtNotifications 5 }


eqlMemberHealthPowerSupplyFailure NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthDetailsPowerSupplyName,
        eqlMemberHealthDetailsPowerSupplyCurrentState
   }
   STATUS current
   DESCRIPTION
      "Sent when a failure has been detected on any of the power   
      supplys in the PSA. The implementation of this trap should 
      not send more than one notification of this type for a sensor 
      in any 10 minute time span"
::= { eqlMemberEnclosureMgmtNotifications 6 }

eqlMemberHealthRAIDSetDoubleFaulted NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
      "Sent when the raid set has been detected to have double faulted. When
       this occurs, the array will not come up. 
       User intervention is required to correct the issue"
::= { eqlMemberEnclosureMgmtNotifications 7 }

eqlMemberHealthBothFanTraysRemoved NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
      "Sent when both of the fan trays have been removed from the 
      chassis. This results in overheating" 
::= { eqlMemberEnclosureMgmtNotifications 8 }

eqlMemberHealthRAIDlostCache NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
      "Sent because the RAID driver is unable to recover the 
       battery-backed cache.  The disk array will not initialize 
      without user intervention.  See the Handling Lost Data section 
      in the Group Administration manual for more information."
::= { eqlMemberEnclosureMgmtNotifications 9 }

eqlMemberHealthFanTrayRemoved NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
      "Sent when one of the fan trays have been removed from the 
      chassis. This results in overheating" 
::= { eqlMemberEnclosureMgmtNotifications 10 }

eqlMemberHealthRAIDSetLostBlkTableFull NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
      "Sent when the RAID lost block table is full. 
       This usually is an indication of lost data."
::= { eqlMemberEnclosureMgmtNotifications 11 }

eqlMemberHealthBatteryLessThan72Hours NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
      "Sent when the battery has insufficient charge to survive
       a 72 hour power outage."
::= { eqlMemberEnclosureMgmtNotifications 12 }

eqlMemberHealthRaidOrphanCache NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when the RAID driver finds data in the battery-backed cache with no matching disk array.  Initialization will not proceed without user intervention. Call EqualLogic Support for assistance."
::= { eqlMemberEnclosureMgmtNotifications 13 }

eqlMemberHealthRaidMultipleRaidSets NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when multiple valid RAIDsets were found.  The array cannot choose which one to initialize.  Remove all but one valid RAIDset and power-cycle the array."
::= { eqlMemberEnclosureMgmtNotifications 14 }

eqlMemberHealthNVRAMBatteryFailed NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when the NVRAM battery fails . The NVRAM can no longer be used."
::= { eqlMemberEnclosureMgmtNotifications 15 }


eqlMemberHealthhwComponentFailedCrit NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when a critical hardware component has failed."
::= { eqlMemberEnclosureMgmtNotifications 16 }


eqlMemberHealthincompatControlModule NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when An incorrect control module has been inserted into the chassis."
::= { eqlMemberEnclosureMgmtNotifications 17 }


eqlMemberHealthlowAmbientTemp NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when one or more sensors is below its critical temperature range."
::= { eqlMemberEnclosureMgmtNotifications 18 }


eqlMemberHealthopsPanelFailure NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when Ops Panel is missing or broken."
::= { eqlMemberEnclosureMgmtNotifications 19 }


eqlMemberHealthemmLinkFailure NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when enclosure management services are unavailable."
::= { eqlMemberEnclosureMgmtNotifications 20 }


eqlMemberHealthhighBatteryTemperature NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when the cache battery temperature exceeds upper limit; battery charger is disabled."
::= { eqlMemberEnclosureMgmtNotifications 21 }

eqlMemberHealthenclosureOpenPerm NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when the enclosure is open for a long time."
::= { eqlMemberEnclosureMgmtNotifications 22 }

eqlMemberHealthsumoChannelBothMissing NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when both the Sumo Channel cards go missing."
::= { eqlMemberEnclosureMgmtNotifications 23 }

eqlMemberHealthsumoEIPFailureCOndition NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when EIP failed in Sumo."
::= { eqlMemberEnclosureMgmtNotifications 24 }

eqlMemberHealthsumoChannelBothFailed NOTIFICATION-TYPE
   OBJECTS{
        eqlMemberHealthStatus
   }
   STATUS current
   DESCRIPTION
   "Sent when both the Sumo Channel cards go into failed state."
::= { eqlMemberEnclosureMgmtNotifications 25 }


--**************************************************************************   

eqlDriveGroupTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlDriveGroupEntry      
    MAX-ACCESS    not-accessible      
    STATUS        current      
    DESCRIPTION   "EqualLogic-Persistent Storage Drive Group Table."  
    ::=  {  eqlmemberObjects 15 }    

eqlDriveGroupEntry OBJECT-TYPE      
    SYNTAX        EqlDriveGroupEntry      
    MAX-ACCESS    not-accessible      
    STATUS        current      
    DESCRIPTION   "An entry (row) containing drive group configuration"
    INDEX  { eqlGroupId, eqlMemberIndex, eqlDriveGroupIndex }    
    ::=    { eqlDriveGroupTable 1 }
    
EqlDriveGroupEntry ::= 
    SEQUENCE {     
        eqlDriveGroupIndex                  Unsigned32,
		eqlDriveGroupStoragePoolIndex       Unsigned32,
		eqlDriveGroupRAIDPolicy             INTEGER
    }

eqlDriveGroupIndex OBJECT-TYPE      
    SYNTAX          Unsigned32
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "This field unique identifies a RAID Group within a member."  
    ::=  {  eqlDriveGroupEntry 1 }  
    
eqlDriveGroupStoragePoolIndex OBJECT-TYPE      
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "This field unique identifies a Storage Pool."
    DEFVAL          { 1 }
    ::=  {  eqlDriveGroupEntry 2 }  
    
eqlDriveGroupRAIDPolicy OBJECT-TYPE
    SYNTAX INTEGER {
	unconfigured(0),
	raid50(1),
	raid10(2),
	raid5(3),
	raid50-nospares(4),
	raid10-nospares(5),
	raid5-nospares(6),
	raid6(7),
	raid6-nospares(8)
    }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "The RAID policy of this drive group:
                        0 - unconfigured
                        1 - raid50
                        2 - raid10
                        3 - raid5
                        4 - raid50 with minimal spares
                        5 - raid10 with minimal spares
                        6 - raid5 with minimal spares
                        7 - raid6
                        8 - raid6 with minimal spares"
    DEFVAL         { unconfigured }
    ::=  {  eqlDriveGroupEntry 3 }

--**************************************************************************   

eqlDriveGroupOpsTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlDriveGroupOpsEntry      
    MAX-ACCESS    not-accessible      
    STATUS        current      
    DESCRIPTION   "EqualLogic-Persistent Storage Drive Group Operations Table."  
    ::=  {  eqlmemberObjects 16 }    

eqlDriveGroupOpsEntry OBJECT-TYPE      
    SYNTAX        EqlDriveGroupOpsEntry      
    MAX-ACCESS    not-accessible      
    STATUS        current      
    DESCRIPTION   "An entry (row) containing drive group configuration"
    INDEX  { eqlGroupId, eqlMemberIndex, eqlDriveGroupIndex, eqlDriveGroupOpsIndex }    
    ::=    { eqlDriveGroupOpsTable 1 }
    
EqlDriveGroupOpsEntry ::= 
    SEQUENCE {     
        eqlDriveGroupOpsIndex                       Unsigned32,
        eqlDriveGroupOpsRowStatus                   RowStatus,
	eqlDriveGroupOpsOperation                   INTEGER,
	eqlDriveGroupOpsExec                        INTEGER,
	eqlDriveGroupOpsStartTime                   TimeTicks,
	eqlDriveGroupOpsStoragePoolSourceIndex      Unsigned32,
	eqlDriveGroupOpsStoragePoolDestinationIndex Unsigned32,
	eqlDriveGroupOpsVolBalCommandIndex          Unsigned32,
	eqlDriveGroupOpsVolBalCommandiscsiLocalMemberId Unsigned32
    }

eqlDriveGroupOpsIndex OBJECT-TYPE      
    SYNTAX          Unsigned32
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "This field unique identifies an operation withing a Drive Group."
    ::=  {  eqlDriveGroupOpsEntry 1 }  
    
eqlDriveGroupOpsRowStatus OBJECT-TYPE      
    SYNTAX          RowStatus    
    MAX-ACCESS      read-create      
    STATUS          current      
    DESCRIPTION     "This field is used indicate the status of this entry."  
    ::= { eqlDriveGroupOpsEntry 2 }  

eqlDriveGroupOpsOperation OBJECT-TYPE
    SYNTAX INTEGER {
	none(0),
	movePool(1),
	vacate(2)
    }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "The current operation for this drive group
                        0 - no operation
                        1 - move Pool
			2 - vacate"
    ::=  {  eqlDriveGroupOpsEntry 3 }

eqlDriveGroupOpsExec OBJECT-TYPE
    SYNTAX INTEGER {
	none(0),
	cancel(1)
    }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "The action to preform on this operation
                        0 - no operation
                        1 - cancel"
    ::=  {  eqlDriveGroupOpsEntry 4 }

eqlDriveGroupOpsStartTime OBJECT-TYPE      
    SYNTAX          TimeTicks    
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "This field contains the time of the start of the operation."
    ::=  {  eqlDriveGroupOpsEntry 5 }
 
eqlDriveGroupOpsStoragePoolSourceIndex OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "This field unique identifies the source Storage Pool."
    DEFVAL          { 1 }
    ::=  {  eqlDriveGroupOpsEntry 6 }
    
eqlDriveGroupOpsStoragePoolDestinationIndex OBJECT-TYPE      
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "This field unique identifies the destination Storage Pool."
    DEFVAL          { 1 }
    ::=  {  eqlDriveGroupOpsEntry 7 }  

eqlDriveGroupOpsVolBalCommandIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "2nd Part of Index for row in eqliscsiVolBalCommandTable"
    ::=  {  eqlDriveGroupOpsEntry 8 }

eqlDriveGroupOpsVolBalCommandiscsiLocalMemberId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "3rd Part of Index for row in eqliscsiVolBalCommandTable"
    ::=  {  eqlDriveGroupOpsEntry 9 }

--******************************************************************

eqlAdminAccountMemberTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF EqlAdminAccountMemberEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "EqualLogic-Dynamic table indicating the access an administrator
                     has to a member."
    ::= { eqlmemberObjects 17 }

eqlAdminAccountMemberEntry OBJECT-TYPE
    SYNTAX          EqlAdminAccountMemberEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "An entry (row) containing the access privilege."
    INDEX           {  eqlGroupId, eqlStorageGroupAdminAccountIndex, eqlMemberIndex }
    ::=   { eqlAdminAccountMemberTable 1 }

EqlAdminAccountMemberEntry ::=
    SEQUENCE {
        eqlAdminAccountMemberAccess         INTEGER
    }

eqlAdminAccountMemberAccess OBJECT-TYPE
    SYNTAX          INTEGER {
                         read-only (1),
                         read-write (2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "The administrative permission to a member."
    ::=   { eqlAdminAccountMemberEntry 1 }

--******************************************************************

eqlDriveGroupOpsStatusTable OBJECT-TYPE      
    SYNTAX          SEQUENCE OF EqlDriveGroupOpsStatusEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "EqualLogic-Dynamic Storage Volume Operations Status Table."
    ::= { eqlmemberObjects 18 }

eqlDriveGroupOpsStatusEntry OBJECT-TYPE      
    SYNTAX          EqlDriveGroupOpsStatusEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "An entry (row) containing status for volume operations."
    AUGMENTS        { eqlDriveGroupOpsEntry }

    ::=   { eqlDriveGroupOpsStatusTable 1}     

EqlDriveGroupOpsStatusEntry ::= 
    SEQUENCE { 
	eqlDriveGroupOpsStatusCompletePct            Unsigned32
    }

eqlDriveGroupOpsStatusCompletePct  OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only      
    STATUS          current      
    DESCRIPTION     "The percentage complete an ongoing move or bind operation is"
    ::=   {eqlDriveGroupOpsStatusEntry 1 }

--******************************************************************

eqlMemberOpsTable OBJECT-TYPE      
    SYNTAX          SEQUENCE OF EqlMemberOpsEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION   "EqualLogic-Persistent Member Operations Table."  
    ::= { eqlmemberObjects 19 }

eqlMemberOpsEntry OBJECT-TYPE      
    SYNTAX          EqlMemberOpsEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "An entry (row) containing Member operations configuration."
    INDEX	{ eqlGroupId, eqlMemberIndex, eqlMemberOpsIndex }
    ::=   { eqlMemberOpsTable 1}     

EqlMemberOpsEntry ::= 
    SEQUENCE { 
	eqlMemberOpsIndex		           	Unsigned32,
	eqlMemberOpsRowStatus				RowStatus,
	eqlMemberOpsOperation				INTEGER,
	eqlMemberOpsExec					INTEGER,
	eqlMemberOpsCompletePct            	Integer32,
	eqlMemberOpsOperationArg			DisplayString,
	eqlMemberOpsOperationStatus			INTEGER,
	eqlMemberOpsStartTime 				TimeTicks
    }

eqlMemberOpsIndex  OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "The field uniquely identifies an operation within a Member."
    ::=   {eqlMemberOpsEntry 1 }

eqlMemberOpsRowStatus OBJECT-TYPE      
    SYNTAX          RowStatus    
    MAX-ACCESS      read-create      
    STATUS          current      
    DESCRIPTION     "This field is used indicate the status of this entry."  
    ::= { eqlMemberOpsEntry 2 }  

eqlMemberOpsOperation OBJECT-TYPE
    SYNTAX INTEGER {
	none(0),
	diagnose(3),
	update(4),
	restart(5),
	shutdown(6),
	delete-pending(7)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The current operation for this Member
                        0 - no operation
                        3 - get diagnostics
                        4 - firmware update
                        5 - restart array
                        6 - shutdown array
			"
    DEFVAL          { none } 
    ::=  {  eqlMemberOpsEntry 3 }

eqlMemberOpsExec OBJECT-TYPE
    SYNTAX INTEGER {
	none(0),
	cancel(1),
	failed(2)
    }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "The action to preform on this operation
                        0 - no operation
                        1 - cancel"
    DEFVAL          { none } 
    ::=  {  eqlMemberOpsEntry 4 }

eqlMemberOpsCompletePct  OBJECT-TYPE
    SYNTAX          Integer32 (0..100)
    MAX-ACCESS      read-create      
    STATUS          current      
    DESCRIPTION     "The percentage complete an ongoing diag operation is"
    ::=  {  eqlMemberOpsEntry 5 }

eqlMemberOpsOperationArg       OBJECT-TYPE      
    SYNTAX          DisplayString (SIZE (0..255))     
    MAX-ACCESS      read-create     
    STATUS          current      
    DESCRIPTION     "This field specifies the argument for the operation.
					 There is no default."  
    ::=  {  eqlMemberOpsEntry 6 }

eqlMemberOpsOperationStatus      OBJECT-TYPE      
    SYNTAX               INTEGER     {
                           success(0),
                           failure(1)
                         }     
    MAX-ACCESS      read-create      
    STATUS          current      
    DESCRIPTION     " The status of the operation."
    DEFVAL          { success } 
    ::=  {  eqlMemberOpsEntry 7 }

eqlMemberOpsStartTime OBJECT-TYPE      
    SYNTAX          TimeTicks    
    MAX-ACCESS      read-write
    STATUS          current      
    DESCRIPTION     "This field contains the time of the start of the operation."
    ::=  {  eqlMemberOpsEntry 8 }
    

--**************************************************************************   

eqlMemberHWComponentTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberHWComponentEntry
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "EqualLogic-Dynamic Member Hardware component table. This is the general place holder for all single hardware components on the member. If there is more than one such hardware component(controllers, channel cards), they go into their own table. Otherwise they end up in this table."                      
    ::=  {  eqlmemberObjects 20 }

eqlMemberHWComponentEntry OBJECT-TYPE      
    SYNTAX          EqlMemberHWComponentEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "An entry (row) containing member health detailed fan info"
    INDEX  { eqlGroupId, eqlMemberIndex, eqlMemberHWComponentIndex }    
    ::=    { eqlMemberHWComponentTable 1 }
    
EqlMemberHWComponentEntry ::= 
    SEQUENCE {     
        eqlMemberHWComponentIndex                  INTEGER,
        eqlMemberHWComponentName                   DisplayString,
        eqlMemberHWComponentSerialNumber           DisplayString,
        eqlMemberHWComponentFirmwareRev            DisplayString,
        eqlMemberHWComponentStatus                 INTEGER
        }

eqlMemberHWComponentIndex  OBJECT-TYPE
    SYNTAX          INTEGER {
                     eip(1)
                     }
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "A unique integer that identifies the fan that the
                     corresponding entry refers to
                     "
    ::=   { eqlMemberHWComponentEntry 1 }

eqlMemberHWComponentName   OBJECT-TYPE
    SYNTAX          DisplayString (SIZE (0..64))    
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the name of the component."
    ::=   { eqlMemberHWComponentEntry 2 }

eqlMemberHWComponentSerialNumber   OBJECT-TYPE
   SYNTAX          DisplayString (SIZE (0..64))    
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the serial number of the component."
    ::=   { eqlMemberHWComponentEntry 3 }

eqlMemberHWComponentFirmwareRev   OBJECT-TYPE
   SYNTAX          DisplayString (SIZE (0..64))    
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the firmware revision of the component."
    ::=   { eqlMemberHWComponentEntry 4 }

eqlMemberHWComponentStatus   OBJECT-TYPE
   SYNTAX           INTEGER {
                    unknown(0),
                    not-present(1),
                    failed(2),
                    good(3)
                    }
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the status of the component."
    DEFVAL          {unknown}
    ::=   { eqlMemberHWComponentEntry 5 }

--**************************************************************************   

eqlMemberDynamicInfoTable OBJECT-TYPE      
    SYNTAX  SEQUENCE OF EqlMemberDynamicInfoEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "EqualLogic-Dynamic Member Info Table"  
    ::=  {  eqlmemberObjects 21 }    

eqlMemberDynamicInfoEntry OBJECT-TYPE      
    SYNTAX          EqlMemberDynamicInfoEntry      
    MAX-ACCESS      not-accessible      
    STATUS          current      
    DESCRIPTION     "An entry (row) containing dynamic member info "
    INDEX  { eqlGroupId, eqlMemberIndex }    
    ::=    { eqlMemberDynamicInfoTable 1 }
    
EqlMemberDynamicInfoEntry ::= 
    SEQUENCE {     
 		eqlMemberDynamicInfoPendingUpdateVersion			DisplayString,
 		eqlMemberDynamicInfoIsRestartRunning				INTEGER
        }

eqlMemberDynamicInfoPendingUpdateVersion       OBJECT-TYPE      
    SYNTAX          DisplayString (SIZE (0..255))     
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the string to be read.
    				 To be used to send the member's pending update version.
					 "  
    DEFVAL          {""}
    ::=  {  eqlMemberDynamicInfoEntry 1 }

eqlMemberDynamicInfoIsRestartRunning   OBJECT-TYPE
   SYNTAX           INTEGER {
                    not-running(0),
                    running(1)
                    }
    MAX-ACCESS      read-only     
    STATUS          current      
    DESCRIPTION     "This field specifies the status of the reboot shell script."
    DEFVAL          {not-running}
    ::=   { eqlMemberDynamicInfoEntry 2 }
    
END
