Changeset View
Changeset View
Standalone View
Standalone View
share/man/man4/ice.4
| Show All 26 Lines | |||||||||
| .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||||||||
| .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||||||||
| .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | .\" 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 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||||||||
| .\" POSSIBILITY OF SUCH DAMAGE. | .\" POSSIBILITY OF SUCH DAMAGE. | ||||||||
| .\" | .\" | ||||||||
| .\" * Other names and brands may be claimed as the property of others. | .\" * Other names and brands may be claimed as the property of others. | ||||||||
| .\" | .\" | ||||||||
| .Dd March 28, 2025 | .Dd October 3, 2025 | ||||||||
| .Dt ICE 4 | .Dt ICE 4 | ||||||||
| .Os | .Os | ||||||||
| .Sh NAME | .Sh NAME | ||||||||
| .Nm ice | .Nm ice | ||||||||
| .Nd "Intel\(rg Ethernet 800 Series Driver" | .Nd "Intel\(rg Ethernet 800 Series Driver" | ||||||||
| .Sh SYNOPSIS | .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 the | ||||||||
| kernel configuration file: | kernel configuration file: | ||||||||
ziaee: Better is to avoid prose here at all according to the mdoc maintainer and also the lightning… | |||||||||
brdAuthorUnsubmitted Not Done Inline ActionsI am sorry, I am not sure what you mean here? Most driver man pages have this exact text. brd: I am sorry, I am not sure what you mean here? Most driver man pages have this exact text. | |||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| .Cd device iflib | .Cd device iflib | ||||||||
| .Cd device ice | .Cd device ice | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .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 : | .Xr loader.conf 5 : | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| Show All 29 Lines | |||||||||
| Intel\(rg Ethernet Connection E830\-CC | Intel\(rg Ethernet Connection E830\-CC | ||||||||
| .It | .It | ||||||||
| Intel\(rg Ethernet Connection E830\-L | Intel\(rg Ethernet Connection E830\-L | ||||||||
| .It | .It | ||||||||
| Intel\(rg Ethernet Connection E830\-XXV | Intel\(rg Ethernet Connection E830\-XXV | ||||||||
| .El | .El | ||||||||
| .Pp | .Pp | ||||||||
| For questions related to hardware requirements, refer to the documentation | For questions related to hardware requirements, refer to the documentation | ||||||||
| supplied with your adapter. | supplied with the adapter. | ||||||||
| .Pp | .Pp | ||||||||
| Support for Jumbo Frames is provided via the interface MTU setting. | Support for Jumbo Frames is provided via the interface MTU setting. | ||||||||
| Selecting an MTU larger than 1500 bytes with the | Selecting an MTU larger than 1500 bytes with the | ||||||||
| .Xr ifconfig 8 | .Xr ifconfig 8 | ||||||||
| utility configures the adapter to receive and transmit Jumbo Frames. | utility configures the adapter to receive and transmit Jumbo Frames. | ||||||||
| The maximum MTU size for Jumbo Frames is 9706. | The maximum MTU size for Jumbo Frames is 9706. | ||||||||
| For more information, see the | For more information, see the | ||||||||
| .Sx Jumbo Frames | .Sx Jumbo Frames | ||||||||
| Show All 31 Lines | |||||||||
| basic traffic and minimal functionality, such as updating the NVM or | basic traffic and minimal functionality, such as updating the NVM or | ||||||||
| downloading a new driver or DDP package. | downloading a new driver or DDP package. | ||||||||
| Safe Mode only applies to the affected physical function and does not impact | Safe Mode only applies to the affected physical function and does not impact | ||||||||
| any other PFs. | any other PFs. | ||||||||
| See the | See the | ||||||||
| .Dq Intel\(rg Ethernet Adapters and Devices User Guide | .Dq Intel\(rg Ethernet Adapters and Devices User Guide | ||||||||
| for more details on DDP and Safe Mode. | for more details on DDP and Safe Mode. | ||||||||
| .Pp | .Pp | ||||||||
| If you encounter issues with the DDP package file, you may need to download | If issues are encountered with the DDP package file, an updated driver or | ||||||||
| an updated driver or | |||||||||
| .Sy ice_ddp | .Sy ice_ddp | ||||||||
| module. | module may need to be downloaded. | ||||||||
| See the log messages for more information. | See the log messages for more information. | ||||||||
| .Pp | .Pp | ||||||||
| You cannot update the DDP package if any PF drivers are already loaded. | The DDP package cannot be updated if any PF drivers are already loaded. | ||||||||
| To overwrite a package, unload all PFs and then reload the driver with the | To overwrite a package, unload all PFs and then reload the driver with the | ||||||||
| new package. | new package. | ||||||||
| .Pp | .Pp | ||||||||
| You can only use one DDP package per driver, even if you have more than one | Only one DDP package can be used per driver, even if more than one | ||||||||
| device installed that uses the driver. | device installed that uses the driver. | ||||||||
| .Pp | .Pp | ||||||||
| Only the first loaded PF per device can download a package for that device. | Only the first loaded PF per device can download a package for that device. | ||||||||
| .Ss Jumbo Frames | .Ss Jumbo Frames | ||||||||
| Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU) | Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU) | ||||||||
| to a value larger than the default value of 1500. | to a value larger than the default value of 1500. | ||||||||
| .Pp | .Pp | ||||||||
| Use | Use | ||||||||
| .Xr ifconfig 8 | .Xr ifconfig 8 | ||||||||
| to increase the MTU size. | to increase the MTU size. | ||||||||
| .Pp | .Pp | ||||||||
| The maximum MTU setting for jumbo frames is 9706. | The maximum MTU setting for jumbo frames is 9706. | ||||||||
| This corresponds to the maximum jumbo frame size of 9728 bytes. | This corresponds to the maximum jumbo frame size of 9728 bytes. | ||||||||
| .Pp | .Pp | ||||||||
| This driver will attempt to use multiple page sized buffers to receive | This driver will attempt to use multiple page sized buffers to receive | ||||||||
| each jumbo packet. | each jumbo packet. | ||||||||
| This should help to avoid buffer starvation issues when allocating receive | This should help to avoid buffer starvation issues when allocating receive | ||||||||
| packets. | packets. | ||||||||
| .Pp | .Pp | ||||||||
| Packet loss may have a greater impact on throughput when you use jumbo | Packet loss may have a greater impact on throughput when jumbo frames are in | ||||||||
| frames. | use. | ||||||||
| If you observe a drop in performance after enabling jumbo frames, enabling | If a drop in performance is observed after enabling jumbo frames, enabling | ||||||||
| flow control may mitigate the issue. | flow control may mitigate the issue. | ||||||||
| .Ss Remote Direct Memory Access | .Ss Remote Direct Memory Access | ||||||||
| Remote Direct Memory Access, or RDMA, allows a network device to transfer data | Remote Direct Memory Access, or RDMA, allows a network device to transfer data | ||||||||
| directly to and from application memory on another system, increasing | directly to and from application memory on another system, increasing | ||||||||
| throughput and lowering latency in certain networking environments. | throughput and lowering latency in certain networking environments. | ||||||||
| .Pp | .Pp | ||||||||
| The ice driver supports both the iWARP (Internet Wide Area RDMA Protocol) and | The ice driver supports both the iWARP (Internet Wide Area RDMA Protocol) and | ||||||||
| RoCEv2 (RDMA over Converged Ethernet) protocols. | RoCEv2 (RDMA over Converged Ethernet) protocols. | ||||||||
| The major difference is that iWARP performs RDMA over TCP, while RoCEv2 uses | The major difference is that iWARP performs RDMA over TCP, while RoCEv2 uses | ||||||||
| UDP. | UDP. | ||||||||
| .Pp | .Pp | ||||||||
| Devices based on the Intel\(rg Ethernet 800 Series do not support RDMA when | Devices based on the Intel\(rg Ethernet 800 Series do not support RDMA when | ||||||||
| operating in multiport mode with more than 4 ports. | operating in multiport mode with more than 4 ports. | ||||||||
| .Pp | .Pp | ||||||||
| For detailed installation and configuration information for RDMA, see | For detailed installation and configuration information for RDMA, see | ||||||||
| .Xr irdma 4 . | .Xr irdma 4 . | ||||||||
| .Ss RDMA Monitoring | .Ss RDMA Monitoring | ||||||||
| For debugging/testing purposes, you can use sysctl to set up a mirroring | For debugging/testing purposes, a sysctl can be used to set up a mirroring | ||||||||
| interface on a port. | interface on a port. | ||||||||
| The interface can receive mirrored RDMA traffic for packet | The interface can receive mirrored RDMA traffic for packet | ||||||||
| analysis tools like | analysis tools like | ||||||||
| .Xr tcpdump 1 . | .Xr tcpdump 1 . | ||||||||
| This mirroring may impact performance. | This mirroring may impact performance. | ||||||||
| .Pp | .Pp | ||||||||
| To use RDMA monitoring, you may need to reserve more MSI\-X interrupts. | To use RDMA monitoring, more MSI\-X interrupts may need to be reserved. | ||||||||
| Before the | Before the | ||||||||
| .Nm | .Nm | ||||||||
| driver loads, configure the following tunable provided by | driver loads, configure the following tunable provided by | ||||||||
| .Xr iflib 4 : | .Xr iflib 4 : | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| dev.ice.<interface #>.iflib.use_extra_msix_vectors=4 | dev.ice.<interface #>.iflib.use_extra_msix_vectors=4 | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| You may need to adjust the number of extra MSI\-X interrupt vectors. | The number of extra MSI\-X interrupt vectors may need to be adjusted. | ||||||||
| .Pp | .Pp | ||||||||
| To create/delete the interface: | To create/delete the interface: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.create_interface=1 | sysctl dev.ice.<interface #>.create_interface=1 | ||||||||
| sysctl dev.ice.<interface #>.delete_interface=1 | sysctl dev.ice.<interface #>.delete_interface=1 | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| The mirrored interface receives both LAN and RDMA traffic. | The mirrored interface receives both LAN and RDMA traffic. | ||||||||
| ▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | |||||||||
| is enabled on any traffic class (TC). | is enabled on any traffic class (TC). | ||||||||
| It will disable priority flow control when link flow control is enabled. | It will disable priority flow control when link flow control is enabled. | ||||||||
| .Pp | .Pp | ||||||||
| To enable/disable priority flow control in software\-based DCBX mode: | To enable/disable priority flow control in software\-based DCBX mode: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.pfc=1 (or 0 to disable) | sysctl dev.ice.<interface #>.pfc=1 (or 0 to disable) | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| Enhanced Transmission Selection (ETS) allows you to assign bandwidth to certain | Enhanced Transmission Selection (ETS) allows bandwidth to be assigned to certain | ||||||||
| TCs, to help ensure traffic reliability. | TCs, to help ensure traffic reliability. | ||||||||
| To view the assigned ETS configuration, use the following: | To view the assigned ETS configuration, use the following: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.ets_min_rate | sysctl dev.ice.<interface #>.ets_min_rate | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| To set the minimum ETS bandwidth per TC, separate the values by commas. | To set the minimum ETS bandwidth per TC, separate the values by commas. | ||||||||
| All values must add up to 100. | All values must add up to 100. | ||||||||
| Show All 17 Lines | |||||||||
| in the PF driver. | in the PF driver. | ||||||||
| The driver initializes in L2 QoS mode by default; L3 QoS is disabled by | The driver initializes in L2 QoS mode by default; L3 QoS is disabled by | ||||||||
| default. | default. | ||||||||
| Use the following sysctl to enable or disable L3 QoS: | Use the following sysctl to enable or disable L3 QoS: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.pfc_mode=1 (or 0 to disable) | sysctl dev.ice.<interface #>.pfc_mode=1 (or 0 to disable) | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| If you disable L3 QoS mode, it returns to L2 QoS mode. | If the L3 QoS mode is disabled, it returns to L2 QoS mode. | ||||||||
| .Pp | .Pp | ||||||||
| To map a DSCP value to a traffic class, separate the values by commas. | To map a DSCP value to a traffic class, separate the values by commas. | ||||||||
| For example, to map DSCPs 0\-3 and DSCP 8 to DCB TCs 0\-3 and 4, respectively: | For example, to map DSCPs 0\-3 and DSCP 8 to DCB TCs 0\-3 and 4, respectively: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.dscp2tc_map.0\-7=0,1,2,3,0,0,0,0 | sysctl dev.ice.<interface #>.dscp2tc_map.0\-7=0,1,2,3,0,0,0,0 | ||||||||
| sysctl dev.ice.<interface #>.dscp2tc_map.8\-15=4,0,0,0,0,0,0,0 | sysctl dev.ice.<interface #>.dscp2tc_map.8\-15=4,0,0,0,0,0,0,0 | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| To change the DSCP mapping back to the default traffic class, set all the | To change the DSCP mapping back to the default traffic class, set all the | ||||||||
| values back to 0. | values back to 0. | ||||||||
| .Pp | .Pp | ||||||||
| To view the currently configured mappings, use the following: | To view the currently configured mappings, use the following: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.dscp2tc_map | sysctl dev.ice.<interface #>.dscp2tc_map | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| L3 QoS mode is not available when FW\-LLDP is enabled. | L3 QoS mode is not available when FW\-LLDP is enabled. | ||||||||
| .Pp | .Pp | ||||||||
| You also cannot enable FW\-LLDP if L3 QoS mode is active. | FW\-LLDP cannot be enabled if L3 QoS mode is active. | ||||||||
| .Pp | .Pp | ||||||||
| Disable FW\-LLDP before switching to L3 QoS mode. | Disable FW\-LLDP before switching to L3 QoS mode. | ||||||||
| .Pp | .Pp | ||||||||
| Refer to the | Refer to the | ||||||||
| .Sx Firmware Link Layer Discovery Protocol Agent | .Sx Firmware Link Layer Discovery Protocol Agent | ||||||||
| section in this README for more information on disabling FW\-LLDP. | section in this README for more information on disabling FW\-LLDP. | ||||||||
| .Ss Firmware Link Layer Discovery Protocol Agent | .Ss Firmware Link Layer Discovery Protocol Agent | ||||||||
| Use sysctl to change FW\-LLDP settings. | Use sysctl to change FW\-LLDP settings. | ||||||||
| Show All 9 Lines | |||||||||
| sysctl dev.ice.<interface #>.fw_lldp_agent=0 | sysctl dev.ice.<interface #>.fw_lldp_agent=0 | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| To check the current LLDP setting: | To check the current LLDP setting: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.fw_lldp_agent | sysctl dev.ice.<interface #>.fw_lldp_agent | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| You must enable the UEFI HII LLDP Agent attribute for this setting | The UEFI HII LLDP Agent attribute must be enabled for this setting | ||||||||
| to take effect. | to take effect. | ||||||||
| If the | If the | ||||||||
| .Dq LLDP AGENT | .Dq LLDP AGENT | ||||||||
| attribute is set to disabled, you cannot enable the FW\-LLDP Agent from the | attribute is set to disabled, the FW\-LLDP Agent cannot be enabled from the | ||||||||
| driver. | driver. | ||||||||
| .Ss Link\-Level Flow Control (LFC) | .Ss Link\-Level Flow Control (LFC) | ||||||||
| Ethernet Flow Control (IEEE 802.3x) can be configured with sysctl to enable | Ethernet Flow Control (IEEE 802.3x) can be configured with sysctl to enable | ||||||||
| receiving and transmitting pause frames for | receiving and transmitting pause frames for | ||||||||
| .Nm . | .Nm . | ||||||||
| When transmit is enabled, pause frames are generated when the receive packet | When transmit is enabled, pause frames are generated when the receive packet | ||||||||
| buffer crosses a predefined threshold. | buffer crosses a predefined threshold. | ||||||||
| When receive is enabled, the transmit unit will halt for the time delay | When receive is enabled, the transmit unit will halt for the time delay | ||||||||
| Show All 40 Lines | |||||||||
| It must be managed from the host side. | It must be managed from the host side. | ||||||||
| .Ss Forward Error Correction | .Ss Forward Error Correction | ||||||||
| Forward Error Correction (FEC) improves link stability but increases latency. | Forward Error Correction (FEC) improves link stability but increases latency. | ||||||||
| Many high quality optics, direct attach cables, and backplane channels can | Many high quality optics, direct attach cables, and backplane channels can | ||||||||
| provide a stable link without FEC. | provide a stable link without FEC. | ||||||||
| .Pp | .Pp | ||||||||
| For devices to benefit from this feature, link partners must have FEC enabled. | For devices to benefit from this feature, link partners must have FEC enabled. | ||||||||
| .Pp | .Pp | ||||||||
| If you enable the sysctl | If sysctl | ||||||||
ziaeeUnsubmitted Done Inline ActionsI think this should actually be "If the Sysctls are Va according to style.mdoc, because then you can apropos Va=here.is.the.sysctl. ziaee: I think this should actually be "If the
.Va allow_no_fec_modules_in_auto
sysctl is enabled...". | |||||||||
| .Em allow_no_fec_modules_in_auto | .Em allow_no_fec_modules_in_auto | ||||||||
| Auto FEC negotiation will include | is enabled Auto FEC negotiation will include | ||||||||
| .Dq No FEC | .Dq No FEC | ||||||||
| in case your link partner does not have FEC enabled or is not FEC capable: | in case the link partner does not have FEC enabled or is not FEC capable: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.allow_no_fec_modules_in_auto=1 | sysctl dev.ice.<interface #>.allow_no_fec_modules_in_auto=1 | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| NOTE: This flag is currently not supported on the Intel\(rg Ethernet 830 | NOTE: This flag is currently not supported on the Intel\(rg Ethernet 830 | ||||||||
| Series. | Series. | ||||||||
| .Pp | .Pp | ||||||||
| To show the current FEC settings that are negotiated on the link: | To show the current FEC settings that are negotiated on the link: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.negotiated_fec | sysctl dev.ice.<interface #>.negotiated_fec | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| To view or set the FEC setting that was requested on the link: | To view or set the FEC setting that was requested on the link: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.requested_fec | sysctl dev.ice.<interface #>.requested_fec | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| To see the valid FEC modes for the link: | To see the valid FEC modes for the link: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl \-d dev.ice.<interface #>.requested_fec | sysctl \-d dev.ice.<interface #>.requested_fec | ||||||||
| .Ed | .Ed | ||||||||
| .Ss Speed and Duplex Configuration | .Ss Speed and Duplex Configuration | ||||||||
| You cannot set duplex or autonegotiation settings. | The speed and duplex settings cannot be hard set. | ||||||||
| .Pp | .Pp | ||||||||
| To have your device change the speeds it will use in auto-negotiation or | To have the device change the speeds it will use in auto-negotiation or | ||||||||
| force link with: | force link with: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.advertise_speed=<mask> | sysctl dev.ice.<interface #>.advertise_speed=<mask> | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| Supported speeds will vary by device. | Supported speeds will vary by device. | ||||||||
| Depending on the speeds your device supports, valid bits used in a speed mask | Depending on the speeds the device supports, valid bits used in a speed mask | ||||||||
| could include: | could include: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| 0x0 \- Auto | 0x0 \- Auto | ||||||||
| 0x2 \- 100 Mbps | 0x2 \- 100 Mbps | ||||||||
| 0x4 \- 1 Gbps | 0x4 \- 1 Gbps | ||||||||
| 0x8 \- 2.5 Gbps | 0x8 \- 2.5 Gbps | ||||||||
| 0x10 \- 5 Gbps | 0x10 \- 5 Gbps | ||||||||
| 0x20 \- 10 Gbps | 0x20 \- 10 Gbps | ||||||||
| Show All 24 Lines | |||||||||
| .Dq Intel\(rg Ethernet Adapters and Devices User Guide | .Dq Intel\(rg Ethernet Adapters and Devices User Guide | ||||||||
| for an overview of this feature and additional tips. | for an overview of this feature and additional tips. | ||||||||
| .Pp | .Pp | ||||||||
| At a high level, to capture a firmware log: | At a high level, to capture a firmware log: | ||||||||
| .Bl -enum -compact | .Bl -enum -compact | ||||||||
| .It | .It | ||||||||
| Set the configuration for the firmware log. | Set the configuration for the firmware log. | ||||||||
| .It | .It | ||||||||
| Perform the necessary steps to generate the issue you are trying to debug. | Perform the necessary steps to reproduce the issue. | ||||||||
| .It | .It | ||||||||
| Capture the firmware log. | Capture the firmware log. | ||||||||
| .It | .It | ||||||||
| Stop capturing the firmware log. | Stop capturing the firmware log. | ||||||||
| .It | .It | ||||||||
| Reset your firmware log settings as needed. | Reset the firmware log settings as needed. | ||||||||
| .It | .It | ||||||||
| Work with Customer Support to debug the issue. | Work with Customer Support to debug the issue. | ||||||||
| .El | .El | ||||||||
| .Pp | .Pp | ||||||||
| NOTE: Firmware logs are generated in a binary format and must be decoded by | NOTE: Firmware logs are generated in a binary format and must be decoded by | ||||||||
| Customer Support. | Customer Support. | ||||||||
| Information collected is related only to firmware and hardware for debug | Information collected is related only to firmware and hardware for debug | ||||||||
| purposes. | purposes. | ||||||||
| ▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | |||||||||
| .It Va tsdrv | .It Va tsdrv | ||||||||
| Time Sync (Bit 29) | Time Sync (Bit 29) | ||||||||
| .It Va pfreg | .It Va pfreg | ||||||||
| PF Registration (Bit 30) | PF Registration (Bit 30) | ||||||||
| .It Va mdlver | .It Va mdlver | ||||||||
| Module Version (Bit 31) | Module Version (Bit 31) | ||||||||
| .El | .El | ||||||||
| .Pp | .Pp | ||||||||
| You can change the verbosity level of the firmware logs. | The verbosity level of the firmware logs can be modified. | ||||||||
| You can set only one log level per module, and each level includes the | It is possible to set only one log level per module, and each level includes the | ||||||||
| verbosity levels lower than it. | verbosity levels lower than it. | ||||||||
| For instance, setting the level to | For instance, setting the level to | ||||||||
| .Dq normal | .Dq normal | ||||||||
| will also log warning and error messages. | will also log warning and error messages. | ||||||||
| Available verbosity levels are: | Available verbosity levels are: | ||||||||
| .Pp | .Pp | ||||||||
| .Bl -item -offset indent -compact | .Bl -item -offset indent -compact | ||||||||
| .It | .It | ||||||||
| Show All 39 Lines | |||||||||
| command: | command: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| dmesg > log_output | dmesg > log_output | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| NOTE: Logging a large number of modules or too high of a verbosity level will | NOTE: Logging a large number of modules or too high of a verbosity level will | ||||||||
| add extraneous messages to dmesg and could hinder debug efforts. | add extraneous messages to dmesg and could hinder debug efforts. | ||||||||
| .Ss Debug Dump | .Ss Debug Dump | ||||||||
| Intel\(rg Ethernet 800 Series devices support debug dump, which allows you to | Intel\(rg Ethernet 800 Series devices support debug dump, which allows | ||||||||
| obtain runtime register values from the firmware for | gathering of runtime register values from the firmware for | ||||||||
| .Dq clusters | .Dq clusters | ||||||||
| of events and then write the results to a single dump file, for debugging | of events and then write the results to a single dump file, for debugging | ||||||||
| complicated issues in the field. | complicated issues in the field. | ||||||||
| .Pp | .Pp | ||||||||
| This debug dump contains a snapshot of the device and its existing hardware | This debug dump contains a snapshot of the device and its existing hardware | ||||||||
| configuration, such as switch tables, transmit scheduler tables, and other | configuration, such as switch tables, transmit scheduler tables, and other | ||||||||
| information. | information. | ||||||||
| Debug dump captures the current state of the specified cluster(s) and is a | Debug dump captures the current state of the specified cluster(s) and is a | ||||||||
| stateless snapshot of the whole device. | stateless snapshot of the whole device. | ||||||||
| .Pp | .Pp | ||||||||
| NOTE: Like with firmware logs, the contents of the debug dump are not | NOTE: Like with firmware logs, the contents of the debug dump are not | ||||||||
| human\-readable. | human\-readable. | ||||||||
| You must work with Customer Support to decode the file. | Work with Customer Support to decode the file. | ||||||||
| .Pp | .Pp | ||||||||
| Debug dump is per device, not per PF. | Debug dump is per device, not per PF. | ||||||||
| .Pp | .Pp | ||||||||
| Debug dump writes all information to a single file. | Debug dump writes all information to a single file. | ||||||||
| .Pp | .Pp | ||||||||
| To generate a debug dump file in | To generate a debug dump file in | ||||||||
| .Fx | .Fx | ||||||||
| do the following: | do the following: | ||||||||
| ▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Lines | |||||||||
| .Pp | .Pp | ||||||||
| To dump all clusters, use the following: | To dump all clusters, use the following: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.0.debug.dump.clusters=0 | sysctl dev.ice.0.debug.dump.clusters=0 | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| NOTE: Using 0 will skip Manageability Transactions data. | NOTE: Using 0 will skip Manageability Transactions data. | ||||||||
| .Pp | .Pp | ||||||||
| If you don't specify a cluster, the driver will dump all clusters to a | If a single cluster is not specified, the driver will dump all clusters to a | ||||||||
| single file. | single file. | ||||||||
| Issue the debug dump command, using the following: | Issue the debug dump command, using the following: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl \-b dev.ice.<interface #>.debug.dump.dump=1 > dump.bin | sysctl \-b dev.ice.<interface #>.debug.dump.dump=1 > dump.bin | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| NOTE: The driver will not receive the command if you do not write | NOTE: The driver will not receive the command if the sysctl is not set to | ||||||||
| .Dq 1 | .Dq 1 . | ||||||||
| to the sysctl. | |||||||||
| .Pp | .Pp | ||||||||
| Replace | Replace | ||||||||
| .Dq dump.bin | .Dq dump.bin | ||||||||
| above with the file name you want to use. | above with the preferred file name. | ||||||||
| .Pp | .Pp | ||||||||
| To clear the | To clear the | ||||||||
| .Va clusters | .Va clusters | ||||||||
| mask before a subsequent debug dump and then do the dump: | mask before a subsequent debug dump and then do the dump: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.0.debug.dump.clusters=0 | sysctl dev.ice.0.debug.dump.clusters=0 | ||||||||
| sysctl dev.ice.0.debug.dump.dump=1 | sysctl dev.ice.0.debug.dump.dump=1 | ||||||||
| .Ed | .Ed | ||||||||
| .Ss Debugging PHY Statistics | .Ss Debugging PHY Statistics | ||||||||
| The ice driver supports the ability to obtain the values of the PHY registers | The ice driver supports the ability to obtain the values of the PHY registers | ||||||||
| from Intel(R) Ethernet 810 Series devices in order to debug link and | from Intel(R) Ethernet 810 Series devices in order to debug link and | ||||||||
| connection issues during runtime. | connection issues during runtime. | ||||||||
| .Pp | .Pp | ||||||||
| The driver allows you to obtain information about: | The driver provides information about: | ||||||||
| .Bl -bullet | .Bl -bullet | ||||||||
| .It | .It | ||||||||
| Rx and Tx Equalization parameters | Rx and Tx Equalization parameters | ||||||||
| .It | .It | ||||||||
| RS FEC correctable and uncorrectable block counts | RS FEC correctable and uncorrectable block counts | ||||||||
| .El | .El | ||||||||
| .Pp | .Pp | ||||||||
| Use the following sysctl to read the PHY registers: | Use the following sysctl to read the PHY registers: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.debug.phy_statistics | sysctl dev.ice.<interface #>.debug.phy_statistics | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| NOTE: The contents of the registers are not human\-readable. | NOTE: The contents of the registers are not human\-readable. | ||||||||
| Like with firmware logs and debug dump, you must work with Customer Support | Like with firmware logs and debug dump, work with Customer Support | ||||||||
| to decode the file. | to decode the file. | ||||||||
| .Ss Transmit Balancing | .Ss Transmit Balancing | ||||||||
| Some Intel(R) Ethernet 800 Series devices allow you to enable a transmit | Some Intel(R) Ethernet 800 Series devices allow for enabling a transmit | ||||||||
| balancing feature to improve transmit performance under certain conditions. | balancing feature to improve transmit performance under certain conditions. | ||||||||
| When the feature is enabled, you should experience more consistent transmit | When the feature is enabled, more consistent transmit | ||||||||
ziaeeUnsubmitted Done Inline Actions
ziaee: | |||||||||
| performance across queues and/or PFs and VFs. | performance across queues and/or PFs and VFs. | ||||||||
| .Pp | .Pp | ||||||||
| By default, transmit balancing is disabled in the NVM. | By default, transmit balancing is disabled in the NVM. | ||||||||
| To enable this feature, use one of the following to persistently change the | To enable this feature, use one of the following to persistently change the | ||||||||
| setting for the device: | setting for the device: | ||||||||
| .Bl -bullet | .Bl -bullet | ||||||||
| .It | .It | ||||||||
| Use the Ethernet Port Configuration Tool (EPCT) to enable the | Use the Ethernet Port Configuration Tool (EPCT) to enable the | ||||||||
| .Va tx_balancing | .Va tx_balancing | ||||||||
| option. | option. | ||||||||
| Refer to the EPCT readme for more information. | Refer to the EPCT readme for more information. | ||||||||
| .It | .It | ||||||||
| Enable the Transmit Balancing device setting in UEFI HII. | Enable the Transmit Balancing device setting in UEFI HII. | ||||||||
| .El | .El | ||||||||
| .Pp | .Pp | ||||||||
| When the driver loads, it reads the transmit balancing setting from the NVM and | When the driver loads, it reads the transmit balancing setting from the NVM and | ||||||||
| configures the device accordingly. | configures the device accordingly. | ||||||||
| .Pp | .Pp | ||||||||
| NOTE: The user selection for transmit balancing in EPCT or HII is persistent | NOTE: The user selection for transmit balancing in EPCT or HII is persistent | ||||||||
| across reboots. | across reboots. | ||||||||
| You must reboot the system for the selected setting to take effect. | The system must be rebooted for the selected setting to take effect. | ||||||||
| .Pp | .Pp | ||||||||
| This setting is device wide. | This setting is device wide. | ||||||||
| .Pp | .Pp | ||||||||
| The driver, NVM, and DDP package must all support this functionality to | The driver, NVM, and DDP package must all support this functionality to | ||||||||
| enable the feature. | enable the feature. | ||||||||
| .Ss Thermal Monitoring | .Ss Thermal Monitoring | ||||||||
| Intel(R) Ethernet 810 Series and Intel(R) Ethernet 830 Series devices can | Intel(R) Ethernet 810 Series and Intel(R) Ethernet 830 Series devices can | ||||||||
| display temperature data (in degrees Celsius) via: | display temperature data (in degrees Celsius) via: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| sysctl dev.ice.<interface #>.temp | sysctl dev.ice.<interface #>.temp | ||||||||
| .Ed | .Ed | ||||||||
| .Ss Network Memory Buffer Allocation | .Ss Network Memory Buffer Allocation | ||||||||
| .Fx | .Fx | ||||||||
| may have a low number of network memory buffers (mbufs) by default. | may have a low number of network memory buffers (mbufs) by default. | ||||||||
| If the number of mbufs available is too low, it may cause the driver to fail | If the number of mbufs available is too low, it may cause the driver to fail | ||||||||
| to initialize and/or cause the system to become unresponsive. | to initialize and/or cause the system to become unresponsive. | ||||||||
| You can check to see if the system is mbuf\-starved by running | Check to see if the system is mbuf\-starved by running | ||||||||
| .Ic netstat Fl m . | .Ic netstat Fl m . | ||||||||
| Increase the number of mbufs by editing the lines below in | Increase the number of mbufs by editing the lines below in | ||||||||
| .Pa /etc/sysctl.conf : | .Pa /etc/sysctl.conf : | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| kern.ipc.nmbclusters | kern.ipc.nmbclusters | ||||||||
| kern.ipc.nmbjumbop | kern.ipc.nmbjumbop | ||||||||
| kern.ipc.nmbjumbo9 | kern.ipc.nmbjumbo9 | ||||||||
| kern.ipc.nmbjumbo16 | kern.ipc.nmbjumbo16 | ||||||||
| kern.ipc.nmbufs | kern.ipc.nmbufs | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| The amount of memory that you allocate is system specific, and may require some | The amount of memory that should be allocated is system specific, and may require some | ||||||||
| trial and error. | trial and error. | ||||||||
| Also, increasing the following in | Also, increasing the following in | ||||||||
| .Pa /etc/sysctl.conf | .Pa /etc/sysctl.conf | ||||||||
| could help increase network performance: | could help increase network performance: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| kern.ipc.maxsockbuf | kern.ipc.maxsockbuf | ||||||||
| net.inet.tcp.sendspace | net.inet.tcp.sendspace | ||||||||
| net.inet.tcp.recvspace | net.inet.tcp.recvspace | ||||||||
| ▲ Show 20 Lines • Show All 78 Lines • ▼ Show 20 Lines | |||||||||
| Modules based on 100GBASE\-SR4, active optical cable (AOC), and active copper | Modules based on 100GBASE\-SR4, active optical cable (AOC), and active copper | ||||||||
| cable (ACC) do not support auto\-negotiation per the IEEE specification. | cable (ACC) do not support auto\-negotiation per the IEEE specification. | ||||||||
| To obtain link with these modules, auto\-negotiation must be turned off on the | To obtain link with these modules, auto\-negotiation must be turned off on the | ||||||||
| link partner's switch ports. | link partner's switch ports. | ||||||||
| .Ss PCI-Express Slot Bandwidth | .Ss PCI-Express Slot Bandwidth | ||||||||
| Some PCIe x8 slots are actually configured as x4 slots. | Some PCIe x8 slots are actually configured as x4 slots. | ||||||||
| These slots have insufficient bandwidth for full line rate with dual port and | These slots have insufficient bandwidth for full line rate with dual port and | ||||||||
| quad port devices. | quad port devices. | ||||||||
| In addition, if you put a PCIe v4.0 or v3.0\-capable adapter into a PCIe v2.x | In addition, if a PCIe v4.0 or v3.0\-capable adapter is placed into a PCIe v2.x | ||||||||
| slot, you cannot get full bandwidth. | slot, full bandwidth will not be possible. | ||||||||
| .Pp | .Pp | ||||||||
| The driver detects this situation and writes the following message in the | The driver detects this situation and writes the following message in the | ||||||||
| system log: | system log: | ||||||||
| .Bd -literal -offset indent | .Bd -literal -offset indent | ||||||||
| PCI\-Express bandwidth available for this device may be insufficient for | PCI\-Express bandwidth available for this device may be insufficient for | ||||||||
| optimal performance. | optimal performance. | ||||||||
| Please move the device to a different PCI\-e link with more lanes and/or | Please move the device to a different PCI\-e link with more lanes and/or | ||||||||
| higher transfer rate. | higher transfer rate. | ||||||||
| .Ed | .Ed | ||||||||
| .Pp | .Pp | ||||||||
| If this error occurs, moving your adapter to a true PCIe x8 or x16 slot will | If this error occurs, moving the adapter to a true PCIe x8 or x16 slot will | ||||||||
| resolve the issue. | resolve the issue. | ||||||||
| For best performance, install devices in the following PCI slots: | For best performance, install devices in the following PCI slots: | ||||||||
| .Bl -bullet | .Bl -bullet | ||||||||
| .It | .It | ||||||||
| Any 100Gbps\-capable Intel(R) Ethernet 800 Series device: Install in a | Any 100Gbps\-capable Intel(R) Ethernet 800 Series device: Install in a | ||||||||
| PCIe v4.0 x8 or v3.0 x16 slot | PCIe v4.0 x8 or v3.0 x16 slot | ||||||||
| .It | .It | ||||||||
| A 200Gbps\-capable Intel(R) Ethernet 830 Series device: Install in a | A 200Gbps\-capable Intel(R) Ethernet 830 Series device: Install in a | ||||||||
| ▲ Show 20 Lines • Show All 156 Lines • Show Last 20 Lines | |||||||||
Better is to avoid prose here at all according to the mdoc maintainer and also the lightning talk I gave at BSDcan. https://youtu.be/RthIOXpwwsM