部件适配-部件驱动 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 定义说明
PCIeNicCardPCIeNicCard.json网卡主对象
NetworkPortNetworkPort.json网口
OpticalModuleOpticalModule.json光模块
OpticalModuleChannelOpticalModuleChannel.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. 相关文档

5. 历史 RFC

  • 社区公示(历史参考):openUBMC 讨论区 若与本仓库 dmc 冲突,以 dmc 为准。