[Intel-wired-lan] [PATCH v2] Documentation: iavf: Update the Intel LAN driver doc for iavf
Samudrala, Sridhar
sridhar.samudrala at intel.com
Fri Jul 19 20:18:58 UTC 2019
On 7/19/2019 1:07 PM, Jeff Kirsher wrote:
> Update the LAN driver documentation to include the latest feature
> implementation and driver capabilities.
>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
> ---
> v2: fixed SOB and cleaned up the trailing whitespace
>
> .../networking/device_drivers/intel/iavf.rst | 331 ++++++++++++++++--
> 1 file changed, 298 insertions(+), 33 deletions(-)
>
> diff --git a/Documentation/networking/device_drivers/intel/iavf.rst b/Documentation/networking/device_drivers/intel/iavf.rst
> index 2d0c3baa1752..fd3d045ca6d1 100644
> --- a/Documentation/networking/device_drivers/intel/iavf.rst
> +++ b/Documentation/networking/device_drivers/intel/iavf.rst
> @@ -10,11 +10,15 @@ Copyright(c) 2013-2018 Intel Corporation.
> Contents
> ========
>
> +- Overview
> - Identifying Your Adapter
> - Additional Configurations
> - Known Issues/Troubleshooting
> - Support
>
> +Overview
> +========
> +
> This file describes the iavf Linux* Base Driver. This driver was formerly
> called i40evf.
>
> @@ -27,6 +31,7 @@ The guest OS loading the iavf driver must support MSI-X interrupts.
>
> Identifying Your Adapter
> ========================
> +
> The driver in this kernel is compatible with devices based on the following:
> * Intel(R) XL710 X710 Virtual Function
> * Intel(R) X722 Virtual Function
> @@ -50,9 +55,10 @@ Link messages will not be displayed to the console if the distribution is
> restricting system messages. In order to see network driver link messages on
> your console, set dmesg to eight by entering the following::
>
> - dmesg -n 8
> + # dmesg -n 8
>
> -NOTE: This setting is not saved across reboots.
> +NOTE:
> + This setting is not saved across reboots.
>
> ethtool
> -------
> @@ -72,11 +78,11 @@ then requests from that VF to set VLAN tag stripping will be ignored.
> To enable/disable VLAN tag stripping for a VF, issue the following command
> from inside the VM in which you are running the VF::
>
> - ethtool -K <if_name> rxvlan on/off
> + # ethtool -K <if_name> rxvlan on/off
>
> or alternatively::
>
> - ethtool --offload <if_name> rxvlan on/off
> + # ethtool --offload <if_name> rxvlan on/off
>
> Adaptive Virtual Function
> -------------------------
> @@ -91,21 +97,21 @@ additional features depending on what features are available in the PF with
> which the AVF is associated. The following are base mode features:
>
> - 4 Queue Pairs (QP) and associated Configuration Status Registers (CSRs)
> - for Tx/Rx.
> -- i40e descriptors and ring format.
> -- Descriptor write-back completion.
> -- 1 control queue, with i40e descriptors, CSRs and ring format.
> -- 5 MSI-X interrupt vectors and corresponding i40e CSRs.
> -- 1 Interrupt Throttle Rate (ITR) index.
> -- 1 Virtual Station Interface (VSI) per VF.
> + for Tx/Rx
> +- i40e descriptors and ring format
> +- Descriptor write-back completion
> +- 1 control queue, with i40e descriptors, CSRs and ring format
> +- 5 MSI-X interrupt vectors and corresponding i40e CSRs
> +- 1 Interrupt Throttle Rate (ITR) index
> +- 1 Virtual Station Interface (VSI) per VF
> - 1 Traffic Class (TC), TC0
> - Receive Side Scaling (RSS) with 64 entry indirection table and key,
> - configured through the PF.
> -- 1 unicast MAC address reserved per VF.
> -- 16 MAC address filters for each VF.
> -- Stateless offloads - non-tunneled checksums.
> -- AVF device ID.
> -- HW mailbox is used for VF to PF communications (including on Windows).
> + configured through the PF
> +- 1 unicast MAC address reserved per VF
> +- 16 MAC address filters for each VF
> +- Stateless offloads - non-tunneled checksums
> +- AVF device ID
> +- HW mailbox is used for VF to PF communications (including on Windows)
>
> IEEE 802.1ad (QinQ) Support
> ---------------------------
> @@ -117,8 +123,8 @@ VLAN ID, among other uses.
>
> The following are examples of how to configure 802.1ad (QinQ)::
>
> - ip link add link eth0 eth0.24 type vlan proto 802.1ad id 24
> - ip link add link eth0.24 eth0.24.371 type vlan proto 802.1Q id 371
> + # ip link add link eth0 eth0.24 type vlan proto 802.1ad id 24
> + # ip link add link eth0.24 eth0.24.371 type vlan proto 802.1Q id 371
>
> Where "24" and "371" are example VLAN IDs.
>
> @@ -133,6 +139,19 @@ specific application. This can reduce latency for the specified application,
> and allow Tx traffic to be rate limited per application. Follow the steps below
> to set ADq.
>
> +Requirements:
> +
> +- The sch_mqprio, act_mirred and cls_flower modules must be loaded
> +- The latest version of iproute2
> +- If another driver (for example, DPDK) has set cloud filters, you cannot
> + enable ADQ
> +- Depending on the underlying PF device, ADQ cannot be enabled when the
> + following features are enabled:
> +
> + + Data Center Bridging (DCB)
> + + Multiple Functions per Port (MFP)
> + + Sideband Filters
> +
> 1. Create traffic classes (TCs). Maximum of 8 TCs can be created per interface.
> The shaper bw_rlimit parameter is optional.
>
> @@ -141,9 +160,9 @@ to 1Gbit for tc0 and 3Gbit for tc1.
>
> ::
>
> - # tc qdisc add dev <interface> root mqprio num_tc 2 map 0 0 0 0 1 1 1 1
> - queues 16 at 0 16 at 16 hw 1 mode channel shaper bw_rlimit min_rate 1Gbit 2Gbit
> - max_rate 1Gbit 3Gbit
> + tc qdisc add dev <interface> root mqprio num_tc 2 map 0 0 0 0 1 1 1 1
> + queues 16 at 0 16 at 16 hw 1 mode channel shaper bw_rlimit min_rate 1Gbit 2Gbit
> + max_rate 1Gbit 3Gbit
>
> map: priority mapping for up to 16 priorities to tcs (e.g. map 0 0 0 0 1 1 1 1
> sets priorities 0-3 to use tc0 and 4-7 to use tc1)
> @@ -162,6 +181,10 @@ Totals must be equal or less than port speed.
> For example: min_rate 1Gbit 3Gbit: Verify bandwidth limit using network
> monitoring tools such as ifstat or sar –n DEV [interval] [number of samples]
>
> +NOTE:
> + Setting up channels via ethtool (ethtool -L) is not supported when the
> + TCs are configured using mqprio.
> +
> 2. Enable HW TC offload on interface::
>
> # ethtool -K <interface> hw-tc-offload on
> @@ -171,16 +194,16 @@ monitoring tools such as ifstat or sar –n DEV [interval] [number of samples]
> # tc qdisc add dev <interface> ingress
>
> NOTES:
> - - Run all tc commands from the iproute2 <pathtoiproute2>/tc/ directory.
> - - ADq is not compatible with cloud filters.
> + - Run all tc commands from the iproute2 <pathtoiproute2>/tc/ directory
> + - ADq is not compatible with cloud filters
> - Setting up channels via ethtool (ethtool -L) is not supported when the TCs
> - are configured using mqprio.
> + are configured using mqprio
> - You must have iproute2 latest version
> - - NVM version 6.01 or later is required.
> + - NVM version 6.01 or later is required
> - ADq cannot be enabled when any the following features are enabled: Data
> - Center Bridging (DCB), Multiple Functions per Port (MFP), or Sideband Filters.
> + Center Bridging (DCB), Multiple Functions per Port (MFP), or Sideband Filters
> - If another driver (for example, DPDK) has set cloud filters, you cannot
> - enable ADq.
> + enable ADq
> - Tunnel filters are not supported in ADq. If encapsulated packets do arrive
> in non-tunnel mode, filtering will be done on the inner headers. For example,
> for VXLAN traffic in non-tunnel mode, PCTYPE is identified as a VXLAN
> @@ -194,10 +217,236 @@ NOTES:
> traffic will be duplicated and sent to all matching TC queues. The hardware
> switch mirrors the packet to a VSI list when multiple filters are matched.
>
> +SR-IOV Hypervisor Management Interface
> +--------------------------------------
> +The sysfs file structure below supports the SR-IOV hypervisor management
> +interface.
> +
> +| /sys/class/net/<interface-name>/device/sriov (see [1]_)
> +| +-- [VF-id, 0 .. 127] (see [2]_)
> +| | +-- trunk
> +| | +-- vlan_mirror
> +| | +-- engress_mirror
> +| | +-- ingress_mirror
> +| | +-- mac_anti_spoof
> +| | +-- vlan_anti_spoof
> +| | +-- loopback
> +| | +-- mac
> +| | +-- mac_list
> +| | +-- promisc
> +| | +-- vlan_strip
> +| | +-- stats
> +| | +-- link_state
> +| | +-- max_tx_rate
> +| | +-- min_tx_rate
> +| | +-- spoofcheck
> +| | +-- trust
> +| | +-- vlan
> +
> +.. [1] kobject started from “sriov” is not available from existing kernel
> + sysfs, and it requires device driver to implement this interface.
> +.. [2] assume maximum # of VF supported by a PF is 128. To support a device
> + that supports more than 128 SR-IOV instances, a “vfx” is added to 0..127.
> + With “vfx” kboject, users need to add vf index as the first parameter and
> + followed by “:”.
Is this sysfs mgmt interface and patch targeted for upstream iavf?
More information about the Intel-wired-lan
mailing list