Linux* Base Driver for Intel(R) Network Connection
==================================================

Intel XL710 X710 Virtual Function Linux driver.
Copyright(c) 2013 Intel Corporation.

Contents
========

- Identifying Your Adapter
- Known Issues/Troubleshooting
- Support

This file describes the i40evf Linux* Base Driver for the Intel(R) XL710
X710 Virtual Function.

The i40evf driver supports XL710 and X710 virtual function devices that
can only be activated on kernels with CONFIG_PCI_IOV enabled.

The guest OS loading the i40evf driver must support MSI-X interrupts.

Identifying Your Adapter
========================

For more information on how to identify your adapter, go to the Adapter &
Driver ID Guide at:

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

Known Issues/Troubleshooting
============================


Support
=======

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

    http://support.intel.com

or the Intel Wired Networking project hosted by Sourceforge at:

    http://sourceforge.net/projects/e1000

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 e1000-devel@lists.sf.net
