DECRU-BASE-MIB DEFINITIONS ::= BEGIN
    IMPORTS
	enterprises,
        MODULE-IDENTITY	   FROM SNMPv2-SMI
	eventIndex         FROM RMON-MIB;
    
    decruBaseMibModule MODULE-IDENTITY
	LAST-UPDATED "200702281619Z"
	ORGANIZATION "Decru Inc."
        CONTACT-INFO "Mohit Kumar, mohitk@decru.com"
	DESCRIPTION 
            "The decru base mib module"
        REVISION "200702281619Z"
	DESCRIPTION 
            "First revision, to transition to SMIv2"
	::= { enterprises 12962 4 1 1 }

-- Top level registrations

   decru OBJECT IDENTIFIER ::= { enterprises 12962 }
     
   decruAgent		OBJECT IDENTIFIER ::= { decru 1 }
   decruProduct         OBJECT IDENTIFIER ::= { decru 2 }
   decruTraps		OBJECT IDENTIFIER ::= { decru 3 } 
   decruConformance     OBJECT IDENTIFIER ::= { decru 4 }
    
    -- Decru MIB objects
   dcrSystem OBJECT IDENTIFIER ::= { decruAgent 1 }
   dcrChassis OBJECT IDENTIFIER ::= { decruAgent 2 }
   dcrCrypto OBJECT IDENTIFIER ::= { decruAgent 3 }
   dcrWatchdog OBJECT IDENTIFIER ::= { decruAgent 4 }
    
    -- Decru traps
    dcrSystemTraps OBJECT IDENTIFIER ::= { decruTraps 1 }
    dcrSystemTrapPrefix OBJECT IDENTIFIER ::= { dcrSystemTraps 0 }
    
    dcrChassisTraps OBJECT IDENTIFIER ::= { decruTraps 2 }
    dcrChassisTrapPrefix OBJECT IDENTIFIER ::= { dcrChassisTraps 0 }

    -- Decru Conformance 
    decruModules OBJECT IDENTIFIER ::= { decruConformance 1 }
    decruCompliances OBJECT IDENTIFIER ::= { decruConformance 2 }
    decruGroups  OBJECT IDENTIFIER ::= { decruConformance 3 }
    decruSystemGroups OBJECT IDENTIFIER ::= { decruGroups 1 }
    decruChassisGroups OBJECT IDENTIFIER ::= { decruGroups 2 }
    decruCryptoGroups OBJECT IDENTIFIER ::= { decruGroups 3 }
    decruWatchdogGroups OBJECT IDENTIFIER ::= { decruGroups 4 }
END

DECRU-SYSTEM-MIB DEFINITIONS ::= BEGIN
    IMPORTS
        MODULE-IDENTITY, 
        Integer32, 
        TimeTicks, 
        NOTIFICATION-TYPE, 
        OBJECT-TYPE           FROM SNMPv2-SMI
        OBJECT-GROUP, 
        NOTIFICATION-GROUP, 
        MODULE-COMPLIANCE     FROM SNMPv2-CONF
	decruModules, 
        decruSystemGroups, 
        decruCompliances, 
        dcrSystem, 
        dcrSystemTrapPrefix   FROM DECRU-BASE-MIB
        TruthValue            FROM SNMPv2-TC;
    
    decruSystemMibModule MODULE-IDENTITY
	LAST-UPDATED "200702281619Z"
	ORGANIZATION "Decru Inc."
        CONTACT-INFO "Mohit Kumar, mohitk@decru.com"
	DESCRIPTION 
            "The System mib module for Datafort"
        REVISION "200702281619Z"
	DESCRIPTION 
            "First revision, to transition to SMIv2"
	::= { decruModules 2 }

