€•ôØŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”ŒA/translations/zh_CN/networking/device_drivers/ethernet/intel/iavf”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/zh_TW/networking/device_drivers/ethernet/intel/iavf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/it_IT/networking/device_drivers/ethernet/intel/iavf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/ja_JP/networking/device_drivers/ethernet/intel/iavf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/ko_KR/networking/device_drivers/ethernet/intel/iavf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/pt_BR/networking/device_drivers/ethernet/intel/iavf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/sp_SP/networking/device_drivers/ethernet/intel/iavf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ!SPDX-License-Identifier: GPL-2.0+”h]”hŒ!SPDX-License-Identifier: GPL-2.0+”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/ethernet/intel/iavf.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒALinux Base Driver for Intel(R) Ethernet Adaptive Virtual Function”h]”hŒALinux Base Driver for Intel(R) Ethernet Adaptive Virtual Function”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒ`Intel Ethernet Adaptive Virtual Function Linux driver. Copyright(c) 2013-2018 Intel Corporation.”h]”hŒ`Intel Ethernet Adaptive Virtual Function Linux driver. Copyright(c) 2013-2018 Intel Corporation.”…”�”}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒContents”h]”hŒContents”…”�”}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhíh²hh³hÇh´K ubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒOverview”h]”hÞ)�”}”(hjh]”hŒOverview”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj)�”}”(hŒIdentifying Your Adapter”h]”hÞ)�”}”(hjh]”hŒIdentifying Your Adapter”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj)�”}”(hŒAdditional Configurations”h]”hÞ)�”}”(hj5h]”hŒAdditional Configurations”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj)�”}”(hŒKnown Issues/Troubleshooting”h]”hÞ)�”}”(hjLh]”hŒKnown Issues/Troubleshooting”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj)�”}”(hŒSupport ”h]”hÞ)�”}”(hŒSupport”h]”hŒSupport”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjaubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1hþh³hÇh´K hhíh²hubeh}”(h]”Œcontents”ah ]”h"]”Œcontents”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒOverview”h]”hŒOverview”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj‰h²hh³hÇh´KubhÞ)�”}”(hŒWThis file describes the iavf Linux Base Driver. This driver was formerly called i40evf.”h]”hŒWThis file describes the iavf Linux Base Driver. This driver was formerly called i40evf.”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj‰h²hubhÞ)�”}”(hŒøThe iavf driver supports the below mentioned virtual function devices and can only be activated on kernels running the i40e or newer Physical Function (PF) driver compiled with CONFIG_PCI_IOV. The iavf driver requires CONFIG_PCI_MSI to be enabled.”h]”hŒøThe iavf driver supports the below mentioned virtual function devices and can only be activated on kernels running the i40e or newer Physical Function (PF) driver compiled with CONFIG_PCI_IOV. The iavf driver requires CONFIG_PCI_MSI to be enabled.”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj‰h²hubhÞ)�”}”(hŒCThe guest OS loading the iavf driver must support MSI-X interrupts.”h]”hŒCThe guest OS loading the iavf driver must support MSI-X interrupts.”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj‰h²hubeh}”(h]”Œoverview”ah ]”h"]”Œoverview”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒIdentifying Your Adapter”h]”hŒIdentifying Your Adapter”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÌh²hh³hÇh´K!ubhŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hŒæThe driver in this kernel is compatible with devices based on the following: * Intel(R) XL710 X710 Virtual Function * Intel(R) X722 Virtual Function * Intel(R) XXV710 Virtual Function * Intel(R) Ethernet Adaptive Virtual Function ”h]”(hŒterm”“”)�”}”(hŒLThe driver in this kernel is compatible with devices based on the following:”h]”hŒLThe driver in this kernel is compatible with devices based on the following:”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³hÇh´K'hjäubhŒ definition”“”)�”}”(hhh]”hÿ)�”}”(hhh]”(j)�”}”(hŒ$Intel(R) XL710 X710 Virtual Function”h]”hÞ)�”}”(hjh]”hŒ$Intel(R) XL710 X710 Virtual Function”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K$hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjýubj)�”}”(hŒIntel(R) X722 Virtual Function”h]”hÞ)�”}”(hjh]”hŒIntel(R) X722 Virtual Function”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K%hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjýubj)�”}”(hŒ Intel(R) XXV710 Virtual Function”h]”hÞ)�”}”(hj0h]”hŒ Intel(R) XXV710 Virtual Function”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K&hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjýubj)�”}”(hŒ,Intel(R) Ethernet Adaptive Virtual Function ”h]”hÞ)�”}”(hŒ+Intel(R) Ethernet Adaptive Virtual Function”h]”hŒ+Intel(R) Ethernet Adaptive Virtual Function”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K'hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjýubeh}”(h]”h ]”h"]”h$]”h&]”jŒ*”uh1hþh³hÇh´K$hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³hÇh´K'hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÌh²hh³Nh´NubhÞ)�”}”(hŒRFor the best performance, make sure the latest NVM/FW is installed on your device.”h]”hŒRFor the best performance, make sure the latest NVM/FW is installed on your device.”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K)hjÌh²hubhÞ)�”}”(hŒ®For information on how to identify your adapter, and for the latest NVM/FW images and Intel network drivers, refer to the Intel Support website: https://www.intel.com/support”h]”(hŒ‘For information on how to identify your adapter, and for the latest NVM/FW images and Intel network drivers, refer to the Intel Support website: ”…”�”}”(hj„h²hh³Nh´NubhŒ reference”“”)�”}”(hŒhttps://www.intel.com/support”h]”hŒhttps://www.intel.com/support”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j�uh1jŒhj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K,hjÌh²hubeh}”(h]”Œidentifying-your-adapter”ah ]”h"]”Œidentifying your adapter”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K!ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ&Additional Features and Configurations”h]”hŒ&Additional Features and Configurations”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj«h²hh³hÇh´K2ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒViewing Link Messages”h]”hŒViewing Link Messages”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¼h²hh³hÇh´K5ubhÞ)�”}”(hŒÓ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::”h]”hŒÒ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:”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K6hj¼h²hubhŒ literal_block”“”)�”}”(hŒ # dmesg -n 8”h]”hŒ # dmesg -n 8”…”�”}”hjÝsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´K:hj¼h²hubjÞ)�”}”(hhh]”jã)�”}”(hŒ0NOTE: This setting is not saved across reboots. ”h]”(jé)�”}”(hŒNOTE:”h]”hŒNOTE:”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³hÇh´K=hjîubjù)�”}”(hhh]”hÞ)�”}”(hŒ)This setting is not saved across reboots.”h]”hŒ)This setting is not saved across reboots.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K=hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³hÇh´K=hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj¼h²hh³hÇh´Nubeh}”(h]”Œviewing-link-messages”ah ]”h"]”Œviewing link messages”ah$]”h&]”uh1hÈhj«h²hh³hÇh´K5ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒethtool”h]”hŒethtool”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj+h²hh³hÇh´K@ubhÞ)�”}”(hXThe driver utilizes the ethtool interface for driver configuration and diagnostics, as well as displaying statistical information. The latest ethtool version is required for this functionality. Download it at: https://www.kernel.org/pub/software/network/ethtool/”h]”(hŒÒThe driver utilizes the ethtool interface for driver configuration and diagnostics, as well as displaying statistical information. The latest ethtool version is required for this functionality. Download it at: ”…”�”}”(hj<h²hh³Nh´Nubj�)�”}”(hŒ4https://www.kernel.org/pub/software/network/ethtool/”h]”hŒ4https://www.kernel.org/pub/software/network/ethtool/”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jFuh1jŒhj<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KAhj+h²hubeh}”(h]”Œethtool”ah ]”h"]”Œethtool”ah$]”h&]”uh1hÈhj«h²hh³hÇh´K@ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSetting VLAN Tag Stripping”h]”hŒSetting VLAN Tag Stripping”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjah²hh³hÇh´KGubhÞ)�”}”(hXpIf you have applications that require Virtual Functions (VFs) to receive packets with VLAN tags, you can disable VLAN tag stripping for the VF. The Physical Function (PF) processes requests issued from the VF to enable or disable VLAN tag stripping. Note that if the PF has assigned a VLAN to a VF, then requests from that VF to set VLAN tag stripping will be ignored.”h]”hXpIf you have applications that require Virtual Functions (VFs) to receive packets with VLAN tags, you can disable VLAN tag stripping for the VF. The Physical Function (PF) processes requests issued from the VF to enable or disable VLAN tag stripping. Note that if the PF has assigned a VLAN to a VF, then requests from that VF to set VLAN tag stripping will be ignored.”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KHhjah²hubhÞ)�”}”(hŒTo enable/disable VLAN tag stripping for a VF, issue the following command from inside the VM in which you are running the VF::”h]”hŒ~To enable/disable VLAN tag stripping for a VF, issue the following command from inside the VM in which you are running the VF:”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KNhjah²hubjÜ)�”}”(hŒ$# ethtool -K rxvlan on/off”h]”hŒ$# ethtool -K rxvlan on/off”…”�”}”hjŽsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´KQhjah²hubhÞ)�”}”(hŒor alternatively::”h]”hŒor alternatively:”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KShjah²hubjÜ)�”}”(hŒ+# ethtool --offload rxvlan on/off”h]”hŒ+# ethtool --offload rxvlan on/off”…”�”}”hjªsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´KUhjah²hubeh}”(h]”Œsetting-vlan-tag-stripping”ah ]”h"]”Œsetting vlan tag stripping”ah$]”h&]”uh1hÈhj«h²hh³hÇh´KGubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAdaptive Virtual Function”h]”hŒAdaptive Virtual Function”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÀh²hh³hÇh´KXubhÞ)�”}”(hXUAdaptive Virtual Function (AVF) allows the virtual function driver, or VF, to adapt to changing feature sets of the physical function driver (PF) with which it is associated. This allows system administrators to update a PF without having to update all the VFs associated with it. All AVFs have a single common device ID and branding string.”h]”hXUAdaptive Virtual Function (AVF) allows the virtual function driver, or VF, to adapt to changing feature sets of the physical function driver (PF) with which it is associated. This allows system administrators to update a PF without having to update all the VFs associated with it. All AVFs have a single common device ID and branding string.”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KYhjÀh²hubhÞ)�”}”(hŒØAVFs have a minimum set of features known as "base mode," but may provide additional features depending on what features are available in the PF with which the AVF is associated. The following are base mode features:”h]”hŒÜAVFs have a minimum set of features known as “base mode,â€� but may provide additional features depending on what features are available in the PF with which the AVF is associated. The following are base mode features:”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K_hjÀh²hubhÿ)�”}”(hhh]”(j)�”}”(hŒQ4 Queue Pairs (QP) and associated Configuration Status Registers (CSRs) for Tx/Rx”h]”hÞ)�”}”(hŒQ4 Queue Pairs (QP) and associated Configuration Status Registers (CSRs) for Tx/Rx”h]”hŒQ4 Queue Pairs (QP) and associated Configuration Status Registers (CSRs) for Tx/Rx”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kchjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ i40e descriptors and ring format”h]”hÞ)�”}”(hj h]”hŒ i40e descriptors and ring format”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kehjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ Descriptor write-back completion”h]”hÞ)�”}”(hj!h]”hŒ Descriptor write-back completion”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kfhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ<1 control queue, with i40e descriptors, CSRs and ring format”h]”hÞ)�”}”(hj8h]”hŒ<1 control queue, with i40e descriptors, CSRs and ring format”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kghj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ55 MSI-X interrupt vectors and corresponding i40e CSRs”h]”hÞ)�”}”(hjOh]”hŒ55 MSI-X interrupt vectors and corresponding i40e CSRs”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ%1 Interrupt Throttle Rate (ITR) index”h]”hÞ)�”}”(hjfh]”hŒ%1 Interrupt Throttle Rate (ITR) index”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kihjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ(1 Virtual Station Interface (VSI) per VF”h]”hÞ)�”}”(hj}h]”hŒ(1 Virtual Station Interface (VSI) per VF”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kjhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ1 Traffic Class (TC), TC0”h]”hÞ)�”}”(hj”h]”hŒ1 Traffic Class (TC), TC0”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kkhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ]Receive Side Scaling (RSS) with 64 entry indirection table and key, configured through the PF”h]”hÞ)�”}”(hŒ]Receive Side Scaling (RSS) with 64 entry indirection table and key, configured through the PF”h]”hŒ]Receive Side Scaling (RSS) with 64 entry indirection table and key, configured through the PF”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Klhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ%1 unicast MAC address reserved per VF”h]”hÞ)�”}”(hjÃh]”hŒ%1 unicast MAC address reserved per VF”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KnhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ"16 MAC address filters for each VF”h]”hÞ)�”}”(hjÚh]”hŒ"16 MAC address filters for each VF”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KohjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ+Stateless offloads - non-tunneled checksums”h]”hÞ)�”}”(hjñh]”hŒ+Stateless offloads - non-tunneled checksums”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kphjïubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒ AVF device ID”h]”hÞ)�”}”(hjh]”hŒ AVF device ID”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kqhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubj)�”}”(hŒFHW mailbox is used for VF to PF communications (including on Windows) ”h]”hÞ)�”}”(hŒEHW mailbox is used for VF to PF communications (including on Windows)”h]”hŒEHW mailbox is used for VF to PF communications (including on Windows)”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Krhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jj€uh1hþh³hÇh´KchjÀh²hubeh}”(h]”Œadaptive-virtual-function”ah ]”h"]”Œadaptive virtual function”ah$]”h&]”uh1hÈhj«h²hh³hÇh´KXubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒIEEE 802.1ad (QinQ) Support”h]”hŒIEEE 802.1ad (QinQ) Support”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjCh²hh³hÇh´KuubhÞ)�”}”(hXNThe IEEE 802.1ad standard, informally known as QinQ, allows for multiple VLAN IDs within a single Ethernet frame. VLAN IDs are sometimes referred to as "tags," and multiple VLAN IDs are thus referred to as a "tag stack." Tag stacks allow L2 tunneling and the ability to segregate traffic within a particular VLAN ID, among other uses.”h]”hXVThe IEEE 802.1ad standard, informally known as QinQ, allows for multiple VLAN IDs within a single Ethernet frame. VLAN IDs are sometimes referred to as “tags,â€� and multiple VLAN IDs are thus referred to as a “tag stack.â€� Tag stacks allow L2 tunneling and the ability to segregate traffic within a particular VLAN ID, among other uses.”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KvhjCh²hubhÞ)�”}”(hŒ?The following are examples of how to configure 802.1ad (QinQ)::”h]”hŒ>The following are examples of how to configure 802.1ad (QinQ):”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K|hjCh²hubjÜ)�”}”(hŒ‚# 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”h]”hŒ‚# 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”…”�”}”hjpsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´K~hjCh²hubhÞ)�”}”(hŒ*Where "24" and "371" are example VLAN IDs.”h]”hŒ2Where “24â€� and “371â€� are example VLAN IDs.”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjCh²hubjÞ)�”}”(hhh]”jã)�”}”(hŒuNOTES: Receive checksum offloads, cloud filters, and VLAN acceleration are not supported for 802.1ad (QinQ) packets. ”h]”(jé)�”}”(hŒNOTES:”h]”hŒNOTES:”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³hÇh´K…hj�ubjù)�”}”(hhh]”hÞ)�”}”(hŒmReceive checksum offloads, cloud filters, and VLAN acceleration are not supported for 802.1ad (QinQ) packets.”h]”hŒmReceive checksum offloads, cloud filters, and VLAN acceleration are not supported for 802.1ad (QinQ) packets.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³hÇh´K…hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjCh²hh³hÇh´Nubeh}”(h]”Œieee-802-1ad-qinq-support”ah ]”h"]”Œieee 802.1ad (qinq) support”ah$]”h&]”uh1hÈhj«h²hh³hÇh´KuubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒApplication Device Queues (ADq)”h]”hŒApplication Device Queues (ADq)”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÌh²hh³hÇh´KˆubhÞ)�”}”(hŒ÷Application Device Queues (ADq) allows you to dedicate one or more queues to a 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.”h]”hŒ÷Application Device Queues (ADq) allows you to dedicate one or more queues to a 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.”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‰hjÌh²hubhÞ)�”}”(hŒ Requirements:”h]”hŒ Requirements:”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŽhjÌh²hubhÿ)�”}”(hhh]”(j)�”}”(hŒ@The sch_mqprio, act_mirred and cls_flower modules must be loaded”h]”hÞ)�”}”(hjþh]”hŒ@The sch_mqprio, act_mirred and cls_flower modules must be loaded”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjùh²hh³hÇh´Nubj)�”}”(hŒThe latest version of iproute2”h]”hÞ)�”}”(hjh]”hŒThe latest version of iproute2”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‘hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjùh²hh³hÇh´Nubj)�”}”(hŒRIf another driver (for example, DPDK) has set cloud filters, you cannot enable ADQ”h]”hÞ)�”}”(hŒRIf another driver (for example, DPDK) has set cloud filters, you cannot enable ADQ”h]”hŒRIf another driver (for example, DPDK) has set cloud filters, you cannot enable ADQ”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K’hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjùh²hh³hÇh´Nubj)�”}”(hŒ»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 ”h]”(hÞ)�”}”(hŒeDepending on the underlying PF device, ADQ cannot be enabled when the following features are enabled:”h]”hŒeDepending on the underlying PF device, ADQ cannot be enabled when the following features are enabled:”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K”hjBubhÿ)�”}”(hhh]”(j)�”}”(hŒData Center Bridging (DCB)”h]”hÞ)�”}”(hjYh]”hŒData Center Bridging (DCB)”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K—hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjTubj)�”}”(hŒ!Multiple Functions per Port (MFP)”h]”hÞ)�”}”(hjph]”hŒ!Multiple Functions per Port (MFP)”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K˜hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjTubj)�”}”(hŒSideband Filters ”h]”hÞ)�”}”(hŒSideband Filters”h]”hŒSideband Filters”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K™hj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjTubeh}”(h]”h ]”h"]”h$]”h&]”jŒ+”uh1hþh³hÇh´K—hjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjùh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jj€uh1hþh³hÇh´K�hjÌh²hubhÞ)�”}”(hŒ{1. Create traffic classes (TCs). Maximum of 8 TCs can be created per interface. The shaper bw_rlimit parameter is optional.”h]”hŒ{1. Create traffic classes (TCs). Maximum of 8 TCs can be created per interface. The shaper bw_rlimit parameter is optional.”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K›hjÌh²hubhÞ)�”}”(hŒrExample: Sets up two tcs, tc0 and tc1, with 16 queues each and max tx rate set to 1Gbit for tc0 and 3Gbit for tc1.”h]”hŒrExample: Sets up two tcs, tc0 and tc1, with 16 queues each and max tx rate set to 1Gbit for tc0 and 3Gbit for tc1.”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KžhjÌh²hubjÜ)�”}”(hŒ¤tc qdisc add dev root mqprio num_tc 2 map 0 0 0 0 1 1 1 1 queues 16@0 16@16 hw 1 mode channel shaper bw_rlimit min_rate 1Gbit 2Gbit max_rate 1Gbit 3Gbit”h]”hŒ¤tc qdisc add dev root mqprio num_tc 2 map 0 0 0 0 1 1 1 1 queues 16@0 16@16 hw 1 mode channel shaper bw_rlimit min_rate 1Gbit 2Gbit max_rate 1Gbit 3Gbit”…”�”}”hjÌsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´K£hjÌh²hubhÞ)�”}”(hŒ�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)”h]”hŒ�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)”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K§hjÌh²hubhÞ)�”}”(hŒàqueues: for each tc, @ (e.g. queues 16@0 16@16 assigns 16 queues to tc0 at offset 0 and 16 queues to tc1 at offset 16. Max total number of queues for all tcs is 64 or number of cores, whichever is lower.)”h]”(hŒ=queues: for each tc, @ (e.g. queues 16@0 ”…”�”}”(hjèh²hh³Nh´Nubj�)�”}”(hŒ16@16”h]”hŒ16@16”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ mailto:16@16”uh1jŒhjèubhŒž assigns 16 queues to tc0 at offset 0 and 16 queues to tc1 at offset 16. Max total number of queues for all tcs is 64 or number of cores, whichever is lower.)”…”�”}”(hjèh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KªhjÌh²hubhÞ)�”}”(hŒÊhw 1 mode channel: ‘channel’ with ‘hw’ set to 1 is a new new hardware offload mode in mqprio that makes full use of the mqprio options, the TCs, the queue configurations, and the QoS parameters.”h]”hŒÊhw 1 mode channel: ‘channel’ with ‘hw’ set to 1 is a new new hardware offload mode in mqprio that makes full use of the mqprio options, the TCs, the queue configurations, and the QoS parameters.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K®hjÌh²hubhÞ)�”}”(hŒvshaper bw_rlimit: for each tc, sets minimum and maximum bandwidth rates. Totals must be equal or less than port speed.”h]”hŒvshaper bw_rlimit: for each tc, sets minimum and maximum bandwidth rates. Totals must be equal or less than port speed.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K²hjÌh²hubhÞ)�”}”(hŒœFor example: min_rate 1Gbit 3Gbit: Verify bandwidth limit using network monitoring tools such as ``ifstat`` or ``sar -n DEV [interval] [number of samples]``”h]”(hŒaFor example: min_rate 1Gbit 3Gbit: Verify bandwidth limit using network monitoring tools such as ”…”�”}”(hj&h²hh³Nh´NubhŒliteral”“”)�”}”(hŒ ``ifstat``”h]”hŒifstat”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j.hj&ubhŒ or ”…”�”}”(hj&h²hh³Nh´Nubj/)�”}”(hŒ-``sar -n DEV [interval] [number of samples]``”h]”hŒ)sar -n DEV [interval] [number of samples]”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j.hj&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KµhjÌh²hubjÞ)�”}”(hhh]”jã)�”}”(hŒnNOTE: Setting up channels via ethtool (ethtool -L) is not supported when the TCs are configured using mqprio. ”h]”(jé)�”}”(hŒNOTE:”h]”hŒNOTE:”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³hÇh´KºhjYubjù)�”}”(hhh]”hÞ)�”}”(hŒgSetting up channels via ethtool (ethtool -L) is not supported when the TCs are configured using mqprio.”h]”hŒgSetting up channels via ethtool (ethtool -L) is not supported when the TCs are configured using mqprio.”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¹hjkubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³hÇh´KºhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÌh²hh³hÇh´NubhŒenumerated_list”“”)�”}”(hhh]”(j)�”}”(hŒPEnable HW TC offload on interface:: # ethtool -K hw-tc-offload on ”h]”(hÞ)�”}”(hŒ#Enable HW TC offload on interface::”h]”hŒ"Enable HW TC offload on interface:”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¼hj“ubjÜ)�”}”(hŒ)# ethtool -K hw-tc-offload on”h]”hŒ)# ethtool -K hw-tc-offload on”…”�”}”hj¥sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´K¾hj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj�h²hh³hÇh´Nubj)�”}”(hŒWApply TCs to ingress (RX) flow of interface:: # tc qdisc add dev ingress ”h]”(hÞ)�”}”(hŒ-Apply TCs to ingress (RX) flow of interface::”h]”hŒ,Apply TCs to ingress (RX) flow of interface:”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÀhj¹ubjÜ)�”}”(hŒ&# tc qdisc add dev ingress”h]”hŒ&# tc qdisc add dev ingress”…”�”}”hjËsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´KÂhj¹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj�h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”Œstart”Kuh1jŽhjÌh²hh³hÇh´K¼ubjÞ)�”}”(hhh]”jã)�”}”(hXbNOTES: - Run all tc commands from the iproute2 /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 - You must have iproute2 latest version - 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 - If another driver (for example, DPDK) has set cloud filters, you cannot 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 encapsulated packet, outer headers are ignored. Therefore, inner headers are matched. - If a TC filter on a PF matches traffic over a VF (on the PF), that traffic will be routed to the appropriate queue of the PF, and will not be passed on the VF. Such traffic will end up getting dropped higher up in the TCP/IP stack as it does not match PF address data. - If traffic matches multiple TC filters that point to different TCs, that 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. ”h]”(jé)�”}”(hŒNOTES:”h]”hŒNOTES:”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³hÇh´KÛhjîubjù)�”}”(hhh]”hÿ)�”}”(hhh]”(j)�”}”(hŒDRun all tc commands from the iproute2 /tc/ directory”h]”hÞ)�”}”(hjh]”hŒDRun all tc commands from the iproute2 /tc/ directory”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÅhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒ(ADq is not compatible with cloud filters”h]”hÞ)�”}”(hjh]”hŒ(ADq is not compatible with cloud filters”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÆhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒfSetting up channels via ethtool (ethtool -L) is not supported when the TCs are configured using mqprio”h]”hÞ)�”}”(hŒfSetting up channels via ethtool (ethtool -L) is not supported when the TCs are configured using mqprio”h]”hŒfSetting up channels via ethtool (ethtool -L) is not supported when the TCs are configured using mqprio”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÇhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒ%You must have iproute2 latest version”h]”hÞ)�”}”(hjNh]”hŒ%You must have iproute2 latest version”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÉhjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒ%NVM version 6.01 or later is required”h]”hÞ)�”}”(hjeh]”hŒ%NVM version 6.01 or later is required”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÊhjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒ•ADq cannot be enabled when any the following features are enabled: Data Center Bridging (DCB), Multiple Functions per Port (MFP), or Sideband Filters”h]”hÞ)�”}”(hŒ•ADq cannot be enabled when any the following features are enabled: Data Center Bridging (DCB), Multiple Functions per Port (MFP), or Sideband Filters”h]”hŒ•ADq cannot be enabled when any the following features are enabled: Data Center Bridging (DCB), Multiple Functions per Port (MFP), or Sideband Filters”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KËhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒRIf another driver (for example, DPDK) has set cloud filters, you cannot enable ADq”h]”hÞ)�”}”(hŒRIf another driver (for example, DPDK) has set cloud filters, you cannot enable ADq”h]”hŒRIf another driver (for example, DPDK) has set cloud filters, you cannot enable ADq”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÍhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hX5Tunnel 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 encapsulated packet, outer headers are ignored. Therefore, inner headers are matched.”h]”hÞ)�”}”(hX5Tunnel 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 encapsulated packet, outer headers are ignored. Therefore, inner headers are matched.”h]”hX5Tunnel 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 encapsulated packet, outer headers are ignored. Therefore, inner headers are matched.”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÏhjªubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hX If a TC filter on a PF matches traffic over a VF (on the PF), that traffic will be routed to the appropriate queue of the PF, and will not be passed on the VF. Such traffic will end up getting dropped higher up in the TCP/IP stack as it does not match PF address data.”h]”hÞ)�”}”(hX If a TC filter on a PF matches traffic over a VF (on the PF), that traffic will be routed to the appropriate queue of the PF, and will not be passed on the VF. Such traffic will end up getting dropped higher up in the TCP/IP stack as it does not match PF address data.”h]”hX If a TC filter on a PF matches traffic over a VF (on the PF), that traffic will be routed to the appropriate queue of the PF, and will not be passed on the VF. Such traffic will end up getting dropped higher up in the TCP/IP stack as it does not match PF address data.”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÔhjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)�”}”(hŒâIf traffic matches multiple TC filters that point to different TCs, that 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. ”h]”hÞ)�”}”(hŒàIf traffic matches multiple TC filters that point to different TCs, that 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.”h]”hŒàIf traffic matches multiple TC filters that point to different TCs, that 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.”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KØhjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”jj€uh1hþh³hÇh´KÅhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³hÇh´KÛhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÌh²hh³Nh´Nubeh}”(h]”Œapplication-device-queues-adq”ah ]”h"]”Œapplication device queues (adq)”ah$]”h&]”uh1hÈhj«h²hh³hÇh´Kˆubeh}”(h]”Œ&additional-features-and-configurations”ah ]”h"]”Œ&additional features and configurations”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K2ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒKnown Issues/Troubleshooting”h]”hŒKnown Issues/Troubleshooting”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj h²hh³hÇh´KÞubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒQBonding fails with VFs bound to an Intel(R) Ethernet Controller 700 series device”h]”hŒQBonding fails with VFs bound to an Intel(R) Ethernet Controller 700 series device”…”�”}”(hj. h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj+ h²hh³hÇh´KáubhÞ)�”}”(hXúIf you bind Virtual Functions (VFs) to an Intel(R) Ethernet Controller 700 series based device, the VF slaves may fail when they become the active slave. If the MAC address of the VF is set by the PF (Physical Function) of the device, when you add a slave, or change the active-backup slave, Linux bonding tries to sync the backup slave's MAC address to the same MAC address as the active slave. Linux bonding will fail at this point. This issue will not occur if the VF's MAC address is not set by the PF.”h]”hXþIf you bind Virtual Functions (VFs) to an Intel(R) Ethernet Controller 700 series based device, the VF slaves may fail when they become the active slave. If the MAC address of the VF is set by the PF (Physical Function) of the device, when you add a slave, or change the active-backup slave, Linux bonding tries to sync the backup slave’s MAC address to the same MAC address as the active slave. Linux bonding will fail at this point. This issue will not occur if the VF’s MAC address is not set by the PF.”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kâhj+ h²hubeh}”(h]”ŒPbonding-fails-with-vfs-bound-to-an-intel-r-ethernet-controller-700-series-device”ah ]”h"]”ŒQbonding fails with vfs bound to an intel(r) ethernet controller 700 series device”ah$]”h&]”uh1hÈhj h²hh³hÇh´KáubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ1Traffic Is Not Being Passed Between VM and Client”h]”hŒ1Traffic Is Not Being Passed Between VM and Client”…”�”}”(hjU h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjR h²hh³hÇh´KëubhÞ)�”}”(hX>You may not be able to pass traffic between a client system and a Virtual Machine (VM) running on a separate host if the Virtual Function (VF, or Virtual NIC) is not in trusted mode and spoof checking is enabled on the VF. Note that this situation can occur in any combination of client, host, and guest operating system. For information on how to set the VF to trusted mode, refer to the section "VLAN Tag Packet Steering" in this readme document. For information on setting spoof checking, refer to the section "MAC and VLAN anti-spoofing feature" in this readme document.”h]”hXFYou may not be able to pass traffic between a client system and a Virtual Machine (VM) running on a separate host if the Virtual Function (VF, or Virtual NIC) is not in trusted mode and spoof checking is enabled on the VF. Note that this situation can occur in any combination of client, host, and guest operating system. For information on how to set the VF to trusted mode, refer to the section “VLAN Tag Packet Steeringâ€� in this readme document. For information on setting spoof checking, refer to the section “MAC and VLAN anti-spoofing featureâ€� in this readme document.”…”�”}”(hjc h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KìhjR h²hubeh}”(h]”Œ1traffic-is-not-being-passed-between-vm-and-client”ah ]”h"]”Œ1traffic is not being passed between vm and client”ah$]”h&]”uh1hÈhj h²hh³hÇh´KëubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ=Do not unload port driver if VF with active VM is bound to it”h]”hŒ=Do not unload port driver if VF with active VM is bound to it”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjy h²hh³hÇh´KöubhÞ)�”}”(hŒíDo not unload a port's driver if a Virtual Function (VF) with an active Virtual Machine (VM) is bound to it. Doing so will cause the port to appear to hang. Once the VM shuts down, or otherwise releases the VF, the command will complete.”h]”hŒïDo not unload a port’s driver if a Virtual Function (VF) with an active Virtual Machine (VM) is bound to it. Doing so will cause the port to appear to hang. Once the VM shuts down, or otherwise releases the VF, the command will complete.”…”�”}”(hjŠ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K÷hjy h²hubeh}”(h]”Œ=do-not-unload-port-driver-if-vf-with-active-vm-is-bound-to-it”ah ]”h"]”Œ=do not unload port driver if vf with active vm is bound to it”ah$]”h&]”uh1hÈhj h²hh³hÇh´KöubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Using four traffic classes fails”h]”hŒ Using four traffic classes fails”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj  h²hh³hÇh´KüubhÞ)�”}”(hŒßDo not try to reserve more than three traffic classes in the iavf driver. Doing so will fail to set any traffic classes and will cause the driver to write errors to stdout. Use a maximum of three queues to avoid this issue.”h]”hŒßDo not try to reserve more than three traffic classes in the iavf driver. Doing so will fail to set any traffic classes and will cause the driver to write errors to stdout. Use a maximum of three queues to avoid this issue.”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kýhj  h²hubeh}”(h]”Œ using-four-traffic-classes-fails”ah ]”h"]”Œ using four traffic classes fails”ah$]”h&]”uh1hÈhj h²hh³hÇh´KüubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ2Multiple log error messages on iavf driver removal”h]”hŒ2Multiple log error messages on iavf driver removal”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÇ h²hh³hÇh´MubhÞ)�”}”(hŒ~If you have several VFs and you remove the iavf driver, several instances of the following log errors are written to the log::”h]”hŒ}If you have several VFs and you remove the iavf driver, several instances of the following log errors are written to the log:”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjÇ h²hubjÜ)�”}”(hŒ‹Unable to send opcode 2 to PF, err I40E_ERR_QUEUE_EMPTY, aq_err ok Unable to send the message to VF 2 aq_err 12 ARQ Overflow Error detected”h]”hŒ‹Unable to send opcode 2 to PF, err I40E_ERR_QUEUE_EMPTY, aq_err ok Unable to send the message to VF 2 aq_err 12 ARQ Overflow Error detected”…”�”}”hjæ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´MhjÇ h²hubeh}”(h]”Œ2multiple-log-error-messages-on-iavf-driver-removal”ah ]”h"]”Œ2multiple log error messages on iavf driver removal”ah$]”h&]”uh1hÈhj h²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ!Virtual machine does not get link”h]”hŒ!Virtual machine does not get link”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjü h²hh³hÇh´M ubhÞ)�”}”(hŒèIf the virtual machine has more than one virtual port assigned to it, and those virtual ports are bound to different physical ports, you may not get link on all of the virtual ports. The following command may work around the issue::”h]”hŒçIf the virtual machine has more than one virtual port assigned to it, and those virtual ports are bound to different physical ports, you may not get link on all of the virtual ports. The following command may work around the issue:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hjü h²hubjÜ)�”}”(hŒ# ethtool -r ”h]”hŒ# ethtool -r ”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´Mhjü h²hubhÞ)�”}”(hŒ�Where is the PF interface in the host, for example: p5p1. You may need to run the command more than once to get link on all virtual ports.”h]”hŒ�Where is the PF interface in the host, for example: p5p1. You may need to run the command more than once to get link on all virtual ports.”…”�”}”(hj) h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjü h²hubeh}”(h]”Œ!virtual-machine-does-not-get-link”ah ]”h"]”Œ!virtual machine does not get link”ah$]”h&]”uh1hÈhj h²hh³hÇh´M ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ4MAC address of Virtual Function changes unexpectedly”h]”hŒ4MAC address of Virtual Function changes unexpectedly”…”�”}”(hjB h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj? h²hh³hÇh´MubhÞ)�”}”(hX?If a Virtual Function's MAC address is not assigned in the host, then the VF (virtual function) driver will use a random MAC address. This random MAC address may change each time the VF driver is reloaded. You can assign a static MAC address in the host machine. This static MAC address will survive a VF driver reload.”h]”hXAIf a Virtual Function’s MAC address is not assigned in the host, then the VF (virtual function) driver will use a random MAC address. This random MAC address may change each time the VF driver is reloaded. You can assign a static MAC address in the host machine. This static MAC address will survive a VF driver reload.”…”�”}”(hjP h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj? h²hubeh}”(h]”Œ4mac-address-of-virtual-function-changes-unexpectedly”ah ]”h"]”Œ4mac address of virtual function changes unexpectedly”ah$]”h&]”uh1hÈhj h²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDriver Buffer Overflow Fix”h]”hŒDriver Buffer Overflow Fix”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjf h²hh³hÇh´MubhÞ)�”}”(hŒÊThe fix to resolve CVE-2016-8105, referenced in Intel SA-00069 https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00069.html is included in this and future versions of the driver.”h]”(hŒ?The fix to resolve CVE-2016-8105, referenced in Intel SA-00069 ”…”�”}”(hjw h²hh³Nh´Nubj�)�”}”(hŒThttps://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00069.html”h]”hŒThttps://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00069.html”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j� uh1jŒhjw ubhŒ7 is included in this and future versions of the driver.”…”�”}”(hjw h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjf h²hubeh}”(h]”Œdriver-buffer-overflow-fix”ah ]”h"]”Œdriver buffer overflow fix”ah$]”h&]”uh1hÈhj h²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ6Multiple Interfaces on Same Ethernet Broadcast Network”h]”hŒ6Multiple Interfaces on Same Ethernet Broadcast Network”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj  h²hh³hÇh´M$ubhÞ)�”}”(hX?Due to the default ARP behavior on Linux, it is not possible to have one system on two IP networks in the same Ethernet broadcast domain (non-partitioned switch) behave as expected. All Ethernet interfaces will respond to IP traffic for any IP address assigned to the system. This results in unbalanced receive traffic.”h]”hX?Due to the default ARP behavior on Linux, it is not possible to have one system on two IP networks in the same Ethernet broadcast domain (non-partitioned switch) behave as expected. All Ethernet interfaces will respond to IP traffic for any IP address assigned to the system. This results in unbalanced receive traffic.”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M%hj  h²hubhÞ)�”}”(hŒWIf you have multiple interfaces in a server, either turn on ARP filtering by entering::”h]”hŒVIf you have multiple interfaces in a server, either turn on ARP filtering by entering:”…”�”}”(hj¿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M+hj  h²hubjÜ)�”}”(hŒ1# echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter”h]”hŒ1# echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter”…”�”}”hjÍ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´M.hj  h²hubjÞ)�”}”(hhh]”jã)�”}”(hŒ¿NOTE: This setting is not saved across reboots. The configuration change can be made permanent by adding the following line to the file /etc/sysctl.conf:: net.ipv4.conf.all.arp_filter = 1 ”h]”(jé)�”}”(hŒNOTE:”h]”hŒNOTE:”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³hÇh´M4hjÞ ubjù)�”}”(hhh]”(hÞ)�”}”(hŒ”This setting is not saved across reboots. The configuration change can be made permanent by adding the following line to the file /etc/sysctl.conf::”h]”hŒ“This setting is not saved across reboots. The configuration change can be made permanent by adding the following line to the file /etc/sysctl.conf:”…”�”}”(hjó h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M1hjð ubjÜ)�”}”(hŒ net.ipv4.conf.all.arp_filter = 1”h]”hŒ net.ipv4.conf.all.arp_filter = 1”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛh³hÇh´M4hjð ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jøhjÞ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³hÇh´M4hjÛ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj  h²hh³hÇh´NubhÞ)�”}”(hŒ’Another alternative is to install the interfaces in separate broadcast domains (either in different switches or in a switch partitioned to VLANs).”h]”hŒ’Another alternative is to install the interfaces in separate broadcast domains (either in different switches or in a switch partitioned to VLANs).”…”�”}”(hj! h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M6hj  h²hubeh}”(h]”Œ6multiple-interfaces-on-same-ethernet-broadcast-network”ah ]”h"]”Œ6multiple interfaces on same ethernet broadcast network”ah$]”h&]”uh1hÈhj h²hh³hÇh´M$ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒRx Page Allocation Errors”h]”hŒRx Page Allocation Errors”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj7 h²hh³hÇh´M:ubhÞ)�”}”(hŒ�'Page allocation failure. order:0' errors may occur under stress. This is caused by the way the Linux kernel reports this stressed condition.”h]”hŒ‘‘Page allocation failure. order:0’ errors may occur under stress. This is caused by the way the Linux kernel reports this stressed condition.”…”�”}”(hjH h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M;hj7 h²hubeh}”(h]”Œrx-page-allocation-errors”ah ]”h"]”Œrx page allocation errors”ah$]”h&]”uh1hÈhj h²hh³hÇh´M:ubeh}”(h]”Œknown-issues-troubleshooting”ah ]”h"]”Œknown issues/troubleshooting”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KÞubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSupport”h]”hŒSupport”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjf h²hh³hÇh´M@ubhÞ)�”}”(hŒVFor general information, go to the Intel support website at: https://support.intel.com”h]”(hŒ=For general information, go to the Intel support website at: ”…”�”}”(hjw h²hh³Nh´Nubj�)�”}”(hŒhttps://support.intel.com”h]”hŒhttps://support.intel.com”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j� uh1jŒhjw ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MAhjf h²hubhÞ)�”}”(hŒÂIf an issue is identified with the released source code on the supported kernel with a supported adapter, email the specific information related to the issue to intel-wired-lan@lists.osuosl.org.”h]”(hŒ¡If an issue is identified with the released source code on the supported kernel with a supported adapter, email the specific information related to the issue to ”…”�”}”(hj” h²hh³Nh´Nubj�)�”}”(hŒ intel-wired-lan@lists.osuosl.org”h]”hŒ intel-wired-lan@lists.osuosl.org”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ'mailto:intel-wired-lan@lists.osuosl.org”uh1jŒhj” ubhŒ.”…”�”}”(hj” h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MDhjf h²hubeh}”(h]”Œsupport”ah ]”h"]”Œsupport”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´M@ubeh}”(h]”Œ@linux-base-driver-for-intel-r-ethernet-adaptive-virtual-function”ah ]”h"]”ŒAlinux base driver for intel(r) ethernet adaptive virtual function”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jé Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jà jÀ j†jƒjÉjÆj¨j¥j j j(j%j^j[j½jºj@j=jÉjÆj j jc j` jO jL jv js j� jš jÄ jÁ jù jö j< j9 jc j` j� jš j4 j1 j[ jX j» j¸ uŒ nametypes”}”(jà ‰j†‰jɉj¨‰j ‰j(‰j^‰j½‰j@‰jɉj ‰jc ‰jO ‰jv ‰j� ‰jÄ ‰jù ‰j< ‰jc ‰j� ‰j4 ‰j[ ‰j» ‰uh}”(jÀ hÊjƒhíjÆj‰j¥jÌj j«j%j¼j[j+jºjaj=jÀjÆjCj jÌj` j jL j+ js jR jš jy jÁ j  jö jÇ j9 jü j` j? jš jf j1 j  jX j7 j¸ jf uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”hŒsystem_message”“”)�”}”(hhh]”hÞ)�”}”(hŒ:Enumerated list start value not ordinal-1: "2" (ordinal 2)”h]”hŒ>Enumerated list start value not ordinal-1: “2â€� (ordinal 2)”…”�”}”(hjP h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝhjM ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÇŒline”Kuh1jK hjÌh²hh³hÇh´K¼ubaŒtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.