网卡CSR1.0配置指导

本文档主要介绍如何适配一张网卡的CSR(这里的1.0指的是走非南向设备树机制),这里以一张SP680网卡举例,详细介绍涉及的对象,属性如何配置;

文件名定义

  • 非天池加载:Bom_Id_AuxId.sr
    通常PCIe标卡,OCP网卡,sdi/dpu,其中:
    Bom:14220247-ocp卡,14140130-标卡/sdi/dpu
    Id:由网卡的VendorID + DeviceID拼接而成
    AuxId:由网卡的SubsystemVendorID + SubsystemDeviceID拼接而成,
    例如SP680网卡的文件名为14140130_19e50222_19e50052.sr

  • 天池加载:Bom_Id.sr
    通常是NIC卡和板载网卡,其中:
    Bom: 14220246
    Id: 从eeprom中读取
    例如SF221Q网卡的文件名为14220246_00000001100302023955.sr

涉及对象及属性配置

硬件拓扑对象

配置网卡的总线,chip相关信息,每种型号的网卡可能有所差异,这是通用的CSR硬件拓扑配置机制,具体配置方法参考CSR相关知识硬件自描述文件(CSR) | 文档中心 | openUBMC

    "ManagementTopology": {
        "Anchor": {
            "Buses": [
                "I2cMux_9545Chan3"
            ]
        },
        "I2cMux_9545Chan3": {
            "Chips": [
                "Chip_Hi1822",
                "Pca9555_PCIe",
                "Eeprom_NetCard"
            ]
        }
    }

硬件芯片对象

以下对象也是每个网卡存在对应的芯片才需要配置

       //1822芯片
       "Chip_Hi1822": {
            "OffsetWidth": 0,
            "AddrWidth": 1,
            "Address": 232,
            "WriteTmout": 100,
            "ReadTmout": 100,
            "HealthStatus": 0,
            "WriteRetryTimes": 2,
            "ReadRetryTimes": 0
        },
       //Pca9555芯片
        "Pca9555_PCIe": {
            "OffsetWidth": 1,
            "AddrWidth": 1,
            "Address": 68,
            "WriteTmout": 100,
            "ReadTmout": 100,
            "HealthStatus": 0
        },
        //eeprom对象
        "Eeprom_NetCard": {
            "OffsetWidth": 2,
            "AddrWidth": 1,
            "Address": 172,
            "WriteTmout": 100,
            "ReadTmout": 100,
            "RwBlockSize": 32,
            "WriteInterval": 20,
            "HealthStatus": 0
        }

Scanner/Accessor对象

主要用于读写上面的芯片

        "Accessor_WP": {
            "Chip": "#/Pca9555_PCIe",
            "Offset": 1,
            "Size": 1,
            "Mask": 8,
            "Type": 0,
            "Value": 0
        },
        "Accessor_PcbID": {
            "Chip": "#/Pca9555_PCIe",
            "Offset": 1,
            "Size": 1,
            "Mask": 7,
            "Type": 0,
            "Value": 0
        },
        "Scanner_PowerGood": {
            "Chip": "#/Pca9555_PCIe",
            "Offset": 1,
            "Size": 1,
            "Mask": 64,
            "Type": 0,
            "Value": 0,
            "Period": 1000,
            "Debounce": "#/ContBin_H5L40"
        },
        "Scanner_BoardID": {
            "Chip": "#/Pca9555_PCIe",
            "Offset": 0,
            "Size": 1,
            "Mask": 255,
            "Type": 0,
            "Period": 5000,
            "Debounce": "#/Cont_BoardID",
            "Value": 0
        }

Fru相关对象

有eeprom的网卡才需要配置

        "FruData_Fru0": {
            "FruId": 1,
            "FruDev": "#/Eeprom_NetCard",
            "EepromWp": "#/Accessor_WP.Value",
            "BoardPartNumber": "N/A",
            "BoardSerialNumber": "N/A",
            "StorageType": "EepromV2"
        },
        "Fru_PCIeCard": {
            "PcbId": "#/Accessor_PcbID.Value",
            "FruId": 1,
            "FruName": "SP680",
            "ConnectorGroupId": "${GroupId}",
            "BoardId": 65535,
            "UniqueId": "N/A",
            "PcbVersion": ".A",
            "PowerState": 1,
            "Health": 0,
            "EepStatus": "<=/Eeprom_NetCard.HealthStatus",
            "Type": 8,
            "FruDataId": "#/FruData_Fru0"
        }

Component对象

       //网卡Component对象
        "Component_PCIeCard": {
            "FruId": 255,
            "Instance": "<=/PCIeDevice_1.SlotID",
            "Type": 8,
            "BoardId": 255,
            "Name": "<=/PCIeDevice_1.DeviceName",
            "Location": "<=/PCIeDevice_1.Position",
            "Manufacturer": "Huawei",
            "PartNumber": "<=/FruData_Fru0.BoardPartNumber",
            "UniqueId": "N/A",
            "Presence": 1,
            "Health": 0,
            "Function": "PCIe device",
            "GroupId": 1,
            "PowerState": 1,
            "ReplaceFlag": 0,
            "PreviousSN": "",
            "SerialNumber": "<=/FruData_Fru0.BoardSerialNumber",
            "NodeId": "1"
        },
       //网口Component对象,有几个网口就配置几个
        "Component_Port1": {
            "FruId": 255,
            "Instance": 1,
            "Type": 41,
            "Name": "Port1",
            "Presence": 1,
            "Health": 0,
            "PowerState": 1
        }