-- General Info
    dcrSysInfo OBJECT IDENTIFIER ::= { dcrSystem 1 }

    dcrSysProductType OBJECT-TYPE 
	SYNTAX OCTET STRING
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Type of product. It is either 'nas' or 'san' or 'lkm'."
	::= { dcrSysInfo 1 }	

   dcrSysProductName OBJECT-TYPE 
	SYNTAX OCTET STRING
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Name of product. (example: 'E440', 'E510', 'FC1020')"
	::= { dcrSysInfo 2 }	
   
   dcrSysVersion OBJECT-TYPE 
	SYNTAX OCTET STRING
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "System software version. (example: '1.0', '1.5')"
	::= { dcrSysInfo 3 }	
   
   dcrSysBuildTag OBJECT-TYPE 
	SYNTAX OCTET STRING
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "System software build version. (example: 'SAN_V2201_08')"
	::= { dcrSysInfo 4 }	
   
   dcrSysBuildType OBJECT-TYPE 
	SYNTAX OCTET STRING
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "System software build type. (example: 'release')"
	::= { dcrSysInfo 5 }	
   
   dcrSysSerialNumber OBJECT-TYPE 
	SYNTAX OCTET STRING
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Product Serial Number. (example: '010203DF00777')"
	::= { dcrSysInfo 6 }	
   
   dcrSysInitialized OBJECT-TYPE 
	SYNTAX INTEGER {
	  notInitialized(1),
	  unknown(2),
	  initialized(3) 
	}
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "System initialization status. The value is 'notInitialized(1)
	     before Setup Wizard is compeleted and becomes 'initialized(3)'
	     after Setup Wizard is completed. When DataFort is under 
	     extreme high load, 'unknown(2)' is returned."
	::= { dcrSysInfo 7 }	

    DcrLicenseEntry ::=
      SEQUENCE {
        dcrLicenseType INTEGER,
	dcrLicenseNumber OCTET STRING,
	dcrLicenseExpirationDate OCTET STRING,
	dcrLicenseHoursLeft Integer32
      }

    dcrLicenseTable OBJECT-TYPE
	SYNTAX SEQUENCE OF DcrLicenseEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "A list of installed licenses entries."
	::= { dcrSysInfo 8 }

    dcrLicenseEntry OBJECT-TYPE
	SYNTAX DcrLicenseEntry
	MAX-ACCESS  not-accessible
	STATUS current
        DESCRIPTION
            "A license entry giving the details of a particular license."
	INDEX { dcrLicenseType }
	::= { dcrLicenseTable 1 }

    dcrLicenseType OBJECT-TYPE
        SYNTAX INTEGER {
	  cluster(1),
	  tape(2),
	  disk(3),
	  ipsec(4),
	  hashImport(5),
	  dha(6)
	  }
	MAX-ACCESS read-only
	STATUS current
        DESCRIPTION
            "A unique value identifying the feature supported by the license."
	::= { dcrLicenseEntry 1 }
    
    dcrLicenseNumber OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION  
	    "License number. 
             Valid only when dcrLicenseStatus is 'installed'.
	    (example: 'ABCD-0123-EF01-4567-890A')"
	::= { dcrLicenseEntry 2 }
   
   dcrLicenseExpirationDate OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION  
	    "License expiration date. 
             Valid only when dcrLicenseStatus is 'installed'.
	    (example: '2004-01-01')"
	::= { dcrLicenseEntry 3 }
   
   dcrLicenseHoursLeft OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION  
	    "Number of hours for which this license is valid.
	     Valid only when dcrLicenseStatus is 'installed'."
	::= { dcrLicenseEntry 4 }

-- System status
    dcrSysStatus OBJECT IDENTIFIER ::= { dcrSystem 2 }

