head	1.5;
access;
symbols
	RELENG_8_4:1.4.0.2
	RELENG_9_1_0_RELEASE:1.3.2.1.4.2
	RELENG_9_1:1.3.2.1.0.4
	RELENG_9_1_BP:1.3.2.1
	RELENG_8_3_0_RELEASE:1.2.2.2.2.1
	RELENG_8_3:1.2.2.2.0.2
	RELENG_8_3_BP:1.2.2.2
	RELENG_9_0_0_RELEASE:1.3.2.1.2.1
	RELENG_9_0:1.3.2.1.0.2
	RELENG_9_0_BP:1.3.2.1
	RELENG_9:1.3.0.2
	RELENG_9_BP:1.3
	RELENG_8_2_0_RELEASE:1.2.2.1.6.1
	RELENG_8_2:1.2.2.1.0.6
	RELENG_8_2_BP:1.2.2.1
	RELENG_8_1_0_RELEASE:1.2.2.1.4.1
	RELENG_8_1:1.2.2.1.0.4
	RELENG_8_1_BP:1.2.2.1
	RELENG_8_0_0_RELEASE:1.2.2.1.2.1
	RELENG_8_0:1.2.2.1.0.2
	RELENG_8_0_BP:1.2.2.1
	RELENG_8:1.2.0.2
	RELENG_8_BP:1.2;
locks; strict;
comment	@# @;


1.5
date	2013.06.19.00.54.23;	author svnexp;	state Exp;
branches;
next	1.4;

1.4
date	2012.11.17.01.52.01;	author svnexp;	state Exp;
branches
	1.4.2.1;
next	1.3;

1.3
date	2011.06.02.00.34.57;	author jfv;	state Exp;
branches
	1.3.2.1;
next	1.2;

1.2
date	2009.04.10.00.22.48;	author jfv;	state Exp;
branches
	1.2.2.1;
next	1.1;

1.1
date	2008.05.16.18.46.30;	author jfv;	state Exp;
branches;
next	;

1.4.2.1
date	2012.11.17.01.52.01;	author svnexp;	state dead;
branches;
next	1.4.2.2;

1.4.2.2
date	2013.03.28.13.04.45;	author svnexp;	state Exp;
branches;
next	;

1.3.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.3.2.1.2.1
	1.3.2.1.4.1;
next	1.3.2.2;

1.3.2.2
date	2012.11.17.11.37.01;	author svnexp;	state Exp;
branches;
next	1.3.2.3;

1.3.2.3
date	2013.07.06.22.01.45;	author svnexp;	state Exp;
branches;
next	;

1.3.2.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.3.2.1.2.2;

1.3.2.1.2.2
date	2012.11.17.08.36.57;	author svnexp;	state Exp;
branches;
next	;

1.3.2.1.4.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.3.2.1.4.2;

1.3.2.1.4.2
date	2012.11.17.08.47.49;	author svnexp;	state Exp;
branches;
next	;

1.2.2.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.2.2.1.2.1
	1.2.2.1.4.1
	1.2.2.1.6.1;
next	1.2.2.2;

1.2.2.2
date	2012.02.03.01.36.02;	author jfv;	state Exp;
branches
	1.2.2.2.2.1;
next	1.2.2.3;

1.2.2.3
date	2012.11.17.10.36.40;	author svnexp;	state Exp;
branches;
next	;

1.2.2.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.2.2.1.4.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.2.2.1.6.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.2.2.2.2.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.2.2.2.2.2;

1.2.2.2.2.2
date	2012.11.17.08.25.19;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.5
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/251964
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@FreeBSD Driver for Intel(R) Ethernet 10 Gigabit PCI Express Server Adapters
============================================================================
/*$FreeBSD: head/sys/dev/ixgbe/README 251964 2013-06-18 21:28:19Z jfv $*/

Jun 18, 2013


Contents
========

- Overview
- Supported Adapters
- Building and Installation
- Additional Configurations and Tuning
- Known Limitations


Overview
========

This file describes the FreeBSD* driver for the
Intel(R) Ethernet 10 Gigabit Family of Adapters.

For questions related to hardware requirements, refer to the documentation
supplied with your Intel 10GbE adapter.  All hardware requirements listed
apply to use with FreeBSD.


Supported Adapters
==================

The driver in this release is compatible with 82598 and 82599-based Intel 
Network Connections.
              
SFP+ Devices with Pluggable Optics
----------------------------------

82599-BASED ADAPTERS  

NOTE: If your 82599-based Intel(R) Ethernet Network Adapter came with Intel 
optics, or is an Intel(R) Ethernet Server Adapter X520-2, then it only supports
Intel optics and/or the direct attach cables listed below.

When 82599-based SFP+ devices are connected back to back, they should be set to
the same Speed setting. Results may vary if you mix speed settings. 
 
Supplier    Type                                             Part Numbers

SR Modules			
Intel 	    DUAL RATE 1G/10G SFP+ SR (bailed)                FTLX8571D3BCV-IT	
Intel	    DUAL RATE 1G/10G SFP+ SR (bailed)                AFBR-703SDZ-IN2
Intel      DUAL RATE 1G/10G SFP+ SR (bailed)                 AFBR-703SDDZ-IN1	
LR Modules			
Intel 	    DUAL RATE 1G/10G SFP+ LR (bailed)                FTLX1471D3BCV-IT	
Intel	    DUAL RATE 1G/10G SFP+ LR (bailed)                AFCT-701SDZ-IN2	
Intel       DUAL RATE 1G/10G SFP+ LR (bailed)                AFCT-701SDDZ-IN1