BoardPCIeCard对象(NIC卡这里应替换为BoardNICCard对象)

        "BoardPCIeCard_1": {
            "Slot": 1,
            "UID": "N/A",
            "Name": "BC53ETH130",
            "Manufacturer": "Huawei",
            "Type": "PCIeCard",
            "Description": "4*25GE",
            "PartNumber": "02314CRR",
            "PcbVersion": "<=/Fru_PCIeCard.PcbVersion",
            "LogicVersion": "N/A",
            "BoardID": 65535,
            "BoardType": "BoardPCIeCard",
            "Number": 1,
            "DeviceName": "<=/PCIeDevice_1.DeviceName",
            "Position": "<=/PCIeDevice_1.Position",
            "LinkWidthCapability": "<=/NetworkAdapter_1.LinkWidthCapability",
            "LinkSpeedCapability": "<=/NetworkAdapter_1.LinkSpeedCapability",
            "LinkWidth": "<=/NetworkAdapter_1.LinkWidth",
            "LinkSpeed": "<=/NetworkAdapter_1.LinkSpeed",
            "BoardNodeId": "<=/PCIeDevice_1.DeviceName",
            "FruID": "<=/Fru_PCIeCard.FruId"
        }

PCIe设备对象

配置PCIe设备名称,类型,槽位等信息

        "PCIeDevice_1": {
            "DeviceName": "PCIe Card ${Slot} (SP680)",//名称
            "FunctionClass": 2,//功能分类 0:未知、1:RAID、2:网卡、3:GPU卡、4:存储卡(SSD卡/M.2卡)、5:SDI卡、6:加速卡、7:扩展卡(PCIe Riser)、8:FPGA卡、9:NPU卡
            "Container": "${Container}",//容器信息
            "GroupPosition": "PCIeDevice_${GroupPosition}",//用于对象主键,持久化用
            "DeviceType": 8,// 设备类型:PCIe标卡-8,NIC卡-13,OCP卡-83
            "PCIeDeviceType": "MultiFunction",//PCIe设备类型,具体参考redfish规范
            "SlotType": "FullLength",//PCIe槽位类型,具体参考redfish规范
            "FunctionProtocol": "PCIe",//PCIe功能协议,具体参考redfish规范
            "FunctionType": "Physical"//PCIe功能类型,具体参考redfish规范
        }

PCIe卡对象(OCP卡这里应该替换为OCPCard对象)

            "SlotID": "<=/PCIeDevice_1.SlotID",//槽位号,关联PCIeDevice对象的SlotID即可
            "NodeID": "<=/PCIeDevice_1.SlotID |> string.format('PCIeCard%s',$1)",//唯一ID
            "Name": "SP680",//名称
            "BoardName": "SP680",//板卡名称,通常和Name一致
            "BoardID": 65535,//单板ID,不存在时默认值配65535
            "Description": "25Gb/s Quad port card",//网卡描述信息
            "FunctionClass": 2,//同PCIeDevice对象
            "VendorID": 6629,//厂商ID
            "DeviceID": 546,//设备ID
            "SubVendorID": 6629,//子厂商ID
            "SubDeviceID": 82,//子设备ID
            "Position": "<=/PCIeDevice_1.Position",//位置信息
            "LaneOwner": "<=/PCIeDevice_1.SocketID",资源归属,表示当前卡挂在哪个CPU下
            "Manufacturer": "Huawei",//厂商名称
            "PartNumber": "02314CRR",//部件编码,没有部件编码配置默认值N/A
            "RefChip": "#/Chip_Hi1822",//关联的芯片,当前只有Hi182x网卡才需要配置
            "Protocol": "SmBus",//芯片支持的协议,当前只有Hi182x网卡才需要配置
            "FirmwareVersion": "<=/NetworkAdapter_1.FirmwareVersion",//版本号,关联NetworkAdapter对象的版本号
            "MaxFrameLen": 64,//协议最大帧长度,当前只有Hi182x网卡才需要配置
            "Model": "Hi1822",//芯片型号
            "DeviceName": "<=/PCIeDevice_1.DeviceName",//设备名称
            "PcbID": "#/Accessor_PcbID.Value",//PcbID
            "PcbVersion": ".A",//Pcb版本
            "Health": "<=/Component_PCIeCard.Health",//健康状态
            "Bus": "<=/PCIeDevice_1.Bus",//root port Bus
            "Device": "<=/PCIeDevice_1.Device",//root port Device
            "Function": "<=/PCIeDevice_1.Function",// root port Function
            "DevBus": "<=/PCIeDevice_1.DevBus",// 设备总线
            "DevDevice": "<=/PCIeDevice_1.DevDevice",//设备Device
            "DevFunction": "<=/PCIeDevice_1.DevFunction",//设备Function
            "SerialNumber": "<=/FruData_Fru0.BoardSerialNumber"//序列号,有eeprom的配置成同步FruData对象的BoardSerialNumber,没有eeprom的不用配置

