
********************************************************************
    DELL PERC SNMP agent for Linux ( Ver 4.09 29th January 2003 )
********************************************************************
   
Introduction
------------
The DELL PERC SNMP agent running under Linux will get the information as per
SNMP Manager's request about the PERC adapters, Logical drives, Physical 
drives and Channel information. It can also set some of the properties of the 
PERC Controller. This agent will generate Traps to the destinations given in
the configuration file /etc/percsnmp/percsnmptrap.conf if any change of state 
occurs. 
	
This is developed such a way that it can run as an extended agent of the snmp 
agent (snmpd) in ucd-snmp package developed by UCD-SNMP group.
 
DELL PERC SNMP agent (Linux) consists of two executables--
one configuration file (percsnmptrap.conf) and a MIB file.

Updations From Release 4.08
------------------------------
When a logical drive is deleted, CONFIG_UPDATE trap is sent twice. This bug is
fixed in 4.09 release.

Updations From Release 4.07
------------------------------
Battery support checking has been added to the following controllers also.
-  518 (PERC 4/DC), 531 (PERC 4/QC) PERC 4/Di Discovery and Verde

Updations From Release 4.06
------------------------------
Net-SNMP (SNMP Main agent) interface has been changed from ver 5.0 onwards. 
4.07 is released to support the new interface.

Updations From Release 4.05 
------------------------------
Support for Statistical information (NIT interface).

Updations From Release 4.04
------------------------------
Bugs fixed
-----------
Gen_err was returned for newly added mibs for non-discovery controllers. In
this version, -1 is returned to indicate not_supported.

Updations From Release 4.03
------------------------------
Bugs fixed
-----------
Battery missing trap was sent to 475 controller also (which is not offering
BBU), this bug is fixed in this release.

Updations From Release 4.02
------------------------------
Support for Discovery systems. New mib entries added to Physical drive table
and one mib entry added to channel type. All new entries are read-only.

Updations From Release 4.01
------------------------------
Bugs fixed
-----------
Battery missing trap generated even though adapter does not support battery.
This bug is fixed in this relese. This trap is generated only to the adapters
those support Battery backup unit.

SMART events were not reported. This bug is fixed.

Updations From Release 4.00
------------------------------
Bugs fixed
-----------
1. Failing a hotspare drive, sent "drive state failed" trap instead of 
   "drive state ready".  -- Fixed.

2. Whenever a hotspare drive begins to rebuild, traps sent were "physical drive
   state failed" and corresponding "logical drive state degraded". No traps for
   the rebuild start and rebuild to online. -- Fixed.

3. Deletion of logical drives randomly, caused the logical drive related 
	 operations to fail. -- Fixed.

Updations From Release 3.02
------------------------------
1. Executable names are changed as percagent and percmain 
   (from mrdagent and mrdmain respectively).
2. Support for non disk-devices (ie,support for SCSI cd-roms,tapes etc)
3. Added support for the attributes in MIB File V1.11 as per DELL request.
4. Traps added for Physical and logical drive state change.
5. Adapter base has been changed to 0 from 1.
	
Contents
--------
1.percagent
    This daemon is the SNMP agent which will execute the inquiries.
	
2.percmain
   This daemon is for passing commands to the SNMP agent daemon, 
   which is running always, from the main agent snmpd and it will get 
   the result back from the DELL PERC SNMP agent (percagent)
	
3.perc.mib (1.12)
    MIB file of DELL PERC controller.  
    	   
4.percsnmpd.conf
   Sample configuration file to explain configuration of the DELL PERC 
   SNMP agent in order to make it work in a PASS-THROUGH Control mode. 
   (This file is self-explanatory)

5.percsnmptrap.conf
   Sample configuration file to explain configuration of the 
   destination IP addresses and the community name	

6.readme.txt
   This Explanatory note

7.percsnmpd
   Script to start the agent at system bootup.
   
8.install
   Script for installing tar version of DELL PERC SNMP Agent.
   
Release notes.
-------------

1. SNMP get and SNMP set requests are implemented as per MIB 
  information.
		
2. SNMP agent is tested with Multiple adapters, Multiple Physical 
   drives, Multiple logical drives and Multiple channels 
	
3. This release will work with
	a. Multiple adapters, 
	b. Multiple Physical drives, 
	c. Multiple logical drives 
	d. Multiple channels 
		
4. 40LD DELL PERC Contollers are implemented.
		
5. Trap support is implemented.
	
6. Checking is done for avoiding the agent execution if it already 
   running. 


Requirements
------------
1. net-snmp package Version 4.2.1 including the SNMP agent and applications.
   
