# Redfish Device Enablement (RDE) support NOTES It is possible that some properties or resources described in this section are not implemented in HPE iLO 4 and iLO 5. HPE iLO implements the Platform Level Data Model for Redfish Device Enablement (PLDM for RDE) DMTF standard. In this section the term **RDE** is a shortcut for **PLDM for RDE**. The term **RDE capable device** refers to a physical device (i.e. storage controller) implementing PLDM for RDE. RDE enables management controllers (i.e. iLO) to present a Redfish-conformant data model, without the need of embedding specific code related to the vendor, family or model device. When PLDM for RDE is implemented in both the management controller and the device, the former acts as a request forwarder (pass-through) between the Redfish client and the device. TIP As `GET` responses from RDE capable devices come from the device, they don't contain any HPE `Oem/Hpe` section. However, they may contain OEM sections specific to the device maker (`Oem/DeviceMaker`). Refer to this [paragraph](#ilo-rde-uris-and-corresponding-http-methods) for the Redfish URIs enabled by iLO for RDE capable devices. In the detail, RDE capable management controllers and devices may use the Management Component Transfer Protocol (MCTP) to exchange Redfish encoded messages. By default, HPE iLO enables MCTP globally as well as on all possible device slots. Refer to the iLO user guide for managing MCTP from the GUI (`System Information` --> `Device Inventory` --> `Discovery`). Warning When MCTP is [globally disabled](#disable-the-mctp-globally) or if a [device slot](/docs/redfishservices/ilos/supplementdocuments/rdesupport/#disable-the-mctp-on-a-specific-slot) (PCIe, M.2, OCP...) is MCTP disabled, RDE capable devices may not be accessible via Redfish anymore. NOTE It is not possible to enable MCTP on a specific device slot. A global MCTP factory reset is required. This action enables MCTP globally and on all device slots. Refer to the examples below to manage the MCTP with Redfish. ## MCTP management with Redfish For troubleshooting or other reasons, you may want to disable or factory reset the MCTP. ### Retrieve MCTP status The following example retrieves the MCTP global status and the status of slot 5. MCTP global status ```text GET /redfish/v1/Chassis/1/?$select=Oem/Hpe/MCTPEnabledOnServer ``` MCTP Specific slot status ```text GET /redfish/v1/Chassis/1/devices/5/?$select=MCTPProtocolDisabled ``` ### Disable the MCTP globally Disable the MCTP ```text POST /redfish/v1/Chassis/1/Actions/Oem/Hpe/HpeServerChassis.DisableMCTPOnServer/ ``` Request body ```json {} ``` Response body ```json { "error": { "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information.", "@Message.ExtendedInfo": [ { "MessageId": "Base.1.12.Success" } ] } } ``` ### Disable the MCTP on a specific slot Generic PATCH request ```text PATCH: /redfish/v1/Chassis/{{ChassisId}}/devices/{{slotId}}/ ``` Request body ```json { "MCTPProtocolDisabled": true } ``` Response body ```json { "error": { "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information.", "@Message.ExtendedInfo": [ { "MessageId": "Base.1.12.Success" } ] } } ``` ### MCTP factory reset In order to globally re-enable the MCTP and all the specific slots, a MCTP factory reset is required. MCTP factory reset ```text POST /redfish/v1/Chassis/1/Actions/Oem/Hpe/HpeServerChassis.FactoryResetMCTP ``` Request body ```json {} ``` Response body ```json { "error": { "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information.", "@Message.ExtendedInfo": [ { "MessageId": "Base.1.12.Success" } ] } } ``` TIP If an MCTP factory reset returns an error (i.e. `ActionNotSupported`) and, the `System Information` --> `Device Inventory` --> `Recovery` button in the iLO graphical user interface is greyed out, it is possible to recover with an [Auxiliary Power Cycle](/docs/concepts/performing_actions/#auxiliary-power-cycle-hpe-specific-action) (**efuse**) action. ## iLO RDE URIs and corresponding HTTP methods The following table lists the Redfish URIs enabled by iLO for RDE capable devices. Cells contain the list of iLO generations supporting operations, or a dash character ("-") if the operation is not applicable or not supported. Refer to the [iLO 5 changelog](/docs/redfishservices/ilos/ilo5/ilo5_changelog/#rde-support-changes) file and look for string `RDE support changes` to get the first firmware version implementing RDE operations. iLO 6 implements all mentioned operations since version 1.05. NOTE - iLO returns `400 Bad Request` when RDE devices take a long time to process and respond to `POST` requests. - Enabled operations by iLO listed in the following table does not imply that all RDE capable devices supports those operations as well. For example, if RDE capable storage devices supports storage volumes then iLO supports `POST` and `DELETE` operations. | URI | GET | HEAD | PATCH | POST | DELETE | | --- | --- | --- | --- | --- | --- | | `/redfish/v1/Systems/{@systemsId}/NetworkInterfaces` | 5, 6 | - | - | - | - | | `/redfish/v1/Systems/{@systemsId}/NetworkInterfaces/{@nicId}` | 5, 6 | 5, 6 | - | - | - | | `/redfish/v1/Systems/{@systemId}/EthernetInterfaces` | 5, 6 | - | - | - | - | | `/redfish/v1/Systems/{@systemId}/EthernetInterfaces/{@nicId}` | 5, 6 | 5, 6 | 5, 6 | 5, 6 | - | | `/redfish/v1/Chassis/{@chassisId}/PCIeDevices` | 5, 6 | - | - | - | - | | `/redfish/v1/Chassis/{@chassisId}/PCIeDevices/{@PCIeDeviceId}` | 5, 6 | 5, 6 | - | - | - | | `/redfish/v1/Chassis/{@chassisId}/PCIeDevices/{@PCIeDeviceId}/PCIeFunctions` | 5, 6 | - | - | - | - | | `/redfish/v1/Chassis/{@chassisId}/PCIeDevices/{@PCIeDeviceId}/PCIeFunctions/{@PCIeFunctionId}` | 5, 6 | 5, 6 | - | - | - | | `/redfish/v1/Chassis/{@chassisId}/NetworkAdapters` | 5, 6 | - | - | - | - | | `/redfish/v1/Chassis/{@chassisId}/NetworkAdapters/{@nicId}` | 5, 6 | 5, 6 | 5, 6 | 5, 6 | - | | `/redfish/v1/Chassis/{@chassisId}/NetworkAdapters/{@nicId}/NetworkPorts` | 5, 6 | - | - | - | - | | `/redfish/v1/Chassis/{@chassisId}/NetworkAdapters/{@nicId}/NetworkPorts/{@portId}` | 5, 6 | 5, 6 | 5, 6 | 5, 6 | - | | `/redfish/v1/Chassis/{@chassisId}/NetworkAdapters/{@nicId}/Ports` | 5, 6 | - | - | - | - | | `/redfish/v1/Chassis/{@chassisId}/NetworkAdapters/{@nicId}/Ports/{@portId}` | 5, 6 | 5, 6 | 5, 6 | 5, 6 | - | | `/redfish/v1/Chassis/{@chassisId}/NetworkAdapters/{@nicId}/NetworkDeviceFunctions` | 5, 6 | - | - | - | - | | `/redfish/v1/Chassis/{@chassisId}/NetworkAdapters/{@nicId}/NetworkDeviceFunctions/{@pfId}` | 5, 6 | 5, 6 | 5, 6 | 5, 6 | - | | `/redfish/v1/Systems/{@systemId}/Storage` | 5, 6 | - | - | - | - | | `/redfish/v1/Systems/{@systemId}/Storage/{@storageId}` | 5, 6 | 5, 6 | 5, 6 | 5, 6 | - | | `/redfish/v1/Systems/{@systemId}/Storage/{@storageId}/Drives/{@driveId}` | 5, 6 | 5, 6 | 5, 6 | 5, 6 | - | | `/redfish/v1/Systems/{@systemId}/Storage/{@storageId}/Controllers/` | 5, 6 | - | - | - | - | | `/redfish/v1/Systems/{@systemId}/Storage/{@storageId}/Controllers/{@controllerId}` | 5, 6 | 5, 6 | 5, 6 | - | - | | `/redfish/v1/Systems/{@systemId}/Storage/{@storageId}/Controllers/{@ControllerId}/Ports/{@portId}` | 5, 6 | 5, 6 | 5, 6 | - | - | | `/redfish/v1/Systems/{@systemId}/Storage/{@storageId}/Volumes` | 5, 6 | - | - | 5, 6 | - | | `/redfish/v1/Systems/{@systemId}/Storage/{@storageId}/Volumes/{@volumeId}` | 5, 6 | 5, 6 | 5, 6 | 5, 6 | 5, 6 | ## RDE capable device schema file locations Redfish responses from RDE enabled devices depend on the schema versions that are supported by each device. They may vary across device vendors, families and models. The schema files describing RDE capable devices are not stored in iLO and usually not in the device. However, their location is in the `Link` response header property of HEAD requests. These schema files can be obtained using iLOrest tool. ### Controller schema file location of an RDE capable storage controller iLOrest command ```shell ilorest rawhead /redfish/v1/Systems/1/Storage/DE07C000 2>/dev/null | jq '.Link' ``` Response ```Shell https://redfish.dmtf.org/schemas/Storage.v1_13_0.json ``` ### Volume schema file location of an RDE capable logical volumes iLOrest command ```shell ilorest rawhead /redfish/v1/Systems/1/Storage/DE07C000/Volumes 2>/dev/null | jq -r '.Link' ``` Response ```Shell https://redfish.dmtf.org/schemas/VolumeCollection.json ``` ### Network port schema file location of an RDE capable network adapter iLOrest command ```shell ilorest rawhead /redfish/v1/Chassis/1/NetworkAdapters/DE080000/NetworkPorts 2>/dev/null | jq '.Link' ``` Response ```Shell http://redfish.dmtf.org/schemas/v1/NetworkPortCollection.json ``` For more detail concerning PLDM for RDE, refer to the DMTF RDE specification.