Intel(R) Network Utilities Release Notes
==========================================
April 21, 2016

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 is designed
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.

Note: On the Intel(R) Ethernet Switch FM10000 Host Interface, loopback diagnostic
tests, and other tests that rely on the loopback test, will fail if the
Switch Manager is not running.


RUNNING THE UTILITY
===================
Using the "/?" option will display a list of supported command line options.


BASIC COMMAND LINE PARAMETERS
-----------------------------
These are the command line parameters that LANConf supports.
The parameters are used by typing "LANConf <parameter>".

/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 you type 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 [packets]
	- Starts transmit on the current adapter. The number of [packets] is an
	  optional parameter and defaults to infinite.

rx
	- Starts receive on the current adapter.

txrx
	- Starts transmit and receive on the current adapter.

txrxall
	- Starts transmit and/or receive on all initialized adapters
	  which have been set up for tx/rx through the mode command.

mode <txrxmode>
	- Sets the txrxmode for the currently selected adapter in order to
	  use the txrxall command. Default is none.
	  <txrxmode>
		tx    adapter will only transmit
		rx    adapter will only receive
		txrx  adapter will both transmit and receive
		none  adapter will not be used with the txrxall command

destaddr <addr>
	- Sets the destination MAC address <addr> on the current adapter.
	  The Default is FFFF FFFF FFFF.

packetsize <size>
	- Sets the packet size for tx/rx test. Default is 1024.

speedduplex <setting>
	- Sets the speed and duplex for tx/rx test. Default is ane1000f for
	  Gbe adapters and ane100f for FE adapters.
	  <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 <mode>
	- Sets the loopback mode for tx/rx test. Default is none.
	  <mode>
		none	no loopback mode
		mac	mac loopback mode
		phy	phy loopback mode
		tcvr	tcvr loopback mode
?
packetdata <type>
	- Sets the packet data type for tx/rx test. Default is legacy.
	  <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 <filename>
	- Specifies pattern file to be used with packet data type 'file'
	  'legacyfile', or 'rawfile'. See the Pattern Files section below.

randompacketsize <on|off>
	- Turns random packet size on or off for a tx/rx test. Default is 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 <min> <max>
	- Sets the min and max random packet size range for a tx/rx test.
	  Default is min=64 and max=1024.The setrandompacketsize command is
	  only valid if randompacketsize is set to on.

verifydata <on|off>
	- Turns verify data on or off for a tx/rx test.
	  <on|off>
		on	verify data on
		off	verify data off

transmitqueue <type>
	- Sets the transmit queue for a tx/rx test. Default is primary.
	  <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. For 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)    - Peak differential output
	1411.10.02.05 (GbE)  voltage on TD circuit (Amplitude 5MHz)

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

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

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

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

 SF	14.2.1.4 (FE)      - RD circuit differential
	1411.10.05 (GbE)     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 CELO 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 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
appropriate directory 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 you must have access to the %systemroot%\system32\drivers
directory. Only the administrator account has these privileges. You 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 you
experience issues, run the tool 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), Linux_x64 (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.


INSTALLING THE TOOLS ON FreeBSD*
================================

In order to run tools on FreeBSD*, 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 FreeBSD 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 FreeBSD distributions version 10.1 and later.

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 'iqvfreebsd.tar' to the temporary directory.
     There are 2 versions of FreeBSD supported: FreeBSD32 (x86) and
     FreeBSD64e (x64). 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.


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

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


Legal / Disclaimers
===================
Copyright (C) 2002-2016, 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.
