【已评审】支持新增NetworkDeviceFunction资源

背景

当前redfish标准接口存在缺失,需要评审新增redfish标准接口以及资源协作接口属性。

关联ISSUE

[需求]: 支持新增NetworkDeviceFunction资源

整体方案

1.redfish接口支持NetworkDeviceFunction北向映射

评审点

评审点1:支持Redfish资源新增NetworkDeviceFunction资源集合

1.新增属性:@odata.context@odata.id@odata.type、Name、Members@odata.count

2.新增属性:Members

评审点2:NetworkDeviceFunction相关资源支持redfish新标准

1.新增属性:@odata.context@odata.id@odata.type、Id、Name、NetDevFuncCapabilities、NetDevFuncType

2.新增属性:Ethernet、FibreChanne、AssignablePhysicalNetworkPorts、Links、Metrics

详细描述

评审点1:

URI:/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions

变化类型:新增URI
操作类型:GET

应用场景:redfish获取NetworkDeviceFunctions相关资源集合信息

一级属性 二级属性 类型 操作权限 说明 约束
@odata.context string ReadOnly 网络适配器所公开的逻辑接口的OData描述信息 NA
@odata.id string ReadOnly 网络适配器所公开的逻辑接口的访问路径 NA
@odata.type string ReadOnly 网络适配器所公开的逻辑接口的类型 NA
Members@odata.count integer ReadOnly 此属性的值应为一个整数,表示集合中的元素数量 NA
Name string ReadOnly 网络适配器所公开的逻辑接口名称 NA
Members @odata.id string ReadOnly 所有网络适配器所公开的逻辑接口的访问路径 NA

schema说明:
新增schema文件networkdevicefunctioncollection.json

 {
    "$id": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunctionCollection.json",
    "$ref": "#/definitions/NetworkDeviceFunctionCollection",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2025 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
    "definitions": {
        "NetworkDeviceFunctionCollection": {
            "anyOf": [
                {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/idRef"
                },
                {
                    "additionalProperties": false,
                    "description": "The collection of `NetworkDeviceFunction` resource instances.",
                    "longDescription": "This resource shall represent a resource collection of `NetworkDeviceFunction` instances for a Redfish implementation.",
                    "patternProperties": {
                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                            "description": "This property shall specify a valid odata or Redfish property.",
                            "type": [
                                "array",
                                "boolean",
                                "integer",
                                "number",
                                "null",
                                "object",
                                "string"
                            ]
                        }
                    },
                    "properties": {
                        "@odata.context": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
                        },
                        "@odata.etag": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                        },
                        "@odata.id": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                        },
                        "@odata.type": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
                        },
                        "Description": {
                            "anyOf": [
                                {
                                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                                },
                                {
                                    "type": "null"
                                }
                            ],
                            "readonly": true
                        },
                        "Members": {
                            "description": "The members of this collection.",
                            "items": {
                                "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction"
                            },
                            "longDescription": "This property shall contain an array of links to the members of this collection.",
                            "readonly": true,
                            "type": "array"
                        },
                        "Members@odata.count": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                        },
                        "Members@odata.nextLink": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/nextLink"
                        },
                        "Name": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                            "readonly": true
                        },
                        "Oem": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                            "description": "The OEM extension property.",
                            "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
                        }
                    },
                    "required": [
                        "Members",
                        "Members@odata.count",
                        "@odata.id",
                        "@odata.type",
                        "Name"
                    ],
                    "type": "object"
                }
            ],
            "deletable": false,
            "insertable": false,
            "updatable": false,
            "uris": [
                "/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions",
                "/redfish/v1/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions",
                "/redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions",
                "/redfish/v1/CompositionService/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions",
                "/redfish/v1/ResourceBlocks/{ResourceBlockId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions",
                "/redfish/v1/ResourceBlocks/{ResourceBlockId}/Systems/{ComputerSystemId}/NetworkInterfaces/{NetworkInterfaceId}/NetworkDeviceFunctions"
            ]
        }
    },
    "language": "en",
    "owningEntity": "DMTF",
    "title": "#c.NetworkDeviceFunctionCollection"
}















RspBody响应体示例:

{
    "@odata.context": "/redfish/v1/$metadata#NetworkDeviceFunctionCollection.NetworkDeviceFunctionCollection",
    "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/NetworkDeviceFunctions",
    "@odata.type": "#NetworkDeviceFunctionCollection.NetworkDeviceFunctionCollection",
    "Name": "NetworkDevice Function Collection",
    "Members@odata.count": 4,
    "Members": [
        {
            "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/NetworkDeviceFunctions/1"
        },
        {
            "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/NetworkDeviceFunctions/2"
        },
        {
            "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/NetworkDeviceFunctions/3"
        },
        {
            "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/NetworkDeviceFunctions/4"
        }
    ]
}















评审点2:URI:/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions/{NetworkDeviceFuntionId}

变化类型:新增URI
操作类型:GET

应用场景redfish接口获取NetworkDeviceFunction相关资源集合信息

RspBody响应体结构:

一级属性 二级属性 **三级属性 类型 取值范围 权限 属性说明 约束
@odata.context string ReadOnly 单个网络适配器所公开的逻辑接口的OData描述信息 NA
@odata.id string ReadOnly 单个网络适配器所公开的逻辑接口的访问路径 NA
@odata.type string ReadOnly 单个网络适配器所公开的逻辑接口的类型 NA
Id string ReadOnly 表示第几个网口 NA
Name string ReadOnly 表示第几个网口 NA
NetDevFuncCapabilities array [“Disabled”,“Ethernet”,“FibreChannel”,“FibreChannelOverEthernet”,“InfiniBand”,“iSCSI”] ReadOnly 该属性应包含此网络设备功能的一系列能力 NA
NetDevFuncType string [“Disabled”,“Ethernet”,“FibreChannel”,“FibreChannelOverEthernet”,“InfiniBand”,“iSCSI”] ReadOnly 该属性应包含该网络设备功能的配置能力。 NA
Ethernet MACAddress string ReadOnly 此属性应包含该接口当前有效的MAC地址 NA
Ethernet PermanentMACAddress string ReadOnly 该属性应包含此接口或端口的永久MAC地址。通常,该值在制造过程中被编程。此地址不可指定。 NA
Ethernet VLAN VLANEnable boolean [“true”,“false”] ReadOnly 此属性用于指示是否为该VLAN网络接口启用该VLAN NA
Ethernet VLAN VLANId integer ReadOnly 此属性应包含该 VLAN 的 ID。 NA
Ethernet VLAN VLANPriority integer ReadOnly 此属性应包含该 VLAN 的 优先级。 NA
FibreChannel PermanentWWPN string ReadOnly 该属性应包含此功能的永久的万维网端口名称(WWPN)。通常,此值在制造过程中编程。此地址不可分配 NA
FibreChannel PermanentWWNN string ReadOnly 此属性应包含该函数的永久性万维节点名称(WWNN)。通常,该值在制造过程中被编程。此地址不可指定。 NA
FibreChannel WWPN string ReadOnly 该属性应包含该函数当前有效的万维端口名称(WWPN)。不支持可分配的 WWPN ,则该属性为永久 WWPN 的只读别名。 NA
FibreChannel WWNN string ReadOnly 此属性应包含此函数的有效当前万维节点名称(WWNN)。如果不支持可分配的 WWNN ,则此属是永久 WWNN 只读别名。 NA
AssignablePhysicalNetworkPorts @odata.id string ReadOnly 链接单个端口属性的访问路径 NA
Links PhysicalNetworkPortAssignment @odata.id string ReadOnly 链接所有端口属性的访问路径 NA
Metrics @odata.id string ReadOnly 链接网络适配器所对应网络功能的使用情况和健康状况的统计数据的访问路径 NA

