SNMP Agent Extension -- Implementing the INTEL(R)-LAN-ADAPTERS MIB              
==================================================================

March 27, 2002


Contents
========

- Overview
- Prerequisites
- Installation
- Functionality
- License


Overview
========

The SNMP agent extension extends the UCD-SNMP agent for Linux* via the SNMP 
"pass-through" protocol. It provides information on the Intel(R) PRO LAN 
adapters (10/100/1000) through the adapter drivers (e100, e1000). It also 
provides information about advanced features, including teaming and VLANs, 
through the Advanced Network Services (ANS) module.


Prerequisites
==============

The SNMP agent package works 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 works with any combination of the three 
modules mentioned above.

In addition, an SNMP agent which supports the "pass-through" protocol should 
be installed on the system. The extension was tested on Red Hat* 7.0 with 
ucd-snmp-4.1.2 SNMP agent installed and on Red Hat 7.1 with ucd-snmp-4.2 
SNMP agent installed.


Installation
============

1.  Enter the directory containing the binaries according to your system
    architecture (ia32 or ia64).

2.  Copy the application executable file, 'inic_extension', to any public
    directory, such as '/usr/local/sbin'. Copy the daemon executable file,
    'inic_daemon', to the same directory.

3.  Configure your pre-installed SNMP agent so that it runs the above 
    executable with any access to the Intel MIB subtree 
    (.1.3.6.1.4.1.343.2.7.2). With the UCD-SNMP (NET-SNMP) SNMP agent, edit
    the '/etc/snmp/snmpd.conf' file and add the following line anywhere in 
    the file:

        pass .1.3.6.1.4.1.343.2.7.2 /usr/local/sbin/inic_extension

4.  In order to receive both complete information on counters and SNMP traps,
    run the 'inic_daemon' executable before using the extended agent.

    The 'inic_daemon' executable is used for keeping track of internal 
    counters and sending traps to the SNMP clients. The daemon reads the 
    configuration file '/etc/snmp/snmpd.conf' and recognizes the directives 
    'trapsink', 'trap2sink', 'informsink', 'trapcommunity', 'agentuser', 
    'agentaddress' and 'agentgroup' (for more information, see 
    'man snmpd.conf').

    In order to use an alternative configuration file, specify the file in the 
    'inic_daemon' command line using the '-c' option:

       inic_daemon -c <alternative_conf_file>
 
    Your SNMP agent is now ready to run.

5.  Install the clients. Copy the MIB files (INTEL-Common-MIB.txt,
    INTEL-LAN-ADAPTERS-MIB.txt) to every management station, placing them in 
    the relevant MIBS directory. This varies according to the SNMP MIB 
    browser/application you are using.
 
