sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftargetD/translations/zh_CN/networking/device_drivers/ethernet/netronome/nfpmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetD/translations/zh_TW/networking/device_drivers/ethernet/netronome/nfpmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetD/translations/it_IT/networking/device_drivers/ethernet/netronome/nfpmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetD/translations/ja_JP/networking/device_drivers/ethernet/netronome/nfpmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetD/translations/ko_KR/networking/device_drivers/ethernet/netronome/nfpmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetD/translations/pt_BR/networking/device_drivers/ethernet/netronome/nfpmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetD/translations/sp_SP/networking/device_drivers/ethernet/netronome/nfpmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h7SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)h]h7SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh^/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/ethernet/netronome/nfp.rsthKubh)}(h4This data file has been placed in the public domain.h]h4This data file has been placed in the public domain.}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhho/srv/docbuild/lib/venvs/build-kernel-docs/lib64/python3.9/site-packages/docutils/parsers/rst/include/isonum.txthKubh)}(hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .h]hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubhsubstitution_definition)}(h*.. |amp| unicode:: U+00026 .. AMPERSANDh]h&}hhsbah}(h]h ]h"]ampah$]h&]uh1hhhhKhhhhubh)}(h+.. |apos| unicode:: U+00027 .. APOSTROPHEh]h'}hhsbah}(h]h ]h"]aposah$]h&]uh1hhhhKhhhhubh)}(h).. |ast| unicode:: U+0002A .. ASTERISKh]h*}hjsbah}(h]h ]h"]astah$]h&]uh1hhhhK hhhhubh)}(h+.. |brvbar| unicode:: U+000A6 .. BROKEN BARh]h¦}hjsbah}(h]h ]h"]brvbarah$]h&]uh1hhhhK hhhhubh)}(h0.. |bsol| unicode:: U+0005C .. REVERSE SOLIDUSh]h\}hj#sbah}(h]h ]h"]bsolah$]h&]uh1hhhhK hhhhubh)}(h*.. |cent| unicode:: U+000A2 .. CENT SIGNh]h¢}hj2sbah}(h]h ]h"]centah$]h&]uh1hhhhK hhhhubh)}(h&.. |colon| unicode:: U+0003A .. COLONh]h:}hjAsbah}(h]h ]h"]colonah$]h&]uh1hhhhK hhhhubh)}(h&.. |comma| unicode:: U+0002C .. COMMAh]h,}hjPsbah}(h]h ]h"]commaah$]h&]uh1hhhhKhhhhubh)}(h... |commat| unicode:: U+00040 .. COMMERCIAL ATh]h@}hj_sbah}(h]h ]h"]commatah$]h&]uh1hhhhKhhhhubh)}(h/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGNh]h©}hjnsbah}(h]h ]h"]copyah$]h&]uh1hhhhKhhhhubh)}(h... |curren| unicode:: U+000A4 .. CURRENCY SIGNh]h¤}hj}sbah}(h]h ]h"]currenah$]h&]uh1hhhhKhhhhubh)}(h0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROWh]h↓}hjsbah}(h]h ]h"]darrah$]h&]uh1hhhhKhhhhubh)}(h,.. |deg| unicode:: U+000B0 .. DEGREE SIGNh]h°}hjsbah}(h]h ]h"]degah$]h&]uh1hhhhKhhhhubh)}(h... |divide| unicode:: U+000F7 .. DIVISION SIGNh]h÷}hjsbah}(h]h ]h"]divideah$]h&]uh1hhhhKhhhhubh)}(h,.. |dollar| unicode:: U+00024 .. DOLLAR SIGNh]h$}hjsbah}(h]h ]h"]dollarah$]h&]uh1hhhhKhhhhubh)}(h,.. |equals| unicode:: U+0003D .. EQUALS SIGNh]h=}hjsbah}(h]h ]h"]equalsah$]h&]uh1hhhhKhhhhubh)}(h1.. |excl| unicode:: U+00021 .. EXCLAMATION MARKh]h!}hjsbah}(h]h ]h"]exclah$]h&]uh1hhhhKhhhhubh)}(h9.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjsbah}(h]h ]h"]frac12ah$]h&]uh1hhhhKhhhhubh)}(h<.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTERh]h¼}hjsbah}(h]h ]h"]frac14ah$]h&]uh1hhhhKhhhhubh)}(h;.. |frac18| unicode:: U+0215B .. VULGAR FRACTION ONE EIGHTHh]h⅛}hjsbah}(h]h ]h"]frac18ah$]h&]uh1hhhhKhhhhubh)}(h?.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERSh]h¾}hjsbah}(h]h ]h"]frac34ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac38| unicode:: U+0215C .. VULGAR FRACTION THREE EIGHTHSh]h⅜}hj"sbah}(h]h ]h"]frac38ah$]h&]uh1hhhhKhhhhubh)}(h=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHSh]h⅝}hj1sbah}(h]h ]h"]frac58ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHSh]h⅞}hj@sbah}(h]h ]h"]frac78ah$]h&]uh1hhhhKhhhhubh)}(h2.. |gt| unicode:: U+0003E .. GREATER-THAN SIGNh]h>}hjOsbah}(h]h ]h"]gtah$]h&]uh1hhhhKhhhhubh)}(h9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hj^sbah}(h]h ]h"]halfah$]h&]uh1hhhhK hhhhubh)}(h/.. |horbar| unicode:: U+02015 .. HORIZONTAL BARh]h―}hjmsbah}(h]h ]h"]horbarah$]h&]uh1hhhhK!hhhhubh)}(h'.. |hyphen| unicode:: U+02010 .. HYPHENh]h‐}hj|sbah}(h]h ]h"]hyphenah$]h&]uh1hhhhK"hhhhubh)}(h:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARKh]h¡}hjsbah}(h]h ]h"]iexclah$]h&]uh1hhhhK#hhhhubh)}(h7.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARKh]h¿}hjsbah}(h]h ]h"]iquestah$]h&]uh1hhhhK$hhhhubh)}(hJ.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARKh]h«}hjsbah}(h]h ]h"]laquoah$]h&]uh1hhhhK%hhhhubh)}(h0.. |larr| unicode:: U+02190 .. LEFTWARDS ARROWh]h←}hjsbah}(h]h ]h"]larrah$]h&]uh1hhhhK&hhhhubh)}(h3.. |lcub| unicode:: U+0007B .. LEFT CURLY BRACKETh]h{}hjsbah}(h]h ]h"]lcubah$]h&]uh1hhhhK'hhhhubh)}(h;.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARKh]h“}hjsbah}(h]h ]h"]ldquoah$]h&]uh1hhhhK(hhhhubh)}(h).. |lowbar| unicode:: U+0005F .. LOW LINEh]h_}hjsbah}(h]h ]h"]lowbarah$]h&]uh1hhhhK)hhhhubh)}(h1.. |lpar| unicode:: U+00028 .. LEFT PARENTHESISh]h(}hjsbah}(h]h ]h"]lparah$]h&]uh1hhhhK*hhhhubh)}(h4.. |lsqb| unicode:: U+0005B .. LEFT SQUARE BRACKETh]h[}hjsbah}(h]h ]h"]lsqbah$]h&]uh1hhhhK+hhhhubh)}(h;.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARKh]h‘}hjsbah}(h]h ]h"]lsquoah$]h&]uh1hhhhK,hhhhubh)}(h/.. |lt| unicode:: U+0003C .. LESS-THAN SIGNh]h<}hj!sbah}(h]h ]h"]ltah$]h&]uh1hhhhK-hhhhubh)}(h+.. |micro| unicode:: U+000B5 .. MICRO SIGNh]hµ}hj0sbah}(h]h ]h"]microah$]h&]uh1hhhhK.hhhhubh)}(h+.. |middot| unicode:: U+000B7 .. MIDDLE DOTh]h·}hj?sbah}(h]h ]h"]middotah$]h&]uh1hhhhK/hhhhubh)}(h/.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACEh]h }hjNsbah}(h]h ]h"]nbspah$]h&]uh1hhhhK0hhhhubh)}(h).. |not| unicode:: U+000AC .. NOT SIGNh]h¬}hj]sbah}(h]h ]h"]notah$]h&]uh1hhhhK1hhhhubh)}(h,.. |num| unicode:: U+00023 .. NUMBER SIGNh]h#}hjlsbah}(h]h ]h"]numah$]h&]uh1hhhhK2hhhhubh)}(h).. |ohm| unicode:: U+02126 .. OHM SIGNh]hΩ}hj{sbah}(h]h ]h"]ohmah$]h&]uh1hhhhK3hhhhubh)}(h;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATORh]hª}hjsbah}(h]h ]h"]ordfah$]h&]uh1hhhhK4hhhhubh)}(h<.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATORh]hº}hjsbah}(h]h ]h"]ordmah$]h&]uh1hhhhK5hhhhubh)}(h-.. |para| unicode:: U+000B6 .. PILCROW SIGNh]h¶}hjsbah}(h]h ]h"]paraah$]h&]uh1hhhhK6hhhhubh)}(h-.. |percnt| unicode:: U+00025 .. PERCENT SIGNh]h%}hjsbah}(h]h ]h"]percntah$]h&]uh1hhhhK7hhhhubh)}(h*.. |period| unicode:: U+0002E .. FULL STOPh]h.}hjsbah}(h]h ]h"]periodah$]h&]uh1hhhhK8hhhhubh)}(h*.. |plus| unicode:: U+0002B .. PLUS SIGNh]h+}hjsbah}(h]h ]h"]plusah$]h&]uh1hhhhK9hhhhubh)}(h0.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGNh]h±}hjsbah}(h]h ]h"]plusmnah$]h&]uh1hhhhK:hhhhubh)}(h+.. |pound| unicode:: U+000A3 .. POUND SIGNh]h£}hjsbah}(h]h ]h"]poundah$]h&]uh1hhhhK;hhhhubh)}(h... |quest| unicode:: U+0003F .. QUESTION MARKh]h?}hjsbah}(h]h ]h"]questah$]h&]uh1hhhhKhhhhubh)}(h1.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROWh]h→}hj/sbah}(h]h ]h"]rarrah$]h&]uh1hhhhK?hhhhubh)}(h4.. |rcub| unicode:: U+0007D .. RIGHT CURLY BRACKETh]h}}hj>sbah}(h]h ]h"]rcubah$]h&]uh1hhhhK@hhhhubh)}(h<.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARKh]h”}hjMsbah}(h]h ]h"]rdquoah$]h&]uh1hhhhKAhhhhubh)}(h0.. |reg| unicode:: U+000AE .. REGISTERED SIGNh]h®}hj\sbah}(h]h ]h"]regah$]h&]uh1hhhhKBhhhhubh)}(h2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESISh]h)}hjksbah}(h]h ]h"]rparah$]h&]uh1hhhhKChhhhubh)}(h5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKETh]h]}hjzsbah}(h]h ]h"]rsqbah$]h&]uh1hhhhKDhhhhubh)}(h<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARKh]h’}hjsbah}(h]h ]h"]rsquoah$]h&]uh1hhhhKEhhhhubh)}(h-.. |sect| unicode:: U+000A7 .. SECTION SIGNh]h§}hjsbah}(h]h ]h"]sectah$]h&]uh1hhhhKFhhhhubh)}(h*.. |semi| unicode:: U+0003B .. SEMICOLONh]h;}hjsbah}(h]h ]h"]semiah$]h&]uh1hhhhKGhhhhubh)}(h,.. |shy| unicode:: U+000AD .. SOFT HYPHENh]h­}hjsbah}(h]h ]h"]shyah$]h&]uh1hhhhKHhhhhubh)}(h(.. |sol| unicode:: U+0002F .. SOLIDUSh]h/}hjsbah}(h]h ]h"]solah$]h&]uh1hhhhKIhhhhubh)}(h,.. |sung| unicode:: U+0266A .. EIGHTH NOTEh]h♪}hjsbah}(h]h ]h"]sungah$]h&]uh1hhhhKJhhhhubh)}(h0.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONEh]h¹}hjsbah}(h]h ]h"]sup1ah$]h&]uh1hhhhKKhhhhubh)}(h0.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWOh]h²}hjsbah}(h]h ]h"]sup2ah$]h&]uh1hhhhKLhhhhubh)}(h2.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREEh]h³}hjsbah}(h]h ]h"]sup3ah$]h&]uh1hhhhKMhhhhubh)}(h4.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGNh]h×}hjsbah}(h]h ]h"]timesah$]h&]uh1hhhhKNhhhhubh)}(h0.. |trade| unicode:: U+02122 .. TRADE MARK SIGNh]h™}hjsbah}(h]h ]h"]tradeah$]h&]uh1hhhhKOhhhhubh)}(h... |uarr| unicode:: U+02191 .. UPWARDS ARROWh]h↑}hj.sbah}(h]h ]h"]uarrah$]h&]uh1hhhhKPhhhhubh)}(h... |verbar| unicode:: U+0007C .. VERTICAL LINEh]h|}hj=sbah}(h]h ]h"]verbarah$]h&]uh1hhhhKQhhhhubh)}(h*.. |yen| unicode:: U+000A5 .. YEN SIGN h]h¥}hjLsbah}(h]h ]h"]yenah$]h&]uh1hhhhKRhhhhubhsection)}(hhh](htitle)}(h+Network Flow Processor (NFP) Kernel Driversh]h+Network Flow Processor (NFP) Kernel Drivers}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj]hhhhhKubh field_list)}(hhh](hfield)}(hhh](h field_name)}(h Copyrighth]h Copyright}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjwhhhKubh field_body)}(h$|copy| 2019, Netronome Systems, Inc.h]h paragraph)}(hjh](h©}(hjhhhNhNubh 2019, Netronome Systems, Inc.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1juhhhKhjrhhubjv)}(hhh](j{)}(h Copyrighth]h Copyright}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhhhKubj)}(h|copy| 2022, Corigine, Inc. h]j)}(h|copy| 2022, Corigine, Inc.h](h©}(hjhhhNhNubh 2022, Corigine, Inc.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1juhhhK hjrhhubeh}(h]h ]h"]h$]h&]uh1jphj]hhhhhKubj\)}(hhh](ja)}(hContentsh]hContents}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjhhhhhK ubh bullet_list)}(hhh](h list_item)}(h `Overview`_h]j)}(hjh]h reference)}(hjh]hOverview}(hj hhhNhNubah}(h]h ]h"]h$]h&]nameOverviewrefidoverviewuh1jhjresolvedKubah}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h`Acquiring Firmware`_h]j)}(hj)h]j)}(hj)h]hAcquiring Firmware}(hj.hhhNhNubah}(h]h ]h"]h$]h&]nameAcquiring Firmwarejacquiring-firmwareuh1jhj+jKubah}(h]h ]h"]h$]h&]uh1jhhhKhj'ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h`Devlink Info`_h]j)}(hjLh]j)}(hjLh]h Devlink Info}(hjQhhhNhNubah}(h]h ]h"]h$]h&]name Devlink Infoj devlink-infouh1jhjNjKubah}(h]h ]h"]h$]h&]uh1jhhhKhjJubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h`Configure Device`_h]j)}(hjoh]j)}(hjoh]hConfigure Device}(hjthhhNhNubah}(h]h ]h"]h$]h&]nameConfigure Devicejconfigure-deviceuh1jhjqjKubah}(h]h ]h"]h$]h&]uh1jhhhKhjmubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h`Statistics`_ h]j)}(h `Statistics`_h]j)}(hjh]h Statistics}(hjhhhNhNubah}(h]h ]h"]h$]h&]name Statisticsj statisticsuh1jhjjKubah}(h]h ]h"]h$]h&]uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhKhjhhubeh}(h]contentsah ]h"]contentsah$]h&]uh1j[hj]hhhhhK ubj\)}(hhh](ja)}(hOverviewh]hOverview}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjhhhhhKubj)}(hX5This driver supports Netronome and Corigine's line of Network Flow Processor devices, including the NFP3800, NFP4000, NFP5000, and NFP6000 models, which are also incorporated in the companies' family of Agilio SmartNICs. The SR-IOV physical and virtual functions for these devices are supported by the driver.h]hX9This driver supports Netronome and Corigine’s line of Network Flow Processor devices, including the NFP3800, NFP4000, NFP5000, and NFP6000 models, which are also incorporated in the companies’ family of Agilio SmartNICs. The SR-IOV physical and virtual functions for these devices are supported by the driver.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubeh}(h]jah ]h"]overviewah$]h&]uh1j[hj]hhhhhK referencedKubj\)}(hhh](ja)}(hAcquiring Firmwareh]hAcquiring Firmware}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjhhhhhKubj)}(hThe NFP3800, NFP4000 and NFP6000 devices require application specific firmware to function. Application firmware can be located either on the host file system or in the device flash (if supported by management firmware).h]hThe NFP3800, NFP4000 and NFP6000 devices require application specific firmware to function. Application firmware can be located either on the host file system or in the device flash (if supported by management firmware).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubj)}(hFirmware files on the host filesystem contain card type (`AMDA-*` string), media config etc. They should be placed in `/lib/firmware/netronome` directory to load firmware from the host file system.h](h9Firmware files on the host filesystem contain card type (}(hj hhhNhNubhtitle_reference)}(h`AMDA-*`h]hAMDA-*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh5 string), media config etc. They should be placed in }(hj hhhNhNubj)}(h`/lib/firmware/netronome`h]h/lib/firmware/netronome}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh6 directory to load firmware from the host file system.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhK#hjhhubj)}(h^Firmware for basic NIC operation is available in the upstream `linux-firmware.git` repository.h](h>Firmware for basic NIC operation is available in the upstream }(hj>hhhNhNubj)}(h`linux-firmware.git`h]hlinux-firmware.git}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubh repository.}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhK'hjhhubj)}(hA more comprehensive list of firmware can be downloaded from the `Corigine Support site `_.h](hAA more comprehensive list of firmware can be downloaded from the }(hj^hhhNhNubj)}(hD`Corigine Support site `_h]hCorigine Support site}(hjfhhhNhNubah}(h]h ]h"]h$]h&]nameCorigine Support siterefuri)https://www.corigine.com/DPUDownload.htmluh1jhj^ubhtarget)}(h, h]h}(h]corigine-support-siteah ]h"]corigine support siteah$]h&]refurijwuh1jxjKhj^ubh.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhK*hjhhubj\)}(hhh](ja)}(hFirmware in NVRAMh]hFirmware in NVRAM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjhhhhhK.ubj)}(hRecent versions of management firmware supports loading application firmware from flash when the host driver gets probed. The firmware loading policy configuration may be used to configure this feature appropriately.h]hRecent versions of management firmware supports loading application firmware from flash when the host driver gets probed. The firmware loading policy configuration may be used to configure this feature appropriately.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK0hjhhubj)}(hXDevlink or ethtool can be used to update the application firmware on the device flash by providing the appropriate `nic_AMDA*.nffw` file to the respective command. Users need to take care to write the correct firmware image for the card and media configuration to flash.h](hsDevlink or ethtool can be used to update the application firmware on the device flash by providing the appropriate }(hjhhhNhNubj)}(h`nic_AMDA*.nffw`h]hnic_AMDA*.nffw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh file to the respective command. Users need to take care to write the correct firmware image for the card and media configuration to flash.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhK4hjhhubj)}(h@Available storage space in flash depends on the card being used.h]h@Available storage space in flash depends on the card being used.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK9hjhhubeh}(h]firmware-in-nvramah ]h"]firmware in nvramah$]h&]uh1j[hjhhhhhK.ubj\)}(hhh](ja)}(hDealing with multiple projectsh]hDealing with multiple projects}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjhhhhhKhjhhubj)}(hWhen using application firmware from host, we recommend placing actual firmware files in application-named subdirectories in `/lib/firmware/netronome` and linking the desired files, e.g.::h](h}When using application firmware from host, we recommend placing actual firmware files in application-named subdirectories in }(hjhhhNhNubj)}(h`/lib/firmware/netronome`h]h/lib/firmware/netronome}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh% and linking the desired files, e.g.:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKAhjhhubh literal_block)}(hX#$ tree /lib/firmware/netronome/ /lib/firmware/netronome/ ├── bpf │   ├── nic_AMDA0081-0001_1x40.nffw │   └── nic_AMDA0081-0001_4x10.nffw ├── flower │   ├── nic_AMDA0081-0001_1x40.nffw │   └── nic_AMDA0081-0001_4x10.nffw ├── nic │   ├── nic_AMDA0081-0001_1x40.nffw │   └── nic_AMDA0081-0001_4x10.nffw ├── nic_AMDA0081-0001_1x40.nffw -> bpf/nic_AMDA0081-0001_1x40.nffw └── nic_AMDA0081-0001_4x10.nffw -> bpf/nic_AMDA0081-0001_4x10.nffw 3 directories, 8 filesh]hX#$ tree /lib/firmware/netronome/ /lib/firmware/netronome/ ├── bpf │   ├── nic_AMDA0081-0001_1x40.nffw │   └── nic_AMDA0081-0001_4x10.nffw ├── flower │   ├── nic_AMDA0081-0001_1x40.nffw │   └── nic_AMDA0081-0001_4x10.nffw ├── nic │   ├── nic_AMDA0081-0001_1x40.nffw │   └── nic_AMDA0081-0001_4x10.nffw ├── nic_AMDA0081-0001_1x40.nffw -> bpf/nic_AMDA0081-0001_1x40.nffw └── nic_AMDA0081-0001_4x10.nffw -> bpf/nic_AMDA0081-0001_4x10.nffw 3 directories, 8 files}hj'sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKEhjhhubj)}(hYou may need to use hard instead of symbolic links on distributions which use old `mkinitrd` command instead of `dracut` (e.g. Ubuntu).h](hRYou may need to use hard instead of symbolic links on distributions which use old }(hj5hhhNhNubj)}(h `mkinitrd`h]hmkinitrd}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubh command instead of }(hj5hhhNhNubj)}(h`dracut`h]hdracut}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubh (e.g. Ubuntu).}(hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKUhjhhubj)}(hXAfter changing firmware files you may need to regenerate the initramfs image. Initramfs contains drivers and firmware files your system may need to boot. Refer to the documentation of your distribution to find out how to update initramfs. Good indication of stale initramfs is system loading wrong driver or firmware on boot, but when driver is later reloaded manually everything works correctly.h]hXAfter changing firmware files you may need to regenerate the initramfs image. Initramfs contains drivers and firmware files your system may need to boot. Refer to the documentation of your distribution to find out how to update initramfs. Good indication of stale initramfs is system loading wrong driver or firmware on boot, but when driver is later reloaded manually everything works correctly.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKXhjhhubeh}(h]dealing-with-multiple-projectsah ]h"]dealing with multiple projectsah$]h&]uh1j[hjhhhhhK interface, (e.g. enp4s0), or an interface's port (e.g. enp4s0np0) can be displayed with the ethtool command::h]hThe version of the loaded firmware for a particular interface, (e.g. enp4s0), or an interface’s port (e.g. enp4s0np0) can be displayed with the ethtool command:}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKwhjP hhubj&)}(h$ ethtool -i h]h$ ethtool -i }hjo sbah}(h]h ]h"]h$]h&]hhuh1j%hhhK{hjP hhubeh}(h]running-firmware-versionah ]h"]running firmware versionah$]h&]uh1j[hjhhhhhKuubj\)}(hhh](ja)}(hFirmware loading policyh]hFirmware loading policy}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj hhhhhK~ubj)}(hpFirmware loading policy is controlled via three HWinfo parameters stored as key value pairs in the device flash:h]hpFirmware loading policy is controlled via three HWinfo parameters stored as key value pairs in the device flash:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj hhubhdefinition_list)}(hhh](hdefinition_list_item)}(hX~app_fw_from_flash Defines which firmware should take precedence, 'Disk' (0), 'Flash' (1) or the 'Preferred' (2) firmware. When 'Preferred' is selected, the management firmware makes the decision over which firmware will be loaded by comparing versions of the flash firmware and the host supplied firmware. This variable is configurable using the 'fw_load_policy' devlink parameter. h](hterm)}(happ_fw_from_flashh]happ_fw_from_flash}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhj ubh definition)}(hhh]j)}(hXkDefines which firmware should take precedence, 'Disk' (0), 'Flash' (1) or the 'Preferred' (2) firmware. When 'Preferred' is selected, the management firmware makes the decision over which firmware will be loaded by comparing versions of the flash firmware and the host supplied firmware. This variable is configurable using the 'fw_load_policy' devlink parameter.h]hXDefines which firmware should take precedence, ‘Disk’ (0), ‘Flash’ (1) or the ‘Preferred’ (2) firmware. When ‘Preferred’ is selected, the management firmware makes the decision over which firmware will be loaded by comparing versions of the flash firmware and the host supplied firmware. This variable is configurable using the ‘fw_load_policy’ devlink parameter.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hhhKhj ubj )}(hXpabi_drv_reset Defines if the driver should reset the firmware when the driver is probed, either 'Disk' (0) if firmware was found on disk, 'Always' (1) reset or 'Never' (2) reset. Note that the device is always reset on driver unload if firmware was loaded when the driver was probed. This variable is configurable using the 'reset_dev_on_drv_probe' devlink parameter. h](j )}(h abi_drv_reseth]h abi_drv_reset}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhj ubj )}(hhh]j)}(hXaDefines if the driver should reset the firmware when the driver is probed, either 'Disk' (0) if firmware was found on disk, 'Always' (1) reset or 'Never' (2) reset. Note that the device is always reset on driver unload if firmware was loaded when the driver was probed. This variable is configurable using the 'reset_dev_on_drv_probe' devlink parameter.h]hXqDefines if the driver should reset the firmware when the driver is probed, either ‘Disk’ (0) if firmware was found on disk, ‘Always’ (1) reset or ‘Never’ (2) reset. Note that the device is always reset on driver unload if firmware was loaded when the driver was probed. This variable is configurable using the ‘reset_dev_on_drv_probe’ devlink parameter.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hhhKhj hhubj )}(habi_drv_load_ifc Defines a list of PF devices allowed to load FW on the device. This variable is not currently user configurable. h](j )}(habi_drv_load_ifch]habi_drv_load_ifc}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhj ubj )}(hhh]j)}(hpDefines a list of PF devices allowed to load FW on the device. This variable is not currently user configurable.h]hpDefines a list of PF devices allowed to load FW on the device. This variable is not currently user configurable.}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hhhKhj hhubeh}(h]h ]h"]h$]h&]uh1j hj hhhhhNubeh}(h]firmware-loading-policyah ]h"]firmware loading policyah$]h&]uh1j[hjhhhhhK~ubeh}(h]j=ah ]h"]acquiring firmwareah$]h&]uh1j[hj]hhhhhKjKubj\)}(hhh](ja)}(h Devlink Infoh]h Devlink Info}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjQ hhhhhKubj)}(h~The devlink info command displays the running and stored firmware versions on the device, serial number and board information.h]h~The devlink info command displays the running and stored firmware versions on the device, serial number and board information.}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjQ hhubj)}(h4Devlink info command example (replace PCI address)::h]h3Devlink info command example (replace PCI address):}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjQ hhubj&)}(hX7$ devlink dev info pci/0000:03:00.0 pci/0000:03:00.0: driver nfp serial_number CSAAMDA2001-1003000111 versions: fixed: board.id AMDA2001-1003 board.rev 01 board.manufacture CSA board.model mozart running: fw.mgmt 22.10.0-rc3 fw.cpld 0x1000003 fw.app nic-22.09.0 chip.init AMDA-2001-1003 1003000111 stored: fw.bundle_id bspbundle_1003000111 fw.mgmt 22.10.0-rc3 fw.cpld 0x0 chip.init AMDA-2001-1003 1003000111h]hX7$ devlink dev info pci/0000:03:00.0 pci/0000:03:00.0: driver nfp serial_number CSAAMDA2001-1003000111 versions: fixed: board.id AMDA2001-1003 board.rev 01 board.manufacture CSA board.model mozart running: fw.mgmt 22.10.0-rc3 fw.cpld 0x1000003 fw.app nic-22.09.0 chip.init AMDA-2001-1003 1003000111 stored: fw.bundle_id bspbundle_1003000111 fw.mgmt 22.10.0-rc3 fw.cpld 0x0 chip.init AMDA-2001-1003 1003000111}hj~ sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhjQ hhubeh}(h]j`ah ]h"] devlink infoah$]h&]uh1j[hj]hhhhhKjKubj\)}(hhh](ja)}(hConfigure Deviceh]hConfigure Device}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj hhhhhKubj)}(hMThis section explains how to use Agilio SmartNICs running basic NIC firmware.h]hMThis section explains how to use Agilio SmartNICs running basic NIC firmware.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj hhubj\)}(hhh](ja)}(hConfigure interface link-speedh]hConfigure interface link-speed}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj hhhhhKubj)}(hThe following steps explains how to change between 10G mode and 25G mode on Agilio CX 2x25GbE cards. The changing of port speed must be done in order, port 0 (p0) must be set to 10G before port 1 (p1) may be set to 10G.h]hThe following steps explains how to change between 10G mode and 25G mode on Agilio CX 2x25GbE cards. The changing of port speed must be done in order, port 0 (p0) must be set to 10G before port 1 (p1) may be set to 10G.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj hhubj)}(h"Down the respective interface(s)::h]h!Down the respective interface(s):}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj hhubj&)}(hM$ ip link set dev down $ ip link set dev downh]hM$ ip link set dev down $ ip link set dev down}hj sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhj hhubj)}(h!Set interface link-speed to 10G::h]h Set interface link-speed to 10G:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj hhubj&)}(hQ$ ethtool -s speed 10000 $ ethtool -s speed 10000h]hQ$ ethtool -s speed 10000 $ ethtool -s speed 10000}hj sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhj hhubj)}(h!Set interface link-speed to 25G::h]h Set interface link-speed to 25G:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj hhubj&)}(hQ$ ethtool -s speed 25000 $ ethtool -s speed 25000h]hQ$ ethtool -s speed 25000 $ ethtool -s speed 25000}hj sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhj hhubj)}(h*Reload driver for changes to take effect::h]h)Reload driver for changes to take effect:}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj hhubj&)}(h$ rmmod nfp; modprobe nfph]h$ rmmod nfp; modprobe nfp}hj3 sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhj hhubeh}(h]configure-interface-link-speedah ]h"]configure interface link-speedah$]h&]uh1j[hj hhhhhKubj\)}(hhh](ja)}(h3Configure interface Maximum Transmission Unit (MTU)h]h3Configure interface Maximum Transmission Unit (MTU)}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjI hhhhhKubj)}(hX&The MTU of interfaces can temporarily be set using the iproute2, ip link or ifconfig tools. Note that this change will not persist. Setting this via Network Manager, or another appropriate OS configuration tool, is recommended as changes to the MTU using Network Manager can be made to persist.h]hX&The MTU of interfaces can temporarily be set using the iproute2, ip link or ifconfig tools. Note that this change will not persist. Setting this via Network Manager, or another appropriate OS configuration tool, is recommended as changes to the MTU using Network Manager can be made to persist.}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjI hhubj)}(h!Set interface MTU to 9000 bytes::h]h Set interface MTU to 9000 bytes:}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjI hhubj&)}(h($ ip link set dev mtu 9000h]h($ ip link set dev mtu 9000}hjv sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhjI hhubj)}(hXAIt is the responsibility of the user or the orchestration layer to set appropriate MTU values when handling jumbo frames or utilizing tunnels. For example, if packets sent from a VM are to be encapsulated on the card and egress a physical port, then the MTU of the VF should be set to lower than that of the physical port to account for the extra bytes added by the additional header. If a setup is expected to see fallback traffic between the SmartNIC and the kernel then the user should also ensure that the PF MTU is appropriately set to avoid unexpected drops on this path.h]hXAIt is the responsibility of the user or the orchestration layer to set appropriate MTU values when handling jumbo frames or utilizing tunnels. For example, if packets sent from a VM are to be encapsulated on the card and egress a physical port, then the MTU of the VF should be set to lower than that of the physical port to account for the extra bytes added by the additional header. If a setup is expected to see fallback traffic between the SmartNIC and the kernel then the user should also ensure that the PF MTU is appropriately set to avoid unexpected drops on this path.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjI hhubeh}(h]1configure-interface-maximum-transmission-unit-mtuah ]h"]3configure interface maximum transmission unit (mtu)ah$]h&]uh1j[hj hhhhhKubj\)}(hhh](ja)}(h.Configure Forward Error Correction (FEC) modesh]h.Configure Forward Error Correction (FEC) modes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj hhhhhKubj)}(hAgilio SmartNICs support FEC mode configuration, e.g. Auto, Firecode Base-R, ReedSolomon and Off modes. Each physical port's FEC mode can be set independently using ethtool. The supported FEC modes for an interface can be viewed using::h]hAgilio SmartNICs support FEC mode configuration, e.g. Auto, Firecode Base-R, ReedSolomon and Off modes. Each physical port’s FEC mode can be set independently using ethtool. The supported FEC modes for an interface can be viewed using:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj hhubj&)}(h$ ethtool h]h$ ethtool }hj sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhj hhubj)}(h7The currently configured FEC mode can be viewed using::h]h6The currently configured FEC mode can be viewed using:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj hhubj&)}(h$ ethtool --show-fec h]h$ ethtool --show-fec }hj sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhj hhubj)}(hTo force the FEC mode for a particular port, auto-negotiation must be disabled (see the `Auto-negotiation`_ section). An example of how to set the FEC mode to Reed-Solomon is::h](hXTo force the FEC mode for a particular port, auto-negotiation must be disabled (see the }(hj hhhNhNubj)}(h`Auto-negotiation`_h]hAuto-negotiation}(hj hhhNhNubah}(h]h ]h"]h$]h&]nameAuto-negotiationjauto-negotiationuh1jhj jKubhD section). An example of how to set the FEC mode to Reed-Solomon is:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKhj hhubj&)}(h($ ethtool --set-fec encoding rsh]h($ ethtool --set-fec encoding rs}hj sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhj hhubeh}(h],configure-forward-error-correction-fec-modesah ]h"].configure forward error correction (fec) modesah$]h&]uh1j[hj hhhhhKubj\)}(hhh](ja)}(hAuto-negotiationh]hAuto-negotiation}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj hhhhhKubj)}(hTo change auto-negotiation settings, the link must first be put down. After the link is down, auto-negotiation can be enabled or disabled using::h]hTo change auto-negotiation settings, the link must first be put down. After the link is down, auto-negotiation can be enabled or disabled using:}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj hhubj&)}(h$ethtool -s autoneg h]h$ethtool -s autoneg }hj; sbah}(h]h ]h"]h$]h&]hhuh1j%hhhMhj hhubeh}(h]j ah ]h"]auto-negotiationah$]h&]uh1j[hj hhhhhKjKubeh}(h]jah ]h"]configure deviceah$]h&]uh1j[hj]hhhhhKjKubj\)}(hhh](ja)}(h Statisticsh]h Statistics}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjW hhhhhMubj)}(hOFollowing device statistics are available through the ``ethtool -S`` interface:h](h6Following device statistics are available through the }(hjh hhhNhNubhliteral)}(h``ethtool -S``h]h ethtool -S}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1jp hjh ubh interface:}(hjh hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhMhjW hhubhtable)}(hhh](ja)}(hNFP device statisticsh]hNFP device statistics}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hhhM hj ubhtgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1j hj ubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]j)}(hNameh]hName}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM hj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j)}(hIDh]hID}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j)}(hMeaningh]hMeaning}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j hj ubhtbody)}(hhh](j )}(hhh](j )}(hhh]j)}(hdev_rx_discardsh]hdev_rx_discards}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj' ubah}(h]h ]h"]h$]h&]uh1j hj$ ubj )}(hhh]j)}(h1h]h1}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj> ubah}(h]h ]h"]h$]h&]uh1j hj$ ubj )}(hhh](j)}(hHPacket can be discarded on the RX path for one of the following reasons:h]hHPacket can be discarded on the RX path for one of the following reasons:}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhjU ubh block_quote)}(hX* The NIC is not in promisc mode, and the destination MAC address doesn't match the interfaces' MAC address. * The received packet is larger than the max buffer size on the host. I.e. it exceeds the Layer 3 MRU. * There is no freelist descriptor available on the host for the packet. It is likely that the NIC couldn't cache one in time. * A BPF program discarded the packet. * The datapath drop action was executed. * The MAC discarded the packet due to lack of ingress buffer space on the NIC. h]j)}(hhh](j)}(hjThe NIC is not in promisc mode, and the destination MAC address doesn't match the interfaces' MAC address.h]j)}(hjThe NIC is not in promisc mode, and the destination MAC address doesn't match the interfaces' MAC address.h]hnThe NIC is not in promisc mode, and the destination MAC address doesn’t match the interfaces’ MAC address.}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhjo ubah}(h]h ]h"]h$]h&]uh1jhjl ubj)}(hdThe received packet is larger than the max buffer size on the host. I.e. it exceeds the Layer 3 MRU.h]j)}(hdThe received packet is larger than the max buffer size on the host. I.e. it exceeds the Layer 3 MRU.h]hdThe received packet is larger than the max buffer size on the host. I.e. it exceeds the Layer 3 MRU.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjl ubj)}(h{There is no freelist descriptor available on the host for the packet. It is likely that the NIC couldn't cache one in time.h]j)}(h{There is no freelist descriptor available on the host for the packet. It is likely that the NIC couldn't cache one in time.h]h}There is no freelist descriptor available on the host for the packet. It is likely that the NIC couldn’t cache one in time.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjl ubj)}(h#A BPF program discarded the packet.h]j)}(hj h]h#A BPF program discarded the packet.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjl ubj)}(h&The datapath drop action was executed.h]j)}(hj h]h&The datapath drop action was executed.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjl ubj)}(hMThe MAC discarded the packet due to lack of ingress buffer space on the NIC. h]j)}(hLThe MAC discarded the packet due to lack of ingress buffer space on the NIC.h]hLThe MAC discarded the packet due to lack of ingress buffer space on the NIC.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjl ubeh}(h]h ]h"]h$]h&]j*uh1jhhhMhjh ubah}(h]h ]h"]h$]h&]uh1jf hhhMhjU ubeh}(h]h ]h"]h$]h&]uh1j hj$ ubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(h dev_rx_errorsh]h dev_rx_errors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h2h]h2}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM!hj0ubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j)}(hLA packet can be counted (and dropped) as RX error for the following reasons:h]hLA packet can be counted (and dropped) as RX error for the following reasons:}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM"hjGubj)}(hhh](j)}(h9A problem with the VEB lookup (only when SR-IOV is used).h]j)}(hj]h]h9A problem with the VEB lookup (only when SR-IOV is used).}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM%hj[ubah}(h]h ]h"]h$]h&]uh1jhjXubj)}(hA physical layer problem that causes Ethernet errors, like FCS or alignment errors. The cause is usually faulty cables or SFPs. h]j)}(hA physical layer problem that causes Ethernet errors, like FCS or alignment errors. The cause is usually faulty cables or SFPs.h]hA physical layer problem that causes Ethernet errors, like FCS or alignment errors. The cause is usually faulty cables or SFPs.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM&hjrubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]jjuh1jhhhM%hjGubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(h dev_rx_bytesh]h dev_rx_bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM)hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h3h]h3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM*hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(hTotal number of bytes received.h]hTotal number of bytes received.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM+hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_rx_uc_bytesh]hdev_rx_uc_bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM-hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h4h]h4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM.hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(hUnicast bytes received.h]hUnicast bytes received.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM/hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_rx_mc_bytesh]hdev_rx_mc_bytes}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM1hj;ubah}(h]h ]h"]h$]h&]uh1j hj8ubj )}(hhh]j)}(h5h]h5}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM2hjRubah}(h]h ]h"]h$]h&]uh1j hj8ubj )}(hhh]j)}(hMulticast bytes received.h]hMulticast bytes received.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM3hjiubah}(h]h ]h"]h$]h&]uh1j hj8ubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_rx_bc_bytesh]hdev_rx_bc_bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM5hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h6h]h6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM6hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(hBroadcast bytes received.h]hBroadcast bytes received.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM7hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(h dev_rx_pktsh]h dev_rx_pkts}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM9hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h7h]h7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM:hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h!Total number of packets received.h]h!Total number of packets received.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM;hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_rx_mc_pktsh]hdev_rx_mc_pkts}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM=hj%ubah}(h]h ]h"]h$]h&]uh1j hj"ubj )}(hhh]j)}(h8h]h8}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM>hj<ubah}(h]h ]h"]h$]h&]uh1j hj"ubj )}(hhh]j)}(hMulticast packets received.h]hMulticast packets received.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM?hjSubah}(h]h ]h"]h$]h&]uh1j hj"ubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_rx_bc_pktsh]hdev_rx_bc_pkts}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMAhjsubah}(h]h ]h"]h$]h&]uh1j hjpubj )}(hhh]j)}(h9h]h9}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMBhjubah}(h]h ]h"]h$]h&]uh1j hjpubj )}(hhh]j)}(hBroadcast packets received.h]hBroadcast packets received.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMChjubah}(h]h ]h"]h$]h&]uh1j hjpubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_tx_discardsh]hdev_tx_discards}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMEhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h10h]h10}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMFhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(hyA packet can be discarded in the TX direction if the MAC is being flow controlled and the NIC runs out of TX queue space.h]hyA packet can be discarded in the TX direction if the MAC is being flow controlled and the NIC runs out of TX queue space.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMGhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(h dev_tx_errorsh]h dev_tx_errors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMJhjubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j)}(h11h]h11}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMKhj&ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hTA packet can be counted as TX error (and dropped) for one for the following reasons:h]hTA packet can be counted as TX error (and dropped) for one for the following reasons:}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMLhj=ubj)}(hhh](j)}(hzThe packet is an LSO segment, but the Layer 3 or Layer 4 offset could not be determined. Therefore LSO could not continue.h]j)}(hzThe packet is an LSO segment, but the Layer 3 or Layer 4 offset could not be determined. Therefore LSO could not continue.h]hzThe packet is an LSO segment, but the Layer 3 or Layer 4 offset could not be determined. Therefore LSO could not continue.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMOhjQubah}(h]h ]h"]h$]h&]uh1jhjNubj)}(h4An invalid packet descriptor was received over PCIe.h]j)}(hjkh]h4An invalid packet descriptor was received over PCIe.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMQhjiubah}(h]h ]h"]h$]h&]uh1jhjNubj)}(h1The packet Layer 3 length exceeds the device MTU.h]j)}(hjh]h1The packet Layer 3 length exceeds the device MTU.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMRhjubah}(h]h ]h"]h$]h&]uh1jhjNubj)}(hIAn error on the MAC/physical layer. Usually due to faulty cables or SFPs.h]j)}(hIAn error on the MAC/physical layer. Usually due to faulty cables or SFPs.h]hIAn error on the MAC/physical layer. Usually due to faulty cables or SFPs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMShjubah}(h]h ]h"]h$]h&]uh1jhjNubj)}(h$A CTM buffer could not be allocated.h]j)}(hjh]h$A CTM buffer could not be allocated.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMUhjubah}(h]h ]h"]h$]h&]uh1jhjNubj)}(hCThe packet offset was incorrect and could not be fixed by the NIC. h]j)}(hBThe packet offset was incorrect and could not be fixed by the NIC.h]hBThe packet offset was incorrect and could not be fixed by the NIC.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMVhjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]jjuh1jhhhMOhj=ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(h dev_tx_bytesh]h dev_tx_bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMXhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h12h]h12}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMYhj ubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h"Total number of bytes transmitted.h]h"Total number of bytes transmitted.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMZhj!ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_tx_uc_bytesh]hdev_tx_uc_bytes}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM\hjAubah}(h]h ]h"]h$]h&]uh1j hj>ubj )}(hhh]j)}(h13h]h13}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM]hjXubah}(h]h ]h"]h$]h&]uh1j hj>ubj )}(hhh]j)}(hUnicast bytes transmitted.h]hUnicast bytes transmitted.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM^hjoubah}(h]h ]h"]h$]h&]uh1j hj>ubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_tx_mc_bytesh]hdev_tx_mc_bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM`hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h14h]h14}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMahjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(hMulticast bytes transmitted.h]hMulticast bytes transmitted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMbhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_tx_bc_bytesh]hdev_tx_bc_bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMdhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h15h]h15}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMehjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(hBroadcast bytes transmitted.h]hBroadcast bytes transmitted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMfhj ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(h dev_tx_pktsh]h dev_tx_pkts}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhhj+ubah}(h]h ]h"]h$]h&]uh1j hj(ubj )}(hhh]j)}(h16h]h16}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMihjBubah}(h]h ]h"]h$]h&]uh1j hj(ubj )}(hhh]j)}(h$Total number of packets transmitted.h]h$Total number of packets transmitted.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMjhjYubah}(h]h ]h"]h$]h&]uh1j hj(ubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_tx_mc_pktsh]hdev_tx_mc_pkts}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMlhjyubah}(h]h ]h"]h$]h&]uh1j hjvubj )}(hhh]j)*}(h17h]h17}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMmhjubah}(h]h ]h"]h$]h&]uh1j hjvubj )}(hhh]j)}(hMulticast packets transmitted.h]hMulticast packets transmitted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMnhjubah}(h]h ]h"]h$]h&]uh1j hjvubeh}(h]h ]h"]h$]h&]uh1j hj! ubj )}(hhh](j )}(hhh]j)}(hdev_tx_bc_pktsh]hdev_tx_bc_pkts}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMphjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(h18h]h18}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMqhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j)}(hBroadcast packets transmitted.h]hBroadcast packets transmitted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMrhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj! ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]colsKuh1j hj ubeh}(h]id1ah ]h"]h$]h&]uh1j hjW hhhNhNubj)}(hNote that statistics unknown to the driver will be displayed as ``dev_unknown_stat$ID``, where ``$ID`` refers to the second column above.h](h@Note that statistics unknown to the driver will be displayed as }(hj&hhhNhNubjq )}(h``dev_unknown_stat$ID``h]hdev_unknown_stat$ID}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jp hj&ubh, where }(hj&hhhNhNubjq )}(h``$ID``h]h$ID}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jp hj&ubh# refers to the second column above.}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhMthjW hhubeh}(h]jah ]h"] statisticsah$]h&]uh1j[hj]hhhhhMjKubeh}(h])network-flow-processor-nfp-kernel-driversah ]h"]+network flow processor (nfp) kernel driversah$]h&]uh1j[hhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(j`N 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_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _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}(hhjhjjj jj/j#j>j2jMjAj\jPjkj_jzjnjj}jjjjjjjjjjjjjjjjjjjjj.j"j=j1jLj@j[jOjjj^jyjmjj|jjjjjjjjjjjjjjjjjjjjj-j!j<j0jKj?jZjNjij]jxjljj{jjjjjjjjjjjjjjjjjjjjj,j j;j/jJj>jYjMjhj\jwjkjjzjjjjjjjjjjjjjjjjj jjjj+jj:j.jIj=jXjLusubstitution_names}(amphaposjastjbrvbarj bsolj/centj>colonjMcommaj\commatjkcopyjzcurrenjdarrjdegjdividejdollarjequalsjexcljfrac12jfrac14jfrac18jfrac34jfrac38j.frac58j=frac78jLgtj[halfjjhorbarjyhyphenjiexcljiquestjlaquojlarrjlcubjldquojlowbarjlparjlsqbjlsquojltj-microj<middotjKnbspjZnotjinumjxohmjordfjordmjparajpercntjperiodjplusjplusmnjpoundjquestjquotjraquoj,rarrj;rcubjJrdquojYregjhrparjwrsqbjrsquojsectjsemijshyjsoljsungjsup1jsup2jsup3j timesjtradej+uarrj:verbarjIyenjXurefnames}(overview]j aacquiring firmware]j.a devlink info]jQaconfigure device]jta statistics]jaauto-negotiation]j aurefids}nameids}(jdjajjjjjN j=jjjjjzjwjM jJ j j jG jD j j`jT jjF jC j j j j jM j j\ju nametypes}(jdjjjN jjjzjM j jG j jT jF j j jM j\uh}(jaj]jjjjj=jjjzjjjwjjJ j}j jP jD j j`jQ jj jC j j jI j j j j jjW j!j u 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]BDocumentation/networking/device_drivers/ethernet/netronome/nfp.rst(NNNNta decorationNhhub.