Meta Platforms Host Network Interface¶
Firmware Versions¶
fbnic has three components stored on the flash which are provided in one PLDM image:
fw - 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.
bootloader - The firmware which validate firmware security and control basic operations including loading and updating the firmware. This is also known as the cmrt firmware.
undi - This is the UEFI driver which is based on the Linux driver.
fbnic 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.
devlink 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.
Statistics¶
RPC (Rx parser)¶
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
PCIe¶
The fbnic driver exposes PCIe hardware performance statistics through debugfs
(pcie_stats
). These statistics provide insights into PCIe transaction
behavior and potential performance bottlenecks.
PCIe Transaction Counters:
- These counters track PCIe transaction activity:
pcie_ob_rd_tlp
: Outbound read Transaction Layer Packets countpcie_ob_rd_dword
: DWORDs transferred in outbound read transactionspcie_ob_wr_tlp
: Outbound write Transaction Layer Packets countpcie_ob_wr_dword
: DWORDs transferred in outbound write transactionspcie_ob_cpl_tlp
: Outbound completion TLP countpcie_ob_cpl_dword
: DWORDs transferred in outbound completion TLPs
PCIe Resource Monitoring:
- These counters indicate PCIe resource exhaustion events:
pcie_ob_rd_no_tag
: Read requests dropped due to tag unavailabilitypcie_ob_rd_no_cpl_cred
: Read requests dropped due to completion credit exhaustionpcie_ob_rd_no_np_cred
: Read requests dropped due to non-posted credit exhaustion