部件适配-部件驱动 2.0-网卡驱动规范
更新时间: 2026/09/01
在AtomGit上查看源码网卡驱动规范
NOTE
契约 SSOT:dmc/。总览见 3-DeviceMgmtContract.md。 适配实操:4.1 网卡驱动适配指南。
前置阅读:
1. 概述
本规范定义 PCIe 形态网卡(DeviceCategory: PCIeNicCard)南向驱动需实现的对象树与接口组合。部件按契约实现后,可被 devmon 挂载到 /bmc/dev/Systems/.../PCIeNicCard/... 设备树。
设备特有器件通常包括:
- NIC 板卡本身
- 网口(NetworkPort)
- 光口上的光模块(OpticalModule)
入库状态
| 项 | 状态 |
|---|---|
dmc/intf(NetworkAdapter / NetworkPort / OpticalModule / PCIe* / Cooling / Board / Fru / Upgrade) | 已有 |
dmc/path/.../PCIeNicCard/ | 已有 PCIeNicCard/ |
2. 设备树
text
/bmc/dev/Systems/${SystemId}/PCIeNicCard/{NicId}
└── NetworkPort/{PortId}
└── OpticalModule
└── Channel/{ChannelId} # CESA 表37 OpticalTransceiverChannel;DDS 可用 OpticalTransceiverChannel/${ChannelId}| 对象 | path 定义 | 说明 |
|---|---|---|
| PCIeNicCard | PCIeNicCard.json | 网卡主对象 |
| NetworkPort | NetworkPort.json | 网口 |
| OpticalModule | OpticalModule.json | 光模块 |
| OpticalModuleChannel | OpticalModuleChannel.json | 光模块通道(CESA 表37 必选) |
NOTE
命名说明:部分历史 gen 路径使用 PCIeNic,部分 DDS 子对象使用 NicPort / OpticalTransceiver。规范约定主对象名为 PCIeNicCard,子对象为 NetworkPort / OpticalModule。型号 DDS 可继续使用相对路径别名,但接口集合应对齐本规范。
3. 对象–接口矩阵
3.1 PCIeNicCard
| 接口 | 必选/可选 | dmc/intf |
|---|---|---|
bmc.dev.PCIeDevice | 必选 | PCIeDevice.json |
bmc.dev.PCIeDevice.PCIeFunction | 必选 | PCIeDevice/PCIeFunction.json |
bmc.dev.PCIeCard | 必选 | PCIeCard.json |
bmc.dev.NetworkAdapter | 必选 | NetworkAdapter.json |
bmc.dev.Cooling | 必选 | Cooling.json |
bmc.dev.PCIeDevice.Bandwidth | 可选 | PCIeDevice/Bandwidth.json |
bmc.dev.PCIeDevice.HotSwap | 可选 | PCIeDevice/HotSwap.json |
bmc.dev.PCIeDevice.Status / Oem | 可选 | PCIeDevice/ |
bmc.dev.NetworkAdapter.FaultStatus | 可选 | NetworkAdapter/FaultStatus.json |
bmc.dev.NetworkAdapter.LogCollection | 可选 | NetworkAdapter/LogCollection.json |
bmc.dev.NetworkAdapter.Oem | 可选 | NetworkAdapter/Oem.json |
bmc.dev.NetworkAdapter.Fru | 可选 | NetworkAdapter/Fru.json |
bmc.dev.NetworkAdapter.Update | 可选 | NetworkAdapter/Update.json |
bmc.dev.PCIeCard.Oem | 可选 | PCIeCard/Oem.json |
bmc.dev.PCIeCard.Metrics | 可选 | PCIeCard/Metrics.json |
bmc.dev.Board | 必选(CESA 表34) | Board.json |
bmc.dev.Fru | 可选 | Fru.json |
bmc.dev.Upgrade | 可选 | Upgrade.json |
NOTE
散热使用共享接口 bmc.dev.Cooling,不是 bmc.dev.NetworkAdapter.Cooling。
3.2 NetworkPort
| 接口 | 必选/可选 | dmc/intf |
|---|---|---|
bmc.dev.NetworkPort | 必选 | NetworkPort.json |
bmc.dev.NetworkPort.LinkInfo | 必选 | NetworkPort/LinkInfo.json |
bmc.dev.NetworkPort.Metrics | 可选 | NetworkPort/Metrics.json |
bmc.dev.NetworkPort.LLDPReceive | 可选 | NetworkPort/LLDPReceive.json |
bmc.dev.NetworkPort.DataCenterBridging | 可选 | NetworkPort/DataCenterBridging.json |
bmc.dev.NetworkPort.FibreChannel | 可选 | NetworkPort/FibreChannel.json |
bmc.dev.NetworkPort.Oem | 可选 | NetworkPort/Oem.json |
bmc.dev.NetworkPort.LinkInfo.LinkStatus按 CESA 表148 为可写。
3.3 OpticalModule
| 接口 | 必选/可选 | dmc/intf |
|---|---|---|
bmc.dev.OpticalModule | 必选 | OpticalModule.json |
bmc.dev.Cooling | 必选 | Cooling.json |
bmc.dev.OpticalModule.Status | 可选 | OpticalModule/Status.json |
bmc.dev.OpticalModule.TemperatureCelsius / Voltage / Power / Current | 可选 | OpticalModule/ |
bmc.dev.OpticalModule.Diagnose | 可选 | OpticalModule/Diagnose.json |
bmc.dev.OpticalModule.Oem | 可选 | OpticalModule/Oem.json |
3.4 OpticalModuleChannel
| 接口 | 必选/可选 | dmc/intf |
|---|---|---|
bmc.dev.OpticalModule.Channel | 必选(CESA 表37) | OpticalModule/Channel.json |
通道是独立子对象,不挂在 OpticalModule 主对象上。规范属性名为 BiasCurrentMilliAmps;现网驱动仍用 TXBiasCurrentMilliAmps,dmc/gen 同时保留。
已入库接口的属性与方法细节请直接打开上表 intf 链接。
4. 相关文档
- 3-DeviceMgmtContract.md
- 4.1 网卡驱动适配指南
- [4.7 使用 openUBMC Studio 进行网卡适配](https://gitcode.com/openUBMC/component_drivers/blob/main/docs/4.7-使用openUBMC Studio进行网卡适配.md)
5. 历史 RFC
- 社区公示(历史参考):openUBMC 讨论区 若与本仓库
dmc冲突,以dmc为准。