README.developer - Information on extending the UCD-SNMP package to 
support the INTEL-LAN-ADAPTERS MIB.

Overview:
---------
The SNMP agent extension extends the UCD-SNMP agent for Linux. It 
provides information on the Intel PRO LAN adapters (10/100/1000), 
through the adapter drivers (e100, e1000). It also provides information
on advanced features, including teaming and VLANs, through the Advanced 
Networking Services (ANS) module.

This file describes how to enable the UCD-SNMP package to support the
INTEL-LAN-ADAPTERS MIB. It is intended for users who need to
compile their own SNMP agent. (Users running a Linux
distribution unsupported by the RPM packaged pre-compiled agent
provided, or users who need to extend/tailor their SNMP agent with
additional MIBS for their own needs.)

Pre-Requisites:
------------
The SNMP agent package will work best when the Intel PRO LAN adapter 
drivers (e100, e1000) and/or the Intel ANS module (ians) are installed
and loaded on the system. However, the package will work with
any combination of the 3 modules mentioned above.

Compiling your own Agent:
-------------------------
Get UCD-SNMP-4.1.2.tar.gz clean original sources and the
inic-SNMP-X.X.X.tar.gz file. These files are available both from the
web and the bundled software CD.

To extend the UCD-SNMP agent you will need to patch the UCD-SNMP
sources with the UCD-SNMP-4.1.2-intel-lan-adapters.patch patch.
1. Change to the directory containing the 
UCD-SNMP-4.1.2 source directory.
2. Copy the patch file to that directory. 
3. Copy libinicSNMP.a to the same directory.
4. Type:
"patch -p0 < UCD-SNMP-4.1.2.intel-lan-adapters.patch"
This will patch your UCD-SNMP sources (usually including modified 
source). If the patch fails, please apply it to a fresh UCD-SNMP 
source tree and then apply the changes to your modified source tree.

Once the patch has been applied 
5. Change to the directory UCD-SNMP-4.1.2. 
6. Run "autoconf".
7. Follow the steps documented in UCD-SNMP package to compile it. 
For example you should run "./configure" with the relevant options
 and then issue the "make" or "make install" command.

For more information concerning the UCD-SNMP (NET-SNMP) package, 
contact http://net-SNMP.sourceforge.net

License:
--------
The following license does not apply to modifications of original
files in the UCD-SNMP source code. Look at the UCD-SNMP source code
files for the relevant License statement.

Copyright (c) 1999 - 2001, Intel Corporation 

All rights reserved.

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions
are met:

 1. Redistribution's of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.

 2. Redistribution's in binary form must reproduce the above
    copyright notice, this list of conditions and the following
    disclaimer in the documentation and/or other materials provided
    with the distribution.

 3. Neither the name of Intel Corporation nor the names of its
    contributors may be used to endorse or promote products derived
    from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE. 

Functionality:
-------------
The SNMP extension implements the following MIB branch.
The branch is located under the Intel branch at:
.intel.products.nic-products.intel-lan-adapters
(Full OID: .1.3.6.1.4.1.343.2.7.2).

