Intel(R) Network Utilities Release Notes
==========================================
May 22, 2014


Contents
========

- OVERVIEW
- RUNNING THE UTILITY
    - BASIC USAGE
    - ADAPTER DIAGNOSTIC COMMANDS
    - REGISTER COMMANDS
    - EEPROM COMMANDS
    - TRANSMIT AND RECEIVE COMMANDS
    - IEEE TESTING
- INSTALLATION
- CUSTOMER SUPPORT
- LEGAL


OVERVIEW
========
LANConf is a software tool used to perform Silicon Validation (SV), 
Debug, and IEEE Conformance testing for Intel* network adapters.  

Note: LANConf possesses the ability to put the NIC into unstable states.  
There is functionality that has been intentionally left undocumented as it is 
reserved for hardware engineers. As the tool is intended for engineer analysis, 
it has been design for flexibility rather that usability. Therefore, LANConf may 
demonstrate some failures in various areas of the tool. These are intentionally 
left in the tool for analysis and are not considered bugs.

To run LANConf, the following items are required

 - LANConf executable (See Running the Utility)

 - Quartzville driver

 - Intel Ethernet Network Interface Card (NIC) or LAN on
   Motherboard (LOM) system.  (Two NICs are needed for BER testing.)

 - Computer with one available slot (for use with NIC) capable of
   booting to the desired operating system.

If a NIC is used, it should be installed in a working slot.


RUNNING THE UTILITY
===================

BASIC LANConf EXTENSION
-----------------------
These are the extensions that LANConf supports.
The extensions are run by typing "LANConf <extension>".

/VERSION    - Displays the SDK version and the LANConf version information
-? or /?    - Displays command line help
/TEXTMODE   - Brings up LANConf in text mode
/ALL        - Displays all devices found in the system
/GUI        - Brings up GUI mode
/ZEROINIT   - Allows the adapter to be initialized without touched the hardware.
              It brings up a dialog that allows the user to configure which init
              options are going to be used.
/DEBUGPRINT - Enables printing of debug messages into a debugger
/DEBUGLOG   - Logs the debug messages into lanconf.log          
/SVMODE     - The is included only for convenience for backward compatibility for GT

BASIC USAGE GUI
---------------

When the tool is launched, a list of adapters is displayed. In order to proceed, 
select the desired adapter.

After that, move to the appropriate menu to run the desired command.

BASIC USAGE TEXTMODE
--------------------

When the tool is launched with a /textmode extension, a list of adapters is 
displayed. In order to proceed, select the desired adapter.

Please note that in textmode everything the user types is first converted into 
lowercase. Therefore, in a case-sensitive operating system, please make sure 
<patternfiles> and such are in lowercase.

The following commands will assist with navigation and basic usage 
of the LANConf:

?       - Lists the available commands
help    - Displays the command usage for the specified command
display - Displays info about the currently selected adapter
exit    - Exits the application
scan    - Scans for devices in the system
select  - Selects a supported device for use
ver     - Displays the version
gui     - Enters GUI mode and ends text mode
reset   - Performs an adapter reset


ADAPTER DIAGNOSTIC COMMANDS
---------------------------
fifos   - Test FIFOs on the network adapter
irq     - Test the network adapter IRQ
regs    - Perform write/read device register tests on the network adapter
eeprom  - Test the EEPROM checksum
maclb   - Run MAC loopback test
phylb   - Run PHY loopback test
link    - Checks for valid link
extlb   - Test external loopback with an external dongle


REGISTER COMMANDS
------------------

readmac	   - Reads value of a MAC register offset: readmac <hex offset>
readphy    - Reads value of a PHY register offset. readphy <hex offset>
readpci    - Reads value of a PCI DWORD: readpci <hex offset>
readpcie   - Reads value of a PCI DWORD for PCIe adapters supporting extended
             PCI space: readpcie <hex offset>
writemac   - Writes a value to a MAC register offset: writemac <hex offset> <data>
writephy   - Writes a value to a PHY register offset: writephy <hex offset> <data>
writepci   - Writes a value to a PCI DWORD: writepci <hex offset> <data>
writepcie  - Writes a value to a PCI DWORD for PCIe adapters supporting extended 
             PCI space: writepcie <hex offset> <data>


