Intel(R) Ethernet Port Configuration Tool
=========================================
June 13, 2019

Contents
========
- OVERVIEW
- SUPPORTED OPERATING SYSTEMS
- RUNNING THE UTILITY
  - OPTIONS
  - BASIC USAGE EXAMPLE
  - EXIT CODES
- CUSTOMER SUPPORT
- LEGAL


OVERVIEW
========
The Intel(R) Ethernet Port Configuration Tool is a command line utility that
allows users to change the link type of a device. The supported types are
defined within the adapter's NVM. This utility displays only the devices that
potentially support reconfiguration.

NOTE: A reboot is required to apply configuration changes. On systems running
Oracle* Solaris* 11, you must perform a full reboot, not a fast reboot.


Supported Operating Systems
---------------------------
Microsoft Windows Server* 2008 R2 and later
Windows PE 6 and later
Linux* Kernel 3.x/4.x and later
Red Hat* Enterprise Linux* 6.10 and later
SUSE* Linux Enterprise Server 12 SP4 and later
UEFI 2.3 and later
Oracle* Solaris* 11
VMWare* ESXi* 5.5 and later
FreeBSD 12 and later

Notes:
- On systems running Linux, FreeBSD, Solaris, or ESXi, the base driver must be
present for EPCT to function correctly.


RUNNING THE UTILITY
===================
Using the "/?" option will display a list of supported command line options.
NOTE: The utility must be run with root/administrator privileges.


OPTIONS
-------
The Intel(R) Ethernet Port Configuration Tool can be run with any of the
following
command line options.
NOTE: The slash '/' character can be used in place of the dash '-' character.
NOTE: All options are case-sensitive.

-h -help -?
Displays command line help.

-h (parameter) -help (parameter) -? (parameter)
Displays help for the specified parameter.

- devices [branding]
Displays supported devices present in the system. If 'branding' is specified,
then the branding view is displayed.

-nic=(device_index)
Selects the device at the specified index.

-get
Displays port configuration for the device specified by -nic.

-set (option)
Configures the selected device with the specified option. The option string is
defined as:
QxPxS - if all port speeds are the same across both quads and all lines, or
P1xS1-P2xS2 - if each quad has a specific speed, or
P11xS11+<...>+P1nxS1n-P21xS21+<...>+P2mxS2m
Where
Q - The desired quad number
P - The desired port number
S - The desired port speed
n - The desired port/speed combination for quad 0
m - The desired port/speed combination for quad 1


Basic Usage Examples
====================
The following examples show the tool's -devices option, the -get option, and
the -set option.

-devices
--------
>epct -devices
NIC Seg:Bus:Fun   Ven-Dev   Connector Ports Speed    Quads  Lanes per PF
=== ============= ========= ========= ===== ======== ====== ============
1)  000:012       8086-1583 QSFP      2     50 Gbps  Single  1
2)  000:015       8086-1584 QSFP      4     25 Gbps  Single  1
3)  000:017       8086-1589 SFP       4     25 Gbps  Single  1
4)  000:030:00-01 8086-1588 QSFP      2     25 Gbps  Single  1
    000:030:02-05 8086-1587 QSFP      4     10 Gbps  Single  1

>epct -devices[branding]
NIC Seg:Bus Ven-Dev   Mode        Adapter Name
=== ======= ========= =========== =============================================
1)  000:012 8086-1583 N/A         Intel(R) Ethernet Converged Network Adapter
                                  XL710
2)  000:029 8086-1583 4x10        Intel(R) Ethernet Converged Network Adapter
                                  XL710
3)  000:129 8086-1599 2x25,2x10-  Intel(R) Ethernet Controller E810-XXV for
                      2x10        backplane
4)  000:132 8086-159A 2x50        Intel(R) Ethernet Controller E810-XXV for
                                  QSFP

-get
----
>epct -nic=1 -get
Available Port Options:
==========================================================================
Active  Port                             Quad 0           Quad 1
Option  Option (Gbps)                    L0  L1  L2  L3   L4  L5  L6  L7
======= =============================    ================ ================
        4x25                          -> 25  25  25  25
        2x1x100                       -> 100              100
   X    2x2x25                        -> 25  25           25  25
        2x50                          -> 50      50
        2x1x50                        -> 50               50
        2x4x10                        -> 10  10  10  10   10  10  10  10
        2x25+2x10-2x10                -> 25  25  10  10   10  10
        1x10+1x25+1x10+1x25-2x10      -> 10  25  10  25   10  10

-set
----
Set two ports to 50 Gbps. First port starts with lane L0 in quad 0 and second
with lane L4 in quad 1:
>epct -nic=1 -set 2x1x50

set 1st and 2nd ports to 25Gbps (respectively lanes L0 and L1 in quad 0), 3rd
and 4th port to 10Gbps (respectively lanes L2 and L3 in quad 0), 5th and 6th
port to 10Gbps (respectively lanes L4 and L5 in quad 1):
>epct -nic=1 -set 2x25+2x10-2x10


Exit Codes
==========
Upon exit, when possible, the EPCT reports an overall status code to indicate
the results of the operation. In general, a non-zero return code indicates an
error occurred during processing.

Value	Description
0	Success.
1	No supported adapter found.
2	Insufficient privileges to run the tool.
3	No driver available.
4	Unsupported base driver version.
5	Bad command line parameter.
6	Invalid adapter selected.
7	Unsupported ports configuration selected.
8	Adapter does not support ports configuration.
9	Memory allocation error.
10	Adapter access error.
Installation
=============


INSTALLING THE TOOL ON MICROSOFT* WINDOWS*
===========================================

To install the tools' drivers on Windows, run install.bat from the appropriate
directory of the install package.

Although the tool are not installed with install.bat, the driver that the tool
requires is copied into the local machine Windows driver directory. To run the
tool, launch a Command Prompt window from the Windows Start Menu. Go to the
media and directory where the tool is located and run the utility. The readme
files for each tool are found in the same directory as the tool. 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
===========================

The EFI 1.x tools are not supported in this release.

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 TOOL ON LINUX*
=============================

In order to run this tool on Linux*, the base driver must be installed on the
system.


INSTALLING THE TOOL ON VMWare* ESXi*
===================================

In order to run this tool on VMWare* ESXi*, the base driver must be installed
on the system.


INSTALLING THE TOOL ON FreeBSD*
===============================

In order to run this tool on FreeBSD*, the base driver must be installed on the
system.


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

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


Legal / Disclaimers
===================
Copyright (C) 2019, 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 and the Intel logo are trademarks of Intel Corporation or its
subsidiaries 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.
