【已评审】OCP网卡支持多CPU归属的web界面和webreset接口

背景

产业的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+$"

遗留问题