-- Traffic
    DcrSysTrafficMeterEntry ::= 
      SEQUENCE {
        dcrSysTrafficMeterType INTEGER,
	dcrSysTrafficMeter Integer32,
	dcrSysTrafficMeterPeak Integer32,
	dcrSysTrafficMeterPeakTime TimeTicks
      }

    dcrSysTrafficMeterTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrSysTrafficMeterEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of traffic meters"
	::= { dcrSysStatus 1 }	

    dcrSysTrafficMeterEntry OBJECT-TYPE
	SYNTAX DcrSysTrafficMeterEntry
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "An entry containing information about a traffic meter."
	INDEX { dcrSysTrafficMeterType }
	::= { dcrSysTrafficMeterTable 1 }

    dcrSysTrafficMeterType OBJECT-TYPE
        SYNTAX INTEGER {
	  readBytesPerSec(1),
	  writeBytesPerSec(2),
	  opsPerSec(3),
	  cifs-readBytesPerSec(4),
	  cifs-writeBytesPerSec(5),
	  cifs-opsPerSec(6),
	  nfs-readBytesPerSec(7),
	  nfs-writeBytesPerSec(8),
	  nfs-opsPerSec(9)
	  }
        MAX-ACCESS read-only 
        STATUS current
        DESCRIPTION  
	    "Traffic meter type as listed in the enumerations above."
	::= { dcrSysTrafficMeterEntry 1 }

    dcrSysTrafficMeter OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION  
	    "Traffic meter value for the corresponding traffic type 
             as specified by dcrSysTrafficMeterType."
	::= { dcrSysTrafficMeterEntry 2 }

    dcrSysTrafficMeterPeak OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION 
            "Peak traffic meter value since the system started for the 
             corresponding traffic type as specified by dcrSysTrafficMeterType."
        ::= { dcrSysTrafficMeterEntry 3 }

    dcrSysTrafficMeterPeakTime OBJECT-TYPE
        SYNTAX TimeTicks
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION  
            "Number of hundredths of seconds since the peak traffic meter 
	     value occurred for the corresponding traffic type as specified 
             by dcrSysTrafficMeterType."
        ::= { dcrSysTrafficMeterEntry 4 }

-- Config db status
    dcrCfgDbStatus OBJECT IDENTIFIER ::= { dcrSysStatus 2 }

    dcrCfgDbSize OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Size of configuration database in bytes."
	::= { dcrCfgDbStatus 1 }
   
   dcrCfgDbUsed OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Size of used space inside configuration database in bytes."
	::= { dcrCfgDbStatus 2 }
   
   dcrCfgDbFree OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Perecentage of free space inside configuration database."
	::= { dcrCfgDbStatus 3 }

-- Rekey status
    dcrRekeyStatus OBJECT IDENTIFIER ::= { dcrSysStatus 3 }

    dcrRekeyIsRekeying OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "The flag to indicate whether system is rekeying."
	::= { dcrRekeyStatus 1 }
   
   dcrRekeyProgress OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Percentage of rekey progress. It is -1, if system is not rekeying."
	::= { dcrRekeyStatus 2 }
   
   dcrRekeyError OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Error code of the last rekeying. It is 0, if no error occurred."
	::= { dcrRekeyStatus 3 }

-- Network status
    dcrNetworkStatus OBJECT IDENTIFIER ::= { dcrSysStatus 4 }

    dcrNetIpCollision OBJECT IDENTIFIER ::= { dcrNetworkStatus 1 }

    dcrNetIpColTime OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Number of seconds past since the last IP collision
	    was detected."
	::= { dcrNetIpCollision 1 }
   
   dcrNetIpColIp OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "IP address of which collision is detected."
	::= { dcrNetIpCollision 2 }
   
   dcrNetIpColMac OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "MAC address of which collision is detected."
	::= { dcrNetIpCollision 3 }

-- Cluster status
    dcrClusterStatus OBJECT IDENTIFIER ::= { dcrSysStatus 5 }

    dcrClusterState OBJECT-TYPE
	SYNTAX INTEGER {
          unknown(1),
	  notClustered(2),
	  clustered(3),
	  failover(4)
        }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Cluster state. This entry exists only for NAS products."
	::= { dcrClusterStatus 1 }

-- LKM status
    dcrLKMStatus OBJECT IDENTIFIER ::= { dcrSysStatus 6 }

-- LKM key count
    dcrLKMKeyCount OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Count of LKM keys store on appliance (LKM only)."
	::= { dcrLKMStatus 1 }

-- LKM Raid status
    dcrRaidStatus OBJECT IDENTIFIER ::= { dcrLKMStatus 2 }

    dcrRaidState OBJECT-TYPE
	SYNTAX INTEGER {
	  offline(1),
	  optimal(2),
	  degraded(3)
        }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Raid state in LKM Appliance. Offline state implies
             both the disks are in a failed state. Optimal state
             implies both the disks are in online state. Degraded
             state implies only one of the two disks is in a 
             failed state."
	::= { dcrRaidStatus 1 }