The following is a list of 3rd party SFP+ modules and direct attach cables that
have received some testing. Not all modules are applicable to all devices.

Supplier   Type                                              Part Numbers

Finisar    SFP+ SR bailed, 10g single rate                   FTLX8571D3BCL
Avago      SFP+ SR bailed, 10g single rate                   AFBR-700SDZ
Finisar    SFP+ LR bailed, 10g single rate                   FTLX8571D3BCV-IT
		
Finisar    DUAL RATE 1G/10G SFP+ SR (No Bail)	             FTLX8571D3QCV-IT
Avago	   DUAL RATE 1G/10G SFP+ SR (No Bail)	             AFBR-703SDZ-IN1	
Finisar	   DUAL RATE 1G/10G SFP+ LR (No Bail)	             FTLX1471D3QCV-IT
Avago	   DUAL RATE 1G/10G SFP+ LR (No Bail)	             AFCT-701SDZ-IN1
Finistar   1000BASE-T SFP                                    FCLF8522P2BTL
Avago      1000BASE-T SFP                                    ABCU-5710RZ

NOTE: As of driver version 2.5.13 it is possible to allow the operation
of unsupported modules by setting the static variable 'allow_unsupported_sfp'
to TRUE and rebuilding the driver. If problems occur please assure that they
can be reproduced with fully supported optics first.

82599-based adapters support all passive and active limiting direct attach 
cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications.

Laser turns off for SFP+ when ifconfig down
--------------------------------------------------------
"ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters.
"ifconfig up" turns on the later.

82598-BASED ADAPTERS

NOTES for 82598-Based Adapters: 
- Intel(R) Ethernet Network Adapters that support removable optical modules 
  only support their original module type (i.e., the Intel(R) 10 Gigabit SR 
  Dual Port Express Module only supports SR optical modules). If you plug 
  in a different type of module, the driver will not load.
- Hot Swapping/hot plugging optical modules is not supported.  
- Only single speed, 10 gigabit modules are supported.  
- LAN on Motherboard (LOMs) may support DA, SR, or LR modules. Other module 
  types are not supported. Please see your system documentation for details.  

The following is a list of 3rd party SFP+ modules and direct attach cables that have 
received some testing. Not all modules are applicable to all devices.

Supplier   Type                                              Part Numbers

Finisar    SFP+ SR bailed, 10g single rate                   FTLX8571D3BCL
Avago      SFP+ SR bailed, 10g single rate                   AFBR-700SDZ
Finisar    SFP+ LR bailed, 10g single rate                   FTLX1471D3BCL
	
82598-based adapters support all passive direct attach cables that comply 
with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach 
cables are not supported.

Third party optic modules and cables referred to above are listed only for the 
purpose of highlighting third party specifications and potential compatibility, 
and are not recommendations or endorsements or sponsorship of any third party's
product by Intel. Intel is not endorsing or promoting products made by any 
third party and the third party reference is provided only to share information
regarding certain optic modules and cables with the above specifications. There
may be other manufacturers or suppliers, producing or supplying optic modules 
and cables with similar or matching descriptions. Customers must use their own 
discretion and diligence to purchase optic modules and cables from any third 
party of their choice. Customer are solely responsible for assessing the 
suitability of the product and/or devices and for the selection of the vendor 
for purchasing any product. INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL
DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF 
SUCH THIRD PARTY PRODUCTS OR SELECTION OF VENDOR BY CUSTOMERS.

Configuration and Tuning
========================

The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
all 10 Gigabit adapters. 

  Jumbo Frames
  ------------
  To enable Jumbo Frames, use the ifconfig utility to increase the MTU
  beyond 1500 bytes.

  NOTES:

       - The Jumbo Frames setting on the switch must be set to at least
         22 bytes larger than that of the adapter.

       - There are known performance issues with this driver when running 
         UDP traffic with Jumbo Frames. 

  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default
  MTU range is 1500. To modify the setting, enter the following:

        ifconfig ix<interface_num> <hostname or IP address> mtu 9000

  To confirm an interface's MTU value, use the ifconfig command. To confirm
  the MTU used between two specific devices, use:

        route get <destination_IP_address>

  VLANs
  -----
  To create a new VLAN pseudo-interface:

        ifconfig <vlan_name> create

  To associate the VLAN pseudo-interface with a physical interface and
  assign a VLAN ID, IP address, and netmask:

        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
           <vlan_id> vlandev <physical_interface>

  Example:

        ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev ixgbe0

  In this example, all packets will be marked on egress with 802.1Q VLAN 
  tags, specifying a VLAN ID of 10.

  To remove a VLAN pseudo-interface:

        ifconfig <vlan_name> destroy


  Checksum Offload
  ----------------
  
  Checksum offloading supports both TCP and UDP packets and is 
  supported for both transmit and receive. 

  Checksum offloading can be enabled or disabled using ifconfig. 
  Both transmit and receive offloading will be either enabled or 
  disabled together. You cannot enable/disable one without the other.

  To enable checksum offloading:

         ifconfig <interface_num> rxcsum 

  To disable checksum offloading:

         ifconfig <interface_num> -rxcsum 

  To confirm the current setting:

         ifconfig <interface_num>

  
  TSO
  ---

  TSO is enabled by default.

  To disable:

         ifconfig <interface_num> -tso 

  To re-enable:

         ifconfig <interface_num> tso

  LRO
  ---
  
  Large Receive Offload is available in the driver; it is on by default. 
  It can be disabled by using:
         ifconfig <interface_num> -lro
  To enable:
         ifconfig <interface_num> lro


  Important system configuration changes:
  ---------------------------------------

  When there is a choice run on a 64bit OS rather than 32, it makes a 
  significant difference in improvement.
  
  The interface can generate a high number of interrupts. To avoid running 
  into the limit set by the kernel, adjust hw.intr_storm_threshold 
  setting using sysctl:
 
       sysctl hw.intr_storm_threshold=9000 (the default is 1000)

  For this change to take effect on boot, edit /etc/sysctl.conf and add the 
  line:  
       hw.intr_storm_threshold=9000

  If you still see Interrupt Storm detected messages, increase the limit to a
  higher number, or the detection can be disabled by setting it to 0.

  The default number of descriptors is 2048, increasing or descreasing
  may improve performance in some workloads, but change carefully.


