€•DŒ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”Œ+/translations/zh_CN/networking/devlink/mlx5”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/zh_TW/networking/devlink/mlx5”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/it_IT/networking/devlink/mlx5”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ja_JP/networking/devlink/mlx5”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ko_KR/networking/devlink/mlx5”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/pt_BR/networking/devlink/mlx5”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/sp_SP/networking/devlink/mlx5”Œ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³ŒE/var/lib/git/docbuild/linux/Documentation/networking/devlink/mlx5.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒmlx5 devlink support”h]”hŒmlx5 devlink support”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒWThis document describes the devlink features implemented by the ``mlx5`` device driver.”h]”(hŒ@This document describes the devlink features implemented by the ”…”�”}”(hhßh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``mlx5``”h]”hŒmlx5”…”�”}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhßubhŒ device driver.”…”�”}”(hhßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Parameters”h]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´K ubhŒtable”“”)�”}”(hhh]”(hÎ)�”}”(hŒGeneric parameters implemented”h]”hŒGeneric parameters implemented”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍh³hÇh´K hjubhŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j*hj'ubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”j5Kuh1j*hj'ubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”j5Kuh1j*hj'ubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”j5Kuh1j*hj'ubhŒtbody”“”)�”}”(hhh]”(hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjXubj\)�”}”(hhh]”hÞ)�”}”(hŒMode”h]”hŒMode”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjtubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjXubj\)�”}”(hhh]”hÞ)�”}”(hŒ Validation”h]”hŒ Validation”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjXubj\)�”}”(hhh]”hÞ)�”}”(hŒNotes”h]”hŒNotes”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``enable_roce``”h]”hè)�”}”(hjÇh]”hŒ enable_roce”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¿ubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjâubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¿ubj\)�”}”(hhh]”hÞ)�”}”(hŒBoolean”h]”hŒBoolean”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¿ubj\)�”}”(hhh]”hÞ)�”}”(hŒîIf the device supports RoCE disablement, RoCE enablement state controls device support for RoCE capability. Otherwise, the control occurs in the driver stack. When RoCE is disabled at the driver level, only raw ethernet QPs are supported.”h]”hŒîIf the device supports RoCE disablement, RoCE enablement state controls device support for RoCE capability. Otherwise, the control occurs in the driver stack. When RoCE is disabled at the driver level, only raw ethernet QPs are supported.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``io_eq_size``”h]”hè)�”}”(hj5h]”hŒ io_eq_size”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj-ubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj-ubj\)�”}”(hhh]”hÞ)�”}”(hŒ!The range is between 64 and 4096.”h]”hŒ!The range is between 64 and 4096.”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj-ubj\)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j[hj-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``event_eq_size``”h]”hè)�”}”(hj•h]”hŒ event_eq_size”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj�ubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj�ubj\)�”}”(hhh]”hÞ)�”}”(hŒ!The range is between 64 and 4096.”h]”hŒ!The range is between 64 and 4096.”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj�ubj\)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j[hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ ``max_macs``”h]”hè)�”}”(hjõh]”hŒmax_macs”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjóubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K"hjðubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjíubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K#hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjíubj\)�”}”(hhh]”hÞ)�”}”(hŒFThe range is between 1 and 2^31. Only power of 2 values are supported.”h]”hŒFThe range is between 1 and 2^31. Only power of 2 values are supported.”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K$hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjíubj\)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j[hjíubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``enable_sriov``”h]”hè)�”}”(hjUh]”hŒ enable_sriov”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K&hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjMubj\)�”}”(hhh]”hÞ)�”}”(hŒ permanent”h]”hŒ permanent”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K'hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjMubj\)�”}”(hhh]”hÞ)�”}”(hŒBoolean”h]”hŒBoolean”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K(hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjMubj\)�”}”(hhh]”hÞ)�”}”(hŒ€Applies to each physical function (PF) independently, if the device supports it. Otherwise, it applies symmetrically to all PFs.”h]”hŒ€Applies to each physical function (PF) independently, if the device supports it. Otherwise, it applies symmetrically to all PFs.”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K)hjžubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ ``total_vfs``”h]”hè)�”}”(hjÃh]”hŒ total_vfs”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K+hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj»ubj\)�”}”(hhh]”hÞ)�”}”(hŒ permanent”h]”hŒ permanent”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K,hjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj»ubj\)�”}”(hhh]”hÞ)�”}”(hŒ1The range is between 1 and a device-specific max.”h]”hŒ1The range is between 1 and a device-specific max.”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K-hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj»ubj\)�”}”(hhh]”hÞ)�”}”(hŒ€Applies to each physical function (PF) independently, if the device supports it. Otherwise, it applies symmetrically to all PFs.”h]”hŒ€Applies to each physical function (PF) independently, if the device supports it. Otherwise, it applies symmetrically to all PFs.”…”�”}”(hjh²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&]”uh1jVhjSubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ ``max_sfs``”h]”hè)�”}”(hj1h]”hŒmax_sfs”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K0hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj)ubj\)�”}”(hhh]”hÞ)�”}”(hŒ permanent”h]”hŒ permanent”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K1hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj)ubj\)�”}”(hhh]”hÞ)�”}”(hŒ1The range is between 0 and a device-specific max.”h]”hŒ1The range is between 0 and a device-specific max.”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K2hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj)ubj\)�”}”(hhh]”hÞ)�”}”(hŒ5Applies to each physical function (PF) independently.”h]”hŒ5Applies to each physical function (PF) independently.”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K3hjzubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQhj'ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j%hjubeh}”(h]”Œid1”ah ]”h"]”h$]”h&]”uh1jhjh²hh³Nh´NubhŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hŒsNote: permanent parameters such as ``enable_sriov``, ``total_vfs`` and ``max_sfs`` require FW reset to take effect ”h]”(hŒterm”“”)�”}”(hŒRNote: permanent parameters such as ``enable_sriov``, ``total_vfs`` and ``max_sfs``”h]”(hŒ#Note: permanent parameters such as ”…”�”}”(hj¸h²hh³Nh´Nubhè)�”}”(hŒ``enable_sriov``”h]”hŒ enable_sriov”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¸ubhŒ, ”…”�”}”(hj¸h²hh³Nh´Nubhè)�”}”(hŒ ``total_vfs``”h]”hŒ total_vfs”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¸ubhŒ and ”…”�”}”(hj¸h²hh³Nh´Nubhè)�”}”(hŒ ``max_sfs``”h]”hŒmax_sfs”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´K6hj²ubhŒ definition”“”)�”}”(hhh]”hÞ)�”}”(hŒrequire FW reset to take effect”h]”hŒrequire FW reset to take effect”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K6hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhj²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´K6hj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjh²hh³hÇh´NubhŒ literal_block”“”)�”}”(hX_# setup parameters devlink dev param set pci/0000:01:00.0 name enable_sriov value true cmode permanent devlink dev param set pci/0000:01:00.0 name total_vfs value 8 cmode permanent # Fw reset devlink dev reload pci/0000:01:00.0 action fw_activate # for PCI related config such as sriov PCI reset/rescan is required: echo 1 >/sys/bus/pci/devices/0000:01:00.0/remove echo 1 >/sys/bus/pci/rescan grep ^ /sys/bus/pci/devices/0000:01:00.0/sriov_* * - ``num_doorbells`` - driverinit - This controls the number of channel doorbells used by the netdev. In all cases, an additional doorbell is allocated and used for non-channel communication (e.g. for PTP, HWS, etc.). Supported values are: - 0: No channel-specific doorbells, use the global one for everything. - [1, max_num_channels]: Spread netdev channels equally across these doorbells.”h]”hX_# setup parameters devlink dev param set pci/0000:01:00.0 name enable_sriov value true cmode permanent devlink dev param set pci/0000:01:00.0 name total_vfs value 8 cmode permanent # Fw reset devlink dev reload pci/0000:01:00.0 action fw_activate # for PCI related config such as sriov PCI reset/rescan is required: echo 1 >/sys/bus/pci/devices/0000:01:00.0/remove echo 1 >/sys/bus/pci/rescan grep ^ /sys/bus/pci/devices/0000:01:00.0/sriov_* * - ``num_doorbells`` - driverinit - This controls the number of channel doorbells used by the netdev. In all cases, an additional doorbell is allocated and used for non-channel communication (e.g. for PTP, HWS, etc.). Supported values are: - 0: No channel-specific doorbells, use the global one for everything. - [1, max_num_channels]: Spread netdev channels equally across these doorbells.”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒforce”‰Œlanguage”Œbash”Œhighlight_args”}”uh1jh³hÇh´K8hjh²hubhÞ)�”}”(hŒMThe ``mlx5`` driver also implements the following driver-specific parameters.”h]”(hŒThe ”…”�”}”(hj2h²hh³Nh´Nubhè)�”}”(hŒ``mlx5``”h]”hŒmlx5”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj2ubhŒA driver also implements the following driver-specific parameters.”…”�”}”(hj2h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KPhjh²hubj)�”}”(hhh]”(hÎ)�”}”(hŒ&Driver-specific parameters implemented”h]”hŒ&Driver-specific parameters implemented”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍh³hÇh´KShjRubj&)�”}”(hhh]”(j+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”j5Kuh1j*hjcubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”j5Kuh1j*hjcubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”j5Kuh1j*hjcubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”j5KUuh1j*hjcubjR)�”}”(hhh]”(jW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KVhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj�ubj\)�”}”(hhh]”hÞ)�”}”(hŒType”h]”hŒType”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KWhj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj�ubj\)�”}”(hhh]”hÞ)�”}”(hŒMode”h]”hŒMode”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KXhj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj�ubj\)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KYhjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``flow_steering_mode``”h]”hè)�”}”(hjúh]”hŒflow_steering_mode”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KZhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjòubj\)�”}”(hhh]”hÞ)�”}”(hŒstring”h]”hŒstring”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K[hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjòubj\)�”}”(hhh]”hÞ)�”}”(hŒruntime”h]”hŒruntime”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K\hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjòubj\)�”}”(hhh]”(hÞ)�”}”(hŒ-Controls the flow steering mode of the driver”h]”hŒ-Controls the flow steering mode of the driver”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K]hjCubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒw``dmfs`` Device managed flow steering. In DMFS mode, the HW steering entities are created and managed through firmware.”h]”hÞ)�”}”(hŒw``dmfs`` Device managed flow steering. In DMFS mode, the HW steering entities are created and managed through firmware.”h]”(hè)�”}”(hŒ``dmfs``”h]”hŒdmfs”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj_ubhŒo Device managed flow steering. In DMFS mode, the HW steering entities are created and managed through firmware.”…”�”}”(hj_h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K_hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjVubjZ)�”}”(hŒ˜``smfs`` Software managed flow steering. In SMFS mode, the HW steering entities are created and manage through the driver without firmware intervention.”h]”hÞ)�”}”(hŒ˜``smfs`` Software managed flow steering. In SMFS mode, the HW steering entities are created and manage through the driver without firmware intervention.”h]”(hè)�”}”(hŒ``smfs``”h]”hŒsmfs”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj…ubhŒ� Software managed flow steering. In SMFS mode, the HW steering entities are created and manage through the driver without firmware intervention.”…”�”}”(hj…h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kahj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjVubjZ)�”}”(hŒº``hmfs`` Hardware managed flow steering. In HMFS mode, the driver is configuring steering rules directly to the HW using Work Queues with a special new type of WQE (Work Queue Element). ”h]”hÞ)�”}”(hŒ¹``hmfs`` Hardware managed flow steering. In HMFS mode, the driver is configuring steering rules directly to the HW using Work Queues with a special new type of WQE (Work Queue Element).”h]”(hè)�”}”(hŒ``hmfs``”h]”hŒhmfs”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj«ubhŒ± Hardware managed flow steering. In HMFS mode, the driver is configuring steering rules directly to the HW using Work Queues with a special new type of WQE (Work Queue Element).”…”�”}”(hj«h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kdhj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjVubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1jTh³hÇh´K_hjCubhÞ)�”}”(hŒZSMFS mode is faster and provides better rule insertion rate compared to default DMFS mode.”h]”hŒZSMFS mode is faster and provides better rule insertion rate compared to default DMFS mode.”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``fdb_large_groups``”h]”hè)�”}”(hj÷h]”hŒfdb_large_groups”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kjhjòubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjïubj\)�”}”(hhh]”hÞ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kkhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjïubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Klhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjïubj\)�”}”(hhh]”(hÞ)�”}”(hŒ?Control the number of large groups (size > 1) in the FDB table.”h]”hŒ?Control the number of large groups (size > 1) in the FDB table.”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kmhj@ubjU)�”}”(hhh]”jZ)�”}”(hŒ=The default value is 15, and the range is between 1 and 1024.”h]”hÞ)�”}”(hjVh]”hŒ=The default value is 15, and the range is between 1 and 1024.”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KohjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjQubah}”(h]”h ]”h"]”h$]”h&]”jÓjÔuh1jTh³hÇh´Kohj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hjïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``esw_multiport``”h]”hè)�”}”(hj…h]”hŒ esw_multiport”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kphj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj}ubj\)�”}”(hhh]”hÞ)�”}”(hŒBoolean”h]”hŒBoolean”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kqhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj}ubj\)�”}”(hhh]”hÞ)�”}”(hŒruntime”h]”hŒruntime”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Krhj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj}ubj\)�”}”(hhh]”(hÞ)�”}”(hŒ+Control MultiPort E-Switch shared fdb mode.”h]”hŒ+Control MultiPort E-Switch shared fdb mode.”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KshjÎubhÞ)�”}”(hŒzAn experimental mode where a single E-Switch is used and all the vports and physical ports on the NIC are connected to it.”h]”hŒzAn experimental mode where a single E-Switch is used and all the vports and physical ports on the NIC are connected to it.”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KuhjÎubhÞ)�”}”(hŒ~An example is to send traffic from a VF that is created on PF0 to an uplink that is natively associated with the uplink of PF1”h]”hŒ~An example is to send traffic from a VF that is created on PF0 to an uplink that is natively associated with the uplink of PF1”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KxhjÎubhÞ)�”}”(hŒ×Note: Future devices, ConnectX-8 and onward, will eventually have this as the default to allow forwarding between all NIC ports in a single E-switch environment and the dual E-switch mode will likely get deprecated.”h]”hŒ×Note: Future devices, ConnectX-8 and onward, will eventually have this as the default to allow forwarding between all NIC ports in a single E-switch environment and the dual E-switch mode will likely get deprecated.”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K{hjÎubhÞ)�”}”(hŒDefault: disabled”h]”hŒDefault: disabled”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K€hjÎubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``esw_port_metadata``”h]”hè)�”}”(hj+h]”hŒesw_port_metadata”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj#ubj\)�”}”(hhh]”hÞ)�”}”(hŒBoolean”h]”hŒBoolean”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‚hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj#ubj\)�”}”(hhh]”hÞ)�”}”(hŒruntime”h]”hŒruntime”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kƒhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj#ubj\)�”}”(hhh]”(hÞ)�”}”(hŒzWhen applicable, disabling eswitch metadata can increase packet rate up to 20% depending on the use case and packet sizes.”h]”hŒzWhen applicable, disabling eswitch metadata can increase packet rate up to 20% depending on the use case and packet sizes.”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hjtubhÞ)�”}”(hXEswitch port metadata state controls whether to internally tag packets with metadata. Metadata tagging must be enabled for multi-port RoCE, failover between representors and stacked devices. By default metadata is enabled on the supported devices in E-switch. Metadata is applicable only for E-switch in switchdev mode and users may disable it when NONE of the below use cases will be in use: 1. HCA is in Dual/multi-port RoCE mode. 2. VF/SF representor bonding (Usually used for Live migration) 3. Stacked devices”h]”hXEswitch port metadata state controls whether to internally tag packets with metadata. Metadata tagging must be enabled for multi-port RoCE, failover between representors and stacked devices. By default metadata is enabled on the supported devices in E-switch. Metadata is applicable only for E-switch in switchdev mode and users may disable it when NONE of the below use cases will be in use: 1. HCA is in Dual/multi-port RoCE mode. 2. VF/SF representor bonding (Usually used for Live migration) 3. Stacked devices”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‡hjtubhÞ)�”}”(hŒcWhen metadata is disabled, the above use cases will fail to initialize if users try to enable them.”h]”hŒcWhen metadata is disabled, the above use cases will fail to initialize if users try to enable them.”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‘hjtubhÞ)�”}”(hŒ§Note: Setting this parameter does not take effect immediately. Setting must happen in legacy mode and eswitch port metadata takes effect after enabling switchdev mode.”h]”hŒ§Note: Setting this parameter does not take effect immediately. Setting must happen in legacy mode and eswitch port metadata takes effect after enabling switchdev mode.”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K”hjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``hairpin_num_queues``”h]”hè)�”}”(hjÃh]”hŒhairpin_num_queues”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K—hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj»ubj\)�”}”(hhh]”hÞ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K˜hjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj»ubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K™hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj»ubj\)�”}”(hhh]”(hÞ)�”}”(hŒ¢We refer to a TC NIC rule that involves forwarding as "hairpin". Hairpin queues are mlx5 hardware specific implementation for hardware forwarding of such packets.”h]”hŒ¦We refer to a TC NIC rule that involves forwarding as “hairpinâ€�. Hairpin queues are mlx5 hardware specific implementation for hardware forwarding of such packets.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kšhj ubhÞ)�”}”(hŒ%Control the number of hairpin queues.”h]”hŒ%Control the number of hairpin queues.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kžhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hj»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``hairpin_queue_size``”h]”hè)�”}”(hj? h]”hŒhairpin_queue_size”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj= ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŸhj: ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj7 ubj\)�”}”(hhh]”hÞ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hjZ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj7 ubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¡hjq ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj7 ubj\)�”}”(hhh]”hÞ)�”}”(hŒ4Control the size (in packets) of the hairpin queues.”h]”hŒ4Control the size (in packets) of the hairpin queues.”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¢hjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj7 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``pcie_cong_inbound_high``”h]”hè)�”}”(hj­ h]”hŒpcie_cong_inbound_high”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj« ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K£hj¨ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¥ ubj\)�”}”(hhh]”hÞ)�”}”(hŒu16”h]”hŒu16”…”�”}”(hjË h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¤hjÈ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¥ ubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¥hjß ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¥ ubj\)�”}”(hhh]”(hÞ)�”}”(hŒÒHigh threshold configuration for PCIe congestion events. The firmware will send an event once device side inbound PCIe traffic went above the configured high threshold for a long enough period (at least 200ms).”h]”hŒÒHigh threshold configuration for PCIe congestion events. The firmware will send an event once device side inbound PCIe traffic went above the configured high threshold for a long enough period (at least 200ms).”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¦hjö ubhÞ)�”}”(hŒ%See pci_bw_inbound_high ethtool stat.”h]”hŒ%See pci_bw_inbound_high ethtool stat.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K«hjö ubhÞ)�”}”(hŒ”Units are 0.01 %. Accepted values are in range [0, 10000]. pcie_cong_inbound_low < pcie_cong_inbound_high. Default value: 9000 (Corresponds to 90%).”h]”hŒ”Units are 0.01 %. Accepted values are in range [0, 10000]. pcie_cong_inbound_low < pcie_cong_inbound_high. Default value: 9000 (Corresponds to 90%).”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K­hjö ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¥ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``pcie_cong_inbound_low``”h]”hè)�”}”(hj7 h]”hŒpcie_cong_inbound_low”…”�”}”(hj9 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj5 ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K°hj2 ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj/ ubj\)�”}”(hhh]”hÞ)�”}”(hŒu16”h]”hŒu16”…”�”}”(hjU h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K±hjR ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj/ ubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hjl h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K²hji ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj/ ubj\)�”}”(hhh]”(hÞ)�”}”(hŒÞLow threshold configuration for PCIe congestion events. The firmware will send an event once device side inbound PCIe traffic went below the configured low threshold, only after having been previously in a congested state.”h]”hŒÞLow threshold configuration for PCIe congestion events. The firmware will send an event once device side inbound PCIe traffic went below the configured low threshold, only after having been previously in a congested state.”…”�”}”(hjƒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K³hj€ ubhÞ)�”}”(hŒ$See pci_bw_inbound_low ethtool stat.”h]”hŒ$See pci_bw_inbound_low ethtool stat.”…”�”}”(hj‘ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¸hj€ ubhÞ)�”}”(hŒUnits are 0.01 %. Accepted values are in range [0, 10000]. pcie_cong_inbound_low < pcie_cong_inbound_high. Default value: 7500.”h]”hŒUnits are 0.01 %. Accepted values are in range [0, 10000]. pcie_cong_inbound_low < pcie_cong_inbound_high. Default value: 7500.”…”�”}”(hjŸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kºhj€ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hj/ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``pcie_cong_outbound_high``”h]”hè)�”}”(hjÁ h]”hŒpcie_cong_outbound_high”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¿ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K½hj¼ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¹ ubj\)�”}”(hhh]”hÞ)�”}”(hŒu16”h]”hŒu16”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¾hjÜ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¹ ubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¿hjó ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¹ ubj\)�”}”(hhh]”(hÞ)�”}”(hŒÓHigh threshold configuration for PCIe congestion events. The firmware will send an event once device side outbound PCIe traffic went above the configured high threshold for a long enough period (at least 200ms).”h]”hŒÓHigh threshold configuration for PCIe congestion events. The firmware will send an event once device side outbound PCIe traffic went above the configured high threshold for a long enough period (at least 200ms).”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÀhj ubhÞ)�”}”(hŒ&See pci_bw_outbound_high ethtool stat.”h]”hŒ&See pci_bw_outbound_high ethtool stat.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÅhj ubhÞ)�”}”(hŒ–Units are 0.01 %. Accepted values are in range [0, 10000]. pcie_cong_outbound_low < pcie_cong_outbound_high. Default value: 9000 (Corresponds to 90%).”h]”hŒ–Units are 0.01 %. Accepted values are in range [0, 10000]. pcie_cong_outbound_low < pcie_cong_outbound_high. Default value: 9000 (Corresponds to 90%).”…”�”}”(hj) h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÇhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hj¹ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``pcie_cong_outbound_low``”h]”hè)�”}”(hjK h]”hŒpcie_cong_outbound_low”…”�”}”(hjM h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjI ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÊhjF ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjC ubj\)�”}”(hhh]”hÞ)�”}”(hŒu16”h]”hŒu16”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KËhjf ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjC ubj\)�”}”(hhh]”hÞ)�”}”(hŒ driverinit”h]”hŒ driverinit”…”�”}”(hj€ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÌhj} ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjC ubj\)�”}”(hhh]”(hÞ)�”}”(hŒßLow threshold configuration for PCIe congestion events. The firmware will send an event once device side outbound PCIe traffic went below the configured low threshold, only after having been previously in a congested state.”h]”hŒßLow threshold configuration for PCIe congestion events. The firmware will send an event once device side outbound PCIe traffic went below the configured low threshold, only after having been previously in a congested state.”…”�”}”(hj— h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÍhj” ubhÞ)�”}”(hŒ%See pci_bw_outbound_low ethtool stat.”h]”hŒ%See pci_bw_outbound_low ethtool stat.”…”�”}”(hj¥ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÒhj” ubhÞ)�”}”(hŒ�Units are 0.01 %. Accepted values are in range [0, 10000]. pcie_cong_outbound_low < pcie_cong_outbound_high. Default value: 7500.”h]”hŒ�Units are 0.01 %. Accepted values are in range [0, 10000]. pcie_cong_outbound_low < pcie_cong_outbound_high. Default value: 7500.”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÔhj” ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hjC ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``cqe_compress_type``”h]”hè)�”}”(hjÕ h]”hŒcqe_compress_type”…”�”}”(hj× h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjÓ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KØhjÐ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjÍ ubj\)�”}”(hhh]”hÞ)�”}”(hŒstring”h]”hŒstring”…”�”}”(hjó h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÙhjð ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjÍ ubj\)�”}”(hhh]”hÞ)�”}”(hŒ permanent”h]”hŒ permanent”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÚhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjÍ ubj\)�”}”(hhh]”hÞ)�”}”(hX#Configure which mechanism/algorithm should be used by the NIC that will affect the rate (aggressiveness) of compressed CQEs depending on PCIe bus conditions and other internal NIC factors. This mode affects all queues that enable compression. * ``balanced`` : Merges fewer CQEs, resulting in a moderate compression ratio but maintaining a balance between bandwidth savings and performance * ``aggressive`` : Merges more CQEs into a single entry, achieving a higher compression rate and maximizing performance, particularly under high traffic loads”h]”(hŒõConfigure which mechanism/algorithm should be used by the NIC that will affect the rate (aggressiveness) of compressed CQEs depending on PCIe bus conditions and other internal NIC factors. This mode affects all queues that enable compression. * ”…”�”}”(hj! h²hh³Nh´Nubhè)�”}”(hŒ ``balanced``”h]”hŒbalanced”…”�”}”(hj) h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj! ubhŒ† : Merges fewer CQEs, resulting in a moderate compression ratio but maintaining a balance between bandwidth savings and performance * ”…”�”}”(hj! h²hh³Nh´Nubhè)�”}”(hŒ``aggressive``”h]”hŒ aggressive”…”�”}”(hj; h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj! ubhŒŽ : Merges more CQEs into a single entry, achieving a higher compression rate and maximizing performance, particularly under high traffic loads”…”�”}”(hj! h²hh³Nh´Nubeh}”(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&]”uh1jVhjŠubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``swp_l4_csum_mode``”h]”hè)�”}”(hjg h]”hŒswp_l4_csum_mode”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhje ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kâhjb ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj_ ubj\)�”}”(hhh]”hÞ)�”}”(hŒstring”h]”hŒstring”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kãhj‚ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj_ ubj\)�”}”(hhh]”hÞ)�”}”(hŒ permanent”h]”hŒ permanent”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kähj™ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj_ ubj\)�”}”(hhh]”(hÞ)�”}”(hŒvConfigure how the L4 checksum is calculated by the device when using Software Parser (SWP) hints for header locations.”h]”hŒvConfigure how the L4 checksum is calculated by the device when using Software Parser (SWP) hints for header locations.”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kåhj° ubjU)�”}”(hhh]”(jZ)�”}”(hX``default`` : Use the device's default checksum calculation mode. The driver will discover during init whether or full_csum or l4_only is in use. Setting this value explicitly from userspace is not allowed, but some firmware versions may return this value on param read.”h]”hÞ)�”}”(hX``default`` : Use the device's default checksum calculation mode. The driver will discover during init whether or full_csum or l4_only is in use. Setting this value explicitly from userspace is not allowed, but some firmware versions may return this value on param read.”h]”(hè)�”}”(hŒ ``default``”h]”hŒdefault”…”�”}”(hjÌ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjÈ ubhX : Use the device’s default checksum calculation mode. The driver will discover during init whether or full_csum or l4_only is in use. Setting this value explicitly from userspace is not allowed, but some firmware versions may return this value on param read.”…”�”}”(hjÈ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KèhjÄ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjÁ ubjZ)�”}”(hŒC``full_csum`` : Calculate full checksum including the pseudo-header”h]”hÞ)�”}”(hjì h]”(hè)�”}”(hŒ ``full_csum``”h]”hŒ full_csum”…”�”}”(hjñ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjî ubhŒ6 : Calculate full checksum including the pseudo-header”…”�”}”(hjî h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kíhjê ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjÁ ubjZ)�”}”(hŒE``l4_only`` : Calculate L4-only checksum, excluding the pseudo-header”h]”hÞ)�”}”(hj h]”(hè)�”}”(hŒ ``l4_only``”h]”hŒl4_only”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj ubhŒ: : Calculate L4-only checksum, excluding the pseudo-header”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kîhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjÁ ubeh}”(h]”h ]”h"]”h$]”h&]”jÓjÔuh1jTh³hÇh´Kèhj° ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hj_ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQhjcubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j%hjRubeh}”(h]”Œid2”ah ]”Œcolwidths-given”ah"]”h$]”h&]”uh1jhjh²hh³Nh´NubhÞ)�”}”(hŒAThe ``mlx5`` driver supports reloading via ``DEVLINK_CMD_RELOAD``”h]”(hŒThe ”…”�”}”(hj[ h²hh³Nh´Nubhè)�”}”(hŒ``mlx5``”h]”hŒmlx5”…”�”}”(hjc h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj[ ubhŒ driver supports reloading via ”…”�”}”(hj[ h²hh³Nh´Nubhè)�”}”(hŒ``DEVLINK_CMD_RELOAD``”h]”hŒDEVLINK_CMD_RELOAD”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj[ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kðhjh²hubeh}”(h]”Œ parameters”ah ]”h"]”Œ parameters”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Info versions”h]”hŒ Info versions”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj‘ h²hh³hÇh´KóubhÞ)�”}”(hŒ2The ``mlx5`` driver reports the following versions”h]”(hŒThe ”…”�”}”(hj¢ h²hh³Nh´Nubhè)�”}”(hŒ``mlx5``”h]”hŒmlx5”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhj¢ ubhŒ& driver reports the following versions”…”�”}”(hj¢ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kõhj‘ h²hubj)�”}”(hhh]”(hÎ)�”}”(hŒ!devlink info versions implemented”h]”hŒ!devlink info versions implemented”…”�”}”(hjÅ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍh³hÇh´K÷hj ubj&)�”}”(hhh]”(j+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”j5Kuh1j*hjÓ ubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”j5Kuh1j*hjÓ ubj+)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”j5KZuh1j*hjÓ ubjR)�”}”(hhh]”(jW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒName”h]”hŒName”…”�”}”(hjú h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kúhj÷ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjô ubj\)�”}”(hhh]”hÞ)�”}”(hŒType”h]”hŒType”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kûhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjô ubj\)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(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&]”uh1jVhjñ ubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ ``fw.psid``”h]”hè)�”}”(hjJh]”hŒfw.psid”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjHubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KýhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjBubj\)�”}”(hhh]”hÞ)�”}”(hŒfixed”h]”hŒfixed”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kþhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjBubj\)�”}”(hhh]”hÞ)�”}”(hŒ-Used to represent the board id of the device.”h]”hŒ-Used to represent the board id of the device.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kÿhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjñ ubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÞ)�”}”(hŒ``fw.version``”h]”hè)�”}”(hj¡h]”hŒ fw.version”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj™ubj\)�”}”(hhh]”hÞ)�”}”(hŒstored, running”h]”hŒstored, running”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj™ubj\)�”}”(hhh]”hÞ)�”}”(hŒ9Three digit major.minor.subminor firmware version number.”h]”hŒ9Three digit major.minor.subminor firmware version number.”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjñ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQhjÓ ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j%hj ubeh}”(h]”Œid3”ah ]”jW ah"]”h$]”h&]”uh1jhj‘ h²hh³Nh´Nubeh}”(h]”Œ info-versions”ah ]”h"]”Œ info versions”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KóubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒHealth reporters”h]”hŒHealth reporters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj h²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ tx reporter”h]”hŒ tx reporter”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´MubhÞ)�”}”(hŒcThe tx reporter is responsible for reporting and recovering of the following three error scenarios:”h]”hŒcThe tx reporter is responsible for reporting and recovering of the following three error scenarios:”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hjh²hubjU)�”}”(hhh]”(jZ)�”}”(hŒ[tx timeout Report on kernel tx timeout detection. Recover by searching lost interrupts.”h]”j¬)�”}”(hhh]”j±)�”}”(hŒWtx timeout Report on kernel tx timeout detection. Recover by searching lost interrupts.”h]”(j·)�”}”(hŒ tx timeout”h]”hŒ tx timeout”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´M hjFubjù)�”}”(hhh]”hÞ)�”}”(hŒLReport on kernel tx timeout detection. Recover by searching lost interrupts.”h]”hŒLReport on kernel tx timeout detection. Recover by searching lost interrupts.”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhj<h²hh³Nh´NubjZ)�”}”(hŒetx error completion Report on error tx completion. Recover by flushing the tx queue and reset it.”h]”j¬)�”}”(hhh]”j±)�”}”(hŒatx error completion Report on error tx completion. Recover by flushing the tx queue and reset it.”h]”(j·)�”}”(hŒtx error completion”h]”hŒtx error completion”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´Mhjˆubjù)�”}”(hhh]”hÞ)�”}”(hŒMReport on error tx completion. Recover by flushing the tx queue and reset it.”h]”hŒMReport on error tx completion. Recover by flushing the tx queue and reset it.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´Mhj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhj<h²hh³Nh´NubjZ)�”}”(hŒ”tx PTP port timestamping CQ unhealthy Report too many CQEs never delivered on port ts CQ. Recover by flushing and re-creating all PTP channels. ”h]”j¬)�”}”(hhh]”j±)�”}”(hŒ�tx PTP port timestamping CQ unhealthy Report too many CQEs never delivered on port ts CQ. Recover by flushing and re-creating all PTP channels. ”h]”(j·)�”}”(hŒ%tx PTP port timestamping CQ unhealthy”h]”hŒ%tx PTP port timestamping CQ unhealthy”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´MhjÊubjù)�”}”(hhh]”hÞ)�”}”(hŒiReport too many CQEs never delivered on port ts CQ. Recover by flushing and re-creating all PTP channels.”h]”hŒiReport too many CQEs never delivered on port ts CQ. Recover by flushing and re-creating all PTP channels.”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´MhjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhj<h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÓŒ-”uh1jTh³hÇh´M hjh²hubhÞ)�”}”(hŒ{tx reporter also support on demand diagnose callback, on which it provides real time information of its send queues status.”h]”hŒ{tx reporter also support on demand diagnose callback, on which it provides real time information of its send queues status.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjh²hubhÞ)�”}”(hŒUser commands examples:”h]”hŒUser commands examples:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjh²hubjU)�”}”(hhh]”jZ)�”}”(hŒXDiagnose send queues status:: $ devlink health diagnose pci/0000:82:00.0 reporter tx ”h]”(hÞ)�”}”(hŒDiagnose send queues status::”h]”hŒDiagnose send queues status:”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj+ubj)�”}”(hŒ6$ devlink health diagnose pci/0000:82:00.0 reporter tx”h]”hŒ6$ devlink health diagnose pci/0000:82:00.0 reporter tx”…”�”}”hj=sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´Mhj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhj(h²hh³hÇh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÓj uh1jTh³hÇh´Mhjh²hubhŒnote”“”)�”}”(hŒ`This command has valid output only when interface is up, otherwise the command has empty output.”h]”hÞ)�”}”(hj[h]”hŒ`This command has valid output only when interface is up, otherwise the command has empty output.”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjh²hh³hÇh´NubjU)�”}”(hhh]”jZ)�”}”(hŒÅShow number of tx errors indicated, number of recover flows ended successfully, is autorecover enabled and graceful period from last recover:: $ devlink health show pci/0000:82:00.0 reporter tx ”h]”(hÞ)�”}”(hŒŽShow number of tx errors indicated, number of recover flows ended successfully, is autorecover enabled and graceful period from last recover::”h]”hŒ�Show number of tx errors indicated, number of recover flows ended successfully, is autorecover enabled and graceful period from last recover:”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M!hjsubj)�”}”(hŒ2$ devlink health show pci/0000:82:00.0 reporter tx”h]”hŒ2$ devlink health show pci/0000:82:00.0 reporter tx”…”�”}”hj…sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´M$hjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhjph²hh³hÇh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÓj uh1jTh³hÇh´M!hjh²hubeh}”(h]”Œ tx-reporter”ah ]”h"]”Œ tx reporter”ah$]”h&]”uh1hÈhj h²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ rx reporter”h]”hŒ rx reporter”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj§h²hh³hÇh´M'ubhÞ)�”}”(hŒaThe rx reporter is responsible for reporting and recovering of the following two error scenarios:”h]”hŒaThe rx reporter is responsible for reporting and recovering of the following two error scenarios:”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M(hj§h²hubjU)�”}”(hhh]”(jZ)�”}”(hX;rx queues' initialization (population) timeout Population of rx queues' descriptors on ring initialization is done in napi context via triggering an irq. In case of a failure to get the minimum amount of descriptors, a timeout would occur, and descriptors could be recovered by polling the EQ (Event Queue).”h]”j¬)�”}”(hhh]”j±)�”}”(hX3rx queues' initialization (population) timeout Population of rx queues' descriptors on ring initialization is done in napi context via triggering an irq. In case of a failure to get the minimum amount of descriptors, a timeout would occur, and descriptors could be recovered by polling the EQ (Event Queue).”h]”(j·)�”}”(hŒ.rx queues' initialization (population) timeout”h]”hŒ0rx queues’ initialization (population) timeout”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´M-hjÐubjù)�”}”(hhh]”hÞ)�”}”(hXPopulation of rx queues' descriptors on ring initialization is done in napi context via triggering an irq. In case of a failure to get the minimum amount of descriptors, a timeout would occur, and descriptors could be recovered by polling the EQ (Event Queue).”h]”hXPopulation of rx queues’ descriptors on ring initialization is done in napi context via triggering an irq. In case of a failure to get the minimum amount of descriptors, a timeout would occur, and descriptors could be recovered by polling the EQ (Event Queue).”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M+hjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M-hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjÆh²hh³Nh´NubjZ)�”}”(hŒ¤rx completions with errors (reported by HW on interrupt context) Report on rx completion error. Recover (if needed) by flushing the related queue and reset it. ”h]”j¬)�”}”(hhh]”j±)�”}”(hŒ rx completions with errors (reported by HW on interrupt context) Report on rx completion error. Recover (if needed) by flushing the related queue and reset it. ”h]”(j·)�”}”(hŒ@rx completions with errors (reported by HW on interrupt context)”h]”hŒ@rx completions with errors (reported by HW on interrupt context)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´M1hjubjù)�”}”(hhh]”hÞ)�”}”(hŒ^Report on rx completion error. Recover (if needed) by flushing the related queue and reset it.”h]”hŒ^Report on rx completion error. Recover (if needed) by flushing the related queue and reset it.”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M0hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M1hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjÆh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÓj uh1jTh³hÇh´M*hj§h²hubhÞ)�”}”(hŒ€rx reporter also supports on demand diagnose callback, on which it provides real time information of its receive queues' status.”h]”hŒ‚rx reporter also supports on demand diagnose callback, on which it provides real time information of its receive queues’ status.”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M3hj§h²hubjU)�”}”(hhh]”jZ)�”}”(hŒzDiagnose rx queues' status and corresponding completion queue:: $ devlink health diagnose pci/0000:82:00.0 reporter rx ”h]”(hÞ)�”}”(hŒ?Diagnose rx queues' status and corresponding completion queue::”h]”hŒ@Diagnose rx queues’ status and corresponding completion queue:”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M6hjdubj)�”}”(hŒ6$ devlink health diagnose pci/0000:82:00.0 reporter rx”h]”hŒ6$ devlink health diagnose pci/0000:82:00.0 reporter rx”…”�”}”hjvsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´M8hjdubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhjah²hh³hÇh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÓj uh1jTh³hÇh´M6hj§h²hubjX)�”}”(hŒaThis command has valid output only when interface is up. Otherwise, the command has empty output.”h]”hÞ)�”}”(hj’h]”hŒaThis command has valid output only when interface is up. Otherwise, the command has empty output.”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M;hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj§h²hh³hÇh´NubjU)�”}”(hhh]”jZ)�”}”(hŒÆShow number of rx errors indicated, number of recover flows ended successfully, is autorecover enabled, and graceful period from last recover:: $ devlink health show pci/0000:82:00.0 reporter rx ”h]”(hÞ)�”}”(hŒ�Show number of rx errors indicated, number of recover flows ended successfully, is autorecover enabled, and graceful period from last recover::”h]”hŒŽShow number of rx errors indicated, number of recover flows ended successfully, is autorecover enabled, and graceful period from last recover:”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M=hjªubj)�”}”(hŒ2$ devlink health show pci/0000:82:00.0 reporter rx”h]”hŒ2$ devlink health show pci/0000:82:00.0 reporter rx”…”�”}”hj¼sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´M@hjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhj§h²hh³hÇh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÓj uh1jTh³hÇh´M=hj§h²hubeh}”(h]”Œ rx-reporter”ah ]”h"]”Œ rx reporter”ah$]”h&]”uh1hÈhj h²hh³hÇh´M'ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ fw reporter”h]”hŒ fw reporter”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÞh²hh³hÇh´MCubhÞ)�”}”(hXThe fw reporter implements `diagnose` and `dump` callbacks. It follows symptoms of fw error such as fw syndrome by triggering fw core dump and storing it into the dump buffer. The fw reporter diagnose command can be triggered any time by the user to check current fw status.”h]”(hŒThe fw reporter implements ”…”�”}”(hjïh²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ `diagnose`”h]”hŒdiagnose”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j÷hjïubhŒ and ”…”�”}”(hjïh²hh³Nh´Nubjø)�”}”(hŒ`dump`”h]”hŒdump”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j÷hjïubhŒâ callbacks. It follows symptoms of fw error such as fw syndrome by triggering fw core dump and storing it into the dump buffer. The fw reporter diagnose command can be triggered any time by the user to check current fw status.”…”�”}”(hjïh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MDhjÞh²hubhÞ)�”}”(hŒUser commands examples:”h]”hŒUser commands examples:”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MJhjÞh²hubjU)�”}”(hhh]”(jZ)�”}”(hŒRCheck fw heath status:: $ devlink health diagnose pci/0000:82:00.0 reporter fw ”h]”(hÞ)�”}”(hŒCheck fw heath status::”h]”hŒCheck fw heath status:”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MLhj4ubj)�”}”(hŒ6$ devlink health diagnose pci/0000:82:00.0 reporter fw”h]”hŒ6$ devlink health diagnose pci/0000:82:00.0 reporter fw”…”�”}”hjFsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´MNhj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhj1h²hh³hÇh´NubjZ)�”}”(hŒtRead FW core dump if already stored or trigger new one:: $ devlink health dump show pci/0000:82:00.0 reporter fw ”h]”(hÞ)�”}”(hŒ8Read FW core dump if already stored or trigger new one::”h]”hŒ7Read FW core dump if already stored or trigger new one:”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MPhjZubj)�”}”(hŒ7$ devlink health dump show pci/0000:82:00.0 reporter fw”h]”hŒ7$ devlink health dump show pci/0000:82:00.0 reporter fw”…”�”}”hjlsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´MRhjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhj1h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÓj uh1jTh³hÇh´MLhjÞh²hubjX)�”}”(hŒŠThis command can run only on the PF which has fw tracer ownership, running it on other PF or any VF will return "Operation not permitted".”h]”hÞ)�”}”(hŒŠThis command can run only on the PF which has fw tracer ownership, running it on other PF or any VF will return "Operation not permitted".”h]”hŒŽThis command can run only on the PF which has fw tracer ownership, running it on other PF or any VF will return “Operation not permittedâ€�.”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MUhj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÞh²hh³hÇh´Nubeh}”(h]”Œ fw-reporter”ah ]”h"]”Œ fw reporter”ah$]”h&]”uh1hÈhj h²hh³hÇh´MCubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒfw fatal reporter”h]”hŒfw fatal reporter”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¦h²hh³hÇh´MYubhÞ)�”}”(hXThe fw fatal reporter implements `dump` and `recover` callbacks. It follows fatal errors indications by CR-space dump and recover flow. The CR-space dump uses vsc interface which is valid even if the FW command interface is not functional, which is the case in most FW fatal errors. The recover function runs recover flow which reloads the driver and triggers fw reset if needed. On firmware error, the health buffer is dumped into the dmesg. The log level is derived from the error's severity (given in health buffer).”h]”(hŒ!The fw fatal reporter implements ”…”�”}”(hj·h²hh³Nh´Nubjø)�”}”(hŒ`dump`”h]”hŒdump”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j÷hj·ubhŒ and ”…”�”}”(hj·h²hh³Nh´Nubjø)�”}”(hŒ `recover`”h]”hŒrecover”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j÷hj·ubhXÔ callbacks. It follows fatal errors indications by CR-space dump and recover flow. The CR-space dump uses vsc interface which is valid even if the FW command interface is not functional, which is the case in most FW fatal errors. The recover function runs recover flow which reloads the driver and triggers fw reset if needed. On firmware error, the health buffer is dumped into the dmesg. The log level is derived from the error’s severity (given in health buffer).”…”�”}”(hj·h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MZhj¦h²hubhÞ)�”}”(hŒUser commands examples:”h]”hŒUser commands examples:”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mchj¦h²hubjU)�”}”(hhh]”(jZ)�”}”(hŒ^Run fw recover flow manually:: $ devlink health recover pci/0000:82:00.0 reporter fw_fatal ”h]”(hÞ)�”}”(hŒRun fw recover flow manually::”h]”hŒRun fw recover flow manually:”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mehjúubj)�”}”(hŒ;$ devlink health recover pci/0000:82:00.0 reporter fw_fatal”h]”hŒ;$ devlink health recover pci/0000:82:00.0 reporter fw_fatal”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´Mghjúubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhj÷h²hh³hÇh´NubjZ)�”}”(hŒ~Read FW CR-space dump if already stored or trigger new one:: $ devlink health dump show pci/0000:82:00.1 reporter fw_fatal ”h]”(hÞ)�”}”(hŒnumber of times an EQ mapped to completion events was overrun.”h]”hŒ>number of times an EQ mapped to completion events was overrun.”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‚hjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M‚hj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjµubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjªh²hh³Nh´NubjZ)�”}”(hŒXquota_exceeded_command number of commands issued and failed due to quota exceeded.”h]”j¬)�”}”(hhh]”j±)�”}”(hŒRquota_exceeded_command number of commands issued and failed due to quota exceeded.”h]”(j·)�”}”(hŒquota_exceeded_command”h]”hŒquota_exceeded_command”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´M„hjþubjù)�”}”(hhh]”hÞ)�”}”(hŒ;number of commands issued and failed due to quota exceeded.”h]”hŒ;number of commands issued and failed due to quota exceeded.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M…hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M„hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjªh²hh³Nh´NubjZ)�”}”(hŒninvalid_command number of commands issued and failed dues to any reason other than quota exceeded.”h]”j¬)�”}”(hhh]”j±)�”}”(hŒbinvalid_command number of commands issued and failed dues to any reason other than quota exceeded.”h]”(j·)�”}”(hŒinvalid_command”h]”hŒinvalid_command”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´M‡hj@ubjù)�”}”(hhh]”hÞ)�”}”(hŒRnumber of commands issued and failed dues to any reason other than quota exceeded.”h]”hŒRnumber of commands issued and failed dues to any reason other than quota exceeded.”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‡hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M‡hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjªh²hh³Nh´NubjZ)�”}”(hŒŽnic_receive_steering_discard number of packets that completed RX flow steering but were discarded due to a mismatch in flow table.”h]”j¬)�”}”(hhh]”j±)�”}”(hŒ‚nic_receive_steering_discard number of packets that completed RX flow steering but were discarded due to a mismatch in flow table.”h]”(j·)�”}”(hŒnic_receive_steering_discard”h]”hŒnic_receive_steering_discard”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´MŠhj‚ubjù)�”}”(hhh]”hÞ)�”}”(hŒenumber of packets that completed RX flow steering but were discarded due to a mismatch in flow table.”h]”hŒenumber of packets that completed RX flow steering but were discarded due to a mismatch in flow table.”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MŠhj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhj‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´MŠhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjªh²hh³Nh´NubjZ)�”}”(hŒ™generated_pkt_steering_fail number of packets generated by the VNIC experiencing unexpected steering failure (at any point in steering flow).”h]”j¬)�”}”(hhh]”j±)�”}”(hŒ�generated_pkt_steering_fail number of packets generated by the VNIC experiencing unexpected steering failure (at any point in steering flow).”h]”(j·)�”}”(hŒgenerated_pkt_steering_fail”h]”hŒgenerated_pkt_steering_fail”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´M�hjÄubjù)�”}”(hhh]”hÞ)�”}”(hŒqnumber of packets generated by the VNIC experiencing unexpected steering failure (at any point in steering flow).”h]”hŒqnumber of packets generated by the VNIC experiencing unexpected steering failure (at any point in steering flow).”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M�hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjªh²hh³Nh´NubjZ)�”}”(hŒÖhandled_pkt_steering_fail number of packets handled by the VNIC experiencing unexpected steering failure (at any point in steering flow owned by the VNIC, including the FDB for the eswitch owner).”h]”j¬)�”}”(hhh]”j±)�”}”(hŒÄhandled_pkt_steering_fail number of packets handled by the VNIC experiencing unexpected steering failure (at any point in steering flow owned by the VNIC, including the FDB for the eswitch owner).”h]”(j·)�”}”(hŒhandled_pkt_steering_fail”h]”hŒhandled_pkt_steering_fail”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´M‘hjubjù)�”}”(hhh]”hÞ)�”}”(hŒªnumber of packets handled by the VNIC experiencing unexpected steering failure (at any point in steering flow owned by the VNIC, including the FDB for the eswitch owner).”h]”hŒªnumber of packets handled by the VNIC experiencing unexpected steering failure (at any point in steering flow owned by the VNIC, including the FDB for the eswitch owner).”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M‘hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjªh²hh³Nh´NubjZ)�”}”(hŒîicm_consumption amount of Interconnect Host Memory (ICM) consumed by the vnic in granularity of 4KB. ICM is host memory allocated by SW upon HCA request and is used for storing data structures that control HCA operation.”h]”j¬)�”}”(hhh]”j±)�”}”(hŒÜicm_consumption amount of Interconnect Host Memory (ICM) consumed by the vnic in granularity of 4KB. ICM is host memory allocated by SW upon HCA request and is used for storing data structures that control HCA operation.”h]”(j·)�”}”(hŒicm_consumption”h]”hŒicm_consumption”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´M•hjHubjù)�”}”(hhh]”hÞ)�”}”(hŒÌamount of Interconnect Host Memory (ICM) consumed by the vnic in granularity of 4KB. ICM is host memory allocated by SW upon HCA request and is used for storing data structures that control HCA operation.”h]”hŒÌamount of Interconnect Host Memory (ICM) consumed by the vnic in granularity of 4KB. ICM is host memory allocated by SW upon HCA request and is used for storing data structures that control HCA operation.”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M”hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M•hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjªh²hh³Nh´NubjZ)�”}”(hŒZbar_uar_access number of WRITE or READ access operations to the UAR on the PCIe BAR.”h]”j¬)�”}”(hhh]”j±)�”}”(hŒTbar_uar_access number of WRITE or READ access operations to the UAR on the PCIe BAR.”h]”(j·)�”}”(hŒbar_uar_access”h]”hŒbar_uar_access”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´M—hjŠubjù)�”}”(hhh]”hÞ)�”}”(hŒEnumber of WRITE or READ access operations to the UAR on the PCIe BAR.”h]”hŒEnumber of WRITE or READ access operations to the UAR on the PCIe BAR.”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M˜hjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M—hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjªh²hh³Nh´NubjZ)�”}”(hŒXodp_local_triggered_page_fault number of locally-triggered page-faults due to ODP.”h]”j¬)�”}”(hhh]”j±)�”}”(hŒRodp_local_triggered_page_fault number of locally-triggered page-faults due to ODP.”h]”(j·)�”}”(hŒodp_local_triggered_page_fault”h]”hŒodp_local_triggered_page_fault”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´M™hjÌubjù)�”}”(hhh]”hÞ)�”}”(hŒ3number of locally-triggered page-faults due to ODP.”h]”hŒ3number of locally-triggered page-faults due to ODP.”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MšhjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´M™hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjªh²hh³Nh´NubjZ)�”}”(hŒZodp_remote_triggered_page_fault number of remotly-triggered page-faults due to ODP. ”h]”j¬)�”}”(hhh]”j±)�”}”(hŒTodp_remote_triggered_page_fault number of remotly-triggered page-faults due to ODP. ”h]”(j·)�”}”(hŒodp_remote_triggered_page_fault”h]”hŒodp_remote_triggered_page_fault”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´Mœhjubjù)�”}”(hhh]”hÞ)�”}”(hŒ3number of remotly-triggered page-faults due to ODP.”h]”hŒ3number of remotly-triggered page-faults due to ODP.”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mœhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jøhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´Mœhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjªh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÓj uh1jTh³hÇh´Mxhjkh²hubhÞ)�”}”(hŒUser commands examples:”h]”hŒUser commands examples:”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mžhjkh²hubjU)�”}”(hhh]”(jZ)�”}”(hŒ_Diagnose PF/VF vnic counters:: $ devlink health diagnose pci/0000:82:00.1 reporter vnic ”h]”(hÞ)�”}”(hŒDiagnose PF/VF vnic counters::”h]”hŒDiagnose PF/VF vnic counters:”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hj`ubj)�”}”(hŒ8$ devlink health diagnose pci/0000:82:00.1 reporter vnic”h]”hŒ8$ devlink health diagnose pci/0000:82:00.1 reporter vnic”…”�”}”hjrsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´M¢hj`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhj]h²hh³hÇh´NubjZ)�”}”(hŒÔDiagnose representor vnic counters (performed by supplying devlink port of the representor, which can be obtained via devlink port command):: $ devlink health diagnose pci/0000:82:00.1/65537 reporter vnic ”h]”(hÞ)�”}”(hŒ�Diagnose representor vnic counters (performed by supplying devlink port of the representor, which can be obtained via devlink port command)::”h]”hŒŒDiagnose representor vnic counters (performed by supplying devlink port of the representor, which can be obtained via devlink port command):”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¤hj†ubj)�”}”(hŒ>$ devlink health diagnose pci/0000:82:00.1/65537 reporter vnic”h]”hŒ>$ devlink health diagnose pci/0000:82:00.1/65537 reporter vnic”…”�”}”hj˜sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´M§hj†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhj]h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÓj uh1jTh³hÇh´M hjkh²hubjX)�”}”(hŒMThis command can run over all interfaces such as PF/VF and representor ports.”h]”hÞ)�”}”(hj´h]”hŒMThis command can run over all interfaces such as PF/VF and representor ports.”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mªhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjkh²hh³hÇh´Nubeh}”(h]”Œ vnic-reporter”ah ]”h"]”Œ vnic reporter”ah$]”h&]”uh1hÈhj h²hh³hÇh´Mqubeh}”(h]”Œhealth-reporters”ah ]”h"]”Œhealth reporters”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒRates”h]”hŒRates”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÙh²hh³hÇh´M­ubhÞ)�”}”(hŒtmlx5 devices can limit transmission of individual VFs or a group of them via the devlink-rate API in switchdev mode.”h]”hŒtmlx5 devices can limit transmission of individual VFs or a group of them via the devlink-rate API in switchdev mode.”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¯hjÙh²hubhÞ)�”}”(hŒUser commands examples:”h]”hŒUser commands examples:”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M²hjÙh²hubjU)�”}”(hhh]”(jZ)�”}”(hŒ@Print the existing rates:: $ devlink port function rate show ”h]”(hÞ)�”}”(hŒPrint the existing rates::”h]”hŒPrint the existing rates:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M´hj ubj)�”}”(hŒ!$ devlink port function rate show”h]”hŒ!$ devlink port function rate show”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´M¶hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhjh²hh³hÇh´NubjZ)�”}”(hŒnSet a max tx limit on traffic from VF0:: $ devlink port function rate set pci/0000:82:00.0/1 tx_max 10Gbit ”h]”(hÞ)�”}”(hŒ(Set a max tx limit on traffic from VF0::”h]”hŒ'Set a max tx limit on traffic from VF0:”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¸hj/ubj)�”}”(hŒA$ devlink port function rate set pci/0000:82:00.0/1 tx_max 10Gbit”h]”hŒA$ devlink port function rate set pci/0000:82:00.0/1 tx_max 10Gbit”…”�”}”hjAsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´Mºhj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhjh²hh³hÇh´NubjZ)�”}”(hXCreate a rate group with a max tx limit and add two VFs to it:: $ devlink port function rate add pci/0000:82:00.0/group1 tx_max 10Gbit $ devlink port function rate set pci/0000:82:00.0/1 parent group1 $ devlink port function rate set pci/0000:82:00.0/2 parent group1 ”h]”(hÞ)�”}”(hŒ?Create a rate group with a max tx limit and add two VFs to it::”h]”hŒ>Create a rate group with a max tx limit and add two VFs to it:”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¼hjUubj)�”}”(hŒÊ$ devlink port function rate add pci/0000:82:00.0/group1 tx_max 10Gbit $ devlink port function rate set pci/0000:82:00.0/1 parent group1 $ devlink port function rate set pci/0000:82:00.0/2 parent group1”h]”hŒÊ$ devlink port function rate add pci/0000:82:00.0/group1 tx_max 10Gbit $ devlink port function rate set pci/0000:82:00.0/1 parent group1 $ devlink port function rate set pci/0000:82:00.0/2 parent group1”…”�”}”hjgsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´M¾hjUubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhjh²hh³hÇh´NubjZ)�”}”(hX0Same scenario, with a min guarantee of 20% of the bandwidth for the first VF:: $ devlink port function rate add pci/0000:82:00.0/group1 tx_max 10Gbit $ devlink port function rate set pci/0000:82:00.0/1 parent group1 tx_share 2Gbit $ devlink port function rate set pci/0000:82:00.0/2 parent group1 ”h]”(hÞ)�”}”(hŒNSame scenario, with a min guarantee of 20% of the bandwidth for the first VF::”h]”hŒMSame scenario, with a min guarantee of 20% of the bandwidth for the first VF:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÂhj{ubj)�”}”(hŒÙ$ devlink port function rate add pci/0000:82:00.0/group1 tx_max 10Gbit $ devlink port function rate set pci/0000:82:00.0/1 parent group1 tx_share 2Gbit $ devlink port function rate set pci/0000:82:00.0/2 parent group1”h]”hŒÙ$ devlink port function rate add pci/0000:82:00.0/group1 tx_max 10Gbit $ devlink port function rate set pci/0000:82:00.0/1 parent group1 tx_share 2Gbit $ devlink port function rate set pci/0000:82:00.0/2 parent group1”…”�”}”hj�sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´MÄhj{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhjh²hh³hÇh´NubjZ)�”}”(hŒ¼Cross-device scheduling:: $ devlink port function rate add pci/0000:82:00.0/group1 tx_max 10Gbit $ devlink port function rate set pci/0000:82:00.1/32769 parent pci/0000:82:00.0/group1”h]”(hÞ)�”}”(hŒCross-device scheduling::”h]”hŒCross-device scheduling:”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÈhj¡ubj)�”}”(hŒ�$ devlink port function rate add pci/0000:82:00.0/group1 tx_max 10Gbit $ devlink port function rate set pci/0000:82:00.1/32769 parent pci/0000:82:00.0/group1”h]”hŒ�$ devlink port function rate add pci/0000:82:00.0/group1 tx_max 10Gbit $ devlink port function rate set pci/0000:82:00.1/32769 parent pci/0000:82:00.0/group1”…”�”}”hj³sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jh³hÇh´MÊhj¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jYhjh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÓj uh1jTh³hÇh´M´hjÙh²hubeh}”(h]”Œrates”ah ]”h"]”Œrates”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´M­ubeh}”(h]”Œmlx5-devlink-support”ah ]”h"]”Œmlx5 devlink support”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”j[Œ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 jjÖjÓj¤j¡jÛjØj£j jhjejÎjËjÒjÏuŒ nametypes”}”(jÚ‰jŽ ‰j ‰jÖ‰j¤‰jÛ‰j£‰jh‰jΉjÒ‰uh}”(j×hÊj‹ jjj‘ jÓj j¡jjØj§j jÞjej¦jËjkjÏjÙj¦jjU jRjÿj 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”“”}”j Ks…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.