Article
Strengthen the HMC-eBMC interface for high availability
Enhance resilience and reliability in HMC-eBMC communicationsIn this article, we explore the new enhancements in the Redfish event subscription model that improve the reliability of event communication between the Hardware Management Console (HMC) and the enterprise baseboard management controller (eBMC). Key updates include the HeartbeatIntervalMinutes property, which actively monitors connection health, and the refined TerminateAfterRetries policy, which simplifies error handling. Together, these features prevent stale subscriptions, ensure consistent event delivery, and boost overall system performance.
Drawbacks in the legacy HMC-eBMC event subscription design
In earlier implementations, when the HMC subscribed to eBMC events, it set the DeliveryRetryPolicy parameter to RetryForever in the event destination API.
Legacy subscription: Example
curl -k -X GET
https://${BMC}/redfish/v1/EventService/Subscriptions/${SUBID}
"DeliveryRetryPolicy": " RetryForever ",
"Destination": <Listener-url>”
"SubscriptionType": "RedfishEvent",
With this policy, the eBMC continuously attempted to deliver events without any limit. Even if the subscriber (HMC) was unavailable for an extended period, the subscription was never suspended or terminated. Over time, this led to stale subscriptions, unnecessary retries, and eventual HMC–eBMC connection issues.
Refining event subscription mechanisms for robust HMC-eBMC communication
To address these challenges, enhancements were introduced in the Redfish event subscription model. The key improvements are:
HeartbeatIntervalMinutesproperty: ensures the health of the subscription by sending periodic heartbeat events.TerminateAfterRetriespolicy: avoids indefinite retries by terminating a subscription after a defined number of delivery failures.
Enhanced subscription: Example
curl -k -X GET
https://${BMC}/redfish/v1/EventService/Subscriptions/${SUBID}
"DeliveryRetryPolicy": "TerminateAfterRetries",
"Destination": <Listener-url>”
"SubscriptionType": "RedfishEvent",
"HeartbeatIntervalMinutes": 10,
"SendHeartbeat": false,
How the enhanced model works

Figure: HMC-eBMC subscription and heartbeat event flow
As shown in the figure, when the HMC creates a subscription, it includes the HeartbeatIntervalMinutes property. This setting defines the interval at which the eBMC sends heartbeat events to verify that the subscription connection is active. This mechanism helps the subscriber (HMC) monitor connection health and quickly detect failures.
In addition:
- To prevent stale subscriptions, the HMC now sets the
DeliveryRetryPolicyparameter toTerminateAfterRetries. - The maximum retry attempts and retry intervals are controlled by the Event Service API parameters
DeliveryRetryAttemptsandDeliveryRetryIntervalSeconds.
Event service API settings: Example
curl -k -X GET https://${BMC}/redfish/v1/EventService/
"DeliveryRetryAttempts": 3,
"DeliveryRetryIntervalSeconds": 30,
With this configuration:
- If a temporary network issue occurs, the eBMC retries delivery for the specified number of attempts.
- If delivery still fails after the retry limit, the subscription is terminated as defined by the policy.
- The HMC must then create a new subscription.
This balanced approach ensures that transient issues do not cause immediate failures, while also preventing endless retries that can degrade communication reliability.
Both, eBMC and HMC, must meet the following requirements to support the event subscription enhancements.
- eBMC firmware: FW1110 or later must be installed
- HMC version: 1110 or later must be installed
- eBMC must be properly connected to the HMC
Conclusion
By introducing the HeartbeatIntervalMinutes property and updating the event delivery retry policy to TerminateAfterRetries, the HMC-eBMC event subscription model becomes more robust and efficient. Heartbeat events ensure that the event connection remains healthy, allowing for early detection of broken or stale subscriptions. At the same time, the new retry policy helps clean up inactive subscriptions automatically, preventing unnecessary retries and reducing load on the system.
These improvements not only enhance the reliability of event delivery but also reduce the number of health-check calls required by the HMC, optimizing performance in large-scale environments. Together, these changes contribute to a more resilient and manageable HMC-eBMC communication framework.