-- Disk table
    DcrRaidDiskEntry ::=
      SEQUENCE {
        dcrRaidDiskIndex Integer32,
	dcrRaidDiskDescr OCTET STRING,
	dcrRaidDiskStatus INTEGER
      }

    dcrRaidDiskTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrRaidDiskEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains a list of the Disks comprising the Raid"
	::= { dcrRaidStatus 2 }	

    dcrRaidDiskEntry OBJECT-TYPE
	SYNTAX DcrRaidDiskEntry
	MAX-ACCESS  not-accessible
	STATUS current
        DESCRIPTION
            "An entry containing the information of a Disk in the Raid."
	INDEX { dcrRaidDiskIndex }
	::= { dcrRaidDiskTable 1 }

    dcrRaidDiskIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS read-only
	STATUS current	
        DESCRIPTION
            "A unique value identifying the number of the Disk in the Raid,
             one identifying the Top most Disk"
	::= { dcrRaidDiskEntry 1 }
        
    dcrRaidDiskDescr OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION  
	    "The position of the Disk in the Raid (Top or Bottom)"
	::= { dcrRaidDiskEntry 2 }

    dcrRaidDiskStatus OBJECT-TYPE
	SYNTAX  INTEGER {unknown(1),failed(2),online(3),rebuilding(4)}
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "The status of the Disk in the Raid as listed in the 
             enumerations above."
	::= { dcrRaidDiskEntry 3 }

-- LKM Raid Product
    dcrRaidProduct OBJECT IDENTIFIER ::= { dcrRaidStatus 3 }

    dcrRaidBiosVer OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "MegaRaid Bios Version"
	::= { dcrRaidProduct 1 }

    dcrRaidFwVer OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "MegaRaid Firmware Version"
	::= { dcrRaidProduct 2 }

-- program table
    DcrProgEntry ::= 
      SEQUENCE {
        dcrProgIndex Integer32,
	dcrProgName OCTET STRING,
	dcrProgProcNum Integer32,
	dcrProgIdleMemSize Integer32
      }

    dcrSysProgramTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrProgEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of executables. 
	     This table is not accessible to the customer as of 1.5 release."
	::= { dcrSystem 3 }	
  
    dcrProgEntry OBJECT-TYPE
	SYNTAX DcrProgEntry
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "An entry containing the information about the executable."
	INDEX { dcrProgIndex }
	::= { dcrSysProgramTable 1 }

    dcrProgIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "A unique value identifying each row of the table."
	::= { dcrProgEntry 1 }
   
   dcrProgName OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "The name of the executable."
	::= { dcrProgEntry 2 }
   
   dcrProgProcNum OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "The number of instances of the executable running."
	::= { dcrProgEntry 3 }
   
   dcrProgIdleMemSize OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "The size of the processes virtual memory footprint, in kilobytes."
	::= { dcrProgEntry 4 }

-- process table
    DcrProcEntry ::=
      SEQUENCE {
        dcrProcProgIndex Integer32,
	dcrProcIndex Integer32,
	dcrProcCPU Integer32,
	dcrProcMem Integer32,
	dcrProcMemPercent Integer32,
	dcrProcSelfTest Integer32,
	dcrProcID Integer32
      }

    dcrProcessTable OBJECT-TYPE
	SYNTAX SEQUENCE OF DcrProcEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of running processes.
	     This table is not accessible to the customer as of 1.5 release."
	::= { dcrSystem 4 }

    dcrProcEntry OBJECT-TYPE
	SYNTAX DcrProcEntry
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "An entry containing information about the running process."
	INDEX  { 
	dcrProcProgIndex,
	dcrProcIndex 
	}
	::= { dcrProcessTable 1 }

    dcrProcProgIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "The index of the executable, which along with dcrProcIndex
             uniquely identifies the row."
	::= { dcrProcEntry 1 }
   
   dcrProcIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "The index specifying the instance of the process which is
             identified by dcrProcProgIndex."
	::= { dcrProcEntry 2 }
   
   dcrProcCPU OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "Percentage of CPU used by this process."
	::= { dcrProcEntry 3 }
   
   dcrProcMem OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "The size of the processes virtual memory footprint, in kilobytes."
	::= { dcrProcEntry 4 }
  
   dcrProcMemPercent OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "Percentage of memory used by the process."
	::= { dcrProcEntry 5 }
   
   dcrProcSelfTest OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            ""
	::= { dcrProcEntry 6 }
  
  dcrProcID OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "Process ID(PID) of the process."
	::= { dcrProcEntry 7 }