For more information concerning the UCD-SNMP (NET-SNMP) package, go to 
http://net-SNMP.sourceforge.net.


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-2-4(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)
   |
   +--adaptersTables(2)
   |  |
   |  +--genericAdaptersAttrTables(1)
   |  |  |
   |  |  +--genericAdaptersAttrTable(1)
   |  |  |  |
   |  |  |  +--genericAdapterAttrEntry(1)
   |  |  |     |  Index: adapterIndex
   |  |  |     |
   |  |  |     +-- -R-- Integer32 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)
   |  |  |     +-- -R-- EnumVal   adapterDriverLoadStatus(4) (***)
   |  |  |              Values: loaded(0), notLoaded(1)
   |  |  |
   |  |  +--genericAdaptersDriversAttrTable(2)
   |  |  |  |
   |  |  |  +--genericAdapterDriverAttrEntry(1)
   |  |  |     |  Index: adapterIndex
   |  |  |     |
   |  |  |     +-- -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
   |  |  |
   |  |  +--genericAdaptersTrafficStatsAttrTable(3)
   |  |     |
   |  |     +--genericAdapterTrafficStatsAttrEntry(1)
   |  |        |  Index: adapterIndex
   |  |        |
   |  |        +-- -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)
   |  |
   |  +--physicalAdaptersAttrTables(2)
   |  |  |
   |  |  +--physicalAdaptersAttrTable(1)
   |  |  |  |
   |  |  |  +--physicalAdapterAttrEntry(1)
   |  |  |     |  Index: physicalAdapterIndex
   |  |  |     |
   |  |  |     +-- -R-- Integer32 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
   |  |  |
   |  |  +--physicalAdaptersAttrChecksumOffloadTable(2)
   |  |     |
   |  |     +--physicalAdapterAttrChecksumOffloadEntry(1)
   |  |        |  Index: physicalAdapterIndex
   |  |        |
   |  |        +-- -R-- EnumVal   physicalAdapterTcpRxChecksumOffLoadEnable(1) (***)
   |  |        |        Values: enabled(0), disabled(1)
   |  |        +-- -R-- Counter   physicalAdapterTcpRxChecksumBad(2) (***)
   |  |        +-- -R-- EnumVal   physicalAdapterTcpTxChecksumOffLoadEnable(3) (***)
   |  |                 Values: enabled(0), disabled(1)
   |  |
   |  +--virtualAdaptersAttrTables(3)
   |  |  |
   |  |  +--virtualAdaptersAttrTable(1)
   |  |  |  |
   |  |  |  +--virtualAdapterAttrEntry(1)
   |  |  |     |  Index: virtualAdapterIndex
   |  |  |     |
   |  |  |     +-- -R-- Integer32 virtualAdapterIndex(1)
   |  |  |     |        Textual Convention: InterfaceIndex
   |  |  |     |        Range: 1..2147483647
   |  |  |     +-- -R-- INTEGER   virtualAdapterAnsId(2)
   |  |  |
   |  |  +--virtualAdaptersVlanAttrTable(2)
   |  |     |
   |  |     +--virtualAdapterVlanAttrEntry(1)
   |  |        |  Index: virtualAdapterIndex
   |  |        |
   |  |        +-- -R-- EnumVal   virtualAdapterVlanId(1)
   |  |                 Values: none(0)
   |  |
   |  +--ansAttrTables(4)
   |  |  |
   |  |  +--ansAttrTable(1)
   |  |  |  |
   |  |  |  +--ansAttrEntry(1)
   |  |  |     |  Index: ansId
   |  |  |     |
   |  |  |     +-- -R-- INTEGER   ansId(1)
   |  |  |     +-- -R-- INTEGER   ansNumberOfMembers(2)
   |  |  |     +-- -R-- INTEGER   ansNumberOfVirtualAdapters(3)
   |  |  |
   |  |  +--ansVlansAttrTable(2)
   |  |  |  |
   |  |  |  +--ansVlanAttrEntry(1)
   |  |  |     |  Index: ansId
   |  |  |     |
   |  |  |     +-- -R-- EnumVal   ansVlanTaggingType(1)
   |  |  |     |        Values: none(0), tag-802-1Q(1), tag-802-1P(2), 
   |  |  |     |                tag-802-3AC(3), tag-iSL(4)
   |  |  |     +-- -R-- EnumVal   ansVlanGvrpSupport(2) (***)
   |  |  |              Values: enabled(0), disabled(1)
   |  |  |
   |  |  +--ansTeamsAttrTable(3)
   |  |     |
   |  |     +--ansTeamAttrEntry(1)
   |  |        |  Index: ansId
   |  |        |
   |  |        +-- -R-- String    ansTeamName(1)
   |  |        |        Textual Convention: DisplayString
   |  |        |        Size: 0..255
   |  |        +-- -R-- EnumVal   ansTeamMode(2)
   |  |        |        Values: none(0), team-aft(1), team-alb(2), 
   |  |        |                team-fec(3), team-gec(4), team-802-3ad(5)
   |  |        +-- -R-- EnumVal   ansTeamLinkState(3)
   |  |        |        Values: up(0), down(1)
   |  |        +-- -R-- Gauge     ansTeamSpeed(4)
   |  |        +-- -R-- EnumVal   ansTeamProbesState(5)
   |  |        |        Values: probes-enabled(0), probes-disabled(1)
   |  |        +-- -R-- EnumVal   ansTeamProbesMode(6)
   |  |        |        Values: broadcast(0), multicast(1), not-available(2)
   |  |        +-- -R-- EnumVal   ansTeamLoadBalanceRefresh(7) (***)
   |  |        |        Values: not-available(0)
   |  |        +-- -R-- EnumVal   ansTeamProbesSendTime(8)
   |  |        |        Values: not-available(0)
   |  |        +-- -R-- EnumVal   ansTeamPreferredPrimaryIndex(9) (***)
   |  |        |        Values: not-available(0)
   |  |        +-- -R-- EnumVal   ansTeamCurrentPrimaryIndex(10)
   |  |        |        Values: not-available(0)
   |  |        +-- -R-- EnumVal   ansTeamPreviousPrimaryIndex(11)
   |  |        |        Values: not-available(0)
   |  |        +-- -RW- Counter   ansTeamFailoverCounter(12)
   |  |        +-- -R-- EnumVal   ansTeamFecCompatible(13)
   |  |        |        Values: not-available(-1), yes(0), no(1)
   |  |        +-- -R-- EnumVal   ansTeamAggrSelectionMode(14)
   |  |                 Values: not-available(-1), bandwidth(0), count(1)
   |  |
   |  +--ansMembersAttrTables(5)
   |     |
   |     +--ansMembersAttrTable(1)
   |     |  |
   |     |  +--ansMemberAttrEntry(1)
   |     |     |  Index: ansMemberIndex
   |     |     |
   |     |     +-- -R-- Integer32 ansMemberIndex(1)
   |     |     |        Textual Convention: InterfaceIndex
   |     |     |        Range: 1..2147483647
   |     |     +-- -R-- INTEGER   ansMemberAnsId(2)
   |     |
   |     +--ansTeamMembersAttrTable(2)
   |        |
   |        +--ansTeamMemberAttrEntry(1)
   |           |  Index: ansMemberIndex
   |           |
   |           +-- -R-- EnumVal   ansTeamMemberState(1)
   |           |        Values: active(0), disabled(1), standby(2), 
   |           |                active-secondary(3)
   |           +-- -RW- Counter   ansTeamMemberFailureCounter(2)
   |           +-- -R-- EnumVal   ansTeamMemberPriority(3)
   |                    Values: none(0), primary(1), secondary(2)
   |
   +--events(3)
      |
      +--physicalAdaptersEvents(1)
      |  |
      |  +--physicalAdaptersTraps(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)
      |
      +--virtualAdaptersEvents(2)
      |  |
      |  +--virtualAdaptersTraps(1)
      |  |  |
      |  |  +--virtualAdapterAddedTrap(1)
      |  |  +--virtualAdapterRemovedTrap(2)
      |  |
      |  +-- -RW- EnumVal   virutalAdaptersTrapEnable(2)
      |           Values: disabled(0), enabled(1)
      |
      +--ansEvents(3)
      |  |
      |  +--ansTraps(1)
      |  |  |
      |  |  +--ansTeamFailoverTrap(1)
      |  |  +--ansAddedTrap(2)
      |  |  +--ansRemovedTrap(3)
      |  |
      |  +-- -RW- EnumVal   ansTrapEnable(2)
      |           Values: disabled(0), enabled(1)
      |
      +--teamMembersEvents(4)
         |
         +--teamMembersTraps(1)
         |  |
         |  +--teamMemberAddedTrap(1)
         |  +--teamMemberRemovedTrap(2)
         |
         +-- -RW- EnumVal   teamMemberTrapEnable(2)
                  Values: disabled(0), enabled(1)

* This tree is the output from the UCD SNMPtranslate utility.

(***) Not Implemented


License
=======

This software program is released under the terms of a license agreement 
between you ('Licensee') and Intel. Do not use or load this software or any 
associated materials (collectively, the 'Software') until you have carefully 
read the full terms and conditions of the LICENSE located in this software 
package. By loading or using the Software, you agree to the terms of this 
Agreement. If you do not agree with the terms of this Agreement, do not 
install or use the Software.

* Other names and brands may be claimed as the property of others.