EEPROM COMMANDS
---------------
All EEPROM commands that write to the EEPROM will update the checksum.

seteebits    - Sets bits in the EEPROM: seteebits <hex offset> <bitmask>
cleareebits  - Clears bits in the EEPROM: cleareebits <hex offset> <bitmask>
readee       - Reads a word in the EEPROM: readee <hex offset>
writeee      - Writes a word in the EEPROM: writeee <hex offset> <value>
dumpeeimg    - Writes the EEPROM image to a file: dumpeeimg <filename>  
writeeeimg   - Programs the EEPROM with contents of <imagefile> without changing 
               the MAC address: writeeeimg <imagefile>
macaddr      - Programs the EEPROM the specifed MAC address: macaddr <address>    


TRANSMIT AND RECEIVE COMMANDS
-----------------------------
tx          - Starts transmit on current adapter:  tx [packets]
              The number of packets if an optional parameter and will default to infinite
rx          - Starts receive on current adapter
txrx        - Starts transmit and receive on current adapter
txrxall     - Starts transmit and/or receive on all initialized adapters which 
              have been set up for tx/rx through MODE command
mode        - Sets the txrxmode for currently selected adapter in order to 
              use the TXRXALL command:  
              mode <txrxmode>
                txrxmode   tx     adapter will transmit with TXRXALL command
                           rx     adapter will receive with TXRXALL command
                           txrx   adapter will transmit and receive with TXRXALL command
                           none   adapter will not be used with TXRXALL command (default)
destaddr    - Sets the destination MAC address on current adapter.
              Default is FFFF FFFF FFFF:  destaddr <addr>
packetsize  - Sets packet size for tx/rx test.  Default is 1024: packetsize <size>
speedduplex - Sets the speed and duplex for tx/rx test.
              Default is ane1000f for Gbe adapters and ane100f for FE adapters
                speedduplex <setting>
                setting     ane1000f   Autonegotiate 1000Mbps full duplex
                            ane100f    Autonegotiate 100Mbps full duplex
                            ane100h    Autonegotiate 100Mbps half duplex
                            ane10f     Autonegotiate 10Mbps full duplex
                            ane10h     Autonegotiate 10Mbps half duplex
                            force100f  Force 100Mbps full duplex
                            force100h  Force 100Mbps half duplex
                            force10f   Force 10Mbps full duplex
                            force10h   Force 10Mbps half duplex
loopback    - Sets the loopback mode for tx/rx test.  Default is none:
                loopback <mode>
                mode   none    no loopback mode
                       mac     mac loopback mode
                       phy     phy loopback mode
                       tcvr    tcvr loopback mode
packetdata  - Sets the packet data type for tx/rx test.  Default is legacy:
                packetdata <type>
                type   normal          normal header, ascending numbers in hexadecimal
                       random          normal header, random data
                       pattern5a       normal header, 0x5A data
                       file            normal header, data from file specified in
                                       the PATTERNFILE command
                       legacy          legacy header, ascending numbers in hexadecimal
                       legacyrandom    legacy header, random data
                       legacypattern5a legacy header, 0x5A data
                       legacyfile      legacy header, data from file specified in
                                       the PATTERNFILE command
                       rawff           0xFF data
                       rawaa           0xAA data
                       rawfile         data from file specified in the PATTERNFILE command
patternfile - Specifies pattern file to be used with packet data type 'file'
              'legacyfile', or 'rawfile':  patternfile <filename>
              See pattern file section below.
randompacketsize - Turns random packet size on or off for a tx/rx test.  Default is off:
                    randompacketsize <on|off>
                    on|off  on     uses a random packet size based on the min and max
                                   parameters of the SETRANDOMPACKETSIZE command
                            off    uses packet size specified in PACKETSIZE command
setrandompacketsize - Sets the min and max random packet size range for a tx/rx test.
                      Default is min=64 and max=1024
                      Command is only valid if RANDOMPACKETSIZE is set to on:
                        setrandompacketsize <min> <max>
