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]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*}hhsbah}(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\}hjsbah}(h]h ]h"]bsolah$]h&]uh1hhhhK hhhhubh)}(h*.. |cent| unicode:: U+000A2 .. CENT SIGNh]h¢}hjsbah}(h]h ]h"]centah$]h&]uh1hhhhK hhhhubh)}(h&.. |colon| unicode:: U+0003A .. COLONh]h:}hj-sbah}(h]h ]h"]colonah$]h&]uh1hhhhK hhhhubh)}(h&.. |comma| unicode:: U+0002C .. COMMAh]h,}hj<sbah}(h]h ]h"]commaah$]h&]uh1hhhhKhhhhubh)}(h... |commat| unicode:: U+00040 .. COMMERCIAL ATh]h@}hjKsbah}(h]h ]h"]commatah$]h&]uh1hhhhKhhhhubh)}(h/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGNh]h©}hjZsbah}(h]h ]h"]copyah$]h&]uh1hhhhKhhhhubh)}(h... |curren| unicode:: U+000A4 .. CURRENCY SIGNh]h¤}hjisbah}(h]h ]h"]currenah$]h&]uh1hhhhKhhhhubh)}(h0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROWh]h↓}hjxsbah}(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⅜}hjsbah}(h]h ]h"]frac38ah$]h&]uh1hhhhKhhhhubh)}(h=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHSh]h⅝}hjsbah}(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>}hj;sbah}(h]h ]h"]gtah$]h&]uh1hhhhKhhhhubh)}(h9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjJsbah}(h]h ]h"]halfah$]h&]uh1hhhhK hhhhubh)}(h/.. |horbar| unicode:: U+02015 .. HORIZONTAL BARh]h―}hjYsbah}(h]h ]h"]horbarah$]h&]uh1hhhhK!hhhhubh)}(h'.. |hyphen| unicode:: U+02010 .. HYPHENh]h‐}hjhsbah}(h]h ]h"]hyphenah$]h&]uh1hhhhK"hhhhubh)}(h:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARKh]h¡}hjwsbah}(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µ}hjsbah}(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 }hj:sbah}(h]h ]h"]nbspah$]h&]uh1hhhhK0hhhhubh)}(h).. |not| unicode:: U+000AC .. NOT SIGNh]h¬}hjIsbah}(h]h ]h"]notah$]h&]uh1hhhhK1hhhhubh)}(h,.. |num| unicode:: U+00023 .. NUMBER SIGNh]h#}hjXsbah}(h]h ]h"]numah$]h&]uh1hhhhK2hhhhubh)}(h).. |ohm| unicode:: U+02126 .. OHM SIGNh]hΩ}hjgsbah}(h]h ]h"]ohmah$]h&]uh1hhhhK3hhhhubh)}(h;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATORh]hª}hjvsbah}(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→}hjsbah}(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”}hj9sbah}(h]h ]h"]rdquoah$]h&]uh1hhhhKAhhhhubh)}(h0.. |reg| unicode:: U+000AE .. REGISTERED SIGNh]h®}hjHsbah}(h]h ]h"]regah$]h&]uh1hhhhKBhhhhubh)}(h2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESISh]h)}hjWsbah}(h]h ]h"]rparah$]h&]uh1hhhhKChhhhubh)}(h5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKETh]h]}hjfsbah}(h]h ]h"]rsqbah$]h&]uh1hhhhKDhhhhubh)}(h<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARKh]h’}hjusbah}(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™}hj sbah}(h]h ]h"]tradeah$]h&]uh1hhhhKOhhhhubh)}(h... |uarr| unicode:: U+02191 .. UPWARDS ARROWh]h↑}hjsbah}(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¥}hj8sbah}(h]h ]h"]yenah$]h&]uh1hhhhKRhhhhubhsection)}(hhh](htitle)}(h+Network Flow Processor (NFP) Kernel Driversh]h+Network Flow Processor (NFP) Kernel Drivers}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjIhhhhhKubh field_list)}(hhh](hfield)}(hhh](h field_name)}(h Copyrighth]h Copyright}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchhhKubh field_body)}(h$|copy| 2019, Netronome Systems, Inc.h]h paragraph)}(hjzh](h©}(hj~hhhNhNubh 2019, Netronome Systems, Inc.}(hj~hhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhKhjxubah}(h]h ]h"]h$]h&]uh1jvhjcubeh}(h]h ]h"]h$]h&]uh1jahhhKhj^hhubjb)}(hhh](jg)}(h Copyrighth]h Copyright}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhhKubjw)}(h|copy| 2022, Corigine, Inc. h]j})}(h|copy| 2022, Corigine, Inc.h](h©}(hjhhhNhNubh 2022, Corigine, Inc.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhK hjubah}(h]h ]h"]h$]h&]uh1jvhjubeh}(h]h ]h"]h$]h&]uh1jahhhK hj^hhubeh}(h]h ]h"]h$]h&]uh1j\hjIhhhhhKubjH)}(hhh](jM)}(hContentsh]hContents}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK ubh bullet_list)}(hhh](h list_item)}(h `Overview`_h]j})}(hjh]h reference)}(hjh]hOverview}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameOverviewrefidoverviewuh1jhjresolvedKubah}(h]h ]h"]h$]h&]uh1j|hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h`Acquiring Firmware`_h]j})}(hjh]j)}(hjh]hAcquiring Firmware}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameAcquiring Firmwarejacquiring-firmwareuh1jhjjKubah}(h]h ]h"]h$]h&]uh1j|hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h`Devlink Info`_h]j})}(hj8h]j)}(hj8h]h Devlink Info}(hj=hhhNhNubah}(h]h ]h"]h$]h&]name Devlink Infoj devlink-infouh1jhj:jKubah}(h]h ]h"]h$]h&]uh1j|hhhKhj6ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h`Configure Device`_h]j})}(hj[h]j)}(hj[h]hConfigure Device}(hj`hhhNhNubah}(h]h ]h"]h$]h&]nameConfigure Devicejconfigure-deviceuh1jhj]jKubah}(h]h ]h"]h$]h&]uh1j|hhhKhjYubah}(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&]uh1j|hhhKhj|ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhKhjhhubeh}(h]contentsah ]h"]contentsah$]h&]uh1jGhjIhhhhhK ubjH)}(hhh](jM)}(hOverviewh]hOverview}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKubj})}(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&]uh1j|hhhKhjhhubeh}(h]jah ]h"]overviewah$]h&]uh1jGhjIhhhhhK referencedKubjH)}(hhh](jM)}(hAcquiring Firmwareh]hAcquiring Firmware}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKubj})}(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&]uh1j|hhhKhjhhubj})}(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 (}(hjhhhNhNubhtitle_reference)}(h`AMDA-*`h]hAMDA-*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh5 string), media config etc. They should be placed in }(hjhhhNhNubj)}(h`/lib/firmware/netronome`h]h/lib/firmware/netronome}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh6 directory to load firmware from the host file system.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhK#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}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubh repository.}(hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhK'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 }(hjJhhhNhNubj)}(hD`Corigine Support site `_h]hCorigine Support site}(hjRhhhNhNubah}(h]h ]h"]h$]h&]nameCorigine Support siterefuri)https://www.corigine.com/DPUDownload.htmluh1jhjJubhtarget)}(h, h]h}(h]corigine-support-siteah ]h"]corigine support siteah$]h&]refurijcuh1jdjKhjJubh.}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhK*hjhhubjH)}(hhh](jM)}(hFirmware in NVRAMh]hFirmware in NVRAM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj}hhhhhK.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&]uh1j|hhhK0hj}hhubj})}(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&]uh1j|hhhK4hj}hhubj})}(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&]uh1j|hhhK9hj}hhubeh}(h]firmware-in-nvramah ]h"]firmware in nvramah$]h&]uh1jGhjhhhhhK.ubjH)}(hhh](jM)}(hDealing with multiple projectsh]hDealing with multiple projects}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKhjhhubj})}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh% and linking the desired files, e.g.:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhKAhjhhubh 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}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKEhjhhubj})}(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 }(hj!hhhNhNubj)}(h `mkinitrd`h]hmkinitrd}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubh command instead of }(hj!hhhNhNubj)}(h`dracut`h]hdracut}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubh (e.g. Ubuntu).}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhKUhjhhubj})}(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.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKXhjhhubeh}(h]dealing-with-multiple-projectsah ]h"]dealing with multiple projectsah$]h&]uh1jGhjhhhhhK 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:}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKwhj< hhubj)}(h$ ethtool -i h]h$ ethtool -i }hj[ sbah}(h]h ]h"]h$]h&]hhuh1jhhhK{hj< hhubeh}(h]running-firmware-versionah ]h"]running firmware versionah$]h&]uh1jGhjhhhhhKuubjH)}(hhh](jM)}(hFirmware loading policyh]hFirmware loading policy}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjq 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&]uh1j|hhhKhjq 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&]uh1j|hhhKhj 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&]uh1j|hhhKhj 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&]uh1j|hhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hhhKhj hhubeh}(h]h ]h"]h$]h&]uh1j hjq hhhhhNubeh}(h]firmware-loading-policyah ]h"]firmware loading policyah$]h&]uh1jGhjhhhhhK~ubeh}(h]j)ah ]h"]acquiring firmwareah$]h&]uh1jGhjIhhhhhKjKubjH)}(hhh](jM)}(h Devlink Infoh]h Devlink Info}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj= 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.}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj= hhubj})}(h4Devlink info command example (replace PCI address)::h]h3Devlink info command example (replace PCI address):}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj= 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}hjj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj= hhubeh}(h]jLah ]h"] devlink infoah$]h&]uh1jGhjIhhhhhKjKubjH)}(hhh](jM)}(hConfigure Deviceh]hConfigure Device}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj 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&]uh1j|hhhKhj hhubjH)}(hhh](jM)}(hConfigure interface link-speedh]hConfigure interface link-speed}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj 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&]uh1j|hhhKhj hhubj})}(h"Down the respective interface(s)::h]h!Down the respective interface(s):}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj 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&]hhuh1jhhhKhj hhubj})}(h!Set interface link-speed to 10G::h]h Set interface link-speed to 10G:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj 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&]hhuh1jhhhKhj hhubj})}(h!Set interface link-speed to 25G::h]h Set interface link-speed to 25G:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj 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&]hhuh1jhhhKhj 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&]uh1j|hhhKhj hhubj)}(h$ rmmod nfp; modprobe nfph]h$ rmmod nfp; modprobe nfp}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj hhubeh}(h]configure-interface-link-speedah ]h"]configure interface link-speedah$]h&]uh1jGhj hhhhhKubjH)}(hhh](jM)}(h3Configure interface Maximum Transmission Unit (MTU)h]h3Configure interface Maximum Transmission Unit (MTU)}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj5 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.}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj5 hhubj})}(h!Set interface MTU to 9000 bytes::h]h Set interface MTU to 9000 bytes:}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj5 hhubj)}(h($ ip link set dev mtu 9000h]h($ ip link set dev mtu 9000}hjb sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj5 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.}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhKhj5 hhubeh}(h]1configure-interface-maximum-transmission-unit-mtuah ]h"]3configure interface maximum transmission unit (mtu)ah$]h&]uh1jGhj hhhhhKubjH)}(hhh](jM)}(h.Configure Forward Error Correction (FEC) modesh]h.Configure Forward Error Correction (FEC) modes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj 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&]uh1j|hhhKhj hhubj)}(h$ ethtool h]h$ ethtool }hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj 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&]uh1j|hhhKhj hhubj)}(h$ ethtool --show-fec h]h$ ethtool --show-fec }hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj 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&]uh1j|hhhKhj hhubj)}(h($ ethtool --set-fec encoding rsh]h($ ethtool --set-fec encoding rs}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj hhubeh}(h],configure-forward-error-correction-fec-modesah ]h"].configure forward error correction (fec) modesah$]h&]uh1jGhj hhhhhKubjH)}(hhh](jM)}(hAuto-negotiationh]hAuto-negotiation}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj 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&]uh1j|hhhKhj hhubj)}(h$ethtool -s autoneg h]h$ethtool -s autoneg }hj' sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj hhubeh}(h]j ah ]h"]auto-negotiationah$]h&]uh1jGhj hhhhhKjKubeh}(h]joah ]h"]configure deviceah$]h&]uh1jGhjIhhhhhKjKubjH)}(hhh](jM)}(h Statisticsh]h Statistics}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjC hhhhhMubj})}(hOFollowing device statistics are available through the ``ethtool -S`` interface:h](h6Following device statistics are available through the }(hjT hhhNhNubhliteral)}(h``ethtool -S``h]h ethtool -S}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\ hjT ubh interface:}(hjT hhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhMhjC hhubhtable)}(hhh](jM)}(hNFP device statisticsh]hNFP device statistics}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhhhM hjx 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&]uh1j|hhhM hj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j})}(hIDh]hID}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j})}(hMeaningh]hMeaning}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMhj 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&]uh1j|hhhMhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]j})}(h1h]h1}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMhj* 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:}(hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMhjA 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.}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMhj[ ubah}(h]h ]h"]h$]h&]uh1jhjX 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.}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMhjs ubah}(h]h ]h"]h$]h&]uh1jhjX 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&]uh1j|hhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjX 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&]uh1j|hhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjX 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&]uh1j|hhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjX 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&]uh1j|hhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjX ubeh}(h]h ]h"]h$]h&]j*uh1jhhhMhjT ubah}(h]h ]h"]h$]h&]uh1jR hhhMhjA 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&]uh1j|hhhM hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h2h]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM!hjubah}(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:}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM"hj3ubj)}(hhh](j)}(h9A problem with the VEB lookup (only when SR-IOV is used).h]j})}(hjIh]h9A problem with the VEB lookup (only when SR-IOV is used).}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM%hjGubah}(h]h ]h"]h$]h&]uh1jhjDubj)}(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.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM&hj^ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]jj uh1jhhhM%hj3ubeh}(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&]uh1j|hhhM)hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h3h]h3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM*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&]uh1j|hhhM+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&]uh1j|hhhM-hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h4h]h4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM.hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(hUnicast bytes received.h]hUnicast bytes received.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM/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&]uh1j|hhhM1hj'ubah}(h]h ]h"]h$]h&]uh1j hj$ubj )}(hhh]j})}(h5h]h5}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM2hj>ubah}(h]h ]h"]h$]h&]uh1j hj$ubj )}(hhh]j})}(hMulticast bytes received.h]hMulticast bytes received.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM3hjUubah}(h]h ]h"]h$]h&]uh1j hj$ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j})}(hdev_rx_bc_bytesh]hdev_rx_bc_bytes}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM5hjuubah}(h]h ]h"]h$]h&]uh1j hjrubj )}(hhh]j})}(h6h]h6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM6hjubah}(h]h ]h"]h$]h&]uh1j hjrubj )}(hhh]j})}(hBroadcast bytes received.h]hBroadcast bytes received.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM7hjubah}(h]h ]h"]h$]h&]uh1j hjrubeh}(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&]uh1j|hhhM9hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h7h]h7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM: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&]uh1j|hhhM;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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM=hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h8h]h8}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM>hj(ubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(hMulticast packets received.h]hMulticast packets received.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM?hj?ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j})}(hdev_rx_bc_pktsh]hdev_rx_bc_pkts}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMAhj_ubah}(h]h ]h"]h$]h&]uh1j hj\ubj )}(hhh]j})}(h9h]h9}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMBhjvubah}(h]h ]h"]h$]h&]uh1j hj\ubj )}(hhh]j})}(hBroadcast packets received.h]hBroadcast packets received.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMChjubah}(h]h ]h"]h$]h&]uh1j hj\ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j})}(hdev_tx_discardsh]hdev_tx_discards}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMEhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h10h]h10}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMFhjubah}(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&]uh1j|hhhMGhjubah}(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&]uh1j|hhhMJhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h11h]h11}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(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&]uh1j|hhhMLhj)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.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMOhj=ubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(h4An invalid packet descriptor was received over PCIe.h]j})}(hjWh]h4An invalid packet descriptor was received over PCIe.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMQhjUubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(h1The packet Layer 3 length exceeds the device MTU.h]j})}(hjnh]h1The packet Layer 3 length exceeds the device MTU.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMRhjlubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(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&]uh1j|hhhMShjubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(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&]uh1j|hhhMUhjubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(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&]uh1j|hhhMVhjubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]jj uh1jhhhMOhj)ubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(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&]uh1j|hhhMXhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h12h]h12}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMYhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h"Total number of bytes transmitted.h]h"Total number of bytes transmitted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMZhj 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}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM\hj-ubah}(h]h ]h"]h$]h&]uh1j hj*ubj )}(hhh]j})}(h13h]h13}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM]hjDubah}(h]h ]h"]h$]h&]uh1j hj*ubj )}(hhh]j})}(hUnicast bytes transmitted.h]hUnicast bytes transmitted.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM^hj[ubah}(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}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhM`hj{ubah}(h]h ]h"]h$]h&]uh1j hjxubj )}(hhh]j})}(h14h]h14}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMahjubah}(h]h ]h"]h$]h&]uh1j hjxubj )}(hhh]j})}(hMulticast bytes transmitted.h]hMulticast bytes transmitted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMbhjubah}(h]h ]h"]h$]h&]uh1j hjxubeh}(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&]uh1j|hhhMdhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h15h]h15}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMehjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(hBroadcast bytes transmitted.h]hBroadcast bytes transmitted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMfhjubah}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMhhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h16h]h16}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMihj.ubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h$Total number of packets transmitted.h]h$Total number of packets transmitted.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMjhjEubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]j})}(hdev_tx_mc_pktsh]hdev_tx_mc_pkts}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMlhjeubah}(h]h ]h"]h$]h&]uh1j hjbubj )}(hhh]j})}(h17h]h17}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMmhj|ubah}(h]h ]h"]h$]h&]uh1j hjbubj )}(hhh]j})}(hMulticast packets transmitted.h]hMulticast packets transmitted.!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMnhjubah}(h]h ]h"]h$]h&]uh1j hjbubeh}(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&]uh1j|hhhMphjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(h18h]h18}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMqhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]j})}(hBroadcast packets transmitted.h]hBroadcast packets transmitted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j|hhhMrhjubah}(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 hjx ubeh}(h]id1ah ]h"]h$]h&]uh1jv hjC 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 }(hjhhhNhNubj] )}(h``dev_unknown_stat$ID``h]hdev_unknown_stat$ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\ hjubh, where }(hjhhhNhNubj] )}(h``$ID``h]h$ID}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j\ hjubh# refers to the second column above.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j|hhhMthjC hhubeh}(h]jah ]h"] statisticsah$]h&]uh1jGhjIhhhhhMjKubeh}(h])network-flow-processor-nfp-kernel-driversah ]h"]+network flow processor (nfp) kernel driversah$]h&]uh1jGhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jLN 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_handlerjuerror_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}(hhhhhhj jjjj*jj9j-jHj<jWjKjfjZjujijjxjjjjjjjjjjjjjjjjj jjjj)jj8j,jGj;jVjJjejYjtjhjjwjjjjjjjjjjjjjjjjj jjj j(jj7j+jFj:jUjIjdjXjsjgjjvjjjjjjjjjjjjjjjjj jjj j'jj6j*jEj9jTjHjcjWjrjfjjujjjjjjjjjjjjjjjjjjjj j&jj5j)jDj8usubstitution_names}(amphߌaposhasthbrvbarj bsoljcentj*colonj9commajHcommatjWcopyjfcurrenjudarrjdegjdividejdollarjequalsjexcljfrac12jfrac14jfrac18jfrac34j frac38jfrac58j)frac78j8gtjGhalfjVhorbarjehyphenjtiexcljiquestjlaquojlarrjlcubjldquojlowbarjlparjlsqbjlsquoj ltjmicroj(middotj7nbspjFnotjUnumjdohmjsordfjordmjparajpercntjperiodjplusjplusmnjpoundjquestjquotj raquojrarrj'rcubj6rdquojEregjTrparjcrsqbjrrsquojsectjsemijshyjsoljsungjsup1jsup2jsup3jtimesjtradejuarrj&verbarj5yenjDurefnames}(overview]jaacquiring firmware]ja devlink info]j=aconfigure device]j`a statistics]jaauto-negotiation]j aurefids}nameids}(jPjMjjjjj: j)jojljjjfjcj9 j6 jn jk j3 j0 j| jLj@ joj2 j/ j j j j j9 j jHju nametypes}(jPjjj: jojjfj9 jn j3 j| j@ j2 j j j9 jHuh}(jMjIjjjjj)jjljfjj}jcjj6 jijk j< j0 jq jLj= joj j/ j j j5 j j j j jjC j jx 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.