+--intel-lan-adapters(2)
   |
   +--component-description(1)
   |  |
   |  +-- -R-- String    company(1)
   |  |        Textual Convention: DisplayString
   |  |        Size: 0..255
   |  +-- -R-- String    description(2)
   |  |        Textual Convention: DisplayString
   |  |        Size: 0..255
   |  +-- -R-- String    operatingSystem(3)
   |  |        Textual Convention: DisplayString
   |  |        Size: 0..255
   |  +-- -R-- String    mibVersion1-0-0(4)
   |  |        Textual Convention: DisplayString
   |  |        Size: 0..255
   |  +-- -R-- String    mibVersionSupported(5)
   |  |        Textual Convention: DisplayString
   |  |        Size: 0..255
   |  +-- -R-- String    agentExtensionVersion(6)
   |  |        Textual Convention: DisplayString
   |  |        Size: 0..255
   |  +-- -R-- EnumVal   status(7)
   |           Values: baseDriverNotLoadedAnsNotLoaded(0),baseDriverLoadedAnsNotLoaded(1), baseDriverNotLoadedAnsLoaded(2), baseDriverLoadedAnsLoaded(3)
   |
   +--adapterTables(2)
   |  |
   |  +--genericAdapterAttrTables(1)
   |  |  |
   |  |  +--genericAdapterAttrTable(1)
   |  |  |  |
   |  |  |  +--genericAdapterAttrEntry(1)
   |  |  |     |
   |  |  |     +-- -R-- Integer   adapterIndex(1)
   |  |  |     |        Textual Convention: InterfaceIndex
   |  |  |     |        Range: 1..2147483647
   |  |  |     +-- -R-- String    adapterName(2)
   |  |  |     |        Textual Convention: DisplayString
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- EnumVal   adapterType(3)
   |  |  |              Values: standAlone(0), teamMember(1), virtual(2)
   |  |  |
   |  |  +--genericAdapterAttrDriversTable(2)
   |  |  |  |
   |  |  |  +--genericAdapterAttrDriversEntry(1)
   |  |  |     |
   |  |  |     +-- -R-- String    adapterDriverName(1)
   |  |  |     |        Textual Convention: DisplayString
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- String    adapterDriverInfo(2)
   |  |  |     |        Textual Convention: DisplayString
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- String    adapterDriverVersion(3)
   |  |  |     |        Textual Convention: DisplayString
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- String    adapterDriverPath(4)
   |  |  |     |        Textual Convention: DisplayString
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- String    adapterDriverDate(5)
   |  |  |     |        Textual Convention: DisplayString
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- String    adapterDriverSize(6)
   |  |  |              Textual Convention: DisplayString
   |  |  |              Size: 0..255
   |  |  |
   |  |  +--genericAdapterAttrTrafficStatsTable(3)
   |  |     |
   |  |     +--genericAdapterAttrTrafficStatsEntry(1)
   |  |        |
   |  |        +-- -R-- Counter   adapterRxPackets(1)
   |  |        +-- -R-- Counter   adapterTxPackets(2)
   |  |        +-- -R-- Counter   adapterRxBytes(3)
   |  |        +-- -R-- Counter   adapterTxBytes(4)
   |  |        +-- -R-- Counter   adapterRxErrors(5)
   |  |        +-- -R-- Counter   adapterTxErrors(6)
   |  |        +-- -R-- Counter   adapterRxDropped(7)
   |  |        +-- -R-- Counter   adapterTxDropped(8)
   |  |        +-- -R-- Counter   adapterRxMulticast(9)
   |  |        +-- -R-- Counter   adapterCollisions(10)
   |  |
   |  +--physicalAdapterAttrTables(2)
   |  |  |
   |  |  +--physicalAdapterAttrTable(1)
   |  |  |  |
   |  |  |  +--physicalAdapterAttrEntry(1)
   |  |  |     |
   |  |  |     +-- -R-- Integer   physicalAdapterIndex(1)
   |  |  |     |        Textual Convention: InterfaceIndex
   |  |  |     |        Range: 1..2147483647
   |  |  |     +-- -R-- EnumVal   physicalAdapterLinkStatus(2)
   |  |  |     |        Values: link-up(0), link-down(1)
   |  |  |     +-- -RW- Counter   physicalAdapterLinkStatusChangesCounter(3)
   |  |  |     +-- -R-- Gauge     physicalAdapterSpeed(4)
   |  |  |     +-- -R-- EnumVal   physicalAdapterDplxMode(5)
   |  |  |     |        Values: not-available(0), half(1), full(2)
   |  |  |     +-- -R-- EnumVal   physicalAdapterAutoNegotiation(6)
   |  |  |     |        Values: on(0), off(1)
   |  |  |     +-- -R-- Integer   physicalAdapterPciBus(7)
   |  |  |     +-- -R-- Integer   physicalAdapterPciSlot(8)
   |  |  |     +-- -R-- Integer   physicalAdapterIrq(9)
   |  |  |     +-- -R-- String    physicalAdapterCurrentNA(10)
   |  |  |     |        Textual Convention: PhysAddress
   |  |  |     +-- -R-- String    physicalAdapterPermanentNA(11)
   |  |  |              Textual Convention: PhysAddress
   |  |  |
   |  |  +--physicalAdapterAttrChecksumOffloadTable(2)
   |  |     |
   |  |     +--physicalAdapterAttrChecksumOffloadEntry(1)
   |  |        |
   |  |        +-- -R-- EnumVal   physicalAdapterTcpRxChecksumOffLoadEnable(1)
   |  |        |        Values: enabled(0), disabled(1)
   |  |        +-- -R-- Counter   physicalAdapterTcpRxChecksumBad(2)
   |  |        +-- -R-- EnumVal   physicalAdapterTcpTxChecksumOffLoadEnable(3)
   |  |                 Values: enabled(0), disabled(1)
   |  |
   |  +--virtualAdapterAttrTables(3)
   |  |  |
   |  |  +--virtualAdapterAttrTable(1)
   |  |  |  |
   |  |  |  +--virtualAdapterAttrEntry(1)
   |  |  |     |
   |  |  |     +-- -R-- Integer   virtualAdapterIndex(1)
   |  |  |     |        Textual Convention: InterfaceIndex
   |  |  |     |        Range: 1..2147483647
   |  |  |     +-- -R-- Integer   virtualAdapterTeamId(2)
   |  |  |
   |  |  +--virtualAdapterAttrVlanTable(2)
   |  |     |
   |  |     +--virtualAdapterAttrVlanEntry(1)
   |  |        |
   |  |        +-- -R-- EnumVal   virtualAdapterVlanId(1)
   |  |                 Values: none(0)
   |  |
   |  +--teamAttrTables(4)
   |  |  |
   |  |  +--teamAttrTable(1)
   |  |  |  |
   |  |  |  +--teamAttrEntry(1)
   |  |  |     |
   |  |  |     +-- -R-- Integer   teamId(1)
   |  |  |     +-- -R-- Integer   teamNumberOfMembers(2)
   |  |  |     +-- -R-- Integer   teamNumberOfVirtualAdapters(3)
   |  |  |
   |  |  +--teamAttrVlanTable(2)
   |  |  |  |
   |  |  |  +--teamAttrVlanEntry(1)
   |  |  |     |
   |  |  |     +-- -R-- EnumVal   teamVlanTaggingType(1)
   |  |  |     |        Values: none(0), tag-802-1Q(1), tag-802-1P(2), tag-802-3AC(3), tag-iSL(4)
   |  |  |     +-- -R-- EnumVal   teamVlanGvrpSupport(2)
   |  |  |              Values: enabled(0), disabled(1)
   |  |  |
   |  |  +--teamAttrAdapterTeamingTable(3)
   |  |     |
   |  |     +--teamAttrAdapterTeamingEntry(1)
   |  |        |
   |  |        +-- -R-- String    teamAdapterTeamingTeamName(1)
   |  |        |        Textual Convention: DisplayString
   |  |        |        Size: 0..255
   |  |        +-- -R-- EnumVal   teamAdapterTeamingMode(2)
   |  |        |        Values: none(0), team-aft(1), team-alb(2), team-fec(3), team-gec(4), team-802-3ad(5)
   |  |        +-- -R-- EnumVal   teamAdapterTeamingLinkState(3)
   |  |        |        Values: up(0), down(1)
   |  |        +-- -R-- Gauge     teamAdapterTeamingSpeed(4)
   |  |        +-- -R-- EnumVal   teamAdapterTeamingPRObesState(5)
   |  |        |        Values: probes-enabled(0), probes-disabled(1)
   |  |        +-- -R-- EnumVal   teamAdapterTeamingPRObesMode(6)
   |  |        |        Values: broadcast(0), multicast(1), not-available(2)
   |  |        +-- -R-- EnumVal   teamAdapterTeamingLoadBalanceRefresh(7)
   |  |        |        Values: not-available(0)
   |  |        +-- -R-- EnumVal   teamAdapterTeamingPRObesSendTime(8)
   |  |        |        Values: not-available(0)
   |  |        +-- -R-- EnumVal   teamAdapterTeamingPreferredPrimaryIndex(9)
   |  |        |        Values: not-available(0)
   |  |        +-- -R-- EnumVal   teamAdapterTeamingCurrentPrimaryIndex(10)
   |  |        |        Values: not-available(0)
   |  |        +-- -R-- EnumVal   teamAdapterTeamingPreviousPrimaryIndex(11)
   |  |        |        Values: not-available(0)
   |  |        +-- -RW- Counter   teamAdapterTeamingFailoverCounter(12)
   |  |
   |  +--teamMemberAttrTables(5)
   |     |
   |     +--teamMemberAttrTable(1)
   |     |  |
   |     |  +--teamMemberAttrEntry(1)
   |     |     |
   |     |     +-- -R-- Integer   teamMemberIndex(1)
   |     |     |        Textual Convention: InterfaceIndex
   |     |     |        Range: 1..2147483647
   |     |     +-- -R-- Integer   teamMemberTeamId(2)
   |     |
   |     +--teamMemberAttrAdapterTeamingTable(2)
   |        |
   |        +--teamMemberAttrAdapterTeamingEntry(1)
   |           |
   |           +-- -R-- EnumVal   teamMemberAdapterTeamingState(1)
   |           |        Values: active(0), disabled(1), standby(2), active-secondary(3)
   |           +-- -RW- Counter   teamMemberAdapterTeamingFailureCounter(2)
   |           +-- -R-- EnumVal   teamMemberAdapterTeamingPriority(3)
   |                    Values: none(0), primary(1), secondary(2)
   |
   +--events(3)
      |
      +--physicalAdapterEvents(1)
      |  |
      |  +--physicalAdapterTraps(1)
      |  |  |
      |  |  +--physicalAdapterLinkUpTrap(1)
      |  |  |
      |  |  +--physicalAdapterLinkDownTrap(2)
      |  |  |
      |  |  +--physicalAdapterAddedTrap(3)
      |  |  |
      |  |  +--physicalAdapterRemovedTrap(4)
      |  |
      |  +-- -RW- EnumVal   physicalAdapterLinkUpDownTrapEnable(2)
      |  |        Values: disabled(0), enabled(1)
      |  +-- -RW- EnumVal   physicalAdapterAddedRemovedTrapEnable(3)
      |           Values: disabled(0), enabled(1)
      |
      +--virtualAdapterEvents(2)
      |  |
      |  +--virtualAdapterTraps(1)
      |  |  |
      |  |  +--virtualAdapterAddedTrap(1)
      |  |  |
      |  |  +--virtualAdapterRemovedTrap(2)
      |  |
      |  +-- -RW- EnumVal   virutalAdapterTrapEnable(2)
      |           Values: disabled(0), enabled(1)
      |
      +--teamEvents(3)
      |  |
      |  +--teamTraps(1)
      |  |  |
      |  |  +--teamAdapterTeamingFailoverTrap(1)
      |  |  |
      |  |  +--teamAddedTrap(2)
      |  |  |
      |  |  +--teamRemovedTrap(3)
      |  |
      |  +-- -RW- EnumVal   teamTrapEnable(2)
      |           Values: disabled(0), enabled(1)
      |
      +--teamMemberEvents(4)
         |
         +--teamMemberTraps(1)
         |  |
         |  +--teamMemberAddedTrap(1)
         |  |
         |  +--teamMemberRemovedTrap(2)
         |
         +-- -RW- EnumVal   teamMemberTrapEnable(2)
                  Values: disabled(0), enabled(1)

* This tree is the output from the UCD SNMP translate utility.