schema说明:
新增schema文件networkdevicefunction.v1_11_0.json

 "properties": {
                "BurstBytesPerSecond": {
                    "description": "The maximum number of bytes per second in a burst for this network device function.",
                    "longDescription": "This property shall contain the maximum number of bytes per second in a burst allowed for this network device function.",
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_7_0"
                },
                "BurstPacketsPerSecond": {
                    "description": "The maximum number of packets per second in a burst for this network device function.",
                    "longDescription": "This property shall contain the maximum number of packets per second in a burst allowed for this network device function.",
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_7_0"
                },
                "Direction": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/DataDirection"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "Indicates the direction of the data to which this limit applies.",
                    "longDescription": "This property shall indicate the direction of the data to which this limit applies for this network device function.",
                    "readonly": false,
                    "versionAdded": "v1_7_0"
                },
                "SustainedBytesPerSecond": {
                    "description": "The maximum number of sustained bytes per second for this network device function.",
                    "longDescription": "This property shall contain the maximum number of sustained bytes per second allowed for this network device function.",
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_7_0"
                },
                "SustainedPacketsPerSecond": {
                    "description": "The maximum number of sustained packets per second for this network device function.",
                    "longDescription": "This property shall contain the maximum number of sustained packets per second allowed for this network device function.",
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "versionAdded": "v1_7_0"
                }
            },
            "type": "object"
        },
        "Links": {
            "additionalProperties": false,
            "description": "The links to other resources that are related to this resource.",
            "longDescription": "This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or subordinate to, this resource.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "Endpoints": {
                    "description": "An array of links to endpoints associated with this network device function.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Endpoint.json#/definitions/Endpoint"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type `Endpoint` that are associated with this network device function.",
                    "readonly": true,
                    "type": "array",
                    "versionAdded": "v1_2_0"
                },
                "Endpoints@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "EthernetInterface": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface",
                    "deprecated": "This property has been deprecated in favor of `EthernetInterfaces` as each `NetworkDeviceFunction` could have more than one `EthernetInterface`.",
                    "description": "The link to a virtual Ethernet interface that was created when one of the network device function VLANs is represented as a virtual NIC for the purpose of showing the IP address associated with that VLAN.",
                    "longDescription": "This property shall contain a link to a resource of type `EthernetInterface` that represents a virtual interface that was created when one of the network device function VLANs is represented as a virtual NIC for the purpose of showing the IP address associated with that VLAN.  The `EthernetInterfaceType` property of that resource shall contain the value `Virtual`.",
                    "versionAdded": "v1_4_0",
                    "versionDeprecated": "v1_7_0"
                },
                "EthernetInterfaces": {
                    "description": "The system Ethernet interfaces that use this network device function.  This includes physical Ethernet interfaces or VLANs.  Each member of this property is subordinate a `ComputerSystem` resource.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type `EthernetInterface` that represent physical or VLAN Ethernet interfaces for systems that use this network device funciton.  The members shall be subordinate to a `ComputerSystem` resource.",
                    "type": "array",
                    "versionAdded": "v1_7_0"
                },
                "EthernetInterfaces@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties contained in this object shall conform to the Redfish Specification-described requirements."
                },
                "OffloadProcessors": {
                    "description": "The processors that perform offload computation for this network function, such as with a SmartNIC.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Processor.json#/definitions/Processor"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type `Processor` that represent the processors that performs offload computation for this network function, such as with a SmartNIC.  This property shall not be present if `OffloadSystem` is present.",
                    "readonly": true,
                    "type": "array",
                    "versionAdded": "v1_7_0"
                },
                "OffloadProcessors@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "OffloadSystem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem",
                    "description": "The system that performs offload computation for this network function, such as with a SmartNIC.",
                    "longDescription": "This property shall contain a link to a resource of type `ComputerSystem` that represents the system that performs offload computation for this network function, such as with a SmartNIC.  The `SystemType` property contained in the referenced `ComputerSystem` resource should contain the value `DPU`.  This property shall not be present if OffloadProcessors is present.",
                    "readonly": true,
                    "versionAdded": "v1_7_0"
                },
                "PCIeFunction": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.json#/definitions/PCIeFunction",
                    "description": "The link to the PCIe function associated with this network device function.",
                    "longDescription": "This property shall contain a link to a resource of type `PCIeFunction` that represents the PCIe function associated with this network device function.",
                    "readonly": true
                },
                "PhysicalNetworkPortAssignment": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port",
                    "description": "The physical port to which this network device function is currently assigned.",
                    "longDescription": "This property shall contain a link to a resource of type `Port` to which this network device function is currently assigned.  This value shall be one of the `AssignablePhysicalPorts` array members.",
                    "versionAdded": "v1_5_0"
                },
                "PhysicalPortAssignment": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort",
                    "deprecated": "This property has been deprecated in favor of the `PhysicalNetworkPortAssignment` property.",
                    "description": "The physical port to which this network device function is currently assigned.",
                    "longDescription": "This property shall contain a link to a resource of type `NetworkPort` to which this network device function is currently assigned.  This value shall be one of the AssignablePhysicalPorts array members.",
                    "versionAdded": "v1_3_0",
                    "versionDeprecated": "v1_5_0"
                }
            },
            "type": "object"
        },
        "NetworkDeviceFunction": {
            "additionalProperties": false,
            "description": "The `NetworkDeviceFunction` schema represents a logical interface that a network adapter exposes.",
            "longDescription": "This resource shall represent a logical interface that a network adapter exposes in a Redfish implementation.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "This property shall contain the available actions for this resource.",
                    "versionAdded": "v1_1_0"
                },
                "AllowDeny": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/AllowDenyCollection.json#/definitions/AllowDenyCollection",
                    "description": "The link to the collection of allow and deny permissions for packets leaving and arriving to this network device function.",
                    "longDescription": "This property shall contain a link to a resource collection of type `AllowDenyCollection` that contains the permissions for packets leaving and arriving to this network device function.",
                    "readonly": true,
                    "versionAdded": "v1_7_0"
                },
                "AssignablePhysicalNetworkPorts": {
                    "description": "An array of physical ports to which this network device function can be assigned.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type `Port` that are the physical ports to which this network device function can be assigned.",
                    "readonly": true,
                    "type": "array",
                    "versionAdded": "v1_5_0"
                },
                "AssignablePhysicalNetworkPorts@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "AssignablePhysicalPorts": {
                    "deprecated": "This property has been deprecated in favor of the `AssignablePhysicalNetworkPorts` property.",
                    "description": "An array of physical ports to which this network device function can be assigned.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort"
                    },
                    "longDescription": "This property shall contain an array of links to resources of type `NetworkPort` that are the physical ports to which this network device function can be assigned.",
                    "readonly": true,
                    "type": "array",
                    "versionDeprecated": "v1_5_0"
                },
                "AssignablePhysicalPorts@odata.count": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count"
                },
                "BootMode": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/BootMode"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The boot mode configured for this network device function.",
                    "longDescription": "This property shall contain the boot mode configured for this network device function.  If the value is not `Disabled`, this network device function shall be configured for boot by using the specified technology.",
                    "readonly": false
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "DeviceEnabled": {
                    "description": "An indication of whether the network device function is enabled.",
                    "longDescription": "This property shall indicate whether the network device function is enabled.  The operating system shall not enumerate or see disabled network device functions.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "Ethernet": {
                    "$ref": "#/definitions/Ethernet",
                    "description": "The Ethernet capabilities, status, and configuration values for this network device function.",
                    "longDescription": "This property shall contain Ethernet capabilities, status, and configuration values for this network device function."
                },
                "FibreChannel": {
                    "$ref": "#/definitions/FibreChannel",
                    "description": "The Fibre Channel capabilities, status, and configuration values for this network device function.",
                    "longDescription": "This property shall contain Fibre Channel capabilities, status, and configuration values for this network device function."
                },
                "HTTPBoot": {
                    "$ref": "#/definitions/HTTPBoot",
                    "description": "The HTTP and HTTPS boot capabilities, status, and configuration values for this network device function.",
                    "longDescription": "This property shall contain HTTP and HTTPS boot capabilities, status, and configuration values for this network device function.",
                    "versionAdded": "v1_9_0"
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "InfiniBand": {
                    "$ref": "#/definitions/InfiniBand",
                    "description": "The InfiniBand capabilities, status, and configuration values for this network device function.",
                    "longDescription": "This property shall contain InfiniBand capabilities, status, and configuration values for this network device function.",
                    "versionAdded": "v1_5_0"
                },
                "Limits": {
                    "description": "The byte and packet limits for this network device function.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/Limit"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This property shall contain an array of byte and packet limits for this network device function.",
                    "type": "array",
                    "versionAdded": "v1_7_0"
                },
                "Links": {
                    "$ref": "#/definitions/Links",
                    "description": "The links to other resources that are related to this resource.",
                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
                },
                "MaxVirtualFunctions": {
                    "description": "The number of virtual functions that are available for this network device function.",
                    "longDescription": "This property shall contain the number of virtual functions that are available for this network device function.",
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "Metrics": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunctionMetrics.json#/definitions/NetworkDeviceFunctionMetrics"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The link to the metrics associated with this network function.",
                    "longDescription": "This property shall contain a link to a resource of type `NetworkDeviceFunctionMetrics` that contains the metrics associated with this network function.",
                    "readonly": true,
                    "versionAdded": "v1_6_0"
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "NetDevFuncCapabilities": {
                    "description": "An array of capabilities for this network device function.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/NetworkDeviceTechnology"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This property shall contain an array of capabilities for this network device function.",
                    "readonly": true,
                    "type": "array"
                },
                "NetDevFuncType": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/NetworkDeviceTechnology"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The configured capability of this network device function.",
                    "longDescription": "This property shall contain the configured capability of this network device function.",
                    "readonly": false
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "PhysicalNetworkPortAssignment": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Port.json#/definitions/Port",
                    "deprecated": "This property has been deprecated in favor of `PhysicalNetworkPortAssignment` within `Links` to avoid loops on expand.",
                    "description": "The physical port to which this network device function is currently assigned.",
                    "longDescription": "This property shall contain a link to a resource of type `Port` that is the physical port to which this network device function is currently assigned.  This value shall be one of the `AssignablePhysicalNetworkPorts` array members.",
                    "readonly": true,
                    "versionAdded": "v1_5_0",
                    "versionDeprecated": "v1_8_0"
                },
                "PhysicalPortAssignment": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkPort.json#/definitions/NetworkPort",
                    "deprecated": "This property has been deprecated and moved to the `Links` property to avoid loops on expand.",
                    "description": "The physical port to which this network device function is currently assigned.",
                    "longDescription": "This property shall contain a link to a resource of type `NetworkPort` that is the physical port to which this network device function is currently assigned.  This value shall be one of the `AssignablePhysicalPorts` array members.",
                    "readonly": true,
                    "versionDeprecated": "v1_3_0"
                },
                "SAVIEnabled": {
                    "description": "Indicates if Source Address Validation Improvement (SAVI) is enabled for this network device function.",
                    "longDescription": "This property shall indicate if the RFC7039-defined Source Address Validation Improvement (SAVI) is enabled for this network device function.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_7_0"
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "The status and health of the resource and its subordinate or dependent resources.",
                    "longDescription": "This property shall contain any status or health properties of the resource."
                },
                "VirtualFunctionAllocation": {
                    "description": "The number of virtual functions allocated to this device.",
                    "longDescription": "This property shall contain the number virtual functions allocated to this device.  This property should contain a value that is a multiple of the value contained by the `MinAssignmentGroupSize` property of the corresponding `Controllers` array member within the parent `NetworkAdapter` resource.  The value shall not exceed the value contained in the `MaxVirtualFunctions` property.",
                    "readonly": false,
                    "type": "integer",
                    "versionAdded": "v1_11_0"
                },
                "VirtualFunctionsEnabled": {
                    "description": "An indication of whether single root input/output virtualization (SR-IOV) virtual functions are enabled for this network device function.",
                    "longDescription": "This property shall indicate whether single root input/output virtualization (SR-IOV) virtual functions are enabled for this network device function.",
                    "readonly": true,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "iSCSIBoot": {
                    "$ref": "#/definitions/iSCSIBoot",
                    "description": "The iSCSI boot capabilities, status, and configuration values for this network device function.",
                    "longDescription": "This property shall contain iSCSI boot capabilities, status, and configuration values for this network device function."
                }
            },