Known Limitations
=================

For known hardware and troubleshooting issues, refer to the following website.

    http://support.intel.com/support/go/network/adapter/home.htm

Either select the link for your adapter or perform a search for the adapter 
number. The adapter's page lists many issues. For a complete list of hardware
issues download your adapter's user guide and read the Release Notes. 

  UDP stress test with 10GbE driver
  ---------------------------------  
  Under small packets UDP stress test with 10GbE driver, the FreeBSD system 
  will drop UDP packets due to the fullness of socket buffers. You may want 
  to change the driver's Flow Control variables to the minimum value for 
  controlling packet reception.

  Attempting to configure larger MTUs with a large numbers of processors may 
  generate the error message "ix0:could not setup receive structures"
  --------------------------------------------------------------------------
  When using the ixgbe driver with RSS autoconfigured based on the number of 
  cores (the default setting) and that number is larger than 4, increase the 
  memory resources allocated for the mbuf pool as follows:

  Add to the sysctl.conf file for the system:

  kern.ipc.nmbclusters=262144
  kern.ipc.nmbjumbop=262144

  Lower than expected performance on dual port 10GbE devices
  ----------------------------------------------------------
  Some PCI-E x8 slots are actually configured as x4 slots. These slots have 
  insufficient bandwidth for full 10Gbe line rate with dual port 10GbE devices.
  The driver will detect this situation and will write the following message in
  the system log: "PCI-Express bandwidth available for this card is not 
  sufficient for optimal performance. For optimal performance a x8 PCI-Express 
  slot is required."

  If this error occurs, moving your adapter to a true x8 slot will resolve the 
  issue.



Support
=======

For general information and support, go to the Intel support website at:

        www.intel.com/support/

If an issue is identified with the released source code on the supported
kernel with a supported adapter, email the specific information related to 
the issue to freebsd@@intel.com



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.


@


1.4
log
@Switching exporter and resync
@
text
@d3 1
a3 1
/*$FreeBSD: head/sys/dev/ixgbe/README 222588 2011-06-02 00:34:57Z jfv $*/
d5 1
a5 1
November 12, 2010
d21 2
a22 2
This file describes the FreeBSD* driver for the Intel(R) Ethernet 10 Gigabit 
Family of Adapters.  Driver has been developed for use with FreeBSD 7.2 or later.
d45 1
a45 1
the same Speed setting via Ethtool. Results may vary if you mix speed settings. 
d73 6
a78 1
		
d232 1
a232 8
  The default scheduler SCHED_4BSD is not smart about SMP locality issues. 
  Significant improvement can be achieved by switching to the ULE scheduler.

  This is done by changing the entry in the config file from SCHED_4BSD to 
  SCHED_ULE. Note that this is only advisable on FreeBSD 7, on 6.X there have
  been stability problems with ULE.

  The interface can generate high number of interrupts. To avoid running 
d243 1
a243 3
  higher number.

  Best throughput results are seen with a large MTU; use 9000 if possible. 
d245 2
a246 2
  The default number of descriptors is 1024, increasing this to 2K or even 
  4K may improve performance in some workloads, but change carefully.
d283 1
a283 1
  The driver can detect this situation and will write the following message in
@


1.4.2.1
log
@file README was added on branch RELENG_8_4 on 2013-03-28 13:04:45 +0000
@
text
@d1 323
@


1.4.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 323
FreeBSD Driver for Intel(R) Ethernet 10 Gigabit PCI Express Server Adapters
============================================================================
/*$FreeBSD: releng/8.4/sys/dev/ixgbe/README 230924 2012-02-03 01:36:02Z jfv $*/

November 12, 2010


Contents
========

- Overview
- Supported Adapters
- Building and Installation
- Additional Configurations and Tuning
- Known Limitations


Overview
========

This file describes the FreeBSD* driver for the Intel(R) Ethernet 10 Gigabit 
Family of Adapters.  Driver has been developed for use with FreeBSD 7.2 or later.

