背景
产业的OCP卡管理方案中,需要x16资源可以从2个CPU中出,每个CPU出一个x8,每张卡需要分配多个PCIeFunction以对应不同的CPU。
需要以PCIeFunction而不是PCIeDevice为单位管理root BDF和BDF。
关联ISSUE
https://gitcode.com/openUBMC/pcie_device/issues/45
整体方案
评审点
1、支持web界面显示网卡多RootBDF、多资源归属
2、支持webrest接口显示网卡多RootBDF、多资源归属
3、支持web界面显示PCIe设备多RootBDF、多DevBDF、多资源归属
4、支持webrest接口显示PCIe设备多RootBDF、多DevBDF、多资源归属
详细描述
- 场景1:支持web界面显示网卡多RootBDF、多资源归属
系统信息->网络适配器->总线信息
1、总线信息改为支持多个RootBDF,中间通过英文逗号隔开
2、资源归属改为支持多个CPU,中间通过英文逗号隔开
- 场景2:支持webrest接口显示网卡多RootBDF、多资源归属
方案一:BusInfo原先只会显示1个RootBDF,修改为显示多个RootBDF;AssociatedResource原先只会显示1个CPU,修改为显示多个
URI: /UI/Rest/System/NetworkAdapter/:adapterId
| 字段 | 类型 | 字段说明 |
|---|---|---|
| BusInfo | String | 网卡的RootBDF。默认值为""。支持显示多个RootBDF,中间通过英文逗号隔开,按字典序排序。RootBDF的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| AssociatedResource | String | 网卡的CPU资源归属。默认值为""。支持显示多个CPU资源归属,中间通过英文逗号隔开,按CPU丝印号从小到大排序。CPU资源归属格式为"^CPU\d+$" |
方案二:新增字段RootBDFs,格式为String;新增字段AssociatedResources,格式为String
URI: /UI/Rest/System/NetworkAdapter/:adapterId
| 字段 | 类型 | 字段说明 |
|---|---|---|
| RootBDFs | String | 网卡的RootBDF。默认值为""。支持显示多个RootBDF,中间通过英文逗号隔开,按字典序排序。RootBDF的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| AssociatedResources | String | 网卡的CPU资源归属。默认值为""。支持显示多个CPU资源归属,中间通过英文逗号隔开,按CPU丝印号从小到大排序。CPU资源归属格式为"^CPU\d+$" |
方案三:新增字段RootBDFs,格式为Array;新增字段AssociatedResources,格式为Array
URI: /UI/Rest/System/NetworkAdapter/:adapterId
| 字段 | 类型 | 字段说明 |
|---|---|---|
| RootBDFs | Array | 网卡的RootBDF。默认值为[]。成员为String类型,按字典序排序。成员的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| AssociatedResources | Array | 网卡的CPU资源归属。默认值为[]。成员为String类型,按CPU丝印号从小到大排序。CPU资源归属格式为"^CPU\d+$" |
- 场景3:支持web界面显示PCIe设备多RootBDF、多DevBDF、多资源归属
系统信息->其他->PCIe卡->总线信息/设备总线信息
总线信息/设备总线信息改为支持多个BDF,中间通过英文逗号隔开
- 场景4:支持webrest接口显示PCIe设备多RootBDF、多DevBDF、多资源归属
方案一:RootBDF、DeviceBDF原先只会显示1个,修改为显示多个
URI: UI/Rest/System/Boards/PCIeCard和/UI/Rest/System/Boards/OCPCard
| 字段 | 类型 | 字段说明 |
|---|---|---|
| RootBDF | String | PCIe/OCP卡的RootBDF。默认值为""。支持显示多个RootBDF,中间通过英文逗号隔开,按字典序排序。RootBDF的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| DevBDF | String | PCIe/OCP卡的DevBDF。默认值为""。支持显示多个DevBDF,中间通过英文逗号隔开,按字典序排序。DevBDF的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| PCIeFunction.AssociatedResources | Array | 网卡的CPU资源归属。默认值为[]。支持显示多个CPU,按CPU丝印号从小到大排序,中间通过英文逗号隔开。CPU资源归属格式为"^CPU\d+$" |
方案二:新增字段RootBDFs/DevBDFs,格式为String
URI: UI/Rest/System/Boards/PCIeCard和/UI/Rest/System/Boards/OCPCard
| 字段 | 类型 | 字段说明 |
|---|---|---|
| RootBDFs | String | PCIe/OCP卡的RootBDF。默认值为""。支持显示多个RootBDF,中间通过英文逗号隔开,按字典序排序。RootBDF的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| DevBDFs | String | PCIe/OCP卡的DevBDF。默认值为""。支持显示多个DevBDF,中间通过英文逗号隔开,按字典序排序。DevBDF的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| PCIeFunction.AssociatedResources | Array | 网卡的CPU资源归属。默认值为""。支持显示多个CPU,按CPU丝印号从小到大排序,中间通过英文逗号隔开。CPU资源归属格式为"^CPU\d+$" |
方案三:新增字段RootBDFs/DevBDFs,格式为Array
URI: UI/Rest/System/Boards/PCIeCard和/UI/Rest/System/Boards/OCPCard
| 字段 | 类型 | 字段说明 |
|---|---|---|
| RootBDFs | Array | PCIe/OCP卡的RootBDF。默认值为[]。成员为String类型,按字典序排序。成员的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| DevBDFs | Array | PCIe/OCP卡的DevBDF。默认值为[]。成员为String类型,按字典序排序。成员的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| PCIeFunction.AssociatedResources | Array | 网卡的CPU资源归属。默认值为[]。成员为String类型,按CPU丝印号从小到大排序。CPU资源归属格式为"^CPU\d+$" |
评审结论
1、同意web界面新增支持显示网卡多RootBDF、多资源归属
2、同意webrest接口 /UI/Rest/System/NetworkAdapter/{AdapterId}的GET操作响应新增以下属性:
| 字段 | 类型 | 字段说明 |
|---|---|---|
| RootBDFs | Array | 网卡的RootBDF。默认值为[]。成员为String类型,按字典序排序。成员的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| AssociatedResources | Array | 网卡的CPU资源归属。默认值为[]。成员为String类型,按CPU丝印号从小到大排序。CPU资源归属格式为"^CPU\d+$" |
3、同意web界面新增支持显示PCIe设备多RootBDF、多DevBDF、多资源归属
4、同意webrest接口/UI/Rest/System/Boards/PCIeCard和/UI/Rest/System/Boards/OCPCard下的原有字段PCIeFunctionDate改为PCIeFunction
5、同意webrest接口/UI/Rest/System/Boards/PCIeCard和/UI/Rest/System/Boards/OCPCard的GET操作响应新增以下属性:
| 字段 | 类型 | 字段说明 |
|---|---|---|
| RootBDFs | Array | PCIe/OCP卡的RootBDF。默认值为[]。成员为String类型,按字典序排序。成员的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| DevBDFs | Array | PCIe/OCP卡的DevBDF。默认值为[]。成员为String类型,按字典序排序。成员的格式为"Segment:Bus:Device.Function",Segment取值范围0000~ffff(十六进制小写),Bus取值范围00~ff(十六进制小写),Device取值范围00~1f(十六进制小写),Function取值范围0~7。 |
| PCIeFunction.AssociatedResources | Array | 网卡的CPU资源归属。默认值为[]。成员为String类型,按CPU丝印号从小到大排序。CPU资源归属格式为"^CPU\d+$" |
遗留问题
无