RspBody响应体示例:

{
    "@odata.context": "/redfish/v1/$metadata#NetworkDeviceFunction.NetworkDeviceFunction",
    "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/NetworkDeviceFunctions/3",
    "@odata.type": "#NetworkDeviceFunction.v1_11_0.NetworkDeviceFunction",
    "Id": "3",
    "Name": "3",
    "NetDevFuncCapabilities": [
        "Ethernet"
    ],
    "NetDevFuncType": "Ethernet",
    "Ethernet": {
        "MACAddress": "B0:4F:A6:FD:5D:B9",
        "PermanentMACAddress": "B0:4F:A6:FD:5D:B9",
        "VLAN": {
            "VLANEnable": null,
            "VLANId": null,
            "VLANPriority": null
        }
    },
    "FibreChannel": {
        "PermanentWWPN": "",
        "PermanentWWNN": "",
        "WWPN": "",
        "WWNN": ""
    },
    "AssignablePhysicalNetworkPorts": [
        {
            "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/Ports/1"
        },
        {
            "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/Ports/2"
        },
        {
            "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/Ports/3"
        },
        {
            "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/Ports/4"
        }
    ],
    "Links": {
        "PhysicalNetworkPortAssignment": {
            "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/Ports/2"
        }
    },
    "Metrics": {
        "PhysicalNetworkPortAssignment": {
            "@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/NetworkDeviceFunctions/2/Metrics"
        }
    }
}