For questions related to hardware requirements, refer to the documentation
supplied with your Intel 10GbE adapter.  All hardware requirements listed
apply to use with FreeBSD.


Supported Adapters
==================

The driver in this release is compatible with 82598 and 82599-based Intel 
Network Connections.
              
SFP+ Devices with Pluggable Optics
----------------------------------

82599-BASED ADAPTERS  

NOTE: If your 82599-based Intel(R) Ethernet Network Adapter came with Intel 
optics, or is an Intel(R) Ethernet Server Adapter X520-2, then it only supports
Intel optics and/or the direct attach cables listed below.

When 82599-based SFP+ devices are connected back to back, they should be set to
the same Speed setting via Ethtool. Results may vary if you mix speed settings. 
 
Supplier    Type                                             Part Numbers

SR Modules			
Intel 	    DUAL RATE 1G/10G SFP+ SR (bailed)                FTLX8571D3BCV-IT	
Intel	    DUAL RATE 1G/10G SFP+ SR (bailed)                AFBR-703SDZ-IN2
Intel      DUAL RATE 1G/10G SFP+ SR (bailed)                 AFBR-703SDDZ-IN1	
LR Modules			
Intel 	    DUAL RATE 1G/10G SFP+ LR (bailed)                FTLX1471D3BCV-IT	
Intel	    DUAL RATE 1G/10G SFP+ LR (bailed)                AFCT-701SDZ-IN2	
Intel       DUAL RATE 1G/10G SFP+ LR (bailed)                AFCT-701SDDZ-IN1

The following is a list of 3rd party SFP+ modules and direct attach cables that
have received some testing. Not all modules are applicable to all devices.

Supplier   Type                                              Part Numbers

Finisar    SFP+ SR bailed, 10g single rate                   FTLX8571D3BCL
Avago      SFP+ SR bailed, 10g single rate                   AFBR-700SDZ
Finisar    SFP+ LR bailed, 10g single rate                   FTLX8571D3BCV-IT
		
Finisar    DUAL RATE 1G/10G SFP+ SR (No Bail)	             FTLX8571D3QCV-IT
Avago	   DUAL RATE 1G/10G SFP+ SR (No Bail)	             AFBR-703SDZ-IN1	
Finisar	   DUAL RATE 1G/10G SFP+ LR (No Bail)	             FTLX1471D3QCV-IT
Avago	   DUAL RATE 1G/10G SFP+ LR (No Bail)	             AFCT-701SDZ-IN1
Finistar   1000BASE-T SFP                                    FCLF8522P2BTL
Avago      1000BASE-T SFP                                    ABCU-5710RZ
		
82599-based adapters support all passive and active limiting direct attach 
cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications.

Laser turns off for SFP+ when ifconfig down
--------------------------------------------------------
"ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters.
"ifconfig up" turns on the later.

82598-BASED ADAPTERS

NOTES for 82598-Based Adapters: 
- Intel(R) Ethernet Network Adapters that support removable optical modules 
  only support their original module type (i.e., the Intel(R) 10 Gigabit SR 
  Dual Port Express Module only supports SR optical modules). If you plug 
  in a different type of module, the driver will not load.
- Hot Swapping/hot plugging optical modules is not supported.  
- Only single speed, 10 gigabit modules are supported.  
- LAN on Motherboard (LOMs) may support DA, SR, or LR modules. Other module 
  types are not supported. Please see your system documentation for details.  

The following is a list of 3rd party SFP+ modules and direct attach cables that have 
received some testing. Not all modules are applicable to all devices.

Supplier   Type                                              Part Numbers

Finisar    SFP+ SR bailed, 10g single rate                   FTLX8571D3BCL
Avago      SFP+ SR bailed, 10g single rate                   AFBR-700SDZ
Finisar    SFP+ LR bailed, 10g single rate                   FTLX1471D3BCL
	
82598-based adapters support all passive direct attach cables that comply 
with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach 
cables are not supported.

Third party optic modules and cables referred to above are listed only for the 
purpose of highlighting third party specifications and potential compatibility, 
and are not recommendations or endorsements or sponsorship of any third party's
product by Intel. Intel is not endorsing or promoting products made by any 
third party and the third party reference is provided only to share information
regarding certain optic modules and cables with the above specifications. There
may be other manufacturers or suppliers, producing or supplying optic modules 
and cables with similar or matching descriptions. Customers must use their own 
discretion and diligence to purchase optic modules and cables from any third 
party of their choice. Customer are solely responsible for assessing the 
suitability of the product and/or devices and for the selection of the vendor 
for purchasing any product. INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL
DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF 
SUCH THIRD PARTY PRODUCTS OR SELECTION OF VENDOR BY CUSTOMERS.

Configuration and Tuning
========================

