DECRU-BASE-MIB DEFINITIONS ::= BEGIN
    IMPORTS
	enterprises 		FROM RFC1155-SMI
	eventIndex FROM RMON-MIB;
       
    decru OBJECT IDENTIFIER ::= { enterprises 12962 }

    decruAgent		OBJECT IDENTIFIER ::= { decru 1 }
    decruProduct        OBJECT IDENTIFIER ::= { decru 2 }
    decruTraps		OBJECT IDENTIFIER ::= { decru 3 } 

    -- 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 } 
END

DECRU-SYSTEM-MIB DEFINITIONS ::= BEGIN
    IMPORTS
	dcrSystem FROM DECRU-BASE-MIB
	dcrSystemTrapPrefix FROM DECRU-BASE-MIB
        TruthValue FROM SNMPv2-TC;
    
-- General Info
    dcrSysInfo OBJECT IDENTIFIER ::= { dcrSystem 1 }

    dcrSysProductType OBJECT-TYPE 
	SYNTAX OCTET STRING
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Type of product. It is either 'lkm', 'nas' or 'san'."
	::= { dcrSysInfo 1 }	
    dcrSysProductName OBJECT-TYPE 
	SYNTAX OCTET STRING
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Name of product. (example: 'E510v2', 'FC1020', 'KM500')"
	::= { dcrSysInfo 2 }	
    dcrSysVersion OBJECT-TYPE 
	SYNTAX OCTET STRING
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "System software version. (example: '1.0', '1.5')"
	::= { dcrSysInfo 3 }	
    dcrSysBuildTag OBJECT-TYPE 
	SYNTAX OCTET STRING
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "System software build version."
	::= { dcrSysInfo 4 }	
    dcrSysBuildType OBJECT-TYPE 
	SYNTAX OCTET STRING
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "System software build type."
	::= { dcrSysInfo 5 }	
    dcrSysSerialNumber OBJECT-TYPE 
	SYNTAX OCTET STRING
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Product Serial Number. (example: '010203DF00777')"
	::= { dcrSysInfo 6 }	
    dcrSysInitialized OBJECT-TYPE 
	SYNTAX INTEGER {
	  notInitialized(1),
	  unknown(2),
	  initialized(3) 
	}
	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 INTEGER
      }

    dcrLicenseTable OBJECT-TYPE
	SYNTAX SEQUENCE OF DcrLicenseEntry
	ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains installed license."
	::= { dcrSysInfo 8 }

    dcrLicenseEntry OBJECT-TYPE
	SYNTAX DcrLicenseEntry
	ACCESS  not-accessible
	STATUS current
	INDEX { dcrLicenseIndex }
	::= { dcrLicenseTable 1 }

    dcrLicenseType OBJECT-TYPE
        SYNTAX INTEGER {
	  cluster(1),
	  tape(2),
	  disk(3),
	  ipsec(4),
	  hashImport(5),
	  dha(6),
	  secureView(7),
	  }
	ACCESS read-only
	STATUS current	
	::= { dcrLicenseEntry 1 }
    dcrLicenseNumber OBJECT-TYPE
	SYNTAX OCTET STRING
	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
	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 INTEGER
	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 INTEGER,
	dcrSysTrafficMeterPeak INTEGER,
	dcrSysTrafficMeterPeakTime TimeTicks
      }

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

    dcrSysTrafficMeterEntry OBJECT-TYPE
	SYNTAX DcrSysTrafficMeterEntry
	ACCESS not-accessible
	STATUS current
	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)
	  }
        ACCESS read-only
        STATUS current
        DESCRIPTION  
	    "Traffic meter type"
	::= { dcrSysTrafficMeterEntry 1 }

    dcrSysTrafficMeter OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS current
        DESCRIPTION  
	    "Traffic meter value"
	::= { dcrSysTrafficMeterEntry 2 }

    dcrSysTrafficMeterPeak OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS current
        DESCRIPTION   "Peak traffic meter value since the system started."
        ::= { dcrSysTrafficMeterEntry 3 }

    dcrSysTrafficMeterPeakTime OBJECT-TYPE
        SYNTAX TimeTicks
        ACCESS read-only
        STATUS current
        DESCRIPTION  "Number of hundredths of seconds since the peak traffic meter 
	    value occurred."
        ::= { dcrSysTrafficMeterEntry 4 }

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

    dcrCfgDbSize OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Size of configuration database in bytes."
	::= { dcrCfgDbStatus 1 }
    dcrCfgDbUsed OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Size of used space inside configuration database in bytes."
	::= { dcrCfgDbStatus 2 }
    dcrCfgDbFree OBJECT-TYPE
	SYNTAX INTEGER
	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
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "The flag to indicate whether system is rekeying."
	::= { dcrRekeyStatus 1 }
    dcrRekeyProgress OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Percentage of rekey progress. It is -1, if system is not rekeying."
	::= { dcrRekeyStatus 2 }
    dcrRekeyError OBJECT-TYPE
	SYNTAX INTEGER
	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 INTEGER
	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
	ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "IP address of which collision is detected."
	::= { dcrNetIpCollision 2 }
    dcrNetIpColMac OBJECT-TYPE
	SYNTAX OCTET STRING
	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)
        }
	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 INTEGER
	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)
        }
	ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Raid state in LKM Appliance"
	::= { dcrRaidStatus 1 }

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

    dcrRaidDiskTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrDiskEntry
	ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains listings of the Disks in the Raid"
	::= { dcrRaidStatus 2 }	

    dcrRaidDiskEntry OBJECT-TYPE
	SYNTAX DcrDiskEntry
	ACCESS  not-accessible
	STATUS current
	INDEX { dcrRaidDiskIndex }
	::= { dcrRaidDiskTable 1 }

    dcrRaidDiskIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS current	
	::= { dcrRaidDiskEntry 1 }
    dcrRaidDiskDescr OBJECT-TYPE
	SYNTAX OCTET STRING
	ACCESS read-only
	STATUS current	
	DESCRIPTION  
	    "Disk position"
	::= { dcrRaidDiskEntry 2 }
    dcrRaidDiskStatus OBJECT-TYPE
	SYNTAX  INTEGER {unknown(1),failed(2),online(3),rebuilding(4)}
	ACCESS  read-only
	STATUS current
	DESCRIPTION  
	    "Disk status"
	::= { dcrRaidDiskEntry 3 }

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

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

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

    dcrSysProgramTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrProgEntry
	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
	ACCESS not-accessible
	STATUS current
	INDEX { dcrProgIndex }
	::= { dcrSysProgramTable 1 }

    dcrProgIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current	
	::= { dcrProgEntry 1 }
    dcrProgName OBJECT-TYPE
	SYNTAX OCTET STRING
	ACCESS not-accessible
	STATUS current	
	::= { dcrProgEntry 2 }
    dcrProgProcNum OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current
	::= { dcrProgEntry 3 }
    dcrProgIdleMemSize OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current
	::= { dcrProgEntry 4 }

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

    dcrProcessTable OBJECT-TYPE
	SYNTAX SEQUENCE OF DcrProcEntry
	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
	ACCESS not-accessible
	STATUS current	
	INDEX  { 
	dcrProcProgIndex,
	dcrProcIndex 
	}
	::= { dcrProcessTable 1 }

    dcrProcProgIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current	
	::= { dcrProcEntry 1 }
    dcrProcIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current	
	::= { dcrProcEntry 2 }
    dcrProcCPU OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current	
	::= { dcrProcEntry 3 }
    dcrProcMem OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current	
	::= { dcrProcEntry 4 }
    dcrProcMemPercent OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current	
	::= { dcrProcEntry 5 }
    dcrProcSelfTest OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current	
	::= { dcrProcEntry 6 }
    dcrProcID OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current	
	::= { dcrProcEntry 7 }

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

    dcrFsTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrFileSysEntry
	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
	ACCESS not-accessible
	STATUS current
	INDEX { dcrFileSysIndex }
	::= { dcrFsTable 1 }

    dcrFsIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current	
	::= { dcrFsEntry 1 }
    dcrFsName OBJECT-TYPE
	SYNTAX OCTET STRING
	ACCESS not-accessible
	STATUS current	
	::= { dcrFsEntry 2 }
    dcrFsSize OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current
	::= { dcrFsEntry 3 }
    dcrFsFree OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current
	::= { dcrFsEntry 4 }

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

    dcrKmodTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrKmodEntry
	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
	ACCESS not-accessible
	STATUS current
	INDEX { dcrKmodIndex }
	::= { dcrKmodTable 1 }

    dcrKmodIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current	
	::= { dcrKmodEntry 1 }
    dcrKmodName OBJECT-TYPE
	SYNTAX OCTET STRING
	ACCESS not-accessible
	STATUS current	
	::= { dcrKmodEntry 2 }
    dcrKmodSize OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS not-accessible
	STATUS current
	::= { dcrKmodEntry 3 }

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

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

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

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

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

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

    dcrTrapHistoryTable OBJECT-TYPE
	SYNTAX SEQUENCE OF DcrTrapHistoryEntry
	ACCESS not-accessible
	STATUS current
	::= { dcrSysHistory 1 }

    dcrTrapHistoryEntry OBJECT-TYPE
	SYNTAX DcrTrapHistoryEntry
	ACCESS  not-accessible
	STATUS current
	INDEX { dcrTrapHistoryIndex }
	::= { dcrTrapHistoryTable 1 }

    dcrTrapHistoryIndex OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS current	
	::= { dcrTrapHistoryEntry 1 }

    dcrTrapHistoryType OBJECT-TYPE
        SYNTAX INTEGER {
	  security(1)
	  }
	ACCESS read-only
	STATUS current	
	DESCRIPTION "Trap type"
	::= { dcrTrapHistoryEntry 2 }

    dcrTrapHistoryDesc OBJECT-TYPE
	SYNTAX OCTET STRING
	ACCESS read-only
	STATUS current	
	DESCRIPTION "Trap description"
	::= { 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}

END
	    
