SNMP Agent Extension -- Implementing the INTEL(R) LAN ADAPTERS MIB ================================================================== August 6, 2002 Contents ======== - Overview - Prerequisites - Installation - Troubleshooting - Functionality - License Overview ======== This file describes the Intel SNMP package for Linux* operating systems, version 1.2.9. 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 ============== This package is intended for Linux 2.2.x through 2.2.20 kernels and 2.4.x through 2.4.18 kernels. NOTE: This driver version contains the final development set for 2.2.x kernels through 2.2.20. Development will continue for 2.4.x kernels and future production kernels. 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 with the following version numbers: e100: 2.1.x through 2.1.15 e1000: 4.3.x through 4.3.15 ians: 1.7.x through 1.7.65 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 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. Troubleshooting =============== 1. For some Linux distributions, the snmpd configuration file may not be located in the '/etc/snmp/' directory as specified above. In such cases, the inic_daemon cannot find the configuration file. To determine the correct location of the snmpd configuration file, use the snmpd man page. If this file is not located in its usual place (/etc/snmp/snmpd.conf), specify the location with the 'inic_daemon' command, as follows: inic_daemon -c 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.