華為智慧網絡卡 (HiNIC) 系列的 Linux 核心驅動程式¶
概述:¶
HiNIC 是用於資料中心區域的網絡卡。
該驅動程式支援一系列鏈路速度裝置(10GbE、25GbE、40GbE 等)。該驅動程式還支援協商的和可擴充套件的功能集。
一些 HiNIC 裝置支援 SR-IOV。此驅動程式用於物理功能 (PF)。
HiNIC 裝置為每個 Tx/Rx 佇列和自適應中斷緩和支援 MSI-X 中斷向量。
HiNIC 裝置還支援各種解除安裝功能,例如校驗和解除安裝、TCP 傳輸分段解除安裝 (TSO)、接收端縮放 (RSS) 和 LRO(大接收解除安裝)。
支援的 PCI 供應商 ID/裝置 ID:¶
19e5:1822 - HiNIC PF
驅動程式架構和原始碼:¶
hinic_dev - 實現一個邏輯網路裝置,該裝置獨立於有關硬體資料結構格式的特定硬體細節。
hinic_hwdev - 實現裝置的硬體細節,幷包括用於訪問 PCI NIC 的元件。
hinic_hwdev 包含以下元件:¶
硬體介面:¶
用於訪問 pci 裝置(DMA 記憶體和 PCI BAR)的介面。(hinic_hw_if.c,hinic_hw_if.h)
配置狀態暫存器區域,描述配置和狀態 BAR0 上的硬體暫存器。(hinic_hw_csr.h)
MGMT 元件:¶
非同步事件佇列 (AEQ) - 用於接收來自卡上 MGMT 模組的訊息的事件佇列。(hinic_hw_eqs.c, hinic_hw_eqs.h)
應用程式可程式設計介面命令 (API CMD) - 用於向卡傳送 MGMT 命令的介面。(hinic_hw_api_cmd.c, hinic_hw_api_cmd.h)
管理 (MGMT) - PF 到 MGMT 通道,使用 API CMD 向卡傳送 MGMT 命令,並透過 AEQ 接收來自卡上 MGMT 模組的通知。還設定硬體中的 IO CMDQ 的地址。(hinic_hw_mgmt.c, hinic_hw_mgmt.h)
IO 元件:¶
完成事件佇列 (CEQ) - 描述已完成 IO 任務的完成事件佇列。(hinic_hw_eqs.c, hinic_hw_eqs.h)
工作佇列 (WQ) - 包含 CMD 佇列和佇列對使用的記憶體和操作。 WQ 是頁面中的記憶體塊。該塊包含指向記憶體區域的指標,這些記憶體區域是工作佇列元素 (WQE) 的記憶體。(hinic_hw_wq.c, hinic_hw_wq.h)
命令佇列 (CMDQ) - 用於傳送 IO 管理命令的佇列,用於設定硬體中的 QP 地址。命令完成事件累積在 CEQ 上,CEQ 配置為接收 CMDQ 完成事件。(hinic_hw_cmdq.c, hinic_hw_cmdq.h)
佇列對 (QP) - 用於接收和傳送資料的硬體接收和傳送佇列。(hinic_hw_qp.c, hinic_hw_qp.h, hinic_hw_qp_ctxt.h)
IO - 解構/構造所有 IO 元件。(hinic_hw_io.c, hinic_hw_io.h)
硬體裝置:¶
硬體裝置 - 在驅動程式初始化時解構/構造硬體介面、MGMT 元件,在介面 UP/DOWN 事件的情況下解構/構造 IO 元件。(hinic_hw_dev.c, hinic_hw_dev.h)
hinic_dev 包含以下元件:¶
PCI ID 表 - 包含支援的 PCI 供應商/裝置 ID。(hinic_pci_tbl.h)
埠命令 - 向硬體裝置傳送埠管理命令(MAC、Vlan、MTU 等)。(hinic_port.c, hinic_port.h)
Tx 佇列 - 使用硬體傳送佇列進行傳輸的邏輯 Tx 佇列。邏輯 Tx 佇列不依賴於硬體傳送佇列的格式。(hinic_tx.c, hinic_tx.h)
Rx 佇列 - 使用硬體接收佇列進行接收的邏輯 Rx 佇列。邏輯 Rx 佇列不依賴於硬體接收佇列的格式。(hinic_rx.c, hinic_rx.h)
hinic_dev - 解構/構造邏輯 Tx 和 Rx 佇列。(hinic_main.c, hinic_dev.h)
雜項¶
硬體和邏輯裝置使用的公共函式。(hinic_common.c, hinic_common.h)
支援¶
如果在受支援核心的已釋出原始碼中發現受支援介面卡存在問題,請將與該問題相關的具體資訊透過電子郵件傳送至 aviad.krawczyk@huawei.com。