-- file system table
    DcrFileSysEntry ::=
      SEQUENCE {
        dcrFsIndex Integer32,
	dcrFsName OCTET STRING,
	dcrFsSize Integer32,
	dcrFsFree Integer32
      }

    dcrFsTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrFileSysEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of file systems.
	     This table is not accessible to the customer as of 1.5 release."
	::= { dcrSystem 5 }	

    dcrFsEntry OBJECT-TYPE
	SYNTAX DcrFileSysEntry
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "An entry containing information about a particular file system."
	INDEX { dcrFsIndex }
	::= { dcrFsTable 1 }

    dcrFsIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "A unique value which identifies each row of the file system table."
	::= { dcrFsEntry 1 }
 
    dcrFsName OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "The name of the file system."
	::= { dcrFsEntry 2 }
    
    dcrFsSize OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "The size of the file system in bytes."
	::= { dcrFsEntry 3 }
    
    dcrFsFree OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "Free space in the file system in percentage."
	::= { dcrFsEntry 4 }

-- kernel module table
    DcrKmodEntry ::=
      SEQUENCE {
        dcrKmodIndex Integer32,
	dcrKmodName OCTET STRING,
	dcrKmodSize Integer32
      }

    dcrKmodTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrKmodEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of loaded kernel modules.
	     This table is not accessible to the customer as of 1.5 release."
	::= { dcrSystem 6 }	

    dcrKmodEntry OBJECT-TYPE
	SYNTAX DcrKmodEntry
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "Contains information about the kernel module."
	INDEX { dcrKmodIndex }
	::= { dcrKmodTable 1 }

    dcrKmodIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS not-accessible
	STATUS current	
        DESCRIPTION
            "A unique value which identifies each row of the kernel module table."
	::= { dcrKmodEntry 1 }
    
    dcrKmodName OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS not-accessible
	STATUS current	
	DESCRIPTION
            "The kernel module name."
        ::= { dcrKmodEntry 2 }
    
    dcrKmodSize OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "The kernel module size."
	::= { dcrKmodEntry 3 }

-- Memory
    dcrSysMemory OBJECT IDENTIFIER ::= { dcrSystem 7 }

    dcrSysMemPhys OBJECT-TYPE 
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Size of physical memory allocated for OS in bytes."
	::= { dcrSysMemory 1 }	
    
    dcrSysMemFree OBJECT-TYPE 
	SYNTAX Integer32
	MAX-ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Percentage of free physical memory."
	::= { dcrSysMemory 2 }	

-- CPU
    dcrSysCPU OBJECT IDENTIFIER ::= { dcrSystem 8 }

    dcrSysCPUUser OBJECT-TYPE 
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "CPU percent used by user processes."
	::= { dcrSysCPU 1 }	
    
    dcrSysCPUNice OBJECT-TYPE 
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "CPU percent used by nice scheduling."
	::= { dcrSysCPU 2 }	
    
    dcrSysCPUSystem OBJECT-TYPE 
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "CPU percent used by system."
	::= { dcrSysCPU 3 }	
    
    dcrSysCPUInterrupt OBJECT-TYPE 
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "CPU percent used by interrupts."
	::= { dcrSysCPU 4 }	
    
    dcrSysCPUIdle OBJECT-TYPE 
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Idle CPU percent."
	::= { dcrSysCPU 5 }	

