Lines Matching +full:package +full:- +full:mode

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
28 This driver supports XDP (Express Data Path) and AF_XDP zero-copy. Note that
43 -------------------------------------------
54 1) Make sure that your system's physical memory is in a high-performance
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
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
106 ---------------------
111 # dmesg -n 8
117 ------------------------------
119 pipeline of a device by applying a profile package to the device at runtime.
124 The DDP package loads during device initialization. The driver looks for
126 or ``/lib/firmware/updates/``) and checks that it contains a valid DDP package
130 ice.pkg is missing, you can find it in the linux-firmware repository or from
133 If the driver is unable to load the DDP package, the device will enter Safe
134 Mode. Safe Mode disables advanced and performance features and supports only
136 downloading a new driver or DDP package. Safe Mode only applies to the affected
138 Adapters and Devices User Guide" for more details on DDP and Safe Mode.
142 - If you encounter issues with the DDP package file, you may need to download
143 an updated driver or DDP package file. See the log messages for more
146 - The ice.pkg file is a symbolic link to the default DDP package file.
148 - You cannot update the DDP package if any PF drivers are already loaded. To
149 overwrite a package, unload all PFs and then reload the driver with the new
150 package.
152 - Only the first loaded PF per device can download a package for that device.
154 You can install specific DDP package files for different physical devices in
155 the same system. To install a specific DDP package file:
157 1. Download the DDP package file you want for your device.
159 2. Rename the file ice-xxxxxxxxxxxxxxxx.pkg, where 'xxxxxxxxxxxxxxxx' is the
160 unique 64-bit PCI Express device serial number (in hex) of the device you
161 want the package downloaded on. The filename must include the complete
163 if the 64-bit serial number is b887a3ffffca0568, then the file name would be
164 ice-b887a3ffffca0568.pkg.
169 # lspci -vv -s af:00.0 | grep -i Serial
170 Capabilities: [150 v1] Device Serial Number b8-87-a3-ff-ff-ca-05-68
175 # lspci -vv -s af:00.0 | grep -i Serial | awk '{print $7}' | sed s/-//g
178 3. Copy the renamed DDP package file to
184 5. Reload the driver with the new package.
186 NOTE: The presence of a device-specific DDP package file overrides the loading
187 of the default DDP package file (ice.pkg).
191 -------------------------------
194 - Directs receive packets according to their flows to different queues
195 - Enables tight control on routing a flow in the platform
196 - Matches flows and CPU cores for flow affinity
200 - IPv4
201 - TCPv4
202 - UDPv4
203 - SCTPv4
204 - IPv6
205 - TCPv6
206 - UDPv6
207 - SCTPv6
214 NOTE: This driver allows you to filter traffic based on a user-defined flexible
215 two-byte pattern and offset by using the ethtool user-def and mask fields. Only
216 L3 and L4 flow types are supported for user-defined flexible filters. For a
222 ---------------------
227 # ethtool -K <ethX> ntuple <off|on>
230 flushed from the driver cache and hardware. All needed filters must be re-added
231 when ntuple is re-enabled.
235 # ethtool -u <ethX>
239 # ethtool -U <ethX> flow-type <type> src-ip <ip> [m <ip_mask>] dst-ip <ip>
240 [m <ip_mask>] src-port <port> [m <port_mask>] dst-port <port> [m <port_mask>]
244 <ethX> - the Ethernet device to program
245 <type> - can be ip4, tcp4, udp4, sctp4, ip6, tcp6, udp6, sctp6
246 <ip> - the IP address to match on
247 <ip_mask> - the IPv4 address to mask on
249 <port> - the port number to match on
250 <port_mask> - the 16-bit integer for masking
252 <queue> - the queue to direct traffic toward (-1 discards the
257 # ethtool -U <ethX> delete <N>
266 # ethtool -U <ethX> flow-type tcp4 src-ip 192.168.10.1 dst-ip \
267 192.168.10.2 src-port 2000 dst-port 2001 action 2 [loc 1]
271 # ethtool -U <ethX> flow-type tcp4 src-ip 192.168.10.1 dst-ip \
274 To set a filter based on a user-defined pattern and offset::
276 # ethtool -U <ethX> flow-type tcp4 src-ip 192.168.10.1 dst-ip \
277 192.168.10.2 user-def 0x4FFFF action 2 [loc 1]
279 where the value of the user-def field contains the offset (4 bytes) and
285 # ethtool -U enp130s0 flow-type tcp4 src-ip 192.168.0.1 dst-ip 192.168.0.5
286 src-port 5300 dst-port 80 action 7
290 # ethtool -U <ethX> flow-type tcp4 src-ip 192.168.0.0 m 0.255.255.255 dst-ip
291 192.168.5.12 src-port 12600 dst-port 31 action 12
295 For each flow-type, the programmed filters must all have the same matching
298 # ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.1 src-port 5300 action 7
299 # ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.5 src-port 55 action 10
302 specifies src-ip and the second specifies dst-ip::
304 # ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.1 src-port 5300 action 7
305 # ethtool -U enp130s0 flow-type ip4 dst-ip 192.168.0.5 src-port 55 action 10
316 -------------------------------
317 The driver also supports matching user-defined data within the packet payload.
318 This flexible data is specified using the "user-def" field of the ethtool
332 ... user-def 0x4FFFF ...
340 flow-type tcp4 ... user-def 0x8BEAF ...
355 The user-defined flexible offset is also considered part of the input set and
362 -------------
368 # ethtool -N <ethX> rx-flow-hash <type> <option>
373 gtpc4 signifying GTP-C over IPv4
374 gtpc4t signifying GTP-C (include TEID) over IPv4
375 gtpu4 signifying GTP-U over IPV4
376 gtpu4e signifying GTP-U and Extension Header over IPV4
377 gtpu4u signifying GTP-U PSC Uplink over IPV4
378 gtpu4d signifying GTP-U PSC Downlink over IPV4
381 gtpc6 signifying GTP-C over IPv6
382 gtpc6t signifying GTP-C (include TEID) over IPv6
383 gtpu6 signifying GTP-U over IPV6
384 gtpu6e signifying GTP-U and Extension Header over IPV6
385 gtpu6u signifying GTP-U PSC Uplink over IPV6
386 gtpu6d signifying GTP-U PSC Downlink over IPV6
396 ----------------------------------------
398 Accelerated Receive Flow Steering (aRFS) on the PF. aRFS is a load-balancing
404 - aRFS requires that ntuple filtering is enabled via ethtool.
405 - aRFS support is limited to the following packet types:
407 - TCP over IPv4 and IPv6
408 - UDP over IPv4 and IPv6
409 - Nonfragmented packets
411 - aRFS only supports Flow Director filters, which consist of the
413 - aRFS and ethtool's ntuple interface both use the device's Flow Director. aRFS
424 # ethtool -K <ethX> ntuple on
433 3. Set up the number of entries in the per-queue flow table. For example:
438 # for file in /sys/class/net/$IFACE/queues/rx-*/rps_flow_cnt; do
451 See ``/Documentation/core-api/irq/irq-affinity.rst``
456 # ethtool -K <ethX> ntuple off
467 # taskset -c 4 netserver
474 # netperf -H <Host IPv4 Address> -t TCP_STREAM
478 --------------------------------
494 Note: You cannot use SR-IOV when link aggregation (LAG)/bonding is active, and
499 ----------------------------------
502 # ip -s link show dev <ethX>
512 Configuring VLAN Tagging on SR-IOV Enabled Adapter Ports
513 --------------------------------------------------------
514 To configure VLAN tagging for the ports on an SR-IOV enabled adapter, use the
518 VLAN" mode).
530 ----------------------------------------------
542 --------------------------------
559 Trusted VFs and VF Promiscuous Mode
560 -----------------------------------
562 trusted VF to request selective promiscuous mode on the Physical Function (PF).
569 NOTE: It's important to set the VF to trusted before setting promiscuous mode.
570 If the VM is not trusted, the PF will ignore promiscuous mode requests from the
575 set the VF to promiscuous mode.
587 NOTE: By default, the ethtool private flag vf-true-promisc-support is set to
588 "off," meaning that promiscuous mode for the VF will be limited. To set the
589 promiscuous mode for the VF to true promiscuous and allow the VF to see all
592 # ethtool --set-priv-flags <ethX> vf-true-promisc-support on
594 The vf-true-promisc-support private flag does not enable promiscuous mode;
595 rather, it designates which type of promiscuous mode (limited or true) you will
596 get when you enable promiscuous mode using the ip link commands above. Note
598 vf-true-promisc-support private flag is only exposed to the first PF of the
599 device. The PF remains in limited promiscuous mode regardless of the
600 vf-true-promisc-support setting.
606 Note that the order in which you set the VF to promiscuous mode and add the
612 ----------------------------------------
618 - If the PF driver logs MDD events from the VF, confirm that the correct VF
620 - To restore functionality, you can manually reload the VF or VM or enable
622 - When automatic VF resets are enabled, the PF driver will immediately reset
624 - If automatic VF resets are disabled, the PF will not automatically reset the
629 # ethtool --set-priv-flags <ethX> mdd-auto-reset-vf on|off
632 MAC and VLAN Anti-Spoofing Feature for VFs
633 ------------------------------------------
643 ------------
673 ------------------------------
675 between copper-based adapters and fiber-based adapters.
677 In the default mode, an Intel(R) Ethernet Network Adapter using copper
678 connections will attempt to auto-negotiate with its link partner to determine
680 using auto-negotiation, you may need to manually configure the adapter and link
683 support auto-negotiation or one that has been forced to a specific speed or
684 duplex mode. Your link partner must match the setting you choose. 1 Gbps speeds
706 --------------------------
722 1) Firmware-based LLDP Agent
723 2) Software-based LLDP Agent
725 In firmware-based mode, firmware intercepts all LLDP traffic and handles DCBX
726 negotiation transparently for the user. In this mode, the adapter operates in
727 "willing" DCBX mode, receiving DCB settings from the link partner (typically a
732 In software-based mode, LLDP traffic is forwarded to the network stack and user
733 space, where a software agent can handle it. In this mode, the adapter can
734 operate in either "willing" or "nonwilling" DCBX mode and DCB configuration can
735 be both queried and set locally. This mode requires the FW-based LLDP Agent to
740 - You can enable and disable the firmware-based LLDP Agent using an ethtool
741 private flag. Refer to the "FW-LLDP (Firmware Link Layer Discovery Protocol)"
743 - In software-based DCBX mode, you can configure DCB parameters using software
745 recommend using OpenLLDP as the DCBX agent when running in software mode. For
748 - The driver implements the DCB netlink interface layer to allow the user space
750 - iSCSI with DCB is not supported.
753 FW-LLDP (Firmware Link Layer Discovery Protocol)
754 ------------------------------------------------
755 Use ethtool to change FW-LLDP settings. The FW-LLDP setting is per port and
760 # ethtool --set-priv-flags <ethX> fw-lldp-agent on
764 # ethtool --set-priv-flags <ethX> fw-lldp-agent off
768 # ethtool --show-priv-flags <ethX>
776 ------------
791 # ethtool -A <ethX> rx <on|off> tx <on|off>
793 Note: This command only enables or disables Flow Control if auto-negotiation is
794 disabled. If auto-negotiation is enabled, this command changes the parameters
795 used for auto-negotiation with the link partner.
797 Note: Flow Control auto-negotiation is part of link auto-negotiation. Depending
798 on your device, you may not be able to change the auto-negotiation setting.
802 - The ice driver requires flow control on both the port and link partner. If
805 - You may encounter issues with link-level flow control (LFC) after disabling
809 # ethtool -A <ethX> rx off tx off
810 # ethtool -A <ethX> rx on tx on
814 ----
816 This driver supports NAPI (Rx polling mode).
821 -------
829 - In passthru mode, you can only set up one MACVLAN device. It will inherit the
834 ---------------------------
843 - Receive checksum offloads and VLAN acceleration are not supported for 802.1ad
846 - 0x88A8 traffic will not be received unless VLAN stripping is disabled with
849 # ethtool -K <ethX> rxvlan off
851 - 0x88A8/0x8100 double VLANs cannot be used with 0x8100 or 0x8100/0x8100 VLANS
855 - The VF can only transmit 0x88A8/0x8100 (i.e., 802.1ad/802.1Q) traffic if:
861 - The VF may not receive all network traffic based on the Inner VLAN header
862 when VF true promiscuous mode (vf-true-promisc-support) and double VLANs are
863 enabled in SR-IOV mode.
874 ---------------------------------
880 # ethtool -k <ethX>
884 ------------------------
893 - The application sending UDP packets must support UDP segmentation offload.
897 # ethtool -K <ethX> tx-udp-segmentation [off|on]
901 -----------
912 ---------------------
1033 'fwlog/nr_messages'. The range is 1-128 (1 means push every log message, 128
1060 -----------------------
1067 # ethtool -S <ethX> | grep "rx_dropped"
1070 the number of descriptors using 'ethtool -G'::
1072 # ethtool -G <ethX> rx <N>
1080 -----------------------
1086 To set the interrupt rate manually, you must disable adaptive mode::
1088 # ethtool -C <ethX> adaptive-rx off adaptive-tx off
1095 Setting rx-usecs and tx-usecs to 80 will limit interrupts to about
1098 # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs 80 tx-usecs 80
1102 Disable adaptive ITR and ITR by setting rx-usecs and tx-usecs to 0
1105 # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
1107 Per-queue interrupt rate settings:
1115 # ethtool --per-queue <ethX> queue_mask 0xa --coalesce adaptive-rx off
1116 rx-usecs 10
1120 # ethtool --per-queue <ethX> queue_mask 0xa --show-coalesce
1122 Bounding interrupt rates using rx-usecs-high:
1124 :Valid Range: 0-236 (0=no limit)
1126 The range of 0-236 microseconds provides an effective range of 4,237 to
1127 250,000 interrupts per second. The value of rx-usecs-high can be set
1128 independently of rx-usecs and tx-usecs in the same ethtool command, and is
1130 underlying hardware supports granularity in 4-microsecond intervals, so
1136 second, it limits total interrupts per second to 50,000 via the rx-usecs-high
1141 # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs-high 20
1142 rx-usecs 5 tx-usecs 5
1146 ------------------------
1157 # ethtool -L <virt_interface> rx <max> tx <max>
1167 to intel-wired-lan@lists.osuosl.org.