网卡对象

        "NetworkAdapter_1": {
            "SystemID": 1,//系统ID,属于哪个host
            "SlotNumber": "<=/PCIeDevice_1.SlotID",//槽位号
            "Name": "SP680",//网卡名称
            "Manufacturer": "Huawei",//厂商名称
            "Description": "4*25GE",//网卡描述信息,主要是支持的网口数及规格
            "Position": "<=/PCIeDevice_1.Position",//网卡位置
            "DeviceLocator": "<=/PCIeDevice_1.DeviceName",//网卡名称(包含所在槽位号)
            "Type": 3,//网卡类型:1-NIC,3-PCIe,10-OCP
            "Model": "Hi1822",//芯片型号
            "ModelDescription": "4*25GE",//芯片描述
            "ChipManufacturer": "Huawei",//芯片厂商
            "NetworkPortCount": 4,//网口数量
            "BoardName": "BC53ETH130",//板卡名称
            "VendorID": "0x19e5",//厂商ID
            "DeviceID": "0x0222",//设备ID
            "SubsystemVendorID": "0x19e5",//子厂商ID
            "SubsystemDeviceID": "0x0052",//子设备ID
            "ComponentUniqueID": "N/A",//天池加载的网卡才有,没有默认值配N/A
            "PCBVersion": "<=/PCIeCard_1.PcbVersion",//Pcb版本
            "FruId": "<=/Fru_PCIeCard.FruId",//FruID
            "@Default": {
                "PCBVersion": ".A"
            },
            "SupportedMctp": true,//是否支持mctp,不支持不用配置
            "SupportedLLDP": true,//是否支持LLDP,不支持不用配置
            "HotPluggable": false,//是否支持热插拔,通常是插在FlexIO槽才支持,不支持不用配置
            "AttentionHotPlugState": 255,//热插拔状态:0 - 不可操作;1 - 可拔出;2 - 可插入;其他 - 未知
            "SocketId": "<=/PCIeDevice_1.SocketID",//所属CPU
            "Bus": "<=/PCIeDevice_1.Bus",
            "Device": "<=/PCIeDevice_1.Device",
            "Function": "<=/PCIeDevice_1.Function",
            "DevBus": "<=/PCIeDevice_1.DevBus",
            "DevDevice": "<=/PCIeDevice_1.DevDevice",
            "DevFunction": "<=/PCIeDevice_1.DevFunction",
            "RefChip": "#/Chip_Hi1822",//关联的芯片,当前只有Hi182x需要配置
            "LinkWidthCapability": "N/A",//网卡支持的最大带宽能力
            "LinkSpeedCapability": "N/A",//网卡支持的最大速率能力
            "LinkWidth": "N/A",//网卡实际带宽
            "LinkSpeed": "N/A",//网卡实际速率
            "TemperatureStatus": 3,//网卡温度获取状态:0-正常获取到温度,1-获取温度失败,除1外的值当前不处理
            "ParentCardSlotId": 255,//关联上一级卡的槽位号
            "Health": "<=/Component_PCIeCard.Health",//健康状态
            "BandwidthThresholdPercent": 100,//网口宽带占用率阈值
            "SerialNumber": "<=/PCIeCard_1.SerialNumber",//序列号
            "PowerScanner": "<=/Scanner_PowerGood.Value"//上下电状态,用于电源故障告警,当前只有Hi182x网卡需要配置
        }

网口对象

有几个网口这里就配几个对象

        "NetworkPort_0": {
            "@Parent": "NetworkAdapter_1",//父对象
            "SystemID": 1,//系统ID,所属host
            "PortID": 0,//网口ID,从0开始后面的网口递增
            "NetDevFuncType": 1,//网络设备功能类型,0:Disabled 1:Ethernet 2:FC 4:iSCSI 8:FCoE 16:OPA 32:IB
            "MediumType": "FiberOptic",//网口介质类型:光纤-FiberOptic,铜缆-Copper
            "SupportedLinkCapability": "25GE"//支持的传输速率
        }

光模块对象(电口网卡不用配置)

每个网口对应一个光模块

       "OpticalModule_0": {
            "@Parent": "NetworkPort_0",//父对象
            "ChannelNum": 1,//通道号,从1开始,后面依次递增
        }

告警配置

网口链接断开告警(每个网口都需配置)

        "Event_Port1LinkDown": {
            "EventKeyId": "Port.PortDisconnected",
            "Condition": 0,
            "Reading": "<=/NetworkPort_0.LinkStatusNumeric",
            "@Default": {
                "Reading": 255
            },
            "OperatorId": 8,
            "Enabled": true,
            "DescArg1": "#/PCIeCard_1.DeviceName",
            "DescArg3": "Port 1",
            "Component": "#/Component_Port1"
        }
1 个赞