Index: head/share/man/man4/Makefile =================================================================== --- head/share/man/man4/Makefile +++ head/share/man/man4/Makefile @@ -196,6 +196,7 @@ ${_hv_vmbus.4} \ ${_hv_vss.4} \ hwpmc.4 \ + iavf.4 \ ichsmb.4 \ ${_ichwd.4} \ icmp.4 \ @@ -240,7 +241,6 @@ iwnfw.4 \ ixgbe.4 \ ixl.4 \ - ixlv.4 \ jedec_dimm.4 \ jme.4 \ joy.4 \ @@ -669,7 +669,7 @@ MLINKS+=ixgbe.4 if_ix.4 MLINKS+=ixgbe.4 if_ixgbe.4 MLINKS+=ixl.4 if_ixl.4 -MLINKS+=ixlv.4 if_ixlv.4 +MLINKS+=iavf.4 if_iavf.4 MLINKS+=jme.4 if_jme.4 MLINKS+=kue.4 if_kue.4 MLINKS+=lagg.4 trunk.4 Index: head/share/man/man4/iavf.4 =================================================================== --- head/share/man/man4/iavf.4 +++ head/share/man/man4/iavf.4 @@ -0,0 +1,138 @@ +.\" Copyright (c) 2013-2018, Intel Corporation +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" 1. Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" 3. Neither the name of the Intel Corporation nor the names of its +.\" contributors may be used to endorse or promote products derived from +.\" this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.\" * Other names and brands may be claimed as the property of others. +.\" +.\" $FreeBSD$ +.\" +.Dd October 5, 2018 +.Dt IAVF 4 +.Os +.Sh NAME +.Nm iavf +.Nd "Intel Adaptive Virtual Function driver" +.Sh SYNOPSIS +To compile this driver into the kernel, place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device iavf" +.Ed +.Pp +To load the driver as a module at boot time, place the following lines in +.Xr loader.conf 5 : +.Bd -literal -offset indent +if_iavf_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver provides support for the PCI Virtual Functions from the 700 Series of +ethernet devices and newer product families. +The driver supports Jumbo Frames, TX/RX checksum offload, +TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN +tag insertion/extraction, VLAN checksum offload, VLAN TSO, and +Receive Side Steering (RSS), all for both IPv4 and IPv6. +For further hardware information and questions related to hardware +requirements, see +.Pa http://support.intel.com/ . +.Pp +Support for Jumbo Frames is provided via the interface MTU setting. +Selecting an MTU larger than 1500 bytes with the +.Xr ifconfig 8 +utility configures the adapter to receive and transmit Jumbo Frames. +The maximum MTU size for Jumbo Frames is 9706. +.Pp +Offloads are also controlled via the interface, for instance, +checksumming for both IPv4 and IPv6 can be set and unset, TSO4 +and/or TSO6, and finally LRO can be set and unset. +.Pp +For more information on configuring this device, see +.Xr ifconfig 8 . +.Pp +.Em NOTE : +This +.Nm +driver is only for Virtual Functions. +For 700 series Physical Functions, use the +.Xr ixl 4 +driver. +.Sh LOADER TUNABLES +Tunables can be set at the +.Xr loader 8 +prompt before booting the kernel or stored in +.Xr loader.conf 5 . +.Bl -tag -width indent +.It Va hw.iavf.rx_itr +The RX interrupt rate value, set to 62 (124 usec) by default. +.It Va hw.iavf.tx_itr +The TX interrupt rate value, set to 122 (244 usec) by default. +.It Va hw.iavf.enable_head_writeback +When the driver is finding the last TX descriptor processed by the hardware, +use a value written to memory by the hardware instead of scanning the +descriptor ring for completed descriptors. +Disabled by default; this mimics the "legacy" TX behavior found in +.Xr ixgbe 4 . +to ensure compatibility with future, non-700 series VF devices. +.El +.Sh SUPPORT +For general information and support, +go to the Intel support website at: +.Pa http://support.intel.com/ . +.Pp +If an issue is identified with this driver with a supported adapter, +email all the specific information related to the issue to +.Mt freebsd@intel.com . +.Sh SEE ALSO +.Xr arp 4 , +.Xr ixl 4 , +.Xr netintro 4 , +.Xr vlan 4 , +.Xr ifconfig 8 , +.Xr iflib 9 +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 10.1 . +under the name "ixlv" +It was converted to use +.Xr iflib 9 +and changed to its current name in +.Fx 12 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An Jack Vogel Aq Mt jfv@freebsd.org +and +.An Eric Joyner Aq Mt erj@freebsd.org . +.Sh CAVEATS +This driver is supposed to function on VFs spawned from future network devices by Intel, +but at the time of this writing, has only been tested on the 700 series VFs. Index: head/share/man/man4/ixl.4 =================================================================== --- head/share/man/man4/ixl.4 +++ head/share/man/man4/ixl.4 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2013-2015, Intel Corporation +.\" Copyright (c) 2013-2018, Intel Corporation .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -31,31 +31,44 @@ .\" .\" $FreeBSD$ .\" -.Dd March 25, 2015 +.Dd October 5, 2018 .Dt IXL 4 .Os .Sh NAME .Nm ixl -.Nd "Intel XL710 Ethernet 40Gb Base driver" +.Nd "Intel Ethernet 700 Series Driver" .Sh SYNOPSIS -To compile this driver into the kernel, -place the following lines in your +To compile this driver into the kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent .Cd "device ixl" .Ed .Pp -To load the driver as a -module at boot time, place the following lines in +To load the driver as a module at boot time, place the following lines in .Xr loader.conf 5 : .Bd -literal -offset indent if_ixl_load="YES" .Ed .Sh DESCRIPTION +.Ss Features The .Nm -driver provides support for PCI Express adapters or LOMs -in the XL710 Family of ethernet devices. +driver provides support for any PCI Express adapter or LOM +(LAN On Motherboard) +in the Intel Ethernet 700 Series. +As of this writing, the series includes devices with these model numbers: +.Pp +.Bl -bullet -compact +.It +XL710 (40G) +.It +X710 (10G) +.It +XXV710 (25G) +.It +X722 (10G) +.El +.Pp The driver supports Jumbo Frames, TX/RX checksum offload, TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN tag insertion/extraction, VLAN checksum offload, VLAN TSO, and @@ -76,91 +89,176 @@ .Pp For more information on configuring this device, see .Xr ifconfig 8 . +.Ss Additional Utilities +There are additional tools available from Intel to help configure and update +the adapters covered by this driver. +These tools can be downloaded directly from Intel at +.Pa downloadcenter.intel.com , +by searching for their names, or by installing certain packages: +.Bl -item +.It +To change the behavior of the QSFP+ ports on XL710 adapters, use the +Intel QCU (QSFP+ configuration utility); installed by the +.Em sysutils/intel-qcu +package. +.It +To update the firmware on an adapter, use the Intel Non-Volatile Memory (NVM) +Update Utility; installed by the +.Em sysutils/intel-nvmupdate +package. +.It +Drivers are provided by Intel outside of the +.Fx +kernel; install the +.Em net/intel-ixl-kmod +package for the latest driver. +.El .Sh HARDWARE +Most adapters in the Intel Ethernet 700 Series with SFP+/SFP28/QSFP+ cages +have firmware that requires that Intel qualified modules are used; these +qualified modules are listed below. +This qualification check cannot be disabled by the driver. +.Pp The .Nm -driver supports these SFP+ Pluggable Optics: +driver supports 40Gb Ethernet adapters with these QSFP+ modules: .Pp .Bl -bullet -compact .It -Intel TRIPLE RATE 1G/10G/40G QSFP+ SR (bailed) E40GQSFPSR +Intel 4x10G/40G QSFP+ 40GBASE-SR4 E40GQSFPSR .It -Intel TRIPLE RATE 1G/10G/40G QSFP+ SR (bailed) E40GQSFPLR +Intel 4x10G/40G QSFP+ 40GBASE-LR4 E40GQSFPLR .El .Pp The .Nm -driver supports 10Gb and 1Gb Ethernet adapters with SR Modules: +driver supports 25Gb Ethernet adapters with these SFP28 modules: .Pp .Bl -bullet -compact .It -Intel DUAL RATE 1G/10G SFP+ SR (bailed) FTLX8571D3BCV-IT +Intel 10G/25G SFP28 25GBASE-SR E25GSFP28SR .It -Intel DUAL RATE 1G/10G SFP+ SR (bailed) AFBR-703SDZ-IN2 +Intel 10G/25G SFP28 25GBASE-SR E25GSFP28SRX (Extended Temp) .El .Pp The .Nm -driver supports 10Gb and 1Gb Ethernet adapters with LR Modules: +driver supports 25Gb and 10Gb Ethernet adapters with these SFP+ modules: .Pp .Bl -bullet -compact .It -Intel DUAL RATE 1G/10G SFP+ LR (bailed) FTLX1471D3BCV-IT +Intel 1G/10G SFP+ SR FTLX8571D3BCV-IT .It -Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDZ-IN2 +Intel 1G/10G SFP+ SR AFBR-703SDZ-IN2 +.It +Intel 1G/10G SFP+ LR FTLX1471D3BCV-IT +.It +Intel 1G/10G SFP+ LR AFCT-701SDZ-IN2 +.It +Intel 1G/10G SFP+ 10GBASE-SR E10GSFPSR +.It +Intel 10G SFP+ 10GBASE-SR E10GSFPSRX (Extended Temp) +.It +Intel 1G/10G SFP+ 10GBASE-LR E10GSFPLR .El .Pp -Note that X710/XL710 Based SFP+ adapters also support all passive and active +Note that adapters also support all passive and active limiting direct attach cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. +.Pp +This is not an exhaustive list; please consult product documentation for an +up-to-date list of supported media. .Sh LOADER TUNABLES Tunables can be set at the .Xr loader 8 prompt before booting the kernel or stored in .Xr loader.conf 5 . .Bl -tag -width indent -.It Va hw.ixl.enable_msix -Allows one to enable/disable MSIX, thus forcing MSI instead. -.It Va hw.ixl.ringsz -Set the number of descriptors in the rings, note that this -changes BOTH the TX and RX rings, they cannot be set independently. -.It Va hw.ixl.max_queues -Set the number of queues (each a TX/RX pair) for the port, this -allows one to override the autocalculation if it is set to 0. -.It Va hw.ixl.dynamic_rx_itr -The dynamic RX interrupt control, set to 1 to enable. -.It Va hw.ixl.dynamic_tx_itr -The dynamic TX interrupt control, set to 1 to enable. .It Va hw.ixl.rx_itr -The RX interrupt rate value, set to 8K by default. +The RX interrupt rate value, set to 62 (124 usec) by default. .It Va hw.ixl.tx_itr -The TX interrupt rate value, set to 4K by default. +The TX interrupt rate value, set to 122 (244 usec) by default. +.It Va hw.ixl.i2c_access_method +Access method that driver will use for I2C read and writes via +.Xr sysctl 8 +or verbose +.Xr ifconfig 8 +information display: +.Bd -literal -offset indent +0 - best available method +1 - bit bang via I2CPARAMS register +2 - register read/write via I2CCMD register +3 - Use Admin Queue command (default best) +.Ed +.Pp +Using the Admin Queue is only supported on 710 devices with FW version 1.7 or +newer. +Set to 0 by default. +.It Va hw.ixl.enable_tx_fc_filter +Filter out packets with Ethertype 0x8808 from being sent out by non-adapter +sources. +This prevents (potentially untrusted) software or +.Xr iavf 4 +devices from sending out flow control packets and creating a DoS (Denial of +Service) event. +Enabled by default. +.It Va hw.ixl.enable_head_writeback +When the driver is finding the last TX descriptor processed by the hardware, +use a value written to memory by the hardware instead of scanning the +descriptor ring for completed descriptors. +Enabled by default; disable to mimic the TX behavior found in +.Xr ixgbe 4 . .El .Sh SYSCTL PROCEDURES .Bl -tag -width indent -.It Va hw.ixl.fc -Allows one to set the flow control value. -A value of 0 disables -flow control, 3 enables full, 1 is RX, and 2 is TX pause. -.It Va hw.ixl.advertise_speed -Allows one to set advertised link speeds, this will then -cause a link renegotiation. -With the appropriate adapter -this can cause a link at 10GB, 1GB, or 100MB. -.It Va hw.ixl.current_speed -This is a display of the current setting. -.It Va hw.ixl.fw_version -This is a display of the Firmware version. +.It Va dev.ixl.#.fc +Sets the 802.3x flow control mode that the adapter will advertise on the link. +A value of 0 disables flow control, 3 enables full, 1 is RX, and 2 is TX pause. +.Pp +The negotiated flow control setting can be viewed in +.Xr ifconfig 8 , +in the interface's media field. +.It Va dev.ixl.#.advertise_speed +Set the speeds that the interface will advertise on the link. +.Va dev.ixl.#.supported_speeds +contains the speeds that are allowed to be set. +.It Va dev.ixl.#.current_speed +Displays the current speed. +.It Va dev.ixl.#.fw_version +Displays the current firmware and NVM versions of the adapter. .El -.Sh Interrupt Storms +.Sh INTERRUPT STORMS It is important to note that 40G operation can generate high numbers of interrupts, often incorrectly being interpreted as a storm condition in the kernel. -It is suggested that this -be resolved by setting: +It is suggested that this be resolved by setting: .Bl -tag -width indent .It Va hw.intr_storm_threshold: 0 .El +.Sh IOVCTL OPTIONS +The driver supports additional optional parameters for created VFs +(Virtual Functions) when using +.Xr iovctl 8 : +.Bl -tag -width indent +.It mac-addr Pq unicast-mac +Set the Ethernet MAC address that the VF will use. +If unspecified, the VF will use a randomly generated MAC address. +.It mac-anti-spoof Pq bool +Prevent the VF from sending Ethernet frames with a source address +that does not match its own. +.It allow-set-mac Pq bool +Allow the VF to set its own Ethernet MAC address +.It allow-promisc Pq bool +Allow the VF to inspect all of the traffic sent to the port. +.It num-queues Pq uint16_t +Specify the number of queues the VF will have. +By default, this is set to the number of MSI-X vectors supported by the VF +minus one. +.El +.Pp +An up to date list of parameters and their defaults can be found by using +.Xr iovctl 8 +with the -S option. .Sh SUPPORT For general information and support, go to the Intel support website at: @@ -168,24 +266,29 @@ .Pp If an issue is identified with this driver with a supported adapter, email all the specific information related to the issue to -.Aq freebsd@intel.com . +.Mt freebsd@intel.com . .Sh SEE ALSO .Xr arp 4 , -.Xr ixlv 4 , +.Xr iavf 4 , .Xr netintro 4 , -.Xr ng_ether 4 , .Xr vlan 4 , -.Xr ifconfig 8 +.Xr ifconfig 8 , +.Xr iovctl 8 , +.Xr iflib 9 .Sh HISTORY The .Nm device driver first appeared in .Fx 10.1 . +It was converted to use +.Xr iflib 9 +in +.Fx 12 . .Sh AUTHORS .An -nosplit The .Nm driver was written by -.An Jack Vogel Aq Mt jfv@FreeBSD.org +.An Jack Vogel Aq Mt jfv@freebsd.org and -.An Eric Joyner Aq Mt ricera10@gmail.com . +.An Eric Joyner Aq Mt erj@freebsd.org . Index: head/share/man/man4/ixlv.4 =================================================================== --- head/share/man/man4/ixlv.4 +++ head/share/man/man4/ixlv.4 @@ -1,139 +0,0 @@ -.\" Copyright (c) 2013-2015, Intel Corporation -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions are met: -.\" -.\" 1. Redistributions of source code must retain the above copyright notice, -.\" this list of conditions and the following disclaimer. -.\" -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" 3. Neither the name of the Intel Corporation nor the names of its -.\" contributors may be used to endorse or promote products derived from -.\" this software without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -.\" POSSIBILITY OF SUCH DAMAGE. -.\" -.\" * Other names and brands may be claimed as the property of others. -.\" -.\" $FreeBSD$ -.\" -.Dd March 25, 2015 -.Dt IXLV 4 -.Os -.Sh NAME -.Nm ixlv -.Nd "Intel XL710 Ethernet 40Gb VF driver" -.Sh SYNOPSIS -To compile this driver into the kernel, -place the following lines in your -kernel configuration file: -.Bd -ragged -offset indent -.Cd "device ixlv" -.Ed -.Pp -To load the driver as a -module at boot time, place the following lines in -.Xr loader.conf 5 : -.Bd -literal -offset indent -if_ixlv_load="YES" -.Ed -.Sh DESCRIPTION -The -.Nm -driver provides virtualization support for PCI Express adapters -or LOMs in the XL710 Family of ethernet devices. -The driver supports Jumbo Frames, TX/RX checksum offload, -TCP segmentation offload (TSO), Large Receive Offload (LRO), VLAN -tag insertion/extraction, VLAN checksum offload, VLAN TSO, and -Receive Side Steering (RSS), all for both IPv4 and IPv6. -For further hardware information and questions related to hardware -requirements, see -.Pa http://support.intel.com/ . -.Pp -Support for Jumbo Frames is provided via the interface MTU setting. -Selecting an MTU larger than 1500 bytes with the -.Xr ifconfig 8 -utility configures the adapter to receive and transmit Jumbo Frames. -The maximum MTU size for Jumbo Frames is 9706. -.Pp -Offloads are also controlled via the interface, for instance, -checksumming for both IPv4 and IPv6 can be set and unset, TSO4 -and/or TSO6, and finally LRO can be set and unset. -.Pp -For more information on configuring this device, see -.Xr ifconfig 8 . -.Pp -.Em NOTE : -The -.Nm -driver is only used by means of SRIOV, normally in a VM on a -hosting server with the -.Xr ixl 4 -driver. -.Sh LOADER TUNABLES -Tunables can be set at the -.Xr loader 8 -prompt before booting the kernel or stored in -.Xr loader.conf 5 . -.Bl -tag -width indent -.It Va hw.ixlv.ringsz -Set the number of descriptors in the rings, note that this -changes BOTH the TX and RX rings, they cannot be set independently. -.It Va hw.ixlv.max_queues -Set the number of queues (each a TX/RX pair) for the port, this -allows one to override the autocalculation if it is set to 0. -.It Va hw.ixlv.txbrsz -Set the size of the buff ring used by the transmit side of the -stack, we have found that it is necessary to have it quite large -in order to get UDP to perform well. -.It Va hw.ixlv.dynamic_rx_itr -The dynamic RX interrupt control, set to 1 to enable, off by default. -.It Va hw.ixlv.dynamic_tx_itr -The dynamic TX interrupt control, set to 1 to enable, off by default. -.It Va hw.ixlv.rx_itr -The RX interrupt rate value, set to 8K by default. -.It Va hw.ixlv.tx_itr -The TX interrupt rate value, set to 4K by default. -.El -.Sh SUPPORT -For general information and support, -go to the Intel support website at: -.Pa http://support.intel.com/ . -.Pp -If an issue is identified with this driver with a supported adapter, -email all the specific information related to the issue to -.Aq freebsd@intel.com . -.Sh SEE ALSO -.Xr arp 4 , -.Xr ixl 4 , -.Xr netintro 4 , -.Xr ng_ether 4 , -.Xr vlan 4 , -.Xr ifconfig 8 -.Sh HISTORY -The -.Nm -device driver first appeared in -.Fx 10.1 . -.Sh AUTHORS -.An -nosplit -The -.Nm -driver was written by -.An Jack Vogel Aq Mt jfv@FreeBSD.org -and -.An Eric Joyner Aq Mt ricera10@gmail.com .