评审结论

同意新增:URI:/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions

变化类型:新增URI
操作类型:GET

应用场景:redfish获取NetworkDeviceFunctions相关资源集合信息

一级属性 二级属性 类型 操作权限 说明 约束
@odata.context string ReadOnly 网络适配器所公开的逻辑接口的OData描述信息 NA
@odata.id string ReadOnly 网络适配器所公开的逻辑接口的访问路径 NA
@odata.type string ReadOnly 网络适配器所公开的逻辑接口的类型 NA
Members@odata.count integer ReadOnly 此属性的值应为一个整数,表示集合中的元素数量 NA
Name string ReadOnly 网络适配器所公开的逻辑接口名称 NA
Members @odata.id string ReadOnly 所有网络适配器所公开的逻辑接口的访问路径 NA

同意新增URI:/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/NetworkDeviceFunctions/{NetworkDeviceFuntionId}

变化类型:新增URI
操作类型:GET

应用场景redfish接口获取NetworkDeviceFunction相关资源集合信息

RspBody响应体结构:

一级属性 二级属性 **三级属性 类型 取值范围 权限 属性说明 约束
@odata.context string ReadOnly 单个网络适配器所公开的逻辑接口的OData描述信息 NA
@odata.id string ReadOnly 单个网络适配器所公开的逻辑接口的访问路径 NA
@odata.type string ReadOnly 单个网络适配器所公开的逻辑接口的类型 NA
Id string ReadOnly 表示第几个网口 NA
Name string ReadOnly 表示第几个网口 NA
NetDevFuncCapabilities array [“Disabled”,“Ethernet”,“FibreChannel”,“FibreChannelOverEthernet”,“InfiniBand”,“iSCSI”] ReadOnly 该属性应包含此网络设备功能的一系列能力 NA
NetDevFuncType string [“Disabled”,“Ethernet”,“FibreChannel”,“FibreChannelOverEthernet”,“InfiniBand”,“iSCSI”] ReadOnly 该属性应包含该网络设备功能的配置能力。 NA
Ethernet MACAddress string ReadOnly 此属性应包含该接口当前有效的MAC地址 NA
Ethernet PermanentMACAddress string ReadOnly 该属性应包含此接口或端口的永久MAC地址。通常,该值在制造过程中被编程。此地址不可指定。 NA
Ethernet VLAN VLANEnable boolean [“true”,“false”] ReadOnly 此属性用于指示是否为该VLAN网络接口启用该VLAN NA
Ethernet VLAN VLANId integer ReadOnly 此属性应包含该 VLAN 的 ID。 NA
Ethernet VLAN VLANPriority integer ReadOnly 此属性应包含该 VLAN 的 优先级。 NA
FibreChannel PermanentWWPN string ReadOnly 该属性应包含此功能的永久的万维网端口名称(WWPN)。通常,此值在制造过程中编程。此地址不可分配 NA
FibreChannel PermanentWWNN string ReadOnly 此属性应包含该函数的永久性万维节点名称(WWNN)。通常,该值在制造过程中被编程。此地址不可指定。 NA
FibreChannel WWPN string ReadOnly 该属性应包含该函数当前有效的万维端口名称(WWPN)。不支持可分配的 WWPN ,则该属性为永久 WWPN 的只读别名。 NA
FibreChannel WWNN string ReadOnly 此属性应包含此函数的有效当前万维节点名称(WWNN)。如果不支持可分配的 WWNN ,则此属是永久 WWNN 只读别名。 NA
AssignablePhysicalNetworkPorts @odata.id string ReadOnly 链接单个端口属性的访问路径 NA
Links PhysicalNetworkPortAssignment @odata.id string ReadOnly 链接所有端口属性的访问路径 NA
Metrics @odata.id string ReadOnly 链接网络适配器所对应网络功能的使用情况和健康状况的统计数据的访问路径 NA

遗留问题

当前网卡的属性均只能获取,无法设置,后续redfish资源需要明确新增属性的约束