Meta Platforms 主机网络接口

固件版本

fbnic 在闪存上存储了三个组件,这些组件在一个 PLDM 映像中提供

  1. fw - 控制固件,用于查看和修改固件设置、请求固件操作以及检索数据路径之外的固件计数器。这是 fbnic_fw.c 与之交互的固件。

  2. bootloader - 固件,用于验证固件安全性并控制基本操作,包括加载和更新固件。这也称为 cmrt 固件。

  3. undi - 这是基于 Linux 驱动程序的 UEFI 驱动程序。

fbnic 在闪存上存储了这三个组件的两个副本。这允许 fbnic 在固件无法启动时自动回退到旧版本的固件。两个版本的版本信息都以运行和存储的形式提供。undi 仅以存储的形式提供,因为它在 Linux 驱动程序接管后不会主动运行。

devlink dev info 提供所有三个组件的版本信息。除了版本之外,构建的 hg commit 哈希值也作为单独的条目包含在内。

统计信息

RPC (Rx 解析器)

  • rpc_unkn_etype:包含未知 EtherType 的帧

  • rpc_unkn_ext_hdr:包含未知 IPv6 扩展头的帧

  • rpc_ipv4_frag:包含 IPv4 分片的帧

  • rpc_ipv6_frag:包含 IPv6 分片的帧

  • rpc_ipv4_esp:带有 IPv4 ESP 封装的帧

  • rpc_ipv6_esp:带有 IPv6 ESP 封装的帧

  • rpc_tcp_opt_err:遇到 TCP 选项解析错误的帧

  • rpc_out_of_hdr_err:头部大于可解析区域的帧

  • ovr_size_err:超大帧

PCIe

fbnic 驱动程序通过 debugfs (pcie_stats) 公开 PCIe 硬件性能统计信息。这些统计信息提供了对 PCIe 事务行为和潜在性能瓶颈的见解。

  1. PCIe 事务计数器

    这些计数器跟踪 PCIe 事务活动
    • pcie_ob_rd_tlp:出站读取事务层数据包计数

    • pcie_ob_rd_dword:出站读取事务中传输的 DWORD 数

    • pcie_ob_wr_tlp:出站写入事务层数据包计数

    • pcie_ob_wr_dword:出站写入事务中传输的 DWORD 数

    • pcie_ob_cpl_tlp:出站完成 TLP 计数

    • pcie_ob_cpl_dword:出站完成 TLP 中传输的 DWORD 数

  2. PCIe 资源监控

    这些计数器指示 PCIe 资源耗尽事件
    • pcie_ob_rd_no_tag:由于标签不可用而丢弃的读取请求

    • pcie_ob_rd_no_cpl_cred:由于完成信用耗尽而丢弃的读取请求

    • pcie_ob_rd_no_np_cred:由于非发布信用耗尽而丢弃的读取请求