Psphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftargetA/translations/zh_CN/networking/device_drivers/ethernet/meta/fbnicmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetA/translations/zh_TW/networking/device_drivers/ethernet/meta/fbnicmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetA/translations/it_IT/networking/device_drivers/ethernet/meta/fbnicmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetA/translations/ja_JP/networking/device_drivers/ethernet/meta/fbnicmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetA/translations/ko_KR/networking/device_drivers/ethernet/meta/fbnicmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetA/translations/sp_SP/networking/device_drivers/ethernet/meta/fbnicmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h!SPDX-License-Identifier: GPL-2.0+h]h!SPDX-License-Identifier: GPL-2.0+}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh[/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/ethernet/meta/fbnic.rsthKubhsection)}(hhh](htitle)}(h%Meta Platforms Host Network Interfaceh]h%Meta Platforms Host Network Interface}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hFirmware Versionsh]hFirmware Versions}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hTfbnic has three components stored on the flash which are provided in one PLDM image:h]hTfbnic has three components stored on the flash which are provided in one PLDM image:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubhenumerated_list)}(hhh](h list_item)}(hfw - The control firmware used to view and modify firmware settings, request firmware actions, and retrieve firmware counters outside of the data path. This is the firmware which fbnic_fw.c interacts with.h]h)}(hfw - The control firmware used to view and modify firmware settings, request firmware actions, and retrieve firmware counters outside of the data path. This is the firmware which fbnic_fw.c interacts with.h]hfw - The control firmware used to view and modify firmware settings, request firmware actions, and retrieve firmware counters outside of the data path. This is the firmware which fbnic_fw.c interacts with.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hbootloader - The firmware which validate firmware security and control basic operations including loading and updating the firmware. This is also known as the cmrt firmware.h]h)}(hbootloader - The firmware which validate firmware security and control basic operations including loading and updating the firmware. This is also known as the cmrt firmware.h]hbootloader - The firmware which validate firmware security and control basic operations including loading and updating the firmware. This is also known as the cmrt firmware.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hCundi - This is the UEFI driver which is based on the Linux driver. h]h)}(hBundi - This is the UEFI driver which is based on the Linux driver.h]hBundi - This is the UEFI driver which is based on the Linux driver.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj!ubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix.uh1hhhhhhhhK ubh)}(hXLfbnic stores two copies of these three components on flash. This allows fbnic to fall back to an older version of firmware automatically in case firmware fails to boot. Version information for both is provided as running and stored. The undi is only provided in stored as it is not actively running once the Linux driver takes over.h]hXLfbnic stores two copies of these three components on flash. This allows fbnic to fall back to an older version of firmware automatically in case firmware fails to boot. Version information for both is provided as running and stored. The undi is only provided in stored as it is not actively running once the Linux driver takes over.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hdevlink dev info provides version information for all three components. In addition to the version the hg commit hash of the build is included as a separate entry.h]hdevlink dev info provides version information for all three components. In addition to the version the hg commit hash of the build is included as a separate entry.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]firmware-versionsah ]h"]firmware versionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Statisticsh]h Statistics}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhhK ubh)}(hhh](h)}(hRPC (Rx parser)h]hRPC (Rx parser)}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhhhhhK#ubh block_quote)}(hX- ``rpc_unkn_etype``: frames containing unknown EtherType - ``rpc_unkn_ext_hdr``: frames containing unknown IPv6 extension header - ``rpc_ipv4_frag``: frames containing IPv4 fragment - ``rpc_ipv6_frag``: frames containing IPv6 fragment - ``rpc_ipv4_esp``: frames with IPv4 ESP encapsulation - ``rpc_ipv6_esp``: frames with IPv6 ESP encapsulation - ``rpc_tcp_opt_err``: frames which encountered TCP option parsing error - ``rpc_out_of_hdr_err``: frames where header was larger than parsable region - ``ovr_size_err``: oversized frames h]h bullet_list)}(hhh](h)}(h7``rpc_unkn_etype``: frames containing unknown EtherTypeh]h)}(hjh](hliteral)}(h``rpc_unkn_etype``h]hrpc_unkn_etype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh%: frames containing unknown EtherType}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1hhjubh)}(hE``rpc_unkn_ext_hdr``: frames containing unknown IPv6 extension headerh]h)}(hjh](j)}(h``rpc_unkn_ext_hdr``h]hrpc_unkn_ext_hdr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh1: frames containing unknown IPv6 extension header}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1hhjubh)}(h2``rpc_ipv4_frag``: frames containing IPv4 fragmenth]h)}(hjh](j)}(h``rpc_ipv4_frag``h]h rpc_ipv4_frag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh!: frames containing IPv4 fragment}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1hhjubh)}(h2``rpc_ipv6_frag``: frames containing IPv6 fragmenth]h)}(hjh](j)}(h``rpc_ipv6_frag``h]h rpc_ipv6_frag}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh!: frames containing IPv6 fragment}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1hhjubh)}(h4``rpc_ipv4_esp``: frames with IPv4 ESP encapsulationh]h)}(hj-h](j)}(h``rpc_ipv4_esp``h]h rpc_ipv4_esp}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubh$: frames with IPv4 ESP encapsulation}(hj/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK)hj+ubah}(h]h ]h"]h$]h&]uh1hhjubh)}(h4``rpc_ipv6_esp``: frames with IPv6 ESP encapsulationh]h)}(hjRh](j)}(h``rpc_ipv6_esp``h]h rpc_ipv6_esp}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubh$: frames with IPv6 ESP encapsulation}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK*hjPubah}(h]h ]h"]h$]h&]uh1hhjubh)}(hF``rpc_tcp_opt_err``: frames which encountered TCP option parsing errorh]h)}(hjwh](j)}(h``rpc_tcp_opt_err``h]hrpc_tcp_opt_err}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh3: frames which encountered TCP option parsing error}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK+hjuubah}(h]h ]h"]h$]h&]uh1hhjubh)}(hK``rpc_out_of_hdr_err``: frames where header was larger than parsable regionh]h)}(hjh](j)}(h``rpc_out_of_hdr_err``h]hrpc_out_of_hdr_err}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh5: frames where header was larger than parsable region}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1hhjubh)}(h#``ovr_size_err``: oversized frames h]h)}(h"``ovr_size_err``: oversized framesh](j)}(h``ovr_size_err``h]h ovr_size_err}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: oversized frames}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhK%hjubah}(h]h ]h"]h$]h&]uh1jhhhK%hjyhhubeh}(h] rpc-rx-parserah ]h"]rpc (rx parser)ah$]h&]uh1hhjhhhhhhK#ubh)}(hhh](h)}(hPCIeh]hPCIe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK0ubh)}(hThe fbnic driver exposes PCIe hardware performance statistics through debugfs (``pcie_stats``). These statistics provide insights into PCIe transaction behavior and potential performance bottlenecks.h](hOThe fbnic driver exposes PCIe hardware performance statistics through debugfs (}(hj hhhNhNubj)}(h``pcie_stats``h]h pcie_stats}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhj). These statistics provide insights into PCIe transaction behavior and potential performance bottlenecks.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK2hjhhubh)}(hhh](h)}(hX PCIe Transaction Counters: These counters track PCIe transaction activity: - ``pcie_ob_rd_tlp``: Outbound read Transaction Layer Packets count - ``pcie_ob_rd_dword``: DWORDs transferred in outbound read transactions - ``pcie_ob_wr_tlp``: Outbound write Transaction Layer Packets count - ``pcie_ob_wr_dword``: DWORDs transferred in outbound write transactions - ``pcie_ob_cpl_tlp``: Outbound completion TLP count - ``pcie_ob_cpl_dword``: DWORDs transferred in outbound completion TLPs h](h)}(hPCIe Transaction Counters:h]hPCIe Transaction Counters:}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hj/ubhdefinition_list)}(hhh]hdefinition_list_item)}(hXThese counters track PCIe transaction activity: - ``pcie_ob_rd_tlp``: Outbound read Transaction Layer Packets count - ``pcie_ob_rd_dword``: DWORDs transferred in outbound read transactions - ``pcie_ob_wr_tlp``: Outbound write Transaction Layer Packets count - ``pcie_ob_wr_dword``: DWORDs transferred in outbound write transactions - ``pcie_ob_cpl_tlp``: Outbound completion TLP count - ``pcie_ob_cpl_dword``: DWORDs transferred in outbound completion TLPs h](hterm)}(h/These counters track PCIe transaction activity:h]h/These counters track PCIe transaction activity:}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhhhK?hjHubh definition)}(hhh]j)}(hhh](h)}(hA``pcie_ob_rd_tlp``: Outbound read Transaction Layer Packets counth]h)}(hjfh](j)}(h``pcie_ob_rd_tlp``h]hpcie_ob_rd_tlp}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubh/: Outbound read Transaction Layer Packets count}(hjhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK9hjdubah}(h]h ]h"]h$]h&]uh1hhjaubh)}(hF``pcie_ob_rd_dword``: DWORDs transferred in outbound read transactionsh]h)}(hjh](j)}(h``pcie_ob_rd_dword``h]hpcie_ob_rd_dword}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh2: DWORDs transferred in outbound read transactions}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK:hjubah}(h]h ]h"]h$]h&]uh1hhjaubh)}(hB``pcie_ob_wr_tlp``: Outbound write Transaction Layer Packets counth]h)}(hjh](j)}(h``pcie_ob_wr_tlp``h]hpcie_ob_wr_tlp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh0: Outbound write Transaction Layer Packets count}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK;hjubah}(h]h ]h"]h$]h&]uh1hhjaubh)}(hG``pcie_ob_wr_dword``: DWORDs transferred in outbound write transactionsh]h)}(hG``pcie_ob_wr_dword``: DWORDs transferred in outbound write transactionsh](j)}(h``pcie_ob_wr_dword``h]hpcie_ob_wr_dword}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh3: DWORDs transferred in outbound write transactions}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjaubh)}(hF``pcie_ob_cpl_dword``: DWORDs transferred in outbound completion TLPs h]h)}(hE``pcie_ob_cpl_dword``: DWORDs transferred in outbound completion TLPsh](j)}(h``pcie_ob_cpl_dword``h]hpcie_ob_cpl_dword}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubh0: DWORDs transferred in outbound completion TLPs}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK?hjubah}(h]h ]h"]h$]h&]uh1hhjaubeh}(h]h ]h"]h$]h&]jjuh1jhhhK9hj^ubah}(h]h ]h"]h$]h&]uh1j\hjHubeh}(h]h ]h"]h$]h&]uh1jFhhhK?hjCubah}(h]h ]h"]h$]h&]uh1jAhj/ubeh}(h]h ]h"]h$]h&]uh1hhj,hhhNhNubh)}(hXhPCIe Resource Monitoring: These counters indicate PCIe resource exhaustion events: - ``pcie_ob_rd_no_tag``: Read requests dropped due to tag unavailability - ``pcie_ob_rd_no_cpl_cred``: Read requests dropped due to completion credit exhaustion - ``pcie_ob_rd_no_np_cred``: Read requests dropped due to non-posted credit exhaustionh](h)}(hPCIe Resource Monitoring:h]hPCIe Resource Monitoring:}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjbubjB)}(hhh]jG)}(hX4These counters indicate PCIe resource exhaustion events: - ``pcie_ob_rd_no_tag``: Read requests dropped due to tag unavailability - ``pcie_ob_rd_no_cpl_cred``: Read requests dropped due to completion credit exhaustion - ``pcie_ob_rd_no_np_cred``: Read requests dropped due to non-posted credit exhaustionh](jM)}(h8These counters indicate PCIe resource exhaustion events:h]h8These counters indicate PCIe resource exhaustion events:}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhhhKGhjwubj])}(hhh]j)}(hhh](h)}(hF``pcie_ob_rd_no_tag``: Read requests dropped due to tag unavailabilityh]h)}(hjh](j)}(h``pcie_ob_rd_no_tag``h]hpcie_ob_rd_no_tag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh1: Read requests dropped due to tag unavailability}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKDhjubah}(h]h ]h"]h$]h&]uh1hhjubh)}(hU``pcie_ob_rd_no_cpl_cred``: Read requests dropped due to completion credit exhaustionh]h)}(hU``pcie_ob_rd_no_cpl_cred``: Read requests dropped due to completion credit exhaustionh](j)}(h``pcie_ob_rd_no_cpl_cred``h]hpcie_ob_rd_no_cpl_cred}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh;: Read requests dropped due to completion credit exhaustion}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKEhjubah}(h]h ]h"]h$]h&]uh1hhjubh)}(hT``pcie_ob_rd_no_np_cred``: Read requests dropped due to non-posted credit exhaustionh]h)}(hT``pcie_ob_rd_no_np_cred``: Read requests dropped due to non-posted credit exhaustionh](j)}(h``pcie_ob_rd_no_np_cred``h]hpcie_ob_rd_no_np_cred}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh;: Read requests dropped due to non-posted credit exhaustion}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKGhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhKDhjubah}(h]h ]h"]h$]h&]uh1j\hjwubeh}(h]h ]h"]h$]h&]uh1jFhhhKGhjtubah}(h]h ]h"]h$]h&]uh1jAhjbubeh}(h]h ]h"]h$]h&]uh1hhj,hhhNhNubeh}(h]h ]h"]h$]h&]j?j@jAhjBjCuh1hhjhhhhhK6ubeh}(h]pcieah ]h"]pcieah$]h&]uh1hhjhhhhhhK0ubeh}(h] statisticsah ]h"] statisticsah$]h&]uh1hhhhhhhhK ubeh}(h]%meta-platforms-host-network-interfaceah ]h"]%meta platforms host network interfaceah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj_error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j9j6jejbj1j.jjj)j&u nametypes}(j9jej1jj)uh}(j6hjbhj.jhjjyj&ju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.