The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
all 10 Gigabit adapters. 

  Jumbo Frames
  ------------
  To enable Jumbo Frames, use the ifconfig utility to increase the MTU
  beyond 1500 bytes.

  NOTES:

       - The Jumbo Frames setting on the switch must be set to at least
         22 bytes larger than that of the adapter.

       - There are known performance issues with this driver when running 
         UDP traffic with Jumbo Frames. 

  The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default
  MTU range is 1500. To modify the setting, enter the following:

        ifconfig ix<interface_num> <hostname or IP address> mtu 9000

  To confirm an interface's MTU value, use the ifconfig command. To confirm
  the MTU used between two specific devices, use:

        route get <destination_IP_address>

  VLANs
  -----
  To create a new VLAN pseudo-interface:

        ifconfig <vlan_name> create

  To associate the VLAN pseudo-interface with a physical interface and
  assign a VLAN ID, IP address, and netmask:

        ifconfig <vlan_name> <ip_address> netmask <subnet_mask> vlan
           <vlan_id> vlandev <physical_interface>

  Example:

        ifconfig vlan10 10.0.0.1 netmask 255.255.255.0 vlan 10 vlandev ixgbe0

  In this example, all packets will be marked on egress with 802.1Q VLAN 
  tags, specifying a VLAN ID of 10.

  To remove a VLAN pseudo-interface:

        ifconfig <vlan_name> destroy


  Checksum Offload
  ----------------
  
  Checksum offloading supports both TCP and UDP packets and is 
  supported for both transmit and receive. 

  Checksum offloading can be enabled or disabled using ifconfig. 
  Both transmit and receive offloading will be either enabled or 
  disabled together. You cannot enable/disable one without the other.

  To enable checksum offloading:

         ifconfig <interface_num> rxcsum 

  To disable checksum offloading:

         ifconfig <interface_num> -rxcsum 

  To confirm the current setting:

         ifconfig <interface_num>

  
  TSO
  ---

  TSO is enabled by default.

  To disable:

         ifconfig <interface_num> -tso 

  To re-enable:

         ifconfig <interface_num> tso

  LRO
  ---
  
  Large Receive Offload is available in the driver; it is on by default. 
  It can be disabled by using:
         ifconfig <interface_num> -lro
  To enable:
         ifconfig <interface_num> lro


  Important system configuration changes:
  ---------------------------------------

  When there is a choice run on a 64bit OS rather than 32, it makes a 
  significant difference in improvement.
  
  The default scheduler SCHED_4BSD is not smart about SMP locality issues. 
  Significant improvement can be achieved by switching to the ULE scheduler.

  This is done by changing the entry in the config file from SCHED_4BSD to 
  SCHED_ULE. Note that this is only advisable on FreeBSD 7, on 6.X there have
  been stability problems with ULE.

  The interface can generate high number of interrupts. To avoid running 
  into the limit set by the kernel, adjust hw.intr_storm_threshold 
  setting using sysctl:
 
       sysctl hw.intr_storm_threshold=9000 (the default is 1000)

  For this change to take effect on boot, edit /etc/sysctl.conf and add the 
  line:  
       hw.intr_storm_threshold=9000

  If you still see Interrupt Storm detected messages, increase the limit to a
  higher number.

  Best throughput results are seen with a large MTU; use 9000 if possible. 

  The default number of descriptors is 1024, increasing this to 2K or even 
  4K may improve performance in some workloads, but change carefully.


Known Limitations
=================

For known hardware and troubleshooting issues, refer to the following website.

    http://support.intel.com/support/go/network/adapter/home.htm

Either select the link for your adapter or perform a search for the adapter 
number. The adapter's page lists many issues. For a complete list of hardware
issues download your adapter's user guide and read the Release Notes. 

  UDP stress test with 10GbE driver
  ---------------------------------  
  Under small packets UDP stress test with 10GbE driver, the FreeBSD system 
  will drop UDP packets due to the fullness of socket buffers. You may want 
  to change the driver's Flow Control variables to the minimum value for 
  controlling packet reception.

  Attempting to configure larger MTUs with a large numbers of processors may 
  generate the error message "ix0:could not setup receive structures"
  --------------------------------------------------------------------------
  When using the ixgbe driver with RSS autoconfigured based on the number of 
  cores (the default setting) and that number is larger than 4, increase the 
  memory resources allocated for the mbuf pool as follows:

  Add to the sysctl.conf file for the system:

  kern.ipc.nmbclusters=262144
  kern.ipc.nmbjumbop=262144

  Lower than expected performance on dual port 10GbE devices
  ----------------------------------------------------------
  Some PCI-E x8 slots are actually configured as x4 slots. These slots have 
  insufficient bandwidth for full 10Gbe line rate with dual port 10GbE devices.
  The driver can detect this situation and will write the following message in
  the system log: "PCI-Express bandwidth available for this card is not 
  sufficient for optimal performance. For optimal performance a x8 PCI-Express 
  slot is required."

  If this error occurs, moving your adapter to a true x8 slot will resolve the 
  issue.



Support
=======

For general information and support, go to the Intel support website at:

        www.intel.com/support/

If an issue is identified with the released source code on the supported
kernel with a supported adapter, email the specific information related to 
the issue to freebsd@@intel.com



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.


@


1.3
log
@SVN rev 222588 on 2011-06-02 00:34:57Z by jfv

First off: update the driver README, the old one was horribly
crusty, and this still isn't perfect, but its at least a bit
more recent.

Secondly, a few improvements to the driver from Andrew Boyer,
support hint to allow devices to not attach, add VLAN_HWTSO
capability so vlans can use TSO, fix in the interrupt handler
to make sure the stack TX queue is processed. Oh, and also
make sure IPv6 does not cause a re-init in the ioctl routine.
Thanks for your efforts Andrew!

