Index: share/man/man4/ixl.4 =================================================================== --- share/man/man4/ixl.4 +++ 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,15 +31,14 @@ .\" .\" $FreeBSD$ .\" -.Dd March 25, 2015 +.Dd June 19, 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" @@ -54,8 +53,22 @@ .Sh DESCRIPTION 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 @@ -77,80 +90,113 @@ For more information on configuring this device, see .Xr ifconfig 8 . .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 cannot be changed 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 1G/10G SFP+ SR AFBR-703SDZ-IN2 +.It +Intel 1G/10G SFP+ LR FTLX1471D3BCV-IT .It -Intel DUAL RATE 1G/10G SFP+ LR (bailed) AFCT-701SDZ-IN2 +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 sysctl or +verbose +.Xr ifconfig 8 +information display: +.Pp + 0 - best available method + 1 - bit bang via I2CPARAMS register + 2 - register read/write via I2CCMD register + 3 - Use Admin Queue command (default best) +.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 ixlv 4 +devices from sending out flow control packets. +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. +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 It is important to note that 40G operation can generate high @@ -161,6 +207,29 @@ .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 +iovctl with the -S option. .Sh SUPPORT For general information and support, go to the Intel support website at: @@ -173,19 +242,24 @@ .Xr arp 4 , .Xr ixlv 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 .