sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget+/translations/zh_CN/networking/devlink/mlx5modnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/networking/devlink/mlx5modnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/networking/devlink/mlx5modnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/networking/devlink/mlx5modnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/networking/devlink/mlx5modnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/sp_SP/networking/devlink/mlx5modnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhE/var/lib/git/docbuild/linux/Documentation/networking/devlink/mlx5.rsthKubhsection)}(hhh](htitle)}(hmlx5 devlink supporth]hmlx5 devlink support}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hWThis document describes the devlink features implemented by the ``mlx5`` device driver.h](h@This document describes the devlink features implemented by the }(hhhhhNhNubhliteral)}(h``mlx5``h]hmlx5}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh device driver.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h Parametersh]h Parameters}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubhtable)}(hhh](h)}(hGeneric parameters implementedh]hGeneric parameters implemented}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubhtgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthK!uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]j!K!uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]j!K!uh1jhjubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(hNameh]hName}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj@ubah}(h]h ]h"]h$]h&]uh1j>hj;ubj?)}(hhh]h)}(hModeh]hMode}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjWubah}(h]h ]h"]h$]h&]uh1j>hj;ubj?)}(hhh]h)}(h Validationh]h Validation}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjnubah}(h]h ]h"]h$]h&]uh1j>hj;ubeh}(h]h ]h"]h$]h&]uh1j9hj6ubj:)}(hhh](j?)}(hhh]h)}(h``enable_roce``h]h)}(hjh]h enable_roce}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(h driverinith]h driverinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh](h)}(h Type: Booleanh]h Type: Boolean}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hIf 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]hIf 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1j>hjubeh}(h]h ]h"]h$]h&]uh1j9hj6ubj:)}(hhh](j?)}(hhh]h)}(h``io_eq_size``h]h)}(hjh]h io_eq_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(h driverinith]h driverinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(h!The range is between 64 and 4096.h]h!The range is between 64 and 4096.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj*ubah}(h]h ]h"]h$]h&]uh1j>hjubeh}(h]h ]h"]h$]h&]uh1j9hj6ubj:)}(hhh](j?)}(hhh]h)}(h``event_eq_size``h]h)}(hjOh]h event_eq_size}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMubah}(h]h ]h"]h$]h&]uh1hhhhKhjJubah}(h]h ]h"]h$]h&]uh1j>hjGubj?)}(hhh]h)}(h driverinith]h driverinit}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjjubah}(h]h ]h"]h$]h&]uh1j>hjGubj?)}(hhh]h)}(h!The range is between 64 and 4096.h]h!The range is between 64 and 4096.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j>hjGubeh}(h]h ]h"]h$]h&]uh1j9hj6ubj:)}(hhh](j?)}(hhh]h)}(h ``max_macs``h]h)}(hjh]hmax_macs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(h driverinith]h driverinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(hFThe range is between 1 and 2^31. Only power of 2 values are supported.h]hFThe range is between 1 and 2^31. Only power of 2 values are supported.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjubah}(h]h ]h"]h$]h&]uh1j>hjubeh}(h]h ]h"]h$]h&]uh1j9hj6ubeh}(h]h ]h"]h$]h&]uh1j4hjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h]id1ah ]h"]h$]h&]uh1hhhhhhNhNubh)}(hMThe ``mlx5`` driver also implements the following driver-specific parameters.h](hThe }(hj hhhNhNubh)}(h``mlx5``h]hmlx5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubhA driver also implements the following driver-specific parameters.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK$hhhhubh)}(hhh](h)}(h&Driver-specific parameters implementedh]h&Driver-specific parameters implemented}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hj)ubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]j!Kuh1jhj:ubj)}(hhh]h}(h]h ]h"]h$]h&]j!Kuh1jhj:ubj)}(hhh]h}(h]h ]h"]h$]h&]j!Kuh1jhj:ubj)}(hhh]h}(h]h ]h"]h$]h&]j!KUuh1jhj:ubj5)}(hhh](j:)}(hhh](j?)}(hhh]h)}(hNameh]hName}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjgubah}(h]h ]h"]h$]h&]uh1j>hjdubj?)}(hhh]h)}(hTypeh]hType}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hj~ubah}(h]h ]h"]h$]h&]uh1j>hjdubj?)}(hhh]h)}(hModeh]hMode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1j>hjdubj?)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1j>hjdubeh}(h]h ]h"]h$]h&]uh1j9hjaubj:)}(hhh](j?)}(hhh]h)}(h``flow_steering_mode``h]h)}(hjh]hflow_steering_mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(hstringh]hstring}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh](h)}(h-Controls the flow steering mode of the driverh]h-Controls the flow steering mode of the driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubh bullet_list)}(hhh](h list_item)}(hw``dmfs`` Device managed flow steering. In DMFS mode, the HW steering entities are created and managed through firmware.h]h)}(hw``dmfs`` Device managed flow steering. In DMFS mode, the HW steering entities are created and managed through firmware.h](h)}(h``dmfs``h]hdmfs}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ubho Device managed flow steering. In DMFS mode, the HW steering entities are created and managed through firmware.}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK3hj2ubah}(h]h ]h"]h$]h&]uh1j0hj-ubj1)}(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]hsmfs}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubh Software managed flow steering. In SMFS mode, the HW steering entities are created and manage through the driver without firmware intervention.}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK5hjXubah}(h]h ]h"]h$]h&]uh1j0hj-ubj1)}(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]hhmfs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh 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).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK8hj~ubah}(h]h ]h"]h$]h&]uh1j0hj-ubeh}(h]h ]h"]h$]h&]bullet*uh1j+hhhK3hjubh)}(hZSMFS mode is faster and provides better rule insertion rate compared to default DMFS mode.h]hZSMFS mode is faster and provides better rule insertion rate compared to default DMFS mode.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1j9hjaubj:)}(hhh](j?)}(hhh]h)}(h``fdb_large_groups``h]h)}(hjh]hfdb_large_groups}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhK>hjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(h driverinith]h driverinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjubj,)}(hhh]j1)}(h=The default value is 15, and the range is between 1 and 1024.h]h)}(hj-h]h=The default value is 15, and the range is between 1 and 1024.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChj+ubah}(h]h ]h"]h$]h&]uh1j0hj(ubah}(h]h ]h"]h$]h&]jjuh1j+hhhKChjubeh}(h]h ]h"]h$]h&]uh1j>hjubeh}(h]h ]h"]h$]h&]uh1j9hjaubj:)}(hhh](j?)}(hhh]h)}(h``esw_multiport``h]h)}(hj\h]h esw_multiport}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZubah}(h]h ]h"]h$]h&]uh1hhhhKDhjWubah}(h]h ]h"]h$]h&]uh1j>hjTubj?)}(hhh]h)}(hBooleanh]hBoolean}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhjwubah}(h]h ]h"]h$]h&]uh1j>hjTubj?)}(hhh]h)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhjubah}(h]h ]h"]h$]h&]uh1j>hjTubj?)}(hhh](h)}(h+Control MultiPort E-Switch shared fdb mode.h]h+Control MultiPort E-Switch shared fdb mode.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjubh)}(hzAn experimental mode where a single E-Switch is used and all the vports and physical ports on the NIC are connected to it.h]hzAn experimental mode where a single E-Switch is used and all the vports and physical ports on the NIC are connected to it.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjubh)}(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 PF1h]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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhjubh)}(hNote: 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]hNote: 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhjubh)}(hDefault: disabledh]hDefault: disabled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKThjubeh}(h]h ]h"]h$]h&]uh1j>hjTubeh}(h]h ]h"]h$]h&]uh1j9hjaubj:)}(hhh](j?)}(hhh]h)}(h``esw_port_metadata``h]h)}(hjh]hesw_port_metadata}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKUhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(hBooleanh]hBoolean}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(hruntimeh]hruntime}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhj4ubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh](h)}(hzWhen applicable, disabling eswitch metadata can increase packet rate up to 20% depending on the use case and packet sizes.h]hzWhen applicable, disabling eswitch metadata can increase packet rate up to 20% depending on the use case and packet sizes.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjKubh)}(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 devicesh]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\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjKubh)}(hcWhen metadata is disabled, the above use cases will fail to initialize if users try to enable them.h]hcWhen metadata is disabled, the above use cases will fail to initialize if users try to enable them.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehjKubh)}(hNote: 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]hNote: Setting this parameter does not take effect immediately. Setting must happen in legacy mode and eswitch port metadata takes effect after enabling switchdev mode.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjKubeh}(h]h ]h"]h$]h&]uh1j>hjubeh}(h]h ]h"]h$]h&]uh1j9hjaubj:)}(hhh](j?)}(hhh]h)}(h``hairpin_num_queues``h]h)}(hjh]hhairpin_num_queues}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKkhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(h driverinith]h driverinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh](h)}(hWe 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]hWe refer to a TC NIC rule that involves forwarding as “hairpin”. Hairpin queues are mlx5 hardware specific implementation for hardware forwarding of such packets.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjubh)}(h%Control the number of hairpin queues.h]h%Control the number of hairpin queues.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjubeh}(h]h ]h"]h$]h&]uh1j>hjubeh}(h]h ]h"]h$]h&]uh1j9hjaubj:)}(hhh](j?)}(hhh]h)}(h``hairpin_queue_size``h]h)}(hjh]hhairpin_queue_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKshjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(hu32h]hu32}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthj1ubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(h driverinith]h driverinit}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjHubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(h4Control the size (in packets) of the hairpin queues.h]h4Control the size (in packets) of the hairpin queues.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhj_ubah}(h]h ]h"]h$]h&]uh1j>hjubeh}(h]h ]h"]h$]h&]uh1j9hjaubeh}(h]h ]h"]h$]h&]uh1j4hj:ubeh}(h]h ]h"]h$]h&]colsKuh1jhj)ubeh}(h]id2ah ]colwidths-givenah"]h$]h&]uh1hhhhhhNhNubh)}(hAThe ``mlx5`` driver supports reloading via ``DEVLINK_CMD_RELOAD``h](hThe }(hjhhhNhNubh)}(h``mlx5``h]hmlx5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh driver supports reloading via }(hjhhhNhNubh)}(h``DEVLINK_CMD_RELOAD``h]hDEVLINK_CMD_RELOAD}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhhhKxhhhhubeh}(h] parametersah ]h"] parametersah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h Info versionsh]h Info versions}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK{ubh)}(h2The ``mlx5`` driver reports the following versionsh](hThe }(hjhhhNhNubh)}(h``mlx5``h]hmlx5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh& driver reports the following versions}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK}hjhhubh)}(hhh](h)}(h!devlink info versions implementedh]h!devlink info versions implemented}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]j!Kuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]j!Kuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]j!KZuh1jhj ubj5)}(hhh](j:)}(hhh](j?)}(hhh]h)}(hNameh]hName}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj-ubah}(h]h ]h"]h$]h&]uh1j>hj*ubj?)}(hhh]h)}(hTypeh]hType}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjDubah}(h]h ]h"]h$]h&]uh1j>hj*ubj?)}(hhh]h)}(h Descriptionh]h Description}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj[ubah}(h]h ]h"]h$]h&]uh1j>hj*ubeh}(h]h ]h"]h$]h&]uh1j9hj'ubj:)}(hhh](j?)}(hhh]h)}(h ``fw.psid``h]h)}(hjh]hfw.psid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~ubah}(h]h ]h"]h$]h&]uh1hhhhKhj{ubah}(h]h ]h"]h$]h&]uh1j>hjxubj?)}(hhh]h)}(hfixedh]hfixed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j>hjxubj?)}(hhh]h)}(h-Used to represent the board id of the device.h]h-Used to represent the board id of the device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j>hjxubeh}(h]h ]h"]h$]h&]uh1j9hj'ubj:)}(hhh](j?)}(hhh]h)}(h``fw.version``h]h)}(hjh]h fw.version}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(hstored, runningh]hstored, running}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j>hjubj?)}(hhh]h)}(h9Three digit major.minor.subminor firmware version number.h]h9Three digit major.minor.subminor firmware version number.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j>hjubeh}(h]h ]h"]h$]h&]uh1j9hj'ubeh}(h]h ]h"]h$]h&]uh1j4hj ubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h]id3ah ]jah"]h$]h&]uh1hhjhhhNhNubeh}(h] info-versionsah ]h"] info versionsah$]h&]uh1hhhhhhhhK{ubh)}(hhh](h)}(hHealth reportersh]hHealth reporters}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB hhhhhKubh)}(hhh](h)}(h tx reporterh]h tx reporter}(hjV hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS hhhhhKubh)}(hcThe tx reporter is responsible for reporting and recovering of the following three error scenarios:h]hcThe tx reporter is responsible for reporting and recovering of the following three error scenarios:}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjS hhubj,)}(hhh](j1)}(h[tx timeout Report on kernel tx timeout detection. Recover by searching lost interrupts.h]hdefinition_list)}(hhh]hdefinition_list_item)}(hWtx timeout Report on kernel tx timeout detection. Recover by searching lost interrupts.h](hterm)}(h tx timeouth]h tx timeout}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhj ubh definition)}(hhh]h)}(hLReport on kernel tx timeout detection. Recover by searching lost interrupts.h]hLReport on kernel tx timeout detection. Recover by searching lost interrupts.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j~ hhhKhj{ ubah}(h]h ]h"]h$]h&]uh1jy hju ubah}(h]h ]h"]h$]h&]uh1j0hjr hhhNhNubj1)}(hetx error completion Report on error tx completion. Recover by flushing the tx queue and reset it.h]jz )}(hhh]j )}(hatx error completion Report on error tx completion. Recover by flushing the tx queue and reset it.h](j )}(htx error completionh]htx error completion}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhj ubj )}(hhh]h)}(hMReport on error tx completion. Recover by flushing the tx queue and reset it.h]hMReport on error tx completion. Recover by flushing the tx queue and reset it.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j~ hhhKhj ubah}(h]h ]h"]h$]h&]uh1jy hj ubah}(h]h ]h"]h$]h&]uh1j0hjr hhhNhNubj1)}(htx 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]jz )}(hhh]j )}(htx 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 unhealthyh]h%tx PTP port timestamping CQ unhealthy}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhj ubj )}(hhh]h)}(hiReport too many CQEs never delivered on port ts CQ. Recover by flushing and re-creating all PTP channels.h]hiReport too many CQEs never delivered on port ts CQ. Recover by flushing and re-creating all PTP channels.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j~ hhhKhj ubah}(h]h ]h"]h$]h&]uh1jy hj ubah}(h]h ]h"]h$]h&]uh1j0hjr hhhNhNubeh}(h]h ]h"]h$]h&]j-uh1j+hhhKhjS hhubh)}(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.}(hjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjS hhubh)}(hUser commands examples:h]hUser commands examples:}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjS hhubj,)}(hhh]j1)}(hXDiagnose send queues status:: $ devlink health diagnose pci/0000:82:00.0 reporter tx h](h)}(hDiagnose send queues status::h]hDiagnose send queues status:}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhji ubh literal_block)}(h6$ devlink health diagnose pci/0000:82:00.0 reporter txh]h6$ devlink health diagnose pci/0000:82:00.0 reporter tx}hj} sbah}(h]h ]h"]h$]h&]hhuh1j{ hhhKhji ubeh}(h]h ]h"]h$]h&]uh1j0hjf hhhhhNubah}(h]h ]h"]h$]h&]jjI uh1j+hhhKhjS hhubhnote)}(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 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hjS hhhhhNubj,)}(hhh]j1)}(hShow 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)}(hShow number of tx errors indicated, number of recover flows ended successfully, is autorecover enabled and graceful period from last recover::h]hShow number of tx errors indicated, number of recover flows ended successfully, is autorecover enabled and graceful period from last recover:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubj| )}(h2$ devlink health show pci/0000:82:00.0 reporter txh]h2$ devlink health show pci/0000:82:00.0 reporter tx}hj sbah}(h]h ]h"]h$]h&]hhuh1j{ hhhKhj ubeh}(h]h ]h"]h$]h&]uh1j0hj hhhhhNubah}(h]h ]h"]h$]h&]jjI uh1j+hhhKhjS hhubeh}(h] tx-reporterah ]h"] tx reporterah$]h&]uh1hhjB hhhhhKubh)}(hhh](h)}(h rx reporterh]h rx reporter}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(haThe rx reporter is responsible for reporting and recovering of the following two error scenarios:h]haThe rx reporter is responsible for reporting and recovering of the following two error scenarios:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj,)}(hhh](j1)}(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]jz )}(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) timeouth]h0rx queues’ initialization (population) timeout}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhj 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% hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj" ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j~ hhhKhj ubah}(h]h ]h"]h$]h&]uh1jy hj ubah}(h]h ]h"]h$]h&]uh1j0hj hhhNhNubj1)}(hrx 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]jz )}(hhh]j )}(hrx 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)}(hjV hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhjR ubj )}(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.}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjd ubah}(h]h ]h"]h$]h&]uh1j hjR ubeh}(h]h ]h"]h$]h&]uh1j~ hhhKhjO ubah}(h]h ]h"]h$]h&]uh1jy hjK ubah}(h]h ]h"]h$]h&]uh1j0hj hhhNhNubeh}(h]h ]h"]h$]h&]jjI uh1j+hhhKhj hhubh)}(hrx reporter also supports on demand diagnose callback, on which it provides real time information of its receive queues' status.h]hrx reporter also supports on demand diagnose callback, on which it provides real time information of its receive queues’ status.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj,)}(hhh]j1)}(hzDiagnose 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:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubj| )}(h6$ devlink health diagnose pci/0000:82:00.0 reporter rxh]h6$ devlink health diagnose pci/0000:82:00.0 reporter rx}hj sbah}(h]h ]h"]h$]h&]hhuh1j{ hhhKhj ubeh}(h]h ]h"]h$]h&]uh1j0hj hhhhhNubah}(h]h ]h"]h$]h&]jjI uh1j+hhhKhj hhubj )}(haThis command has valid output only when interface is up. Otherwise, the command has empty output.h]h)}(hj h]haThis command has valid output only when interface is up. Otherwise, the command has empty output.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj hhhhhNubj,)}(hhh]j1)}(hShow 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)}(hShow number of rx errors indicated, number of recover flows ended successfully, is autorecover enabled, and graceful period from last recover::h]hShow number of rx errors indicated, number of recover flows ended successfully, is autorecover enabled, and graceful period from last recover:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubj| )}(h2$ devlink health show pci/0000:82:00.0 reporter rxh]h2$ devlink health show pci/0000:82:00.0 reporter rx}hj sbah}(h]h ]h"]h$]h&]hhuh1j{ hhhKhj ubeh}(h]h ]h"]h$]h&]uh1j0hj hhhhhNubah}(h]h ]h"]h$]h&]jjI uh1j+hhhKhj hhubeh}(h] rx-reporterah ]h"] rx reporterah$]h&]uh1hhjB hhhhhKubh)}(hhh](h)}(h fw reporterh]h fw reporter}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(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](hThe fw reporter implements }(hj/ hhhNhNubhtitle_reference)}(h `diagnose`h]hdiagnose}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1j7 hj/ ubh and }(hj/ hhhNhNubj8 )}(h`dump`h]hdump}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1j7 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/ hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hUser commands examples:h]hUser commands examples:}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj,)}(hhh](j1)}(hRCheck fw heath status:: $ devlink health diagnose pci/0000:82:00.0 reporter fw h](h)}(hCheck fw heath status::h]hCheck fw heath status:}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjt ubj| )}(h6$ devlink health diagnose pci/0000:82:00.0 reporter fwh]h6$ devlink health diagnose pci/0000:82:00.0 reporter fw}hj sbah}(h]h ]h"]h$]h&]hhuh1j{ hhhKhjt ubeh}(h]h ]h"]h$]h&]uh1j0hjq hhhhhNubj1)}(htRead FW core dump if already stored or trigger new one:: $ devlink health dump show pci/0000:82:00.0 reporter fw h](h)}(h8Read FW core dump if already stored or trigger new one::h]h7Read FW core dump if already stored or trigger new one:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubj| )}(h7$ devlink health dump show pci/0000:82:00.0 reporter fwh]h7$ devlink health dump show pci/0000:82:00.0 reporter fw}hj sbah}(h]h ]h"]h$]h&]hhuh1j{ hhhKhj ubeh}(h]h ]h"]h$]h&]uh1j0hjq hhhhhNubeh}(h]h ]h"]h$]h&]jjI uh1j+hhhKhj hhubj )}(hThis 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)}(hThis 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]hThis 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 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj hhhhhNubeh}(h] fw-reporterah ]h"] fw reporterah$]h&]uh1hhjB hhhhhKubh)}(hhh](h)}(hfw fatal reporterh]hfw fatal reporter}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(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 hhhNhNubj8 )}(h`dump`h]hdump}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j7 hj ubh and }(hj hhhNhNubj8 )}(h `recover`h]hrecover}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j7 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 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hUser commands examples:h]hUser commands examples:}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj,)}(hhh](j1)}(h^Run fw recover flow manually:: $ devlink health recover pci/0000:82:00.0 reporter fw_fatal h](h)}(hRun fw recover flow manually::h]hRun fw recover flow manually:}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj: ubj| )}(h;$ devlink health recover pci/0000:82:00.0 reporter fw_fatalh]h;$ devlink health recover pci/0000:82:00.0 reporter fw_fatal}hjL sbah}(h]h ]h"]h$]h&]hhuh1j{ hhhKhj: ubeh}(h]h ]h"]h$]h&]uh1j0hj7 hhhhhNubj1)}(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)}(hnumber of times an EQ mapped to completion events was overrun.h]h>number of times an EQ mapped to completion events was overrun.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j~ hhhM hjubah}(h]h ]h"]h$]h&]uh1jy hjubah}(h]h ]h"]h$]h&]uh1j0hj hhhNhNubj1)}(hXquota_exceeded_command number of commands issued and failed due to quota exceeded.h]jz )}(hhh]j )}(hRquota_exceeded_command number of commands issued and failed due to quota exceeded.h](j )}(hquota_exceeded_commandh]hquota_exceeded_command}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhM 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.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjPubah}(h]h ]h"]h$]h&]uh1j hj>ubeh}(h]h ]h"]h$]h&]uh1j~ hhhM hj;ubah}(h]h ]h"]h$]h&]uh1jy hj7ubah}(h]h ]h"]h$]h&]uh1j0hj hhhNhNubj1)}(hninvalid_command number of commands issued and failed dues to any reason other than quota exceeded.h]jz )}(hhh]j )}(hbinvalid_command number of commands issued and failed dues to any reason other than quota exceeded.h](j )}(hinvalid_commandh]hinvalid_command}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhMhjubj )}(hhh]h)}(hRnumber of commands issued and failed dues to any reason other than quota exceeded.h]hRnumber of commands issued and failed dues to any reason other than quota exceeded.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j~ hhhMhj}ubah}(h]h ]h"]h$]h&]uh1jy hjyubah}(h]h ]h"]h$]h&]uh1j0hj hhhNhNubj1)}(hnic_receive_steering_discard number of packets that completed RX flow steering but were discarded due to a mismatch in flow table.h]jz )}(hhh]j )}(hnic_receive_steering_discard number of packets that completed RX flow steering but were discarded due to a mismatch in flow table.h](j )}(hnic_receive_steering_discardh]hnic_receive_steering_discard}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhMhjubj )}(hhh]h)}(henumber of packets that completed RX flow steering but were discarded due to a mismatch in flow table.h]henumber of packets that completed RX flow steering but were discarded due to a mismatch in flow table.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j~ hhhMhjubah}(h]h ]h"]h$]h&]uh1jy hjubah}(h]h ]h"]h$]h&]uh1j0hj hhhNhNubj1)}(hgenerated_pkt_steering_fail number of packets generated by the VNIC experiencing unexpected steering failure (at any point in steering flow).h]jz )}(hhh]j )}(hgenerated_pkt_steering_fail number of packets generated by the VNIC experiencing unexpected steering failure (at any point in steering flow).h](j )}(hgenerated_pkt_steering_failh]hgenerated_pkt_steering_fail}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhMhjubj )}(hhh]h)}(hqnumber of packets generated by the VNIC experiencing unexpected steering failure (at any point in steering flow).h]hqnumber of packets generated by the VNIC experiencing unexpected steering failure (at any point in steering flow).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j~ hhhMhjubah}(h]h ]h"]h$]h&]uh1jy hjubah}(h]h ]h"]h$]h&]uh1j0hj hhhNhNubj1)}(hhandled_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]jz )}(hhh]j )}(hhandled_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 )}(hhandled_pkt_steering_failh]hhandled_pkt_steering_fail}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhMhjFubj )}(hhh]h)}(hnumber 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]hnumber 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).}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjXubah}(h]h ]h"]h$]h&]uh1j hjFubeh}(h]h ]h"]h$]h&]uh1j~ hhhMhjCubah}(h]h ]h"]h$]h&]uh1jy hj?ubah}(h]h ]h"]h$]h&]uh1j0hj hhhNhNubj1)}(hicm_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]jz )}(hhh]j )}(hicm_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 )}(hicm_consumptionh]hicm_consumption}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhMhjubj )}(hhh]h)}(hamount 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]hamount 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j~ hhhMhjubah}(h]h ]h"]h$]h&]uh1jy hjubah}(h]h ]h"]h$]h&]uh1j0hj hhhNhNubeh}(h]h ]h"]h$]h&]jjI uh1j+hhhMhj hhubh)}(hUser commands examples:h]hUser commands examples:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj hhubj,)}(hhh](j1)}(h_Diagnose PF/VF vnic counters:: $ devlink health diagnose pci/0000:82:00.1 reporter vnic h](h)}(hDiagnose PF/VF vnic counters::h]hDiagnose PF/VF vnic counters:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM"hjubj| )}(h8$ devlink health diagnose pci/0000:82:00.1 reporter vnich]h8$ devlink health diagnose pci/0000:82:00.1 reporter vnic}hjsbah}(h]h ]h"]h$]h&]hhuh1j{ hhhM$hjubeh}(h]h ]h"]h$]h&]uh1j0hjhhhhhNubj1)}(hDiagnose 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)}(hDiagnose representor vnic counters (performed by supplying devlink port of the representor, which can be obtained via devlink port command)::h]hDiagnose representor vnic counters (performed by supplying devlink port of the representor, which can be obtained via devlink port command):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM&hjubj| )}(h>$ devlink health diagnose pci/0000:82:00.1/65537 reporter vnich]h>$ devlink health diagnose pci/0000:82:00.1/65537 reporter vnic}hjsbah}(h]h ]h"]h$]h&]hhuh1j{ hhhM)hjubeh}(h]h ]h"]h$]h&]uh1j0hjhhhhhNubeh}(h]h ]h"]h$]h&]jjI uh1j+hhhM"hj hhubj )}(hMThis command can run over all interfaces such as PF/VF and representor ports.h]h)}(hj.h]hMThis command can run over all interfaces such as PF/VF and representor ports.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM,hj,ubah}(h]h ]h"]h$]h&]uh1j hj hhhhhNubeh}(h] vnic-reporterah ]h"] vnic reporterah$]h&]uh1hhjB hhhhhKubeh}(h]health-reportersah ]h"]health reportersah$]h&]uh1hhhhhhhhKubeh}(h]mlx5-devlink-supportah ]h"]mlx5 devlink supportah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksj>footnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj}error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jXjUjjj? j< jPjMj j j j j j j j jHjEu nametypes}(jXjj? jPj j j j jHuh}(jUhjhj< jjMjB j jS j j j j j j jEj jjjj)j5 ju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jKsRparse_messages]transform_messages] transformerN include_log] decorationNhhub.