Thanks to Claudio Jeker for noticing the ixgbe_xmit() routine
was not correctly swapping the dma map from the first to the
last descriptor in a multi-descriptor transmission, corrected
this.
@
text
@d3 1
a3 1
/*$FreeBSD$*/
@


1.3.2.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.3.2.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d3 1
a3 1
/*$FreeBSD: stable/9/sys/dev/ixgbe/README 222588 2011-06-02 00:34:57Z jfv $*/
@


1.3.2.3
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/252898
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d3 1
a3 1
/*$FreeBSD: stable/9/sys/dev/ixgbe/README 252898 2013-07-06 21:38:55Z jfv $*/
d5 1
a5 1
Jun 18, 2013
d21 2
a22 2
This file describes the FreeBSD* driver for the
Intel(R) Ethernet 10 Gigabit Family of Adapters.
d45 1
a45 1
the same Speed setting. Results may vary if you mix speed settings. 
d73 1
a73 6

NOTE: As of driver version 2.5.13 it is possible to allow the operation
of unsupported modules by setting the static variable 'allow_unsupported_sfp'
to TRUE and rebuilding the driver. If problems occur please assure that they
can be reproduced with fully supported optics first.

d227 8
a234 1
  The interface can generate a high number of interrupts. To avoid running 
d245 3
a247 1
  higher number, or the detection can be disabled by setting it to 0.
d249 2
a250 2
  The default number of descriptors is 2048, increasing or descreasing
  may improve performance in some workloads, but change carefully.
d287 1
a287 1
  The driver will detect this situation and will write the following message in
@


1.3.2.1.4.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.3.2.1.4.2
log
@Switch importer
@
text
@d3 1
a3 1
/*$FreeBSD: releng/9.1/sys/dev/ixgbe/README 222588 2011-06-02 00:34:57Z jfv $*/
@


1.3.2.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.3.2.1.2.2
log
@Switch importer
@
text
@d3 1
a3 1
/*$FreeBSD: releng/9.0/sys/dev/ixgbe/README 222588 2011-06-02 00:34:57Z jfv $*/
@


1.2
log
@SVN rev 190873 on 2009-04-10 00:22:48Z by jfv

Update the ixgbe driver to 1.7.4, this includes support
for the new 82599 adapter family, adds header split, and
many small fixes. The driver should now be added to the
GENERIC kernel.

MFC after: 2 weeks
@
text
@d1 2
a2 2
FreeBSD Driver for 10 Gigabit PCI Express Server Adapters
=============================================
d5 1
a5 1
May 14, 2008
d14 1
a14 1
- Additional Configurations
d21 2
a22 2
This file describes the FreeBSD* driver for the 10 Gigabit PCIE Family of 
Adapters.  Drivers has been developed for use with FreeBSD 7 or later.
d32 2
a33 13
The following Intel network adapters are compatible with the drivers in this 
release:

Controller  Adapter Name                      Physical Layer
----------  ------------                      --------------
82598EB     Intel(R) 10 Gigabit XF SR/AF      10G Base -LR (850 nm optical fiber) 
            Dual Port Server Adapter          10G Base -SR (1310 nm optical fiber) 
82598EB     Intel(R) 10 Gigabit XF SR/LR 
            Server Adapter
            Intel(R) 82598EB 10 Gigabit AF 
            Network Connection
            Intel(R) 82598EB 10 Gigabit AT 
            CX4 Network Connection
d35 2
d38 1
a38 2
Building and Installation
=========================
d40 3
a42 2
NOTE: You must have kernel sources installed in order to compile the driver
      module.
d44 4
a47 69
      In the instructions below, x.x.x is the driver version as indicated in
      the name of the driver tar. 

1. Move the base driver tar file to the directory of your choice. For 
   example, use /home/username/ixgbe or /usr/local/src/ixgbe.

2. Untar/unzip the archive:
     tar xfz ixgbe-x.x.x.tar.gz

3. To install man page:
     cd ixgbe-x.x.x
     gzip -c ixgbe.4 > /usr/share/man/man4/ixgbee.4.gz

4. To load the driver onto a running system:
     cd ixgbe-x.x.x/src
     make load

5. To assign an IP address to the interface, enter the following:
     ifconfig ix<interface_num> <IP_address>

6. Verify that the interface works. Enter the following, where <IP_address>
   is the IP address for another machine on the same subnet as the interface
   that is being tested:
     ping <IP_address>

7. If you want the driver to load automatically when the system is booted:

     cd ixgbe-x.x.x/src
     make
     make install
        
    Edit /boot/loader.conf, and add the following line:
     ixgbe_load="YES"

     OR

     compile the driver into the kernel (see item 8).


   Edit /etc/rc.conf, and create the appropriate ifconfig_ixgbe<interface_num> 
   entry:

     ifconfig_ix<interface_num>="<ifconfig_settings>"

     Example usage:

     ifconfig_ix0="inet 192.168.10.1 netmask 255.255.255.0"

     NOTE: For assistance, see the ifconfig man page.

8. If you want to compile the driver into the kernel, enter:

     FreeBSD 7 or later:

     cd ixgbe-x.x.x/src

     cp *.[ch] /usr/src/sys/dev/ixgbe
   
     cp Makefile.kernel /usr/src/sys/modules/ixgbe/Makefile

     Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 
     /usr/src/sys/i386/conf (replace "i386" with the appropriate system 
     architecture if necessary), and ensure the following line is present:

    device ixgbe

   Compile and install the kernel.  The system must be reboot for the kernel 
   updates to take affect.  For additional information on compiling the kernel, 
   consult the FreeBSD operating system documentation.
