7.2.4. Using Redfish
Redfish is an open industry standard, managed by the DMTF (specification DSP0266), that defines a modern RESTful API for managing hardware infrastructure such as servers, storage, and network devices. It is built on familiar, widely used web technologies (HTTP/HTTPS, JSON, REST, and OData) so it is both human-readable and machine-consumable. In Redfish, every piece of hardware is represented as a resource reachable by navigating from a single root at /redfish/v1, and clients manage those resources using standard operations (create, read, update, delete). Resources are organized into collections such as Systems, Managers, and Chassis.
Redfish Device Enablement (RDE), defined by DMTF specification DSP0218 and carried over the PLDM transport (Type 6), extends Redfish to small, lightweight devices (for example, network adapters) that cannot practically host a full HTTP/JSON software stack of their own. With RDE, a management controller (typically the BMC) acts as a proxy: it presents the device's resources to standard Redfish clients over normal HTTP/JSON, while communicating with the device itself using a compact Binary Encoded JSON (BEJ) format over PLDM. This lets a standard, unmodified Redfish client interact with the device as if it were talking to it directly, while keeping the device-side implementation lightweight.
Together, Redfish and RDE provide a single, consistent, standards-based way to discover, monitor, and manage hardware—from full servers down to individual components—using common IT and web tooling. In Cornelis products, RDE is a NIC requirement that exposes device resources (such as the network adapter, its ports, and associated metrics) through this framework.
7.2.4.1. Monitoring CN5000 Switches with the Redfish API
Redfish is a DMTF-standard RESTful interface for out-of-band platform management. On CN5000 Switches, Redfish is hosted by the Baseboard Management Controller (BMC) on each manageable board and can provide remote inventory, telemetry, event subscription, log retrieval, and firmware update.
The following table lists the CN5000 Redfish URIs for each resource.
Resource | URI |
|---|---|
Service root |
|
Sessions |
|
Accounts |
|
Roles |
|
Chassis collection |
|
Thermal subsystem |
|
Managers (BMC) |
|
Managers log services |
|
Systems log services |
|
Update Service |
|
Firmware Inventory |
|
Event subscriptions |
|
Task Service |
|
7.2.4.1.1. CN5000 Cornelis OEM Redfish Endpoints
The CN5000 switch BMC supplements the standard DMTF Redfish interface with Cornelis OEM endpoints, providing switch-specific hardware operations—including ASIC fault recovery, chassis reboot orchestration, and chassis management network configuration—that fall outside the scope of the standard DMTF schema.
ASIC Reset (DCS Management Module and Switch BMCs only)
Endpoint:
POST /redfish/v1/Managers/bmc/Actions/Oem/CornelisNetworks.AsicResetAction Info:
GET /redfish/v1/Managers/bmc/Oem/CornelisNetworks/AsicResetActionInfoDescription: Resets the network ASIC on a line card without rebooting the BMC itself. Useful for recovering from ASIC-level faults.
Parameters: ResetType — GracefulRestart or ForceRestart
Availability: Only advertised on line card BMCs (not on management module boards)
Chassis Reboot (Management Module BMCs only)
Endpoint:
POST /redfish/v1/Managers/bmc/Actions/Oem/CornelisNetworks.ChassisRebootAction Info:
GET /redfish/v1/Managers/bmc/Oem/CornelisNetworks/ChassisRebootActionInfoDescription: Reboots the entire chassis or specific slots within it. Allows targeted reboot of individual line cards from the management module.
Parameters: ResetType — GracefulRestart or ForceRestart; Targets (optional) — array of slot IDs to reboot (omit to reboot entire chassis)
Availability: Only advertised on management module BMCs
Chassis IP Configuration (All BMCs)
Endpoint:
GET/PATCH /redfish/v1/Managers/bmc/EthernetInterfaces/eth0Description: Extends the standard EthernetInterface resource with an Oem.CornelisNetworks section for configuring the chassis management network address. This is the shared chassis-level IP, separate from the individual BMC's own network interface.
OEM Properties: ChassisIPv4Address, ChassisIPv4Netmask, ChassisIPv4Prefix, ChassisIPv6Address, ChassisIPv6Prefix
Operations: GET to read current config; PATCH to update
Manager.Reset Override (All BMCs)
Endpoint:
POST /redfish/v1/Managers/bmc/Actions/Manager.ResetDescription: The standard BMC reset action is overridden to route through Cornelis chassis management, ensuring coordinated reboot behavior across the chassis. Same ResetType values as upstream (GracefulRestart, ForceRestart), but the reboot is orchestrated rather than a raw BMC restart.
7.2.4.1.1. Verifying Redfish Is Installed
From a management host on the same network, confirm the Redfish service is installed and responding:
curl -k https://<bmc_ip>/redfish/v1/UpdateService/FirmwareInventory/bmc_1
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "Enabled"
},
"Updateable": false,
"Version": "12.2.0.0.0"7.2.4.1.2. Authenticating to Redfish
Redfish on CN5000 supports two authentication methods.
Use Basic for simple ad-hoc calls.
Note
This method will leave the password in the command history.
Use Sessions for multi-request workflows and scripted tooling.
Basic Authorization
curl -k -u "admin:<password>" https://<bmc_ip>/redfish/v1/Chassis
Tip
Each request re-authenticates, which adds per-call overhead. Use Sessions for anything beyond a single call.
Sessions Authentication (Recommended)
Create a session and capture the X-Auth-Token and Location response headers:
curl -k -i -X POST https://<bmc_ip>/redfish/v1/SessionService/Sessions \ -H "Content-Type: application/json" \ -d '{"UserName":"admin","Password":"<password>"}'Use the token on subsequent requests:
curl -k -H "X-Auth-Token: <token>" https://<bmc_ip>/redfish/v1/Chassis
Log out when finished:
curl -k -X DELETE -H "X-Auth-Token: <token>" https://<bmc_ip><session_location_uri>
7.2.4.1.3. Managing Redfish Accounts and Roles
CN5000 BMCs implement the three standard predefined Redfish roles.
Role | Required (Floor) Privileges | Forbidden privileges |
|---|---|---|
Administrator | Login, ConfigureManager, ConfigureUsers, ConfigureSelf | — |
Operator | Login, ConfigureSelf | ConfigureUsers, ConfigureManager |
ReadOnly | Login, ConfigureSelf | ConfigureUsers, ConfigureManager, ConfigureComponents |
Note
Usernames are limited to 16 characters.
7.2.4.1.3.1. Create an Account
curl -k -u "$BMC_USER:$BMC_PASS" -X POST \
https://<bmc_ip>/redfish/v1/AccountService/Accounts \
-H "Content-Type: application/json" \
-d '{"UserName":"opsuser","Password":"Example123!","RoleId":"Operator"}'7.2.4.1.3.2. Read an Account
curl -k -u "$BMC_USER:$BMC_PASS" \ https://<bmc_ip>/redfish/v1/AccountService/Accounts/opsuser
7.2.4.1.3.3. Change the Role of an Existing Account
curl -k -u "$BMC_USER:$BMC_PASS" -X PATCH \
https://<bmc_ip>/redfish/v1/AccountService/Accounts/opsuser \
-H "Content-Type: application/json" \
-d '{"RoleId":"ReadOnly"}'
7.2.4.1.3.4. Delete an Account
curl -k -u "$BMC_USER:$BMC_PASS" -X DELETE \ https://<bmc_ip>/redfish/v1/AccountService/Accounts/opsuser
7.2.4.1.4. Retrieving Inventory and Thermal Telemetry
The chassis Id segment in each URI depends on the board type being queried: CN5000 Switch (CNEdge) or Director Class Switch (CNMM).
List the chassis collection:
curl -k -H "X-Auth-Token: $T" https://<bmc_ip>/redfish/v1/Chassis
Retrieve the thermal subsystem for the target board (example uses CNEdge):
curl -k -H "X-Auth-Token: $T" \ https://<bmc_ip>/redfish/v1/Chassis/CNEdge/ThermalSubsystem
Retrieve thermal metrics and fan inventory:
curl -k -H "X-Auth-Token: $T" \ https://<bmc_ip>/redfish/v1/Chassis/CNEdge/ThermalSubsystem/ThermalMetrics curl -k -H "X-Auth-Token: $T" \ https://<bmc_ip>/redfish/v1/Chassis/CNEdge/ThermalSubsystem/Fans
7.2.4.1.5. Subscribing to Redfish Events
The EventService delivers asynchronous notifications (for example, OpenBMC-registry messages) to a subscribed destination.
Supported SubscriptionType value: RedfishEvent
List existing subscriptions:
curl -k -u "$BMC_USER:$BMC_PASS" \ https://<bmc_ip>/redfish/v1/EventService/Subscriptions
Create a subscription:
curl -k -u "$BMC_USER:$BMC_PASS" -H 'Content-Type: application/json' \ -d '{ "Destination":"https://listener.example.net:8443/events", "Protocol":"Redfish", "EventFormatType":"Event", "RegistryPrefixes":["OpenBMC"] }' \ https://<bmc_ip>/redfish/v1/EventService/SubscriptionsDelete a subscription using the @odata.id returned from the POST response:
curl -k -u "$BMC_USER:$BMC_PASS" -X DELETE \ https://<bmc_ip>/redfish/v1/EventService/Subscriptions/<id>
7.2.4.1.6. Collecting Redfish Logs
Log services are exposed under both the Managers/bmc and Systems/system namespaces.
Valid Severity values: OK, Warning, Critical.
Valid EntryType values: Event, SEL, Oem, Multiple.
To collect Redfish logs:
Enumerate log services:
curl -k -u "$BMC_USER:$BMC_PASS" \ https://<bmc_ip>/redfish/v1/Managers/bmc/LogServices curl -k -u "$BMC_USER:$BMC_PASS" \ https://<bmc_ip>/redfish/v1/Systems/system/LogServices
Paginate entries from the EventLog:
curl -k -u "$BMC_USER:$BMC_PASS" \ 'https://<bmc_ip>/redfish/v1/Systems/system/LogServices/EventLog/Entries?$top=20'
Note
The following are expected empty-log conditions:
HostLogger may legitimately return zero entries when the host is powered off or is not streaming serial console data.
EventLog can be empty on a freshly booted BMC.
Journal should always contain entries (populated from kernel boot messages); an empty Journal indicates a problem. Refer to Troubleshooting Redfish Access, Session, and Update Failures.
7.2.4.1.7. Troubleshooting Redfish Access, Session, and Update Failures
Symptom | Likely Cause | Action |
|---|---|---|
curl to /redfish/v1 times out or is refused | BMC network not configured; Redfish service not running | Confirm the BMC has an IP and answers ping from this host. If not, refer to CN5000 Fabric Installation Guide, CN5000 Switch and DCS Start-up Procedures: From serial console confirm management Ethernet is up and has an IP. |
401 Unauthorized on every request | Wrong credentials; account disabled; role lacks Login | Verify account via Section 7.2.4.1.3. Confirm the RoleId is one of Administrator, Operator, ReadOnly. |
403 Forbidden on firmware update | Account does not have Administrator role | Re-authenticate with an Administrator account (refer to Section 7.2.4.1.3 and Section 7.3.2.5). |
Username creation rejected | Username exceeds 16 characters | Shorten the username (refer to Section 7.2.4.1.3 constraint). |
EventLog returns no entries | Normal on a freshly booted BMC | No action required. Refer to Section 7.2.4.1.6 note. |
Journal returns no entries | Abnormal — indicates a BMC problem | Collect serial console output and escalate. |
Firmware update Task never completes | Update exceeded the BMC task-service default timeout (approximately 20 minutes) | Re-check package integrity and retry. If the issue persists, escalate with the Task resource JSON. |
Event subscription POST succeeds but listener receives nothing | Listener URL unreachable from BMC; TLS trust failure | Verify BMC-to-listener HTTPS connectivity. Confirm the listener accepts the BMC's certificate chain. |
7.2.4.2. Monitoring CN5000 SuperNICs with Redfish Device Enablement
Redfish Device Enablement (RDE) allows the CN5000 SuperNIC to appear as a standard Redfish device in the platform's Baseboard Management Controller (BMC). After the SuperNIC is discovered, the BMC exposes its health status and telemetry through the same Redfish API used to manage the rest of the server platform. No additional software agent is required on the host.
Note
Not all platform BMCs support Redfish. Refer to Prerequisites.
Note
RDE <chassis_id> is the host server's BMC chassis member, not the CN-prefixed switch board name.
7.2.4.2.1. How RDE Works
When a server boots, the BMC automatically discovers the CN5000 SuperNIC over a sideband management channel that runs independently of the host operating system. No configuration or host-side agent is required to enable this.
Once discovered, the SuperNIC's health status and telemetry appear in the server's standard Redfish service, alongside the server's own sensors and components. You can then read that data with any standard Redfish client; the same way you access the rest of the platform.
The following sections describe the Redfish resources the CN5000 exposes, the operations you can perform on them, the prerequisites, and how to access and troubleshoot those resources through the BMC's Redfish API.
7.2.4.2.1. Exposed Redfish Resources
The CN5000 exposes Redfish resources through RDE. Each resource represents a different view of the SuperNIC—as a physical device, a set of fabric ports, a source of traffic telemetry, a PCIe device on the server bus, and a host-side network function.
Resource | URI | Description |
|---|---|---|
NetworkAdapter |
| Adapter identity: manufacturer, model, serial number, firmware version, and PCIe interface parameters |
Port |
| Per-port status: link state, link speed, port protocol, and port type for each fabric port |
PortMetrics |
| Per-port telemetry: transmit/receive and RDMA counters, plus transceiver telemetry (module temperature, supply voltage and per-lane optical power and bias current) when a QSFP module is present |
PCIeDevice |
| The adapter's PCIe identity: PCIe generation, number of lanes in use, and device type |
NetworkInterface |
| The binding between the host system and the adapter: links to the adapter's ports and network functions |
NetworkDeviceFunction (InfiniBand type) |
| The network function the adapter presents to the host: InfiniBand identity (GUIDs), MTU, enabled state, and Status |
Each resource is accessible through the BMC's standard Redfish API.
7.2.4.2.2. Supported Operations and Limitations
RDE is read-only. RDE is a monitoring and visibility interface, not a configuration interface. GET is the only supported HTTP method on CN5000 SuperNIC resources. You can read every exposed resource, but you cannot change, create, or delete anything through RDE; PATCH, POST, and DELETE are not supported and return 405 Method Not Allowed. This applies to sensor data as well: there is no way to set thresholds or write values back to the SuperNIC through this interface. To configure the CN5000, use in-band host tools.
7.2.4.2.2.1. What You Can Do
GET any exposed resource or collection through the BMC Redfish API.
Read the SuperNIC identity, port status, port telemetry, PCIe device information, and host-side network interface data.
Navigate all resources using a standard Redfish client — a browser, script, redfishtool, or any BMC management console that surfaces Redfish.
7.2.4.2.2.2. Additional Limitations
RDE is not a substitute for host-side management. To configure the SuperNIC, use the applicable OPX Software tools (i.e.,
opaportconfigandopafm.xml).
7.2.4.2.3. Prerequisites
Before the BMC can surface CN5000 SuperNIC resources through the Redfish API, the following must be in place.
The SuperNIC must be running firmware release v12.2.0 or later, which delivers RDE support.
The platform BMC must support MCTP and implement an RDE Provider. Not all BMC implementations support RDE decoding.
7.2.4.2.4. Verifying RDE Resources Are Available
From a management host on the same network, confirm the SuperNIC's RDE-provided resources are being surfaced by the BMC.
List the network adapter collection:
curl -k -u "admin:<password>" https://<bmc_ip>/redfish/v1/Chassis/<chassis_id>/NetworkAdapters
Read a specific adapter to confirm it is present and healthy:
curl -k -u "admin:<password>" https://<bmc_ip>/redfish/v1/Chassis/<chassis_id>/NetworkAdapters/<adapter_id>
A healthy response includes a populated Status object, for example:
"Status": { "Health": "OK", "State": "Enabled" }
Note
If the adapter collection is empty or the adapter is absent, the issue is at the NIC-to-BMC RDE/PLDM layer (device discovery/registration), not at the Redfish API. This is a firmware-level condition, not something corrected through the Redfish client.
7.2.4.2.5. Authenticating
RDE resources are served through the BMC's standard Redfish service. Authentication is identical to the standard Redfish API (refer to Authenticating to Redfish for Basic authorization or Sessions with X-Auth-Token). No additional or device-specific authentication is required.
7.2.4.2.6. Managing Accounts and Roles
RDE does not provide its own accounts or roles. Access to RDE-surfaced SuperNIC resources is governed by the same BMC Redfish accounts and roles defined in Managing Redfish Accounts and Roles (Administrator, Operator, ReadOnly). Reading SuperNIC resources requires only Login privilege, so all three predefined roles can view them.
7.2.4.2.7. Getting the <chassis_id>
RDE chassis IDs come from the host server's BMC and are not the CN-prefixed switch IDs.
GET the Chassis collection.
curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Chassis
Example output:
{ "Members": [ { "@odata.id": "/redfish/v1/Chassis/System.Embedded.1" }, { "@odata.id": "/redfish/v1/Chassis/NetworkAdapter.Slot.3" } ], "Members@odata.count": 2 }The value after
/Chassis/is the<chassis_id>.To identify the Cornelis SuperNIC when several exist in the output, you must GET each candidate member and check its identity fields.
curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Chassis/<candidate>
The Cornelis identity reports:
{ "Manufacturer": "Cornelis Networks", "Model": "CN5000" }
7.2.4.2.8. Getting the <system_id>
GET the System collection.
curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Systems
Example output:
{ "Members": [ { "@odata.id": "/redfish/v1/Systems/System.Embedded.1" } ], "Members@odata.count": 1 }The value after
/Systems/is the<system_id>.To confirm the System is the correct one, GET the system and follow its NetworkInterfaces collection (as described in Viewing the NetworkInterface) to the interface whose
Links.NetworkAdapterpoints back at the Cornelis NetworkAdapter you identified in Getting the <chassis_id>, Step 2.
The following procedures assume you have already resolved <chassis_id> and <system_id> as described above. Each procedure shows how to obtain the additional ID it introduces.
7.2.4.2.9. Discovering the SuperNIC NetworkAdapter
The NetworkAdapter resource represents the physical NIC (the SuperNIC adapter itself) as the top-level device and links to its subordinate port and network device function collections.
Navigate from the service root to the NetworkAdapter resource.
Prerequisite: Getting the <chassis_id>
Get the NetworkAdapters collection under your chassis; the string after
/NetworkAdapters/in the Cornelis member's @odata.id is<adapter_id>.curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Chassis/<chassis_id>/NetworkAdapters
Get the specific NetworkAdapter.
{ "Manufacturer": "Cornelis Networks", "Model": "CN5000", "SerialNumber": "CNXXXXXXXX", "PartNumber": "XXXXXXXXXX", "FirmwareVersion": "X.X.X.X", "Controllers": [ { "Links": { "PCIeDevices": [ { "@odata.id": "/redfish/v1/Chassis/<chassis_id>/PCIeDevices/<device_id>" } ] } } ], "Ports": { "@odata.id": "/redfish/v1/Chassis/<chassis_id>/NetworkAdapters/<adapter_id>/Ports" } }
7.2.4.2.10. Viewing Port Status
The Port resource represents an individual fabric port on the adapter, exposing its link state, speed, and connection properties.
Navigate from the NetworkAdapter to the Ports collection, then to a specific port.
Prerequisites: Getting the <chassis_id>, Discovering the SuperNIC NetworkAdapter
Get the Ports collection (linked from the NetworkAdapter's Ports field, which you already retrieved); the string after
/Ports/is<port_id>.curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Chassis/<chassis_id>/NetworkAdapters/<adapter_id>/Ports
Get a specific port.
curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Chassis/<chassis_id>/NetworkAdapters/<adapter_id>/Ports/<port_id>
Example output:
{ "Id": "0", "LinkState": "Enabled", "LinkStatus": "LinkUp", "CurrentSpeedGbps": 100, "Metrics": { "@odata.id": "/redfish/v1/Chassis/<chassis_id>/NetworkAdapters/<adapter_id>/Ports/<port_id>/Metrics" } }
7.2.4.2.11. Reading Port Telemetry (PortMetrics)
The PortMetrics resource provides per-port counters and telemetry for a given port, including RDMA counters relevant to an RDMA-capable NIC. When a QSFP module is present, it also reports transceiver telemetry: module temperature, supply voltage, and per-lane optical power and bias current under Transceivers[].ByLane[].
Navigate from the Port resource to its Metrics sub-resource.
Prerequisites: Getting the <chassis_id>, Discovering the SuperNIC NetworkAdapter, Viewing Port Status
curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Chassis/<chassis_id>/NetworkAdapters/<adapter_id>/Ports/<port_id>/Metrics
Example output (with a 4-lane QSFP module installed):
{
"Id": "0",
"Name": "Port Metrics",
"RXBytes": 0,
"TXBytes": 0,
"RXErrors": 0,
"TXErrors": 0,
"Networking": {
"RXFrames": 0,
"TXFrames": 0,
"RXUnicastFrames": 0,
"TXUnicastFrames": 0,
"RXMulticastFrames": 0,
"TXMulticastFrames": 0,
"RXDiscards": 0,
"TXDiscards": 0,
"RDMARXBytes": 0,
"RDMATXBytes": 0,
"RDMARXRequests": 0,
"RDMATXRequests": 0,
"RDMAProtectionErrors": 0,
"RDMAProtocolErrors": 0
},
"Transceivers": [
{
"RXInputPowerMilliWatts": 0.5,
"SupplyVoltage": 3300,
"TXBiasCurrentMilliAmps": 6.5,
"TXOutputPowerMilliWatts": 0.8,
"ByLane": [
{ "RXInputPowerMilliWatts": 0.5, "TXBiasCurrentMilliAmps": 6.5, "TXOutputPowerMilliWatts": 0.8 },
{ "RXInputPowerMilliWatts": 0.5, "TXBiasCurrentMilliAmps": 6.5, "TXOutputPowerMilliWatts": 0.8 },
{ "RXInputPowerMilliWatts": 0.5, "TXBiasCurrentMilliAmps": 6.5, "TXOutputPowerMilliWatts": 0.8 },
{ "RXInputPowerMilliWatts": 0.5, "TXBiasCurrentMilliAmps": 6.5, "TXOutputPowerMilliWatts": 0.8 }
]
}
]
}Note
The output shows raw module readings. Compare against the transceiver datasheet.
ByLane appears only with a QSFP present.
All-zero counters are normal when idle.
7.2.4.2.12. Viewing the PCIe Device
The PCIeDevice resource represents the PCIe-side view of the NIC, describing its PCIe interface characteristics and functions as attached to the system.
Navigate from the service root to the PCIeDevice resource.
Prerequisite: Getting the <chassis_id>
GET the PCIeDevices collection and read the @odata.id of the member it returns. The string after
/PCIeDevices/is your<device_id>.curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Chassis/<chassis_id>/PCIeDevices
Get the specific PCIeDevice.
curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Chassis/<chassis_id>/PCIeDevices/<device_id>
Example output:
{ "DeviceType": "SingleFunction", "PCIeInterface": { "PCIeType": "Gen4", "LanesInUse": 16 } }PCIeTypeis the negotiated PCIe generation andLanesInUseis the negotiated link width. A value lower than expected (for example, Gen3 instead of Gen4, or fewer lanes than the slot provides) can indicate a link-training or slot-seating issue.
7.2.4.2.13. Viewing the NetworkInterface
The NetworkInterface resource represents the system-side binding of the adapter, providing the functional (host-facing) view that links back to the physical NetworkAdapter.
Prerequisite: Getting the <system_id>
Get the NetworkInterfaces collection. The string after
/NetworkInterfaces/is your<interface_id>.curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Systems/<system_id>/NetworkInterfaces
Get the specific NetworkInterface.
curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Systems/<system_id>/NetworkInterfaces/<interface_id>
Example output:
{ "Id": "0", "Name": "Network Interface", "Status": { "State": "Enabled", "Health": "OK", "HealthRollup": "OK" }, "Links": { "NetworkAdapter": { "@odata.id": "/redfish/v1/Chassis/<chassis_id>/NetworkAdapters/<adapter_id>" } }, "NetworkDeviceFunctions": { "@odata.id": "/redfish/v1/Systems/<system_id>/NetworkInterfaces/<interface_id>/NetworkDeviceFunctions" }, "NetworkPorts": { "@odata.id": "/redfish/v1/Chassis/<chassis_id>/NetworkAdapters/<adapter_id>/Ports" } }
7.2.4.2.14. Viewing the NetworkDeviceFunction
The NetworkDeviceFunction resource describes the host-side network function of the adapter: its InfiniBand identity (GUIDs and MTU) and device-enabled state.
Navigate from the NetworkAdapter to the NetworkDeviceFunctions collection.
Prerequisites: Getting the <chassis_id>, Discovering the SuperNIC NetworkAdapter
Get the NetworkDeviceFunctions collection. The string after /NetworkDeviceFunctions is your <function_id>.
curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Chassis/<chassis_id>/NetworkAdapters/<adapter_id>/NetworkDeviceFunctions
Get a specific NetworkDeviceFunction.
curl -k -H "X-Auth-Token: <token>" \ https://<bmc_ip>/redfish/v1/Chassis/<chassis_id>/NetworkAdapters/<adapter_id>/NetworkDeviceFunctions/<function_id>
Example output:
{ "Id": "0", "Name": "NetworkDeviceFunction", "NetDevFuncType": "InfiniBand", "DeviceEnabled": true, "InfiniBand": { "PortGUID": "0xd0066a0101002020", "PermanentPortGUID": "0xd0066a0101002020", "NodeGUID": "0xd0066a0001002020", "PermanentNodeGUID": "0xd0066a0001002020", "SystemGUID": "0x0000000000000000", "MTUSize": 10240, "SupportedMTUSizes": [2048, 4096, 8192, 10240] }, "Status": { "State": "Enabled", "Health": "OK", "HealthRollup": "OK" } }
7.2.4.2.15. Troubleshooting RDE
If CN5000 SuperNIC resources do not appear in the BMC Redfish tree, or if you receive unexpected errors when querying those resources, work through the issues below in order.
Symptom | Likely Cause | What to Do |
|---|---|---|
NetworkAdapter not visible in BMC Redfish tree | CN5000 is running a firmware version that predates RDE support | Verify the installed CN5000 firmware version is v12.2.0 or later. See Prerequisites. |
BMC has not completed MCTP endpoint discovery | Check the BMC event log for MCTP or PLDM discovery errors. Allow time for the BMC to complete initialization after power-on before querying. | |
NetworkAdapter is visible but PortMetrics returns empty or no data | CN5000 firmware has not yet fully populated the PDR repository | Verify the CN5000 firmware version. Allow additional time after power-on for firmware initialization to complete before querying PortMetrics. |
PATCH or POST to a SuperNIC resource returns 405 Method Not Allowed | RDE operations are read-only | This is expected behavior. Use GET only. To configure the CN5000, use in-band host tools. |
BMC shows SuperNIC resources but data appears stale or does not update | BMC polling interval is longer than expected | Check the BMC platform documentation for the PLDM sensor polling interval. This is controlled by the BMC, not the CN5000 firmware. |
7.2.4.2.15.1. Where to Look
When the BMC event log does not provide enough detail, check the following sources:
BMC event log: Look for MCTP endpoint discovery events, PLDM errors, and RDE-specific fault entries. The log location and format depends on the BMC platform (iLO, iDRAC, XCC, or other).
CN5000 firmware version: Confirm the installed version using the in-band host tools before raising a support case. Version information is also available in the
NetworkAdapterresource once it is visible.PCIe slot documentation: Verify the server platform documentation confirms that the slot being used routes the SMBus sideband path to the BMC.
7.2.4.2.15.2. Escalation
If the issue is not resolved by the steps above, contact support@cornelisnetworks.com with the following information:
CN5000 firmware version
Server platform make, model, and BMC firmware version
BMC event log covering the period from power-on to the point where the issue was observed
Output of
GET /redfish/v1/ChassisandGET /redfish/v1/Systemsfrom the BMC
7.2.4.3. Integrating and Qualifying SuperNIC RDE (for OEMs and Server Providers)
This section is for OEMs and server-providers—specifically BMC/management-controller firmware developers and platform-hardware designers—who integrate and qualify BMC-side support for Redfish Device Enablement (RDE) with Cornelis SuperNICs. It describes the device-side conformance the SuperNIC provides and the platform-side obligations the BMC and server board must satisfy so that the SuperNIC is discovered, decoded, and presented through the BMC's Redfish API.
Note that this is not end-user operations content. Administrators who query a working platform should refer to Monitoring CN5000 SuperNICs with Redfish Device Enablement, which covers data retrieval through the BMC. This section covers what must be true for that retrieval to work at all.
7.2.4.3.1. RDE Architecture Overview
RDE lets the SuperNIC expose its Redfish resources to the BMC without implementing an HTTP or JSON stack on the device. DSP0218 defines only the encoding and transport mechanics — it does not define the Redfish resource data models themselves. This creates a clear division of responsibility that shapes every OEM integration task:
The SuperNIC (device) advertises its resources as Redfish Resource PDRs and returns them as Binary-Encoded JSON (BEJ) over PLDM on request.
The BMC (management controller) performs discovery, reads the PDR repository, issues RDE operations, decodes the BEJ, and supplies the entire northbound HTTP/JSON/Redfish service layer presented to external clients.
Because RDE is schema-agnostic and DSP0218 imposes no fixed resource set, the set of resources a given SuperNIC exposes is a product decision, not a standardized guarantee. OEMs must therefore code their BMC integration against the conformance data in this section and against the resource set the device actually advertises at runtime, never against an assumed standard set.
7.2.4.3.2. Platform Prerequisites
Before a BMC can surface SuperNIC resources through Redfish, the platform must satisfy the following. These are platform-design and BMC-firmware responsibilities owned by the OEM or server provider.
BMC/management-controller requirements
The platform BMC must support MCTP and implement an RDE Provider (an RDE-capable management controller). Not all BMC implementations support RDE decoding.
The BMC must implement the PLDM layers described in Required PLDM Layers at the Device Terminus.
Device firmware requirement
The CN5000 must be running firmware release v12.2.0 or later, which delivers RDE support.
Sideband transport/slot-routing requirements
The adapter must be seated in a PCIe slot whose SMBus sideband path is routed to the platform BMC. SMBus is the always-available sideband path.
7.2.4.3.3. Discovery and Negotiation Sequence
The BMC brings a SuperNIC online through standard MCTP endpoint enumeration followed by PLDM discovery. The device requires no host-side agent. The sequence is:
The BMC issues PLDM Base (Type 0) discovery (GetPLDMTypes, GetPLDMCommands) to the SuperNIC's platform-management PLDM terminus. The terminus enumerates the PLDM types it supports (Types 0, 2, 4, 5, and 6).
The BMC reads the PDR repository using PLDM Type 2 GetPDRRepositoryInfo and GetPDR to enumerate the device's Redfish Resource PDRs.
The BMC issues a PLDM for Redfish Device Enablement (Type 6, DSP0218) operation for a target Redfish resource.
The device serves the requested resource as BEJ over PLDM, using RDE multipart transfer when the payload spans multiple PLDM messages.
The BMC decodes the BEJ and presents the resource through the standard Redfish API to external clients.
Per DSP0218 Section 7.2.1, to be recognized as an RDE Device the device must respond to GetPLDMTypes indicating support for both PLDM Type 2 (Platform Monitoring and Control) and PLDM Type 6 (RDE). After PLDM-level discovery, the BMC issues NegotiateRedfishParameters to establish baseline RDE parameters.
7.2.4.3.4. Required PLDM Layers at the Device Terminus
Adding RDE is not self-contained. Per DSP0218 v1.2.0, Section 7.2.1, an RDE Device must advertise and implement three PLDM layers at its terminus, and the OEM's BMC must be prepared to exercise all three:
PLDM Base (Type 0, DSP0240) — discovery and control: GetTID, SetTID, GetPLDMTypes, GetPLDMVersion, GetPLDMCommands (mandatory base command set per DSP0240, Section 8).
PLDM for Platform Monitoring and Control (Type 2, DSP0248) — two parts:
The mandatory RDE dependency is the PDR-repository subset (GetPDRRepositoryInfo, GetPDR), which backs the repository holding the device's Redfish Resource PDRs (and, where applicable, Redfish Entity Association, Action, and Parallel Resource PDRs).
In addition, the SuperNIC carries forward a sensor-monitoring datapath (GetSensorReading, GetSensorThresholds, GetStateSensorReadings) exposing live platform sensor telemetry. Type 2 effecters and the full control datapath are not supported.
PLDM for Redfish Device Enablement (Type 6, DSP0218) — the RDE operations and multipart transfer that carry BEJ-encoded Redfish resources (mandatory).
7.2.4.3.4.1. Terminus Model
On Cornelis SuperNICs, RDE and its Type 2 PDR-repository dependency are owned by the adapter's platform-management processor, while PLDM discovery (Type 0) and firmware update (Type 5) may be owned by a separate management processor. PLDM terminus is scoped to a single MCTP endpoint; a single GetPLDMTypes enumerates only the types at that terminus. The BMC discovers the terminus through normal MCTP endpoint enumeration; no cross-processor PLDM discovery is required. OEM BMC discovery logic must not assume that a single terminus enumerates every PLDM type the device supports.
7.2.4.3.5. Supported Protocol Versions
The CN5000 RDE implementation conforms to the following DMTF specifications and protocol versions. The BMC negotiates these versions with the CN5000 during MCTP endpoint setup and PLDM type/version discovery (GetMCTPVersionSupport, GetPLDMTypes, GetPLDMVersion).
Spec | Title | Protocol/Feature | Supported Version |
|---|---|---|---|
DSP0236 | Management Component Transport Protocol (MCTP) Base Specification | MCTP base | 1.1.0 |
DSP0240 | Platform Level Data Model (PLDM) Base Specification | PLDM Base/Messaging & Control (Type 0) | 1.1.0 |
DSP0248 | PLDM for Platform Monitoring and Control | Type 2 | 1.2.0 |
DSP0257 | PLDM for FRU Data | Type 4 | 1.0.1 |
DSP0267 | PLDM for Firmware Update | Type 5 | 1.1.0 |
DSP0218 | PLDM for Redfish Device Enablement | Type 6 Binary-Encoded JSON (BEJ) | 1.1.2 1.0.0 |
DSP8010 | Redfish Schema Bundle (PortMetrics schema v1.8.0) | Redfish Schema Bundle | 2025.4 |
7.2.4.3.6. Exposed Redfish Resource Set
The exposed Redfish resource set is a product decision (refer to Exposed Redfish Resources). OEMs should enumerate the device's Redfish Resource PDRs at runtime rather than hard-coding an assumed set.
CN5000 baseline:
NetworkAdapter: The adapter device itself (identity, firmware version, PCIe parameters).
Port: the fabric port(s): Link state, speed, protocol, type.
PortMetrics: Per-port traffic and RDMA counters, plus transceiver telemetry when a QSFP module is present.
NetworkInterface: The system-side interface binding.
PCIeDevice: The PCIe-side device representation.
NetworkDeviceFunction: The host-facing network function (GUIDs, MTU, enabled state).
The Redfish Annotation schema is carried as a BEJ-encoding support dictionary (DSP0218, Section 5.3.2), not as a standalone resource. The OEM's BEJ decoder requires it, but it never appears in the Redfish resource tree presented to clients.
7.2.4.3.7. Operational Semantics and Constraints
RDE on Cornelis SuperNICs is a monitoring and visibility interface, not a configuration interface.
Read-only. GET is the only supported operation on SuperNIC resources. PATCH, POST, and DELETE are not supported and return 405 Method Not Allowed.
The device advertises read support and does not advertise create, write, or delete in its RDE feature flags. OEMs should not build BMC UI or automation that attempts writes to these resources.
This extends to sensor data: there is no way to set thresholds or write values back to the SuperNIC through RDE. The Type 2 sensor datapath is read-only, and Type 2 effecters are not supported (refer to Required PLDM Layers at the Device Terminus ).
No host-side agent is required. All access is out-of-band through the BMC.
To configure the CN5000 SuperNIC, use the applicable OPX Software tools (i.e., opaportconfig and opafm.xml).
7.2.4.3.8. Integration Troubleshooting and Qualification
The following conditions are platform/BMC-side and are the OEM's to diagnose during bring-up and qualification.
Symptom | Likely Cause | OEM Action |
|---|---|---|
SuperNIC not visible in BMC Redfish tree | MCTP endpoint discovery not complete | Check the BMC event log for MCTP/PLDM discovery errors; allow initialization time after power-on before querying. |
SuperNIC not visible | Sideband path not routed/slot not qualified | Verify the slot routes the SMBus sideband or a supported MCTP binding to the BMC. |
SuperNIC not visible | Platform not qualified for RDE | Confirm platform qualification status with Cornelis. |
Adapter visible but PortMetrics empty | PDR repository not yet populated by device firmware | Confirm device firmware version; allow additional init time before querying. |
405 Method Not Allowed on write | RDE is read-only | Expected behavior; use GET only. |
Data appears stale/not updating | BMC polling interval | This is BMC-controlled, not device firmware; check the BMC's PLDM sensor polling configuration. |
The BMC event-log location and format are platform-specific (iLO, iDRAC, XCC, OpenBMC, or other) and are the OEM's responsibility.
7.2.4.3.8.1. Qualification and Escalation
For a co-qualification or support engagement, provide Cornelis with:
CN5000 firmware version
Server platform make, model, and BMC firmware version
BMC event log covering the period from power-on to the point where the issue was observed
Output of
GET /redfish/v1/ChassisandGET /redfish/v1/Systemsfrom the BMC
Per-OEM MCTP/PLDM sideband enablement is tracked per platform; OEMs should confirm their platform's qualification state with Cornelis before production release.