verifydata  - Turns verify data on or off for a tx/rx test:
                verifydata <on|off>
                on|off  on      verify data on
                        off     verify data off
transmitqueue - Sets the transmit queue for a tx/rx test.  Default is primary:
                  transmitqueue <type>
                  type   primary     uses the primary transmit queue
                         secondary   uses the secondary transmit queue


Pattern Files
-------------
LANConf can use pattern files or binary files to transmit data. In order to 
use these files, select "packet payload data" of random. If header type is
part of the file, then "packet type" should be set to "No Header". Otherwise,
the packet will be built using the type from "packet type" and the pattern
file will be used as payload data only. 

There are two types of files that can be used. First is a binary file. Every
file that does not have a .pat extension is considered a binary file. This
can be created with a hex editor or a raw dump of some data to a file. 

The second type is a pattern in text format. The format is all in hex with
no 0x in front of the numbers. Each byte is on its own line. Example:

00
ff
da
ee
05

When using the above text pattern method, the file must have a .pat extension.

In either case, the packet will be built using this pattern up to the packet
size. If the packet size is less than the packet size selected in the GUI,
the data will repeat until the packet size is met. If the pattern file is larger
than the data in the GUI, then LANConf will truncate the data when the packet
size is used up.

User files should be in the same directory with LANConf's executable. The
GUI does not allow for entering path names. 

IEEE TESTING
------------

The following commands will setup the network device to perform the IEEE tests.  More 
information for each test can be found in the "100BASE-TX/ 10BASE-T Physical Layer 
Conformance Testing" document or the "1000BASE-T/100BASE-TX/10BASE-T Physical 
Layer Compliance Tests Manual for Gigabit Ethernet Products".  

Note that upon exiting an IEEE test mode setup, the adapter is left in the same 
state as it was in for the specified IEEE test mode.  For some test modes, this 
may mean that link is forced.

Fast Ethernet (FE) covers 10Base-T devices and 100Base-TX devices.
Gigabit Ethernet (GbE) covers 1000Base-T devices.


1000 Mbps IEEE tests:

Oscilloscope testing
 G1 - 40.6.1.2.1 (GbE) - Peak Differential Output Voltage and Level Accuracy
      40.6.1.2.2 (GbE) - Maximum Output Droop

 G2  Reserved for future implementation

 G3 - Reserved for future implementation

 G4 - 40.8.3.3 (GbE) - MDI Common-Mode Output Voltage

Network Analyzer testing
 G4 - 40.8.3.1 (GbE) - MDI Return Loss


100 Mbps IEEE tests:

Oscilloscope testing
 S1 - 9.1.2.2 (FE and GbE) - UTP Differential Output Voltage
      9.1.4 (FE and GbE) - Signal Amplitude Symmetry
      9.1.6 (FE and GbE) - Rise/Fall Times

 S3 - 9.1.8 (FE and GbE) - Duty Cycle Distortion (DCD)

 S4 - 9.1.9 (FE and GbE) - Transmit Jitter

Network Analyzer testing
 S2 - 9.1.5 (FE and GbE) - Transmit Return Loss

 S5 - 9.2.2 (FE and GbE) - Receiver Return Loss


10 Mpbs IEEE tests:

Oscilloscope testing
 SA - 14.3.1.2.1 (FE) and 1411.10.02.05 (GbE) - Peak differential output
        voltage on TD circuit (Amplitude 5MHz)

 SB - 14.3.1.2.5 (FE) and 1411.10.09 (GbE) - TD circuit common-mode 
        output voltage

 SC - 14.3.1.2.1 (FE) and 1411.10.02.10 (GbE) - Peak differential output 
        voltage on TD circuit (Amplitude 10 MHz)
      14.3.1.2.1 (FE) and 1411.10.03 (GbE) - Harmonic content, all ones 
        signal

 SE - 14.3.1.2.3 (FE) and 1411.10.12 (GbE) - Transmitter output timing 
        jitter with cable model
      14.3.1.2.3 (FE) and 1411.10.13 (GbE) - Transmitter output timing
        jitter without cable model