d49 72
d123 1
a123 1
=========================
d144 1
a144 1
        ifconfig ix <interface_num> <hostname or IP address> mtu 9000
d201 2
d212 1
a212 1
  ___
d214 6
a219 8
   Large Receive Offload is available in version 1.4.4, it is on
   by default. It can be toggled off and on by using:
	sysctl dev.ix.X.enable_lro=[0,1]

   NOTE: when changing this feature you MUST be sure the interface
   is reinitialized, it is easy to do this with ifconfig down/up.
   The LRO code will ultimately move into the kernel stack code,
   but for this first release it was included with the driver.
d224 3
a226 3
  When there is a choice run on a 64bit OS rather than 32, it makes
  a significant difference in improvement.

d234 3
a236 1
  Change the file /etc/sysctl.conf, add the line:  
d238 8
a245 1
         hw.intr_storm_threshold: 8000 (the default is 1000)
d249 2
a250 2
  The default number of descriptors is 256, increasing this to 1024 or even 
  2048 may improve performance.
d255 11
d271 25
d302 1
a302 1
        http://support.intel.com
d306 1
a306 1
the issue to freebsd@@intel.com.
@


1.2.2.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.2.2.2
log
@SVN rev 230924 on 2012-02-03 01:36:02Z by jfv

MFC of the latest ixgbe driver.

Revisions included:
209602,209603,209607,209609,209622,215911,
215913,215914,215924,217129,217556,222588,
222592,225405,229767,230329,230775,230790
@
text
@d1 2
a2 2
FreeBSD Driver for Intel(R) Ethernet 10 Gigabit PCI Express Server Adapters
============================================================================
d5 1
a5 1
November 12, 2010
d14 1
a14 1
- Additional Configurations and Tuning
d21 2
a22 2
This file describes the FreeBSD* driver for the Intel(R) Ethernet 10 Gigabit 
Family of Adapters.  Driver has been developed for use with FreeBSD 7.2 or later.
d32 13
a44 2
The driver in this release is compatible with 82598 and 82599-based Intel 
Network Connections.
a45 2
SFP+ Devices with Pluggable Optics
----------------------------------
d47 57
a103 1
82599-BASED ADAPTERS  
d105 1
a105 3
NOTE: If your 82599-based Intel(R) Ethernet Network Adapter came with Intel 
optics, or is an Intel(R) Ethernet Server Adapter X520-2, then it only supports
Intel optics and/or the direct attach cables listed below.
d107 15
a121 4
When 82599-based SFP+ devices are connected back to back, they should be set to
the same Speed setting via Ethtool. Results may vary if you mix speed settings. 
 
Supplier    Type                                             Part Numbers
a122 72
SR Modules			
Intel 	    DUAL RATE 1G/10G SFP+ SR (bailed)                FTLX8571D3BCV-IT	
Intel	    DUAL RATE 1G/10G SFP+ SR (bailed)                AFBR-703SDZ-IN2
Intel      DUAL RATE 1G/10G SFP+ SR (bailed)                 AFBR-703SDDZ-IN1	
LR Modules			
Intel 	    DUAL RATE 1G/10G SFP+ LR (bailed)                FTLX1471D3BCV-IT	
Intel	    DUAL RATE 1G/10G SFP+ LR (bailed)                AFCT-701SDZ-IN2	
Intel       DUAL RATE 1G/10G SFP+ LR (bailed)                AFCT-701SDDZ-IN1

The following is a list of 3rd party SFP+ modules and direct attach cables that
have received some testing. Not all modules are applicable to all devices.

Supplier   Type                                              Part Numbers

Finisar    SFP+ SR bailed, 10g single rate                   FTLX8571D3BCL
Avago      SFP+ SR bailed, 10g single rate                   AFBR-700SDZ
Finisar    SFP+ LR bailed, 10g single rate                   FTLX8571D3BCV-IT
		
Finisar    DUAL RATE 1G/10G SFP+ SR (No Bail)	             FTLX8571D3QCV-IT
Avago	   DUAL RATE 1G/10G SFP+ SR (No Bail)	             AFBR-703SDZ-IN1	
Finisar	   DUAL RATE 1G/10G SFP+ LR (No Bail)	             FTLX1471D3QCV-IT
Avago	   DUAL RATE 1G/10G SFP+ LR (No Bail)	             AFCT-701SDZ-IN1
Finistar   1000BASE-T SFP                                    FCLF8522P2BTL
Avago      1000BASE-T SFP                                    ABCU-5710RZ
		
82599-based adapters support all passive and active limiting direct attach 
cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications.

Laser turns off for SFP+ when ifconfig down
--------------------------------------------------------
"ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters.
"ifconfig up" turns on the later.

82598-BASED ADAPTERS

NOTES for 82598-Based Adapters: 
- Intel(R) Ethernet Network Adapters that support removable optical modules 
  only support their original module type (i.e., the Intel(R) 10 Gigabit SR 
  Dual Port Express Module only supports SR optical modules). If you plug 
  in a different type of module, the driver will not load.