-- Trap history table
    dcrSysHistory OBJECT IDENTIFIER ::= { dcrSystem 9 }

    DcrTrapHistoryEntry ::=
      SEQUENCE {
        dcrTrapHistoryIndex Integer32,
	dcrTrapHistoryType INTEGER,
	dcrTrapHistoryDesc OCTET STRING
      }

    dcrTrapHistoryTable OBJECT-TYPE
	SYNTAX SEQUENCE OF DcrTrapHistoryEntry
	MAX-ACCESS not-accessible
	STATUS current
        DESCRIPTION
            "The table contains the history of traps. We support only the
             last trap history. Hence, the table contains only one row and 
             the value of index is always 1."
	::= { dcrSysHistory 1 }

    dcrTrapHistoryEntry OBJECT-TYPE
	SYNTAX DcrTrapHistoryEntry
	MAX-ACCESS  not-accessible
	STATUS current
        DESCRIPTION
            "An entry for the trap history."
	INDEX { dcrTrapHistoryIndex }
	::= { dcrTrapHistoryTable 1 }

    dcrTrapHistoryIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS read-only
	STATUS current	
        DESCRIPTION
            "A unique value which identifies each row of the table. We
             support only the last trap history. Hence, the table contains
             only one row and the value of the index is always 1. "
	::= { dcrTrapHistoryEntry 1 }

    dcrTrapHistoryType OBJECT-TYPE
        SYNTAX INTEGER {
	  security(1)
	  }
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION "Only Security type is supported. Hence, its value is always is 1."
	::= { dcrTrapHistoryEntry 2 }

    dcrTrapHistoryDesc OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current	
	DESCRIPTION "The description of the trap."
	::= { dcrTrapHistoryEntry 3 }

-- Traps
    dcrSecurityTrap NOTIFICATION-TYPE
        STATUS        current
        DESCRIPTION   
	    "Security trap signifies that DataFort has detected
	     security related events such as invalid access to
	     the cryptainer, root login failure."
        ::= { dcrSystemTrapPrefix 1}

-- Compliance Statements
decruSystemCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The requirements for conformance to the system mib."
    MODULE -- this module

       MANDATORY-GROUPS { 
            decruSystemInfoGroup, decruSystemStatusGroup, 
            decruSystemMemoryGroup, decruSystemCPUGroup, 
            decruSystemHistoryGroup, decruSystemEventGroup 
       }
   ::= { decruCompliances 1 }   


-- Object Groups
    decruSystemInfoGroup OBJECT-GROUP
        OBJECTS {
            dcrSysProductType, dcrSysProductName, dcrSysVersion,
            dcrSysBuildTag, dcrSysBuildType, dcrSysSerialNumber,
            dcrSysInitialized, dcrLicenseType, dcrLicenseNumber, 
            dcrLicenseExpirationDate, dcrLicenseHoursLeft         
        }
        STATUS current
        DESCRIPTION
            "The System's Information Group."
        ::= { decruSystemGroups 1 }

    decruSystemStatusGroup OBJECT-GROUP
        OBJECTS {
            dcrSysTrafficMeterType, dcrSysTrafficMeter, dcrSysTrafficMeterPeak,
            dcrSysTrafficMeterPeakTime, dcrCfgDbSize, dcrCfgDbUsed, dcrCfgDbFree,
            dcrRekeyIsRekeying, dcrRekeyProgress, dcrRekeyError, dcrNetIpColTime, 
            dcrNetIpColIp, dcrNetIpColMac, dcrClusterState, dcrLKMKeyCount, 
            dcrRaidState, dcrRaidDiskIndex, dcrRaidDiskDescr, dcrRaidDiskStatus, 
            dcrRaidBiosVer, dcrRaidFwVer                        
        }
        STATUS current
        DESCRIPTION
            "The System's Status Group."
        ::= { decruSystemGroups 2 }

    decruSystemMemoryGroup OBJECT-GROUP
        OBJECTS {
            dcrSysMemPhys, dcrSysMemFree    
        }
        STATUS current
        DESCRIPTION
            "The System Memory Group."
        ::= { decruSystemGroups 3 }
    
    decruSystemCPUGroup OBJECT-GROUP
        OBJECTS {
            dcrSysCPUUser, dcrSysCPUNice, dcrSysCPUSystem, 
            dcrSysCPUInterrupt, dcrSysCPUIdle     
        }
        STATUS current
        DESCRIPTION
            "The System CPU Group."
        ::= { decruSystemGroups 4 }
    
    decruSystemHistoryGroup OBJECT-GROUP
        OBJECTS {
            dcrTrapHistoryIndex, dcrTrapHistoryType, dcrTrapHistoryDesc   
        }
        STATUS current
        DESCRIPTION
            "The System History Group."
        ::= { decruSystemGroups 5 }

   decruSystemEventGroup NOTIFICATION-GROUP     
       NOTIFICATIONS { dcrSecurityTrap }
       STATUS current
       DESCRIPTION
           "The System Event Group."
       ::= { decruSystemGroups 6 }    
END

