CSR配置字典之EthDevice类
更新时间: 2026/06/22
在Gitcode上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | EthDevice类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2026-06-22 |
| 最后更新 | 2026-06-22 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2026-06-22 | 初始版本 | 创建EthDevice类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
EthDevice 类
| 属性 | 值 |
|---|---|
| 类名称 | EthDevice |
| 功能描述 | 网口设备配置对象 |
| 所属SIG组 | system |
| 所属组件 | 网络设备管理 |
| 责任人 | 系统架构组 |
| 最后更新 | 2026-06-22 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
PortId | U8 | 无 | 0~255 | - | 口的物理编号,每张网卡从0开始 | 标识网口物理编号 | 0 | CSR配置 | 软件 |
LaneId | U8 | 无 | 0~255 | - | 口的逻辑lane编号,每张网卡从0开始 | 标识网口逻辑lane编号 | 0 | CSR配置 | 软件 |
Segment | U8 | 无 | 0~255 | - | 多PCI Bridge场景编号 | 多PCI Bridge场景下标识编号 | 0 | CSR配置 | 软件 |
SocketID | U8 | 无 | 0~255 | - | 网卡对应的CPU ID | 标识网口对应的CPU | 0 | CSR配置 | 软件 |
ControllerIndex | U8 | 无 | 0~255 | - | 网卡对应的Eth控制器ID | 标识网口对应的Eth控制器 | 0 | CSR配置 | 软件 |
可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
Bus | U8 | 255 | 0~255 | - | 网口设备的Bus | 标识网口设备的Bus号 | 255 | CSR配置 | 软件 |
Device | U8 | 255 | 0~255 | - | 网口设备的Device | 标识网口设备的Device号 | 255 | CSR配置 | 软件 |
Function | U8 | 255 | 0~255 | - | 网口设备的Function | 标识网口设备的Function号 | 255 | CSR配置 | 软件 |
PortFunctionId | U8 | 255 | 0~255 | - | 口设备的PortFunctionId | 标识口设备的PortFunctionId | 255 | CSR配置 | 软件 |
🔗 动态关联机制
语法规范
EthDevice类属性均为静态配置属性,无动态关联机制。
关联说明
- 无动态关联:EthDevice类所有属性均通过CSR配置直接赋值,不依赖Scanner、Accessor或Component关联
- SHM共享:Bus、Device、Function、PortFunctionId同时用于CSR和SHM场景,支持跨进程共享
📂 分类标准
硬件属性
- 无硬件属性:EthDevice类不含直接从硬件获取或控制硬件的参数
软件属性
- 定义:用于软件层面的网口设备管理和配置
- 特点:包含端口标识、逻辑编号、PCI地址映射等功能
- 示例:
PortId,LaneId,Segment,SocketID,ControllerIndex,Bus,Device,Function,PortFunctionId
📝 配置示例
标准网口设备配置
json
{
"EthDevice": {
"PortId": 0,
"LaneId": 0,
"Segment": 0,
"SocketID": 0,
"ControllerIndex": 0,
"Bus": 3,
"Device": 0,
"Function": 0,
"PortFunctionId": 1
}
}多网口配置(Port1)
json
{
"EthDevice_Port1": {
"PortId": 1,
"LaneId": 1,
"Segment": 0,
"SocketID": 0,
"ControllerIndex": 0,
"Bus": 3,
"Device": 0,
"Function": 1,
"PortFunctionId": 2
}
}多PCI Bridge场景配置
json
{
"EthDevice_MultiBridge": {
"PortId": 0,
"LaneId": 0,
"Segment": 1,
"SocketID": 1,
"ControllerIndex": 1,
"Bus": 5,
"Device": 1,
"Function": 0,
"PortFunctionId": 1
}
}最小化网口设备配置
json
{
"EthDevice_Minimal": {
"PortId": 0,
"LaneId": 0,
"Segment": 0,
"SocketID": 0,
"ControllerIndex": 0
}
}🔧 使用指南
配置步骤
- 设置端口标识:配置PortId、LaneId
- 配置PCI Bridge:设置Segment标识多PCI Bridge场景编号
- 设置CPU关联:配置SocketID标识网口对应的CPU
- 配置控制器:设置ControllerIndex标识Eth控制器
- 可选配置:根据需要配置Bus、Device、Function、PortFunctionId等PCI地址信息
注意事项
- 路径格式:对象路径为
/bmc/kepler/Systems/${SystemId}/PCIeDevices/EthDevices/${Id} - 权限要求:访问需ConfigureSelf权限
- 编号起点:PortId和LaneId每张网卡从0开始编号
- 默认值含义:Bus、Device、Function、PortFunctionId默认值为255,表示未指定PCI地址信息
- SHM共享:Bus、Device、Function、PortFunctionId同时用于CSR和SHM场景
性能建议
- 端口编号:确保PortId和LaneId在同一网卡内连续编号
- PCI地址:配置准确的Bus、Device、Function以便PCI设备寻址
- 多Bridge场景:合理设置Segment以区分不同PCI Bridge下的网口设备
- 资源优化:最小化配置时可仅配置必选属性
ID体系说明
- PortId (0-255): 网口物理编号,每张网卡从0开始
- LaneId (0-255): 网口逻辑lane编号,每张网卡从0开始
- Segment (0-255): 多PCI Bridge场景编号
- SocketID (0-255): 网卡对应的CPU ID
- ControllerIndex (0-255): 网卡对应的Eth控制器ID
- Bus/Device/Function: PCI设备地址的三元组标识,默认255表示未指定
常见问题
- Q: PortId和LaneId有什么区别?
- A: PortId是口的物理编号,LaneId是口的逻辑lane编号,两者每张网卡均从0开始独立编号
- Q: Bus、Device、Function默认值为什么是255?
- A: 255是U8类型的最大值,作为未指定PCI地址信息时的占位默认值
- Q: Segment在什么场景下使用?
- A: Segment在多PCI Bridge场景下使用,用于区分不同PCI Bridge下的网口设备
- Q: CSR和SHM的区别是什么?
- A: Bus、Device、Function、PortFunctionId同时用于CSR(配置存储)和SHM(共享内存)场景,支持跨进程共享配置