- Hot Swapping/hot plugging optical modules is not supported.  
- Only single speed, 10 gigabit modules are supported.  
- LAN on Motherboard (LOMs) may support DA, SR, or LR modules. Other module 
  types are not supported. Please see your system documentation for details.  

The following is a list of 3rd party SFP+ modules and direct attach cables that have 
received some testing. Not all modules are applicable to all devices.

Supplier   Type                                              Part Numbers

Finisar    SFP+ SR bailed, 10g single rate                   FTLX8571D3BCL
Avago      SFP+ SR bailed, 10g single rate                   AFBR-700SDZ
Finisar    SFP+ LR bailed, 10g single rate                   FTLX1471D3BCL
	
82598-based adapters support all passive direct attach cables that comply 
with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach 
cables are not supported.

Third party optic modules and cables referred to above are listed only for the 
purpose of highlighting third party specifications and potential compatibility, 
and are not recommendations or endorsements or sponsorship of any third party's
product by Intel. Intel is not endorsing or promoting products made by any 
third party and the third party reference is provided only to share information
regarding certain optic modules and cables with the above specifications. There
may be other manufacturers or suppliers, producing or supplying optic modules 
and cables with similar or matching descriptions. Customers must use their own 
discretion and diligence to purchase optic modules and cables from any third 
party of their choice. Customer are solely responsible for assessing the 
suitability of the product and/or devices and for the selection of the vendor 
for purchasing any product. INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL
DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF 
SUCH THIRD PARTY PRODUCTS OR SELECTION OF VENDOR BY CUSTOMERS.
d125 1
a125 1
========================
d146 1
a146 1
        ifconfig ix<interface_num> <hostname or IP address> mtu 9000
a202 2
  TSO is enabled by default.

d212 1
a212 1
  ---
d214 8
a221 6
  Large Receive Offload is available in the driver; it is on by default. 
  It can be disabled by using:
         ifconfig <interface_num> -lro
  To enable:
         ifconfig <interface_num> lro

d226 3
a228 3
  When there is a choice run on a 64bit OS rather than 32, it makes a 
  significant difference in improvement.
  
d236 1
a236 3
  The interface can generate high number of interrupts. To avoid running 
  into the limit set by the kernel, adjust hw.intr_storm_threshold 
  setting using sysctl:
d238 1
a238 8
       sysctl hw.intr_storm_threshold=9000 (the default is 1000)

  For this change to take effect on boot, edit /etc/sysctl.conf and add the 
  line:  
       hw.intr_storm_threshold=9000

  If you still see Interrupt Storm detected messages, increase the limit to a
  higher number.
d242 2
a243 2
  The default number of descriptors is 1024, increasing this to 2K or even 
  4K may improve performance in some workloads, but change carefully.
a247 11

For known hardware and troubleshooting issues, refer to the following website.

    http://support.intel.com/support/go/network/adapter/home.htm

Either select the link for your adapter or perform a search for the adapter 
number. The adapter's page lists many issues. For a complete list of hardware
issues download your adapter's user guide and read the Release Notes. 

  UDP stress test with 10GbE driver
  ---------------------------------  
a252 25
  Attempting to configure larger MTUs with a large numbers of processors may 
  generate the error message "ix0:could not setup receive structures"
  --------------------------------------------------------------------------
  When using the ixgbe driver with RSS autoconfigured based on the number of 
  cores (the default setting) and that number is larger than 4, increase the 
  memory resources allocated for the mbuf pool as follows:

  Add to the sysctl.conf file for the system:

  kern.ipc.nmbclusters=262144
  kern.ipc.nmbjumbop=262144

  Lower than expected performance on dual port 10GbE devices
  ----------------------------------------------------------
  Some PCI-E x8 slots are actually configured as x4 slots. These slots have 
  insufficient bandwidth for full 10Gbe line rate with dual port 10GbE devices.
  The driver can detect this situation and will write the following message in
  the system log: "PCI-Express bandwidth available for this card is not 
  sufficient for optimal performance. For optimal performance a x8 PCI-Express 
  slot is required."

  If this error occurs, moving your adapter to a true x8 slot will resolve the 
  issue.


d259 1
a259 1
        www.intel.com/support/
d263 1
a263 1
the issue to freebsd@@intel.com
@


1.2.2.3
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d3 1
a3 1
/*$FreeBSD: stable/8/sys/dev/ixgbe/README 230924 2012-02-03 01:36:02Z jfv $*/
@


1.2.2.2.2.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.2.2.2.2.2
log
@Switch importer
@
text
@d3 1
a3 1
/*$FreeBSD: releng/8.3/sys/dev/ixgbe/README 230924 2012-02-03 01:36:02Z jfv $*/
@


1.2.2.1.6.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.2.2.1.4.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.2.2.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.1
log
@This is driver version 1.4.4 of the Intel ixgbe driver.
  -It has new hardware support
  -It uses a new method of TX cleanup called Head Write Back
  -It includes the provisional generic TCP LRO feature contributed
   by Myricom and made general purpose by me. This should move into
   the stack upon approval but for this driver drop its in here.
  -Also bug fixes and etc...

MFC in a week if no serious issues arise.
@
text
@d3 3
a5 1
$FreeBSD$
d263 1
a263 1
the issue to freebsdnic@@mailbox.intel.com.
@

