1{ 2 "$id": "http://redfish.dmtf.org/schemas/v1/PCIeFunction.v1_6_0.json", 3 "$ref": "#/definitions/PCIeFunction", 4 "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", 5 "copyright": "Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", 6 "definitions": { 7 "Actions": { 8 "additionalProperties": false, 9 "description": "The available actions for this resource.", 10 "longDescription": "This type shall contain the available actions for this resource.", 11 "patternProperties": { 12 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { 13 "description": "This property shall specify a valid odata or Redfish property.", 14 "type": [ 15 "array", 16 "boolean", 17 "integer", 18 "number", 19 "null", 20 "object", 21 "string" 22 ] 23 } 24 }, 25 "properties": { 26 "Oem": { 27 "$ref": "#/definitions/OemActions", 28 "description": "The available OEM-specific actions for this resource.", 29 "longDescription": "This property shall contain the available OEM-specific actions for this resource.", 30 "versionAdded": "v1_1_0" 31 } 32 }, 33 "type": "object" 34 }, 35 "DeviceClass": { 36 "enum": [ 37 "UnclassifiedDevice", 38 "MassStorageController", 39 "NetworkController", 40 "DisplayController", 41 "MultimediaController", 42 "MemoryController", 43 "Bridge", 44 "CommunicationController", 45 "GenericSystemPeripheral", 46 "InputDeviceController", 47 "DockingStation", 48 "Processor", 49 "SerialBusController", 50 "WirelessController", 51 "IntelligentController", 52 "SatelliteCommunicationsController", 53 "EncryptionController", 54 "SignalProcessingController", 55 "ProcessingAccelerators", 56 "NonEssentialInstrumentation", 57 "Coprocessor", 58 "UnassignedClass", 59 "Other" 60 ], 61 "enumDescriptions": { 62 "Bridge": "A bridge.", 63 "CommunicationController": "A communication controller.", 64 "Coprocessor": "A coprocessor.", 65 "DisplayController": "A display controller.", 66 "DockingStation": "A docking station.", 67 "EncryptionController": "An encryption controller.", 68 "GenericSystemPeripheral": "A generic system peripheral.", 69 "InputDeviceController": "An input device controller.", 70 "IntelligentController": "An intelligent controller.", 71 "MassStorageController": "A mass storage controller.", 72 "MemoryController": "A memory controller.", 73 "MultimediaController": "A multimedia controller.", 74 "NetworkController": "A network controller.", 75 "NonEssentialInstrumentation": "A non-essential instrumentation.", 76 "Other": "Other class. The function Class Code needs to be verified.", 77 "ProcessingAccelerators": "A processing accelerators.", 78 "Processor": "A processor.", 79 "SatelliteCommunicationsController": "A satellite communications controller.", 80 "SerialBusController": "A serial bus controller.", 81 "SignalProcessingController": "A signal processing controller.", 82 "UnassignedClass": "An unassigned class.", 83 "UnclassifiedDevice": "An unclassified device.", 84 "WirelessController": "A wireless controller." 85 }, 86 "type": "string" 87 }, 88 "FunctionProtocol": { 89 "enum": [ 90 "PCIe", 91 "CXL" 92 ], 93 "enumDescriptions": { 94 "CXL": "A PCIe function supporting CXL extensions.", 95 "PCIe": "A standard PCIe function." 96 }, 97 "type": "string" 98 }, 99 "FunctionType": { 100 "enum": [ 101 "Physical", 102 "Virtual" 103 ], 104 "enumDescriptions": { 105 "Physical": "A physical PCIe function.", 106 "Virtual": "A virtual PCIe function." 107 }, 108 "type": "string" 109 }, 110 "Links": { 111 "additionalProperties": false, 112 "description": "The links to other resources that are related to this resource.", 113 "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.", 114 "patternProperties": { 115 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { 116 "description": "This property shall specify a valid odata or Redfish property.", 117 "type": [ 118 "array", 119 "boolean", 120 "integer", 121 "number", 122 "null", 123 "object", 124 "string" 125 ] 126 } 127 }, 128 "properties": { 129 "CXLLogicalDevice": { 130 "anyOf": [ 131 { 132 "$ref": "http://redfish.dmtf.org/schemas/v1/CXLLogicalDevice.json#/definitions/CXLLogicalDevice" 133 }, 134 { 135 "type": "null" 136 } 137 ], 138 "description": "The link to the CXL logical device to which this function is assigned.", 139 "longDescription": "This property shall contain a link to a resource of type `CXLLogicalDevice` that represents the CXL logical device to which this PCIe function is assigned.", 140 "readonly": true, 141 "versionAdded": "v1_5_0" 142 }, 143 "Drives": { 144 "description": "An array of links to the drives that this PCIe function produces.", 145 "items": { 146 "$ref": "http://redfish.dmtf.org/schemas/v1/Drive.json#/definitions/Drive" 147 }, 148 "longDescription": "This property shall contain an array of links to resources of type `Drive` that represent the drives associated with this PCIe function.", 149 "readonly": true, 150 "type": "array" 151 }, 152 "Drives@odata.count": { 153 "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" 154 }, 155 "EthernetInterfaces": { 156 "description": "An array of links to the Ethernet interfaces that this PCIe function produces.", 157 "items": { 158 "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface" 159 }, 160 "longDescription": "This property shall contain an array of links to resources of type `EthernetInterface` that represent the network interfaces associated with this PCIe function.", 161 "readonly": true, 162 "type": "array" 163 }, 164 "EthernetInterfaces@odata.count": { 165 "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" 166 }, 167 "MemoryDomains": { 168 "description": "An array of links to the memory domains that the PCIe function produces.", 169 "items": { 170 "$ref": "http://redfish.dmtf.org/schemas/v1/MemoryDomain.json#/definitions/MemoryDomain" 171 }, 172 "longDescription": "This property shall contain an array of links to resources of type `MemoryDomain` that represent the memory domains associated with this PCIe function.", 173 "readonly": true, 174 "type": "array", 175 "versionAdded": "v1_5_0" 176 }, 177 "MemoryDomains@odata.count": { 178 "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" 179 }, 180 "NetworkDeviceFunctions": { 181 "description": "An array of links to the network device functions that the PCIe function produces.", 182 "items": { 183 "$ref": "http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction.json#/definitions/NetworkDeviceFunction" 184 }, 185 "longDescription": "This property shall contain an array of links to resources of type `NetworkDeviceFunction` that represent the network device functions associated with this PCIe function.", 186 "readonly": true, 187 "type": "array", 188 "versionAdded": "v1_2_0" 189 }, 190 "NetworkDeviceFunctions@odata.count": { 191 "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" 192 }, 193 "Oem": { 194 "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", 195 "description": "The OEM extension property.", 196 "longDescription": "This property shall contain the OEM extensions. All values for properties contained in this object shall conform to the Redfish Specification-described requirements." 197 }, 198 "PCIeDevice": { 199 "$ref": "http://redfish.dmtf.org/schemas/v1/PCIeDevice.json#/definitions/PCIeDevice", 200 "description": "The link to the PCIe device on which this function resides.", 201 "longDescription": "This property shall contain a link to a resource of type `PCIeDevice` that represents the PCIe devices on which this function resides.", 202 "readonly": true 203 }, 204 "Processor": { 205 "anyOf": [ 206 { 207 "$ref": "http://redfish.dmtf.org/schemas/v1/Processor.json#/definitions/Processor" 208 }, 209 { 210 "type": "null" 211 } 212 ], 213 "description": "The link to a processor that is hosted on this PCIe function.", 214 "longDescription": "This property shall link to a resource of type `Processor` that represents the processor that is hosted on this PCIe function.", 215 "readonly": true, 216 "versionAdded": "v1_4_0" 217 }, 218 "StorageControllers": { 219 "description": "An array of links to the storage controllers that this PCIe function produces.", 220 "items": { 221 "$ref": "http://redfish.dmtf.org/schemas/v1/Storage.json#/definitions/StorageController" 222 }, 223 "longDescription": "This property shall contain an array of links to referenceable members of type `StorageController` that represent the storage controllers associated with this PCIe function.", 224 "readonly": true, 225 "type": "array" 226 }, 227 "StorageControllers@odata.count": { 228 "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/count" 229 } 230 }, 231 "type": "object" 232 }, 233 "OemActions": { 234 "additionalProperties": true, 235 "description": "The available OEM-specific actions for this resource.", 236 "longDescription": "This type shall contain the available OEM-specific actions for this resource.", 237 "patternProperties": { 238 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { 239 "description": "This property shall specify a valid odata or Redfish property.", 240 "type": [ 241 "array", 242 "boolean", 243 "integer", 244 "number", 245 "null", 246 "object", 247 "string" 248 ] 249 } 250 }, 251 "properties": {}, 252 "type": "object" 253 }, 254 "PCIeFunction": { 255 "additionalProperties": false, 256 "description": "The `PCIeFunction` schema describes the properties of a PCIe function that is attached to a system.", 257 "longDescription": "This resource shall represent a PCIe function in a Redfish implementation.", 258 "patternProperties": { 259 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { 260 "description": "This property shall specify a valid odata or Redfish property.", 261 "type": [ 262 "array", 263 "boolean", 264 "integer", 265 "number", 266 "null", 267 "object", 268 "string" 269 ] 270 } 271 }, 272 "properties": { 273 "@odata.context": { 274 "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context" 275 }, 276 "@odata.etag": { 277 "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag" 278 }, 279 "@odata.id": { 280 "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id" 281 }, 282 "@odata.type": { 283 "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type" 284 }, 285 "Actions": { 286 "$ref": "#/definitions/Actions", 287 "description": "The available actions for this resource.", 288 "longDescription": "This property shall contain the available actions for this resource.", 289 "versionAdded": "v1_1_0" 290 }, 291 "BusNumber": { 292 "description": "The bus number of this PCIe function.", 293 "longDescription": "This property shall contain the PCIe bus number of the PCIe device function. This property shall not be present if the PCIe device function is fabric-attached or is shared with multiple systems.", 294 "pattern": "^0[xX][0-9a-fA-F]{2}$", 295 "readonly": true, 296 "type": [ 297 "string", 298 "null" 299 ], 300 "versionAdded": "v1_6_0" 301 }, 302 "ClassCode": { 303 "description": "The Class Code of this PCIe function.", 304 "longDescription": "This property shall contain the PCI Class Code, Subclass, and Programming Interface of the PCIe device function in the order listed.", 305 "pattern": "^0[xX]([0-9A-Fa-f]{2}){3}$", 306 "readonly": true, 307 "type": [ 308 "string", 309 "null" 310 ] 311 }, 312 "Description": { 313 "anyOf": [ 314 { 315 "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description" 316 }, 317 { 318 "type": "null" 319 } 320 ], 321 "readonly": true 322 }, 323 "DeviceClass": { 324 "$ref": "#/definitions/DeviceClass", 325 "description": "The class for this PCIe function.", 326 "longDescription": "This property shall contain the device class of the PCIe device function, such as storage, network, or memory.", 327 "readonly": true 328 }, 329 "DeviceId": { 330 "description": "The Device ID of this PCIe function.", 331 "longDescription": "This property shall contain the PCI Device ID of the PCIe device function with the most significant byte shown first.", 332 "pattern": "^0[xX]([0-9A-Fa-f]{2}){2}$", 333 "readonly": true, 334 "type": [ 335 "string", 336 "null" 337 ] 338 }, 339 "DeviceNumber": { 340 "description": "The device number of this PCIe function.", 341 "longDescription": "This property shall contain the PCIe device number of the PCIe device function. This property shall not be present if the PCIe device function is fabric-attached or is shared with multiple systems.", 342 "pattern": "^0[xX][0-1][0-9a-fA-F]{1}$", 343 "readonly": true, 344 "type": [ 345 "string", 346 "null" 347 ], 348 "versionAdded": "v1_6_0" 349 }, 350 "Enabled": { 351 "description": "An indication of whether this PCIe device function is enabled.", 352 "longDescription": "The value of this property shall indicate if this PCIe device function is enabled.", 353 "readonly": false, 354 "type": "boolean", 355 "versionAdded": "v1_3_0" 356 }, 357 "FunctionId": { 358 "description": "The PCIe function number.", 359 "longDescription": "This property shall contain the PCIe function number within a given PCIe device.", 360 "readonly": true, 361 "type": [ 362 "integer", 363 "null" 364 ] 365 }, 366 "FunctionNumber": { 367 "description": "The function number of this PCIe function.", 368 "longDescription": "This property shall contain the PCIe function number of the PCIe device function. This property shall not be present if the PCIe device function is fabric-attached or is shared with multiple systems.", 369 "pattern": "^0[xX][0-7]$", 370 "readonly": true, 371 "type": [ 372 "string", 373 "null" 374 ], 375 "versionAdded": "v1_6_0" 376 }, 377 "FunctionProtocol": { 378 "anyOf": [ 379 { 380 "$ref": "#/definitions/FunctionProtocol" 381 }, 382 { 383 "type": "null" 384 } 385 ], 386 "description": "The PCIe function protocol.", 387 "longDescription": "This property shall contain the protocol supported by this PCIe function.", 388 "readonly": true, 389 "versionAdded": "v1_5_0" 390 }, 391 "FunctionType": { 392 "$ref": "#/definitions/FunctionType", 393 "description": "The type of the PCIe function.", 394 "longDescription": "This property shall contain the function type of the PCIe device function such as physical or virtual.", 395 "readonly": true 396 }, 397 "Id": { 398 "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id", 399 "readonly": true 400 }, 401 "Links": { 402 "$ref": "#/definitions/Links", 403 "description": "The links to other resources that are related to this resource.", 404 "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource." 405 }, 406 "Name": { 407 "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name", 408 "readonly": true 409 }, 410 "Oem": { 411 "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem", 412 "description": "The OEM extension property.", 413 "longDescription": "This property shall contain the OEM extensions. All values for properties that this object contains shall conform to the Redfish Specification-described requirements." 414 }, 415 "RevisionId": { 416 "description": "The Revision ID of this PCIe function.", 417 "longDescription": "This property shall contain the PCI Revision ID of the PCIe device function.", 418 "pattern": "^0[xX]([0-9A-Fa-f]{2}){1}$", 419 "readonly": true, 420 "type": [ 421 "string", 422 "null" 423 ] 424 }, 425 "SegmentNumber": { 426 "description": "The segment number of this PCIe function.", 427 "longDescription": "This property shall contain the PCIe segment number of the PCIe device function. This property shall not be present if the PCIe device function is fabric-attached or is shared with multiple systems.", 428 "pattern": "^0[xX][0-9a-fA-F]{4}$", 429 "readonly": true, 430 "type": [ 431 "string", 432 "null" 433 ], 434 "versionAdded": "v1_6_0" 435 }, 436 "Status": { 437 "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status", 438 "description": "The status and health of the resource and its subordinate or dependent resources.", 439 "longDescription": "This property shall contain any status or health properties of the resource." 440 }, 441 "SubsystemId": { 442 "description": "The Subsystem ID of this PCIe function.", 443 "longDescription": "This property shall contain the PCI Subsystem ID of the PCIe device function with the most significant byte shown first.", 444 "pattern": "^0[xX]([0-9A-Fa-f]{2}){2}$", 445 "readonly": true, 446 "type": [ 447 "string", 448 "null" 449 ] 450 }, 451 "SubsystemVendorId": { 452 "description": "The Subsystem Vendor ID of this PCIe function.", 453 "longDescription": "This property shall contain the PCI Subsystem Vendor ID of the PCIe device function with the most significant byte shown first.", 454 "pattern": "^0[xX]([0-9A-Fa-f]{2}){2}$", 455 "readonly": true, 456 "type": [ 457 "string", 458 "null" 459 ] 460 }, 461 "VendorId": { 462 "description": "The Vendor ID of this PCIe function.", 463 "longDescription": "This property shall contain the PCI Vendor ID of the PCIe device function with the most significant byte shown first.", 464 "pattern": "^0[xX]([0-9A-Fa-f]{2}){2}$", 465 "readonly": true, 466 "type": [ 467 "string", 468 "null" 469 ] 470 } 471 }, 472 "required": [ 473 "@odata.id", 474 "@odata.type", 475 "Id", 476 "Name" 477 ], 478 "type": "object" 479 } 480 }, 481 "language": "en", 482 "owningEntity": "DMTF", 483 "release": "2024.1", 484 "title": "#PCIeFunction.v1_6_0.PCIeFunction" 485}