You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is about to improve Redfish performance. This task focus on "7.3 Query parameters" in Redfish specification.
The idea is to use "$expand" to query Redfish collection at once and reduce the network communication between host and BMC. To do this, we have two tasks:
Create RedfishFeaturesSupportedLib to check the protocol support capability by reading the attribute "ProtocolFeaturesSupported" defined in computer system schema.
Enhance EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL. We don't have protocol revision filed defined EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL in the firs place. For backward compatibility, we have to create new protocol and fix this problem:
And adding new parameter (JsonContext) to Provisioning, Consume, Update, Check and Identify so that collection driver uses "$expand" to get all instances and pass instance to non-collection driver. This is optional parameter and non-collection driver can check this parameter to see if non-collection driver has to download the context on its own or not.
/** Provising redfish resource by given URI. @param[in] This Pointer to EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL instance. @param[in] Uri Target URI to create resource. @param[in] HttpPostMode TRUE if resource does not exist, HTTP POST method is used. FALSE if the resource exist but some of properties are missing, HTTP PUT method is used. @retval EFI_SUCCESS Value is returned successfully. @retval Others Some error happened.**/typedefEFI_STATUS
(EFIAPI*EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL2_PROVISIONING)(
INEDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL2*This,
INEFI_STRINGUri,
INCHAR8*JsonContextOPTIONAL,
INBOOLEANHttpPostMode
);
/** Consume resource from given URI. @param[in] This Pointer to EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL instance. @param[in] Uri The target URI to consume. @retval EFI_SUCCESS Value is returned successfully. @retval Others Some error happened.**/typedefEFI_STATUS
(EFIAPI*EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL2_CONSUME)(
INEDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL2*This,
INEFI_STRINGUri,
INCHAR8*JsonContextOPTIONAL
);
/** Update resource to given URI. @param[in] This Pointer to EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL instance. @param[in] Uri The target URI to consume. @retval EFI_SUCCESS Value is returned successfully. @retval Others Some error happened.**/typedefEFI_STATUS
(EFIAPI*EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL2_UPDATE)(
INEDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL2*This,
INEFI_STRINGUri,
INCHAR8*JsonContextOPTIONAL
);
/** Check resource on given URI. @param[in] This Pointer to EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL instance. @param[in] Uri The target URI to consume. @retval EFI_SUCCESS Value is returned successfully. @retval Others Some error happened.**/typedefEFI_STATUS
(EFIAPI*EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL2_CHECK)(
INEDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL2*This,
INEFI_STRINGUri,
INCHAR8*JsonContextOPTIONAL
);
/** Identify resource on given URI. @param[in] This Pointer to EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL instance. @param[in] Uri The target URI to consume. @retval EFI_SUCCESS This is target resource which we want to handle. @retval EFI_UNSUPPORTED This is not the target resource. @retval Others Some error happened.**/typedefEFI_STATUS
(EFIAPI*EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL2_IDENTIFY)(
INEDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL2*This,
INEFI_STRINGUri,
INCHAR8*JsonContextOPTIONAL
);
The text was updated successfully, but these errors were encountered:
This is about to improve Redfish performance. This task focus on "7.3 Query parameters" in Redfish specification.
The idea is to use "$expand" to query Redfish collection at once and reduce the network communication between host and BMC. To do this, we have two tasks:
And adding new parameter (JsonContext) to
Provisioning
,Consume
,Update
,Check
andIdentify
so that collection driver uses "$expand" to get all instances and pass instance to non-collection driver. This is optional parameter and non-collection driver can check this parameter to see if non-collection driver has to download the context on its own or not.The text was updated successfully, but these errors were encountered: