From owner-svn-src-head@freebsd.org Fri Oct 12 22:57:54 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D419C10CDF5E; Fri, 12 Oct 2018 22:57:53 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 894047A59F; Fri, 12 Oct 2018 22:57:53 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8413C25E31; Fri, 12 Oct 2018 22:57:53 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w9CMvr7X028219; Fri, 12 Oct 2018 22:57:53 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w9CMvrXq028216; Fri, 12 Oct 2018 22:57:53 GMT (envelope-from erj@FreeBSD.org) Message-Id: <201810122257.w9CMvrXq028216@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Fri, 12 Oct 2018 22:57:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r339340 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: erj X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 339340 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Oct 2018 22:57:54 -0000 Author: erj Date: Fri Oct 12 22:57:52 2018 New Revision: 339340 URL: https://svnweb.freebsd.org/changeset/base/339340 Log: ixl/iavf: Update ixl(4) and iavf(4) [previously ixlv] man pages Since there have been major updates to both drivers in r339338, refresh the man pages with new and updated information. Reviewed by: sbruno@, 0mp@, jeffrey.e.pieper@intel.com, manpages Approved by: re (gjb@, kib@) Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D15927 Added: head/share/man/man4/iavf.4 (contents, props changed) Deleted: head/share/man/man4/ixlv.4 Modified: head/share/man/man4/Makefile head/share/man/man4/ixl.4 Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Fri Oct 12 22:51:45 2018 (r339339) +++ head/share/man/man4/Makefile Fri Oct 12 22:57:52 2018 (r339340) @@ -196,6 +196,7 @@ MAN= aac.4 \ ${_hv_vmbus.4} \ ${_hv_vss.4} \ hwpmc.4 \ + iavf.4 \ ichsmb.4 \ ${_ichwd.4} \ icmp.4 \ @@ -240,7 +241,6 @@ MAN= aac.4 \ iwnfw.4 \ ixgbe.4 \ ixl.4 \ - ixlv.4 \ jedec_dimm.4 \ jme.4 \ joy.4 \ @@ -669,7 +669,7 @@ MLINKS+=ixgbe.4 ix.4 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 Added: head/share/man/man4/iavf.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/iavf.4 Fri Oct 12 22:57:52 2018 (r339340) @@ -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. Modified: head/share/man/man4/ixl.4 ============================================================================== --- head/share/man/man4/ixl.4 Fri Oct 12 22:51:45 2018 (r339339) +++ head/share/man/man4/ixl.4 Fri Oct 12 22:57:52 2018 (r339340) @@ -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 @@ and/or TSO6, and finally LRO can be set and unset. .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 @@ go to the Intel support website at: .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 .