Network Analyzer testing
 SD - 14.3.1.2.2 (FE) and 1411.10.07 (GbE) - TD circuit differential 
        output impedance (Tx Return Loss)

 SF - 14.2.1.4 (FE) and 1411.10.05 (GbE) - RD circuit differential 
        input impedance (Rx Return Loss)


Bit Error Rate (BER) testing:

BER can be tested with two network devices, on two different systems.  
One network adapter should be configured to be the receive (rx).  
After the receive is set up, the other network adapter should be 
configured to be the transmit (tx).  When the transmit is complete, 
the receive can be stopped with "ESC".  

BER1000TX
    40.6.1.3.1 (GbE) - 1000Base-T Receiver Differential Input Signals
    40.6.1.3.4 (GbE) - 1000Base-T Alien Crosstalk Noise Rejection
BER1000RX
    40.6.1.3.1 (GbE)  1000Base-T Receiver Differential Input Signals
    40.6.1.3.4 (GbE) - 1000Base-T Alien Crosstalk Noise Rejection
BER100TX
    9.2.1 (FE and GbE)  100Base-TX Differential Input Signals
BER100RX
    9.2.1 (FE and GbE)  100Base-TX Differential Input Signals
BER10TX
    (FE and GbE) - 10 Base-T RD Receiver Circuit Signal Acceptance Test (BER)
BER10RX
    (FE and GbE) - 10 Base-T RD Receiver Circuit Signal Acceptance Test (BER)



List of all the supported IEEE tests and the [command] that should be used to
setup the adapter for the respective test.

      9.1.2.2 (FE and GbE) - UTP Differential Output Voltage [S1]
      9.1.4 (FE and GbE)   - Signal Amplitude Symmetry [S1]
      9.1.5 (FE and GbE)   - Transmit Return Loss [S2]
      9.1.6 (FE and GbE)   - Rise/Fall Times [S1]
      9.1.8 (FE and GbE)   - Duty Cycle Distortion (DCD) [S3]
      9.1.9 (FE and GbE)   - Transmit Jitter [S4]
      9.2.1 (FE and GbE)    100Base-TX Differential Input Signals [BER100TX]

      9.2.1 (FE and GbE)    100Base-TX Differential Input Signals [BER100RX]

      9.2.2 (FE and GbE)   - Receiver Return Loss [S5]
      14.2.1.4 (FE)        - RD circuit differential input impedance 
                             (Rx Return Loss) [SF]
      14.3.1.2.1 (FE)      - Peak differential output voltage on TD circuit 
                             (Amplitude 5MHz) [SA]
      14.3.1.2.1 (FE)      - Peak differential output voltage on TD circuit 
                             (Amplitude 10 MHz) [SC]
      14.3.1.2.1 (FE)      - Harmonic content, all ones signal [SC]
      14.3.1.2.2 (FE)      - TD circuit differential output impedance 
                             (Tx Return Loss) [SD]
      14.3.1.2.3 (FE)      - Transmitter output timing jitter with cable model [SE]
      14.3.1.2.3 (FE)      - Transmitter output timing jitter without cable 
                             model [SE]
      14.3.1.2.5 (FE)      - TD circuit common-mode output voltage [SB]
      40.6.1.2.1 (GbE)     - Peak Differential Output Voltage and Level 
                             Accuracy [G1]
      40.6.1.2.2 (GbE)     - Maximum Output Droop [G1]
      40.6.1.3.1 (GbE)     - 1000Base-T Receiver Differential Input 
                             Signals [BER1000TX]
      40.6.1.3.1 (GbE)      1000Base-T Receiver Differential Input 
                             Signals [BER1000RX]

      40.6.1.3.4 (GbE)     - 1000Base-T Alien Crosstalk Noise Rejection [BER1000TX]
      40.6.1.3.4 (GbE)     - 1000Base-T Alien Crosstalk Noise Rejection [BER1000RX]

      40.8.3.1 (GbE)       - MDI Return Loss [G4]
      40.8.3.3 (GbE)       - MDI Common-Mode Output Voltage [G4]
      1411.10.02.05 (GbE)  - Peak differential output voltage on TD circuit 
                             (Amplitude 5MHz) [SA]
      1411.10.02.10 (GbE)  - Peak differential output voltage on TD circuit 
                             (Amplitude 10 MHz) [SC]
      1411.10.03 (GbE)     - Harmonic content, all ones signal [SC]
      1411.10.05 (GbE)     - RD circuit differential input impedance 
                             (Rx Return Loss) [SF]
      1411.10.07 (GbE)     - TD circuit differential output impedance 
                             (Tx Return Loss) [SD]
      1411.10.09 (GbE)     - TD circuit common-mode output voltage [SB]
      1411.10.12 (GbE)     - Transmitter output timing jitter with cable model [SE]
      1411.10.13 (GbE)     - Transmitter output timing jitter without cable 
                             model [SE]
      (FE and GbE)         - 10 Base-T RD Receiver Circuit Signal Acceptance 
                             Test [BER10TX]

      (FE and GbE)         - 10 Base-T RD Receiver Circuit Signal Acceptance 
                             Test [BER10RX]