Installtion procedure for net-snmp 
-----------------------------------
1. Download the rpm version and use rpm -i for installation.
  (This is available http://net-snmp.sourceforge.net )
    
If there is no support for RPM , download tar version of net-snmp

Installtion procedure for net-snmp tar version
-------------------------------------
1. untar the zip file in Linux machine
2. Change to ucd-Snmp Directory.
3. Read the INSTALL file.
4. Run ./configure   (Just press enter to accept the defaults)
5. make
6. make install

Installation procedure for DELL PERC SNMP Agent
------------------------------------------------
If RPM support is there, install DELL PERC SNMP Agent using 
    rpm -i percsnmp-4.05-1.i386.rpm

If there is no support for RPM , follow the following procedures:
  Untar the DELL PERC SNMP Agent tar package and then
	$tar -zxf percsnmp-4.05-1.tgz
	$cd percsnmp
	$./install 
	
Make necessary IP changes for DELL PERC agent in snmpd.conf by 
refering to the sample file "/etc/snmp/percsnmpd.conf"

Note:
If there is no configuration file snmpd.conf in /etc/snmp then, search for 
snmpd.conf file in /usr/share/snmp or /usr/local/share/snmp.If the file exists 
in any one of the above directories,modify the corresponding configuration file.
  

Setting trap destinations in /etc/percsnmp/percsnmptrap.conf
---------------------------------------------------------
For example consider there are two management stations for which we want send 
traps. Lets assume 10.0.0.144 is the IP of the local Linux machine and 
10.0.0.117 is the IP of a Windows machine that will be using an SNMP manager. 
You would add the following line to percsnmptrap.conf. 
 
 10.0.0.144 public
 10.0.0.117 public

The second string is community name which can be public or private.
    
Make sure the presence of snmptrap application in /usr/sbin

Start the percagent by:
  /etc/percsnmp/percsnmpd start
	
To stop percagent:
  /etc/percsnmp/percsnmpd stop

Then use snmpget snmpgetnext snmpwalk snmpset application for testing in Linux
or Use respective SNMP Managers in the other Operating systems.	

For Trap testing
----------------
Give destination IP address and community name in percsnmptrap.conf file
	
Use snmptrapd application for viewing the traps in linux machine or use 
respective SNMP Managers in the other Operating systems.
  
Examples
--------

1. snmpwalk localhost public .1.3.6.1.4.1.3582.1.1
   Snmpwalk is an SNMP application that uses GET NEXT Requests to query
   for a tree of information.It will give full information about the
   Variables in the MIB tree

2. snmpget localhost public .1.3.6.1.4.1.3582.1.1.1.1.1.0
   This call will give you adapter number (not number of adapters)

In the case of multiple adapters
---------------------------------
	
  snmpget localhost public .1.3.6.1.4.1.3582.1.1.1.1.1.0 
   - will give first adapte number
  
  snmpget localhost public .1.3.6.1.4.1.3582.1.1.1.1.1.1 
   - will give Second adapter number
	
  In the above example last digit in the OID is the Adapter number 
  which is used as an INDEX in Adapter Table Entry. In the case of 
  Logical drive Entry INDEX comprise of adapter number and Logical
  drive number.  In physical drive entry INDEX contains Adapter 
  number, Channel No and target ID.  

  (See MIB file to understand more about this ).
	
  snmpget localhost public enterprises.3582.1.1.2.1.3.0.0 
   - will give first adapter's Ist logical drive's status 
	
  snmpget localhost public enterprises.3582.1.1.2.1.3.1.0 
   - will give second adapter's Ist logical drive's status

  All these information can be obtained while calling snmpwalk

  snmpgetnext localhost public .1.3.6.1.4.1.3582.1.1.1.1.1.1
   - This will give the next MIB entry after the MIB oid 
	   .1.3.6.1.4.1.3582.1.1.1.1.1.1

  snmpset localhost public .1.3.6.1.4.1.3582.1.1.1.1.6.0 integer 54
   - will give an output: enterprises.3582.1.1.1.1.6.0 = 54		   
     Rebuild rate of first adapter will change to 54%. 

   Verify this by issuing
   snmpget localhost public .1.3.6.1.4.1.3582.1.1.1.1.6.0 
		

 For changing the rebuild rate of second adapter
 -----------------------------------------------
 snmpset localhost public .1.3.6.1.4.1.3582.1.1.1.1.6.1 integer 65 
  - will give an out put: enterprises.3582.1.1.1.1.6.1 = 65		 
 Rebuild rate of first adapter will change to 65%.  

 This can be verified by issuing
  
 snmpget localhost public .1.3.6.1.4.1.3582.1.1.1.1.6.1
	

 some more Examples
 ------------------

 1. Flush interval
    snmpset localhost public .1.3.6.1.4.1.3582.1.1.1.1.7.0 integer 4
    (change the flush interval of first adapter to four sec )
		
    snmpset localhost public .1.3.6.1.4.1.3582.1.1.1.1.7.1 integer 2 
    (change the flush interval of second adapter to two sec )

 2. Status

   snmpset localhost public .1.3.6.1.4.1.3582.1.1.2.1.3.0.0 integer 3  
   (initialize first adapter's Ist logical drive )

   snmpset localhost public .1.3.6.1.4.1.3582.1.1.2.1.3.1.0 integer 3  
   (Initialize second adapter's Ist logical drive)

   The parameter can be if and only if it's ACCESS mode is read-write in 
   MIB. See MIB file for more information.

Known limitations
------------------
1. For the first physical drive walk,it will take more time to scan all the 
   drives.	
2. For Adapter base port, the return value will be always zero.

################################################################################	

