Lines Matching +full:can +full:- +full:disable

1 .. SPDX-License-Identifier: GPL-2.0+
8 Copyright(c) 2018-2021 Intel Corporation.
13 - Overview
14 - Identifying Your Adapter
15 - Important Notes
16 - Additional Features & Configurations
17 - Performance Optimization
22 Driver information can be obtained using ethtool and lspci.
28 This driver supports XDP (Express Data Path) and AF_XDP zero-copy. Note that
43 -------------------------------------------
46 If these transactions take longer than the tolerated latency, it can impact the
54 1) Make sure that your system's physical memory is in a high-performance
59 3) Your distribution may provide tools like "tuned," which can help tweak
63 Configuring SR-IOV for improved network security
64 ------------------------------------------------
66 support SR-IOV, the virtual function (VF) may be subject to malicious behavior.
67 Software-generated layer two frames, like IEEE 802.3x (link flow control), IEEE
68 802.1Qbb (priority based flow-control), and others of this type, are not
69 expected and can throttle traffic between the host and the virtual switch,
71 unintended traffic streams, configure all SR-IOV enabled ports for VLAN tagging
75 See "Configuring VLAN Tagging on SR-IOV Enabled Adapter Ports" later in this
80 -------------------------------------------------------------
91 -------
98 Netdev, due to the 4-byte CRC being stripped by the device. The difference
105 -------------
108 - PF reset - resets only components associated with the given PF, does not
111 - CORE reset - whole adapter is affected, reset all PFs
113 - GLOBAL reset - same as CORE but mac and phy components are also reinitialized
117 - PF reset:
119 # ethtool --reset <ethX> irq dma filter offload
121 - CORE reset:
123 # ethtool --reset <ethX> irq-shared dma-shared filter-shared offload-shared \
124 ram-shared
126 - GLOBAL reset:
128 # ethtool --reset <ethX> irq-shared dma-shared filter-shared offload-shared \
129 mac-shared phy-shared ram-shared
131 In switchdev mode you can reset a VF using port representor:
133 # ethtool --reset <repr> irq dma filter offload
137 ---------------------
142 # dmesg -n 8
148 ------------------------------
151 Profiles can be used to, for example, add support for new protocols, change
152 existing protocols, or change default settings. DDP profiles can also be rolled
161 ice.pkg is missing, you can find it in the linux-firmware repository or from
173 - If you encounter issues with the DDP package file, you may need to download
177 - The ice.pkg file is a symbolic link to the default DDP package file.
179 - You cannot update the DDP package if any PF drivers are already loaded. To
183 - Only the first loaded PF per device can download a package for that device.
185 You can install specific DDP package files for different physical devices in
190 2. Rename the file ice-xxxxxxxxxxxxxxxx.pkg, where 'xxxxxxxxxxxxxxxx' is the
191 unique 64-bit PCI Express device serial number (in hex) of the device you
194 if the 64-bit serial number is b887a3ffffca0568, then the file name would be
195 ice-b887a3ffffca0568.pkg.
197 To find the serial number from the PCI bus address, you can use the
200 # lspci -vv -s af:00.0 | grep -i Serial
201 Capabilities: [150 v1] Device Serial Number b8-87-a3-ff-ff-ca-05-68
203 You can use the following command to format the serial number without the
206 # lspci -vv -s af:00.0 | grep -i Serial | awk '{print $7}' | sed s/-//g
217 NOTE: The presence of a device-specific DDP package file overrides the loading
222 -------------------------------
225 - Directs receive packets according to their flows to different queues
226 - Enables tight control on routing a flow in the platform
227 - Matches flows and CPU cores for flow affinity
231 - IPv4
232 - TCPv4
233 - UDPv4
234 - SCTPv4
235 - IPv6
236 - TCPv6
237 - UDPv6
238 - SCTPv6
241 destination) and UDP/TCP/SCTP ports (source and destination). You can supply
245 NOTE: This driver allows you to filter traffic based on a user-defined flexible
246 two-byte pattern and offset by using the ethtool user-def and mask fields. Only
247 L3 and L4 flow types are supported for user-defined flexible filters. For a
253 ---------------------
256 or disable the Intel Ethernet Flow Director and these filters::
258 # ethtool -K <ethX> ntuple <off|on>
260 NOTE: When you disable ntuple filters, all the user programmed filters are
261 flushed from the driver cache and hardware. All needed filters must be re-added
262 when ntuple is re-enabled.
266 # ethtool -u <ethX>
270 # ethtool -U <ethX> flow-type <type> src-ip <ip> [m <ip_mask>] dst-ip <ip>
271 [m <ip_mask>] src-port <port> [m <port_mask>] dst-port <port> [m <port_mask>]
275 <ethX> - the Ethernet device to program
276 <type> - can be ip4, tcp4, udp4, sctp4, ip6, tcp6, udp6, sctp6
277 <ip> - the IP address to match on
278 <ip_mask> - the IPv4 address to mask on
280 <port> - the port number to match on
281 <port_mask> - the 16-bit integer for masking
283 <queue> - the queue to direct traffic toward (-1 discards the
288 # ethtool -U <ethX> delete <N>
297 # ethtool -U <ethX> flow-type tcp4 src-ip 192.168.10.1 dst-ip \
298 192.168.10.2 src-port 2000 dst-port 2001 action 2 [loc 1]
302 # ethtool -U <ethX> flow-type tcp4 src-ip 192.168.10.1 dst-ip \
305 To set a filter based on a user-defined pattern and offset::
307 # ethtool -U <ethX> flow-type tcp4 src-ip 192.168.10.1 dst-ip \
308 192.168.10.2 user-def 0x4FFFF action 2 [loc 1]
310 where the value of the user-def field contains the offset (4 bytes) and
316 # ethtool -U enp130s0 flow-type tcp4 src-ip 192.168.0.1 dst-ip 192.168.0.5
317 src-port 5300 dst-port 80 action 7
321 # ethtool -U <ethX> flow-type tcp4 src-ip 192.168.0.0 m 0.255.255.255 dst-ip
322 192.168.5.12 src-port 12600 dst-port 31 action 12
326 For each flow-type, the programmed filters must all have the same matching
329 # ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.1 src-port 5300 action 7
330 # ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.5 src-port 55 action 10
333 specifies src-ip and the second specifies dst-ip::
335 # ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.1 src-port 5300 action 7
336 # ethtool -U enp130s0 flow-type ip4 dst-ip 192.168.0.5 src-port 55 action 10
347 -------------------------------
348 The driver also supports matching user-defined data within the packet payload.
349 This flexible data is specified using the "user-def" field of the ethtool
363 ... user-def 0x4FFFF ...
371 flow-type tcp4 ... user-def 0x8BEAF ...
386 The user-defined flexible offset is also considered part of the input set and
393 -------------
399 # ethtool -N <ethX> rx-flow-hash <type> <option>
404 gtpc4 signifying GTP-C over IPv4
405 gtpc4t signifying GTP-C (include TEID) over IPv4
406 gtpu4 signifying GTP-U over IPV4
407 gtpu4e signifying GTP-U and Extension Header over IPV4
408 gtpu4u signifying GTP-U PSC Uplink over IPV4
409 gtpu4d signifying GTP-U PSC Downlink over IPV4
412 gtpc6 signifying GTP-C over IPv6
413 gtpc6t signifying GTP-C (include TEID) over IPv6
414 gtpu6 signifying GTP-U over IPV6
415 gtpu6e signifying GTP-U and Extension Header over IPV6
416 gtpu6u signifying GTP-U PSC Uplink over IPV6
417 gtpu6d signifying GTP-U PSC Downlink over IPV6
427 ----------------------------------------
429 Accelerated Receive Flow Steering (aRFS) on the PF. aRFS is a load-balancing
435 - aRFS requires that ntuple filtering is enabled via ethtool.
436 - aRFS support is limited to the following packet types:
438 - TCP over IPv4 and IPv6
439 - UDP over IPv4 and IPv6
440 - Nonfragmented packets
442 - aRFS only supports Flow Director filters, which consist of the
444 - aRFS and ethtool's ntuple interface both use the device's Flow Director. aRFS
445 and ntuple features can coexist, but you may encounter unexpected results if
455 # ethtool -K <ethX> ntuple on
464 3. Set up the number of entries in the per-queue flow table. For example:
469 # for file in /sys/class/net/$IFACE/queues/rx-*/rps_flow_cnt; do
473 4. Disable the IRQ balance daemon (this is only a temporary stop of the service
482 See ``/Documentation/core-api/irq/irq-affinity.rst``
485 To disable aRFS using ethtool::
487 # ethtool -K <ethX> ntuple off
489 NOTE: This command will disable ntuple filters and clear any aRFS filters in
498 # taskset -c 4 netserver
505 # netperf -H <Host IPv4 Address> -t TCP_STREAM
509 --------------------------------
512 For example, you can create 4 VFs as follows::
516 To disable VFs, write 0 to the same file::
525 Note: You cannot use SR-IOV when link aggregation (LAG)/bonding is active, and
530 ----------------------------------
533 # ip -s link show dev <ethX>
535 NOTE: The output of this command can be very large due to the maximum number of
543 Configuring VLAN Tagging on SR-IOV Enabled Adapter Ports
544 --------------------------------------------------------
545 To configure VLAN tagging for the ports on an SR-IOV enabled adapter, use the
561 ----------------------------------------------
562 If the physical function (PF) link is down, you can force link up (from the
573 --------------------------------
584 NOTE: Assigning a MAC address for a VF from the host will disable any
591 -----------------------------------
618 NOTE: By default, the ethtool private flag vf-true-promisc-support is set to
623 # ethtool --set-priv-flags <ethX> vf-true-promisc-support on
625 The vf-true-promisc-support private flag does not enable promiscuous mode;
629 vf-true-promisc-support private flag is only exposed to the first PF of the
631 vf-true-promisc-support setting.
638 VLAN interface does not matter (you can do either first). The result in this
643 ----------------------------------------
645 malicious traffic from the VF and disable Tx/Rx queues or drop the offending
646 packet until a VF driver reset occurs. You can view MDD messages in the PF's
649 - If the PF driver logs MDD events from the VF, confirm that the correct VF
651 - To restore functionality, you can manually reload the VF or VM or enable
653 - When automatic VF resets are enabled, the PF driver will immediately reset
655 - If automatic VF resets are disabled, the PF will not automatically reset the
658 To enable or disable automatic VF resets, use the following command::
660 # ethtool --set-priv-flags <ethX> mdd-auto-reset-vf on|off
663 MAC and VLAN Anti-Spoofing Feature for VFs
664 ------------------------------------------
668 NOTE: This feature can be disabled for a specific VF::
674 ------------
683 Alternatively, you can use the ip command as follows::
704 ------------------------------
706 between copper-based adapters and fiber-based adapters.
709 connections will attempt to auto-negotiate with its link partner to determine
711 using auto-negotiation, you may need to manually configure the adapter and link
714 support auto-negotiation or one that has been forced to a specific speed or
737 --------------------------
738 NOTE: The kernel assumes that TC0 is available, and will disable Priority Flow
744 different priorities that traffic can be filtered into. It also enables
745 priority flow control (802.1Qbb) which can limit or eliminate the number of
746 dropped packets during network stress. Bandwidth can be allocated to each of
753 1) Firmware-based LLDP Agent
754 2) Software-based LLDP Agent
756 In firmware-based mode, firmware intercepts all LLDP traffic and handles DCBX
759 switch). The local user can only query the negotiated DCB configuration. For
763 In software-based mode, LLDP traffic is forwarded to the network stack and user
764 space, where a software agent can handle it. In this mode, the adapter can
765 operate in either "willing" or "nonwilling" DCBX mode and DCB configuration can
766 be both queried and set locally. This mode requires the FW-based LLDP Agent to
771 - You can enable and disable the firmware-based LLDP Agent using an ethtool
772 private flag. Refer to the "FW-LLDP (Firmware Link Layer Discovery Protocol)"
774 - In software-based DCBX mode, you can configure DCB parameters using software
779 - The driver implements the DCB netlink interface layer to allow the user space
781 - iSCSI with DCB is not supported.
784 FW-LLDP (Firmware Link Layer Discovery Protocol)
785 ------------------------------------------------
786 Use ethtool to change FW-LLDP settings. The FW-LLDP setting is per port and
791 # ethtool --set-priv-flags <ethX> fw-lldp-agent on
793 To disable LLDP::
795 # ethtool --set-priv-flags <ethX> fw-lldp-agent off
799 # ethtool --show-priv-flags <ethX>
807 ------------
808 Ethernet Flow Control (IEEE 802.3x) can be configured with ethtool to enable
820 To enable or disable Rx or Tx Flow Control::
822 # ethtool -A <ethX> rx <on|off> tx <on|off>
824 Note: This command only enables or disables Flow Control if auto-negotiation is
825 disabled. If auto-negotiation is enabled, this command changes the parameters
826 used for auto-negotiation with the link partner.
828 Note: Flow Control auto-negotiation is part of link auto-negotiation. Depending
829 on your device, you may not be able to change the auto-negotiation setting.
833 - The ice driver requires flow control on both the port and link partner. If
836 - You may encounter issues with link-level flow control (LFC) after disabling
838 this issue, disable and reenable LFC using ethtool::
840 # ethtool -A <ethX> rx off tx off
841 # ethtool -A <ethX> rx on tx on
845 ----
852 -------
853 This driver supports MACVLAN. Kernel support for MACVLAN can be tested by
854 checking if the MACVLAN driver is loaded. You can run 'lsmod | grep macvlan' to
860 - In passthru mode, you can only set up one MACVLAN device. It will inherit the
865 ---------------------------
874 - Receive checksum offloads and VLAN acceleration are not supported for 802.1ad
877 - 0x88A8 traffic will not be received unless VLAN stripping is disabled with
880 # ethtool -K <ethX> rxvlan off
882 - 0x88A8/0x8100 double VLANs cannot be used with 0x8100 or 0x8100/0x8100 VLANS
886 - The VF can only transmit 0x88A8/0x8100 (i.e., 802.1ad/802.1Q) traffic if:
892 - The VF may not receive all network traffic based on the Inner VLAN header
893 when VF true promiscuous mode (vf-true-promisc-support) and double VLANs are
894 enabled in SR-IOV mode.
905 ---------------------------------
911 # ethtool -k <ethX>
915 ------------------------
924 - The application sending UDP packets must support UDP segmentation offload.
926 To enable/disable UDP Segmentation Offload, issue the following command::
928 # ethtool -K <ethX> tx-udp-segmentation [off|on]
932 -----------
943 ---------------------
950 Firmware logging is configured on a per module basis. Each module can be set to
954 The user can set the log level for a module by writing to the module file like
1040 the user can write a 1 (enable) or 0 (disable) to 'fwlog/enable'. An example
1047 The FW log data can be retrieved by reading from 'fwlog/data'. The user can
1048 write any value to 'fwlog/data' to clear the data. The data can only be cleared
1063 frequency that the FW sends the ARQ events can be configured by writing to
1064 'fwlog/nr_messages'. The range is 1-128 (1 means push every log message, 128
1066 10. The user can see what the value is configured to by reading
1075 the user can change the amount of memory that is allocated for FW log data.
1091 -----------------------
1096 (rx_dropped.nic can mean that there is no PCIe bandwidth)::
1098 # ethtool -S <ethX> | grep "rx_dropped"
1101 the number of descriptors using 'ethtool -G'::
1103 # ethtool -G <ethX> rx <N>
1106 This can provide temporary buffering for issues that create latency while
1111 -----------------------
1113 is tuned for general workloads. The user can customize the interrupt rate
1117 To set the interrupt rate manually, you must disable adaptive mode::
1119 # ethtool -C <ethX> adaptive-rx off adaptive-tx off
1123 Disable adaptive ITR and lower Rx and Tx interrupts. The examples below
1126 Setting rx-usecs and tx-usecs to 80 will limit interrupts to about
1129 # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs 80 tx-usecs 80
1133 Disable adaptive ITR and ITR by setting rx-usecs and tx-usecs to 0
1136 # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
1138 Per-queue interrupt rate settings:
1140 The following examples are for queues 1 and 3, but you can adjust other
1143 To disable Rx adaptive ITR and set static Rx ITR to 10 microseconds or
1146 # ethtool --per-queue <ethX> queue_mask 0xa --coalesce adaptive-rx off
1147 rx-usecs 10
1151 # ethtool --per-queue <ethX> queue_mask 0xa --show-coalesce
1153 Bounding interrupt rates using rx-usecs-high:
1155 :Valid Range: 0-236 (0=no limit)
1157 The range of 0-236 microseconds provides an effective range of 4,237 to
1158 250,000 interrupts per second. The value of rx-usecs-high can be set
1159 independently of rx-usecs and tx-usecs in the same ethtool command, and is
1161 underlying hardware supports granularity in 4-microsecond intervals, so
1164 The following command would disable adaptive interrupt moderation, and allow
1167 second, it limits total interrupts per second to 50,000 via the rx-usecs-high
1172 # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs-high 20
1173 rx-usecs 5 tx-usecs 5
1177 ------------------------
1188 # ethtool -L <virt_interface> rx <max> tx <max>
1198 to intel-wired-lan@lists.osuosl.org.