INVALID TEST SCENARIOS
----------------------

On operating systems such as Windows or Linux where it is possible to run more
than one instance of LANConf in two different command windows, there is a restriction
on the type of testing that may be done in this scenario.  On multi-port adapters
the EEPROM is shared between each of the ports.  If two or more instances of LANConf
are testing the ports shared by a single adapter, it is an invalid test design
for the multiple instances of LANConf to each be testing the EEPROM.  If the test
setup attempts to do this then spurious EEPROM test failures will result because
the multiple instances of LANConf are trying to access the EEPROM at the same time.

Running some diagnostics with manageability components (such as AMT, BMCs)
enabled may cause errors. Any diagnostics that send packets and verify data 
assume full control of the network adapter. The tests build a specific packet, 
send it, receive, then byte compare the sent and received packet. If some 
manageability component decides to send a packet in the middle of this test 
then the test will fail because the received packet will not match the 
transmitted packet. This will trigger a data corruption failure. Examples of tests 
that can be impacted by this include loopback, external loopback, peer sender 
responder (sendresp), and all network tests.


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

INSTALLING THE TOOLS ON MICROSOFT* WINDOWS*
===========================================

The tools driver can be installed on all versions of Microsoft* Windows* since 
Windows 7. To install the tools' drivers on Windows, run install.bat from the 
appropriatedirectory on the CD.   

Although the tools are not installed with install.bat, the driver that the tools 
require is copied into the local machine Windows driver directory. To run the 
tools, launch a Command Prompt window from the Windows Start Menu. Go to the 
media and directory where the tools are located and run the tools. The readme 
files for each tool are found in the same directory as the tools. These tools 
can be manually installed on the local hard drive in any directory.

The tool uses its own driver file (not the same as the system network driver).
If the driver sys file already exists in the drivers directory, install.bat may
fail to copy. Using the /y switch with install.bat will override and copy the 
driver file regardless. However, this can be dangerous if an older version of 
the driver is being used by another application such as Intel(R) PROset for Windows
Device Manager. If a driver is already present in the drivers directory, try 
running the tool from the command prompt. If it runs, then the driver is fine. 
The tool will not run if the driver version present does not match the driver 
version expected.

Note that for Windows 7 (and later), the user must have access to the 
%systemroot%\system32\drivers directory. Only the administrator account has these
privileges. The user must be logged in as administrator or the tools must be 
"run as" administrator.

Note that on Windows, any device that is disabled in device manager will not be
accessible by tools due to no memory resources. You would get an error code 0xC86A800E.
To solve this problem, you can do one of the following:
1) Re-enable the device in device manager. Never disable this device when using tools.
2) Install an NDIS device driver for the device and make sure that it does not have
   a yellow or red bang by it in device manager.
3) Delete the device from device manager and restart the system. The install new 
   hardware wizard should appear on next reboot. Do not cancel this. Just move the
   window aside and run the tool(s). Generally, you can click "cancel" on the wizard
   but there are some cases where Windows will disable the memory resources causing
   you to get back into the same state.


INSTALLING THE TOOLS ON EFI
==============================
There is no installation required for EFI tools. The tools can simply be copied 
from the appropriate directory to the drive that they will run from. The EFI2 
binaries are for use with the UEFI Shell 2.X with the UEFI 2.3 HII protocol. 
EFI2 tools will not run on the EFI Shell 1.X or if the UEFI 2.3 HII protocol is 
not present.


Note that while EFI supports USB drives, there may be issues running tools from the USB
drive. Whether or not there are issues are BIOS specific. If issues are experienced,
the tool should be run from hard disk instead.


INSTALLING THE TOOLS ON DOS
===========================

The tools support various DOS versions.  There is no installation required for 
DOS tools. The tools can simply be copied from the DOS directory on the CD to the drive
that they will run from.  It is expected that the tools have a clean boot environment. 
The tools will not run with memory managers and/or DOS networking drivers loaded. 
The tools expect that they have full, unlimited control of the hardware. The tools 
*WILL NOT* run properly if EMM386 is present.  The tools run in protected mode, 32-bit
DOS. Therefore, they will not be compatible with any TSR programs.


INSTALLING THE TOOLS ON LINUX*
==============================

In order to run tools on Linux*, a driver stub must be built and installed on 
the system. This driver is not related to the network device driver that is 
used to run the network during live traffic. It is a separate driver used 
explicitly for tools. Due to the nature of Linux with the number of kernels 
that can exist, we provide source for the driver module and an install script 
to build/install it.

The tools support Linux distributions based on kernels 2.6.x. Validation is done 
randomly on popular distributions such as Red Hat* or Suse*. Configured 
kernel source that matches the currently installed kernel is required. A working 
GCC is also required. There are some versions of GCC that had a bug which did not 
support unnamed structures. These versions of GCC are not supported. If you have 
compilation errors, try updating your version of GCC.  If you have linker errors 
when installing the driver, you should update your kernel - download the latest 
stable off www.kernel.org and build/install it.

Note that some distributions such as recent Fedora core versions do not ship with Kernel 
source. You must download, install, and configure the source in order to get the tools' 
driver built on this OS. Installing the kernel source RPM does not solve the problem.

This is the installation procedure:

  1. Log in as root and create a temporary directory to build the Intel(R)
     Network Connection Tools driver.

  2. Copy install and iqvlinux.tar.gz to the temporary directory.
     There are 3 versions of Linux supported: Linux32 (x86), Linux64e (x64),
     and Linux64 (Itanium). Copies of the above files exist in the appropriate
     directory for your platform.

  3. CD to the temporary directory and run ./install.  The driver has been
       installed now, so the files in the temporary directory can be removed. 

  4. Copy the tools that you want to use from the appropriate directory of the CD.

	
INSTALLING THE TOOLS ON ORACLE* SOLARIS*
========================================
Iqvsolaris is a separate driver used explicitly for tools and is provided only in 
binary form. Iqvsolaris driver and tools are provided for 2 different architectures: 
64s for sparc and 64e for x86_64. 

In order to run tools on Solaris*, peform the following steps:

  1. Log in as root.

  2. Manually unload the network device driver.

  3. Copy the binary iqv driver to the local machine driver directory by 
     running the ./install script. 


CUSTOMER SUPPORT
================
- Main Intel web support site: http://support.intel.com

- Network products information: http://www.intel.com/network


Legal / Disclaimers
===================
Copyright (C) 2002-2014, Intel Corporation.  All rights reserved.

Intel Corporation assumes no responsibility for errors or omissions in this
document.  Nor does Intel make any commitment to update the information
contained herein.

Intel is a trademark of Intel Corporation in the U.S. and/or other countries.

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

This software is furnished under license and may only be used or copied 
in accordance with the terms of the license.  The information in this 
manual is furnished for informational use only, is subject to change 
without notice, and should not be construed as a commitment by Intel 
Corporation.  Intel Corporation assumes no responsibility or liability 
for any errors or inaccuracies that may appear in this document or any 
software that may be provided in association with this document.  Except 
as permitted by such license, no part of this document may be reproduced, 
stored in a retrieval system, or transmitted in any form or by any means 
without the express written consent of Intel Corporation.

