From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 1C62BD8030B for ; Tue, 20 Feb 2024 01:01:52 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=UQFtZZfijlV49TMmcn02GV8XL4Va5tSZjfwtBwk69Ao=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:msip_labels:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1708390911; v=1; b=MnD1AL1SktJkuRe5ip7HfFhSsZvmG9F68QZ+E51tc3EtUFtin8xE9hnS2/KFJW3gOZ7Y1vxy sFL9Pl4yR8mQZ6fqGFj2vl0NesxSBwT3SsEMjMqf7HILJn0+A8mepQ5nmc3l54IoRem7ceAEH7r QRHuhByyBY752VFN5tS3WDd4= X-Received: by 127.0.0.2 with SMTP id F3fTYY7687511xmkNUJw0y6w; Mon, 19 Feb 2024 17:01:51 -0800 X-Received: from NAM04-MW2-obe.outbound.protection.outlook.com (NAM04-MW2-obe.outbound.protection.outlook.com [40.107.101.53]) by mx.groups.io with SMTP id smtpd.web11.2991.1708390910783354556 for ; Mon, 19 Feb 2024 17:01:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AR6bTHO9VHiHVOlQMkC19VHbrGFmGM+HScRHiRPaoBnpKRY8RWUVqxOMzI1q8yNQ5qiC+HSJgv0Vw1OGe7BuaxpQnaUzb/f7/zRaD0UZXVU9NV2+Ziz94Flzqj+eSrYKqoD3Is9qSWtZiTeHckNIfVd6X7Dmc1AIg+fCM7GIL1kfhGFE48JuHYh+kExBktewXeXLwTgOwgxwL9SrcJ2wcZDAhp/K2Kdq7tJrfU9JNxPXISeCvPTv4oLAgfUtvd4GvbwPZs8wD0xT7+hvSpzJUHBQwyAhjzyysM6NjUdwgiMZNPfLZLSrE34YrQlQiaP6aKEc8d5aF30+jmc51Ip3Mw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rz8q5KhZpYdHVYZL20nqP2EGP5PppgLOkvnjwUFEruY=; b=GCYkXw7CnBgPXUACiOnLHw6PdFnB2SswT+ezU68iN1lGgcGUoyCnEc3A0AeBrvb2+BbhBl3RTGant/Y1SsIejmfaNZhWtAvzJRgp8R+UT8iY6motjNHz4Ty8lAD+UPZKfO3XgMfqeu5s2Ab0DyZr1RbZzEsZA5wCcI7QiDikSiTKp2WIQG5hrCauDwkDTA6sPHZukUSahYGGE3usAon0rvDu9QrrH+d8pmnkLD89hgyJbzjJ3g4EYxL2FBMoZvbRwmLgzgEdx+XG6tRGuNZKwJOLRtrSAQiACpHO90eYMo3SL66KWoSadty7fX2WLmmqLHc9VyEPR0GAVDtzQdHA+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none X-Received: from MW4PR12MB7031.namprd12.prod.outlook.com (2603:10b6:303:1ef::6) by SA1PR12MB8721.namprd12.prod.outlook.com (2603:10b6:806:38d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.19; Tue, 20 Feb 2024 01:01:47 +0000 X-Received: from MW4PR12MB7031.namprd12.prod.outlook.com ([fe80::aa79:3ab0:fbcd:d61b]) by MW4PR12MB7031.namprd12.prod.outlook.com ([fe80::aa79:3ab0:fbcd:d61b%5]) with mapi id 15.20.7316.018; Tue, 20 Feb 2024 01:01:47 +0000 From: "Nickle Wang via groups.io" To: "devel@edk2.groups.io" , "abner.chang@amd.com" CC: Igor Kulchytskyy Subject: Re: [edk2-devel] [edk2-redfish-client][PATCH V3] RedfishClientPkg: Readme.md update Thread-Topic: [edk2-devel] [edk2-redfish-client][PATCH V3] RedfishClientPkg: Readme.md update Thread-Index: AQHaWA4tIsEeJY7uV0+JatuPb4c0fbD7bE/ggBcT5ZA= Date: Tue, 20 Feb 2024 01:01:47 +0000 Message-ID: References: <17B0EA7BBF8F1A48.13964@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=af998d52-dc34-49f3-ab15-84018b976fcf;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2024-02-05T08:35:01Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR12MB7031:EE_|SA1PR12MB8721:EE_ x-ms-office365-filtering-correlation-id: 9c7c13de-7cea-405e-9063-08dc31af8366 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: jTFKI/LlNbUuHsReakvEVLXfenJan9j3RuNXh3Wr3w3/OBzkpyCpJ6/NhIwEgwWv4CZW/sUdgetG+itCMp+TMejDNieegrsFghBy/pNZzj2ukn3gsji2ySyKoh9AjUIeCwqA8MBZ5wE7BvvPDSCDj6UrZTTIH4lYU3DZ6SlUzLEt93MlVUC5lEtTY8Z7ZtILCpGxzD5yvAwT/JT4wP11h+to5w9BfrPwNS/jP/5NqFW0TT7BLBTet34ksjZZyjPTXL7QvdnFJeEd4awXBerKf5ynsrjf2+nahZSeBvrqK08IjgskE0gFgEPGcZfin6fa8qwO8lbHurD18045grgYdKdcg0x2h+gCAghA7lUMfZ/cAdZ+IqkAMbR4Ojfu6g0/mmfJ8dsM3//u4KOIboNBYOLHy8bEMCePUx6c8EcJjOvoP6Ks1xnCRRc/rDzYf2VJJg0ZhP0v1btmYhfo18iIddRWYTpOebRb6xydGgi64gXPH74w1d8oLV+ml7Ni15DaYdhvUuwA+THgrRbcbHW1m+zPWGYMncop3VpTu4F2puP0Q5M2eZQwuZwgMG6ekHPIL8enqlkrQFVB/et9EY9zQyDSa/AVo3/2XdF8ah+7dKs= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?wZzHas0+sE0G8Oj/6gcAHw/5zY+VHka/24kOjW3gscs5Tgn0rLSVBhYX1aKn?= =?us-ascii?Q?kc3sXP2xDP5kd6YC1OFhZte8kI32RAHL5Owt18FxdNCyFJnYl3AUhWcv6uXl?= =?us-ascii?Q?iOWIOhSAlCQo1jeklhVRxZxI2IV8K/TZdah5GgKzhyd7S5IYb5Il5ji3GZqs?= =?us-ascii?Q?MOwog9tWVMeHDQsz+pDUOx9OvaiRgp/ptfmW4U43bkrPuli2A73AQUYlUhPp?= =?us-ascii?Q?Jr/WyKbUqjeLmzAQIhfPMhHDmuYJSR8+kHYSVutAsgs+K04rw2+JI+Eik57J?= =?us-ascii?Q?HQNhKnr/uCouC2LHoMjhteqPgf8i7p3RBD4xBOf+O662n/5m0j08KvDxQLsq?= =?us-ascii?Q?RlvkueR7vJyYTYd4NEUWC8qLdsWrLLCHF0wh3ZtaFix8tixWwpvR3aO5jrIM?= =?us-ascii?Q?9o5V4oUh36iTb80I/cZhojL14s9fEGCiidkBigZ9bPlcIgVgPUsfJCIozYaF?= =?us-ascii?Q?16HGUiJxn4+bhArEX5ma7Aya8qNP2Gi0wbV4SjOsiP/LTxz7NufxYdo3VBNh?= =?us-ascii?Q?nJlqwlnbDeh95kYkh9exN2++qEWDE7VL7s5QrKs1JhPOOCO40Z5WL6sqcmhh?= =?us-ascii?Q?WPg5C9UfBggQ+0gNQWuN22c+Z2m9WlxxIWRs+gwz9diDvUtuW61wrhlhyQSy?= =?us-ascii?Q?ofP4muViyinU7bm6jctn4D7I0Ewz7N7YLWmaxjY/nMhtpQkTOh+z031sH4nf?= =?us-ascii?Q?q8ouoeSwZCSLh6NPXvrhv0MYC9vAJyvQjm2sa1di/ccevDNyEVgRv3fq12cZ?= =?us-ascii?Q?eHO0qxbtuLq8gPVr2rURrT8uJvOHrICcQqgIHb/HsvlJkXflxZum4Bu7oQoq?= =?us-ascii?Q?9Vc5M2DPLGlnHBRCLeD4o10ygHR2HuY52ssplHMgmridnu8mOZOTVwHe/Mqp?= =?us-ascii?Q?YOkokAxMzTgGocTVe6HDLCcej+h4AFl4AnmUSjeZcP9xpxS32sgaoxc1hSzj?= =?us-ascii?Q?qDZQzmKOWZJX0hctA4Bp1QaukT0Stq/Q7FNFdUHWPzB1TxZCGKeyoB7nhtak?= =?us-ascii?Q?EDju6b/Bj/f1MqmAWlvsM95lWCuE48hTcn6zgzRjFaHpH5EUPS3jlY4I2JGu?= =?us-ascii?Q?3udhWRP4jqMSRqM0wHLCVDOLwYBK3g/FHSfEx+IQ/EV9lpwAu66BbKFmPbjO?= =?us-ascii?Q?U/sL8/ugxN2yBdNdcRGeSspX3MB6sEwJ0M3G8zZ5puLvaoiSPdxTtbZb4PA2?= =?us-ascii?Q?oVg5kHi+EjQw8JQKoLo+vsUfco2KZojgwtLg6aF3tjnDJf30IgPt27O4n5rX?= =?us-ascii?Q?Px9VpicjoLmKFc3k3N5HpflfMnWKFuWr/vUgEVEQS7wiK/FVj+uI3Cajwa8D?= =?us-ascii?Q?vhcVtTWAgmxI7rCkyAVIj/hERqAcoj83UsX365DoL5iHAwSyB82ZpTigZ2p4?= =?us-ascii?Q?48z/fBIMIYpCkRYMe5TwuHixB3u4GpULAzQ9/Z9Z0nLWsAuzSaZpfvZCHPQw?= =?us-ascii?Q?PkfBs1YuUyrfuv9VLuOH/GXqtZG6L0NXdLRknI2PFoRcuS4DQMxOPp8QhQgK?= =?us-ascii?Q?pVePIqNOA9Vl6DqWNmiEKkRR7u/CzGl1bcFGTruBQZVk8EfLBcsBXkR04XGI?= =?us-ascii?Q?HRf7lTRWMpqmNrMueoutje0+WifvEczMhdPgrRgFy60/LRN6Jm8s4uttnf2h?= =?us-ascii?Q?gk1qbv3rfML0jFTjP/5QFQivQ9aScjbC5m14fWfq+0OP?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7031.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c7c13de-7cea-405e-9063-08dc31af8366 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2024 01:01:47.3066 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sYS0buhSdrSf1rkzTvhNSBuoXLT+8/G8ojGBMCESjk3B1voyiua67U4+O0STRy7wKsEzrfj5o1EtdAxFvowkqQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8721 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nicklew@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: EtcZTgB7bsupn7TwNVn26vwEx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=MnD1AL1S; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=pass (policy=none) header.from=groups.io; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") Reviewed-by: Nickle Wang Regards, Nickle > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Chang, Abn= er > via groups.io > Sent: Monday, February 5, 2024 4:36 PM > To: devel@edk2.groups.io > Cc: Nickle Wang ; Igor Kulchytskyy > Subject: Re: [edk2-devel] [edk2-redfish-client][PATCH V3] RedfishClientPk= g: > Readme.md update >=20 > External email: Use caution opening links or attachments >=20 >=20 > [AMD Official Use Only - General] >=20 > Hi Igor and Nickle, > Sorry for sending out V3 so quick. I forget to add the criteria for HTTP = POST and > DELETE. >=20 > Thanks > Abner >=20 > > -----Original Message----- > > From: devel@edk2.groups.io On Behalf Of Chang, > > Abner via groups.io > > Sent: Monday, February 5, 2024 4:34 PM > > To: devel@edk2.groups.io > > Cc: Nickle Wang ; Igor Kulchytskyy > > Subject: [edk2-devel] [edk2-redfish-client][PATCH V3] RedfishClientPkg: > > Readme.md update > > > > Caution: This message originated from an External Source. Use proper > > caution when opening attachments, clicking links, or responding. > > > > > > From: Abner Chang > > > > Update Readme file to align with Redfish Client implementation. > > > > Signed-off-by: Abner Chang > > Cc: Nickle Wang > > Cc: Igor Kulchytskyy > > --- > > RedfishClientPkg/Readme.md | 175 > > +++++++++++++++++++++++++++++++++---- > > 1 file changed, 160 insertions(+), 15 deletions(-) > > > > diff --git a/RedfishClientPkg/Readme.md b/RedfishClientPkg/Readme.md > > index edef2ec23b..82cb9c8c99 100644 > > --- a/RedfishClientPkg/Readme.md > > +++ b/RedfishClientPkg/Readme.md > > @@ -294,7 +294,7 @@ PCD is set to `TRUE`. > > The purpose of Redfish feature driver is to do the synchronization > > job between Redfish service and BIOS. The operation of synchronization > > can be simply divided into two types: > > > > #### Provisioning resource > > -Below is the flow diagram of provisioning platform configuration to > > Redfish service at Bios resource. With the x-uefi-redfish > > +Below is the flow diagram of provisioning platform configuration to > > +Redfish > > service at BIOS resource. With the x-uefi-redfish configure language > > described in above section, Redfish feature driver collect all BIOS > > attributes from HII database and populated them to Redfish service. > > ![provisioning](https://github.com/tianocore/edk2-redfish- > > client/blob/main/RedfishClientPkg/Documents/Media/redfish-call-flow- > > provisioning.svg?raw=3Dtrue) > > @@ -311,7 +311,7 @@ job. > > Several interfaces defined in EDKII Redfish Resource Config Protocol > > work together to support Redfish synchronization: > > - Identify() > > - This function is used to check if the given Redfish resource is > > the one the feature driver wants to manage. A platform > > - library `RedfishReesourceIdentifyLib` is introduced for platform t= o > > implement its own policy to identify Redfish resource. > > + library `RedfishResourceIdentifyLib` is introduced for platform > > + to > > implement its own policy to identify Redfish resource. > > - Check() > > - This function is used to check the attribute status on Redfish > > service. If all attributes the feature driver manages > > are presented in Redfish service, feature driver must provision th= em already. > > Otherwise, Provisioning() will be called @@ -338,19 +338,164 @@ struct > > _EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL { }; ``` > > > > -#### Redfish service implementation > > -The idea of Redfish synchronization design is to manage Redfish > > resource directly by platform firmware. To do this, Redfish > > -synchronization functions have to work with Redfish service > > implementation in BMC firmware. This is because the interface -between > > platform firmware and BMC firmware is not defined in any > > specification. > > -Several prerequisites must be satisfied: > > -- Platform firmware has permission to manage Redfish resource. BMC > > has ability to tell the difference between platform request > > - and out-of-band user. This can normally be done by identifying the > > bootstrap account in HTTP request. The bootstrap account is > > - described in Host Interface specification 1.3.0 section 9. > > -- The ability to tell if there is an user who changes to Redfish resou= rce or not. > > Redfish feature drivers can only be executed at > > - POST time. So the modification to BIOS managed resource is an > > asynchronous operation. Thus, we need below supports in Redfish service= : > > - - ETAG support in HTTP header. > > - - Setting resource support (defined in Redfish specification 1.18 > > section 9.10). > > - - Redfish Task support to POST and DELETE operation made by user in > > Redfish collection resource and Redfish actions. > > +### Redfish Service Implementation that Incorporates with EDK2 > > +Redfish The idea of Redfish synchronization design is to manage > > +Redfish resource > > directly by platform host > > +firmware. To do this, Redfish synchronization functions have to work > > +with > > Redfish service implementation > > +in BMC firmware. This is because the mechanism between platform host > > firmware and BMC firmware is not > > +defined in any specification. Several prerequisites must be satisfied > > +and listed > > below: > > + > > +**BIOS Redfish Credential** > > + > > +- Platform host firmware has the permission to manage Redfish resource= . > > BMC has ability to distinguish > > +the in-band platform host firmware and out-of-band user, this can > > +normally > > be done by identifying the bootstrap account in HTTP request. The > > bootstrap account is described in Host Interface specification 1.3.0 > > section 9. If the Redfish client uses bootstrap account for HTTP > > actions, BMC must consider the Redfish > > +client is BIOS and give the write permission to BIOS for updating > > +BIOS > > managed Redfish properties even the > > +properties are declared as "ReadOnly" in the Redfish schema. > > + > > +**BIOS Managed Redfish Resource Provisioning** > > +- The Default Empty BIOS Managed Redfish Resource
> > + The BIOS managed Redfish properties may not covering the entire > > +resource > > but just manages some properties > > + in the resource or a subset of resource. For example, the "Boot" > > + property in > > ComputerSystem. BIOS is not able to use HTTP PUT to replace a resource > > that is not entirely managed by BIOS. The HTTP PATCH is the only > > method to provision the BIOS managed properties. This is a requirement > > the BIOS managed properties > > + in the resource must have either a default value or an empty > > + property, with > > this BIOS can have a HTTP > > + PATCH to update the value.

> > + For the example in ComputerSystem resource below,
The > > + "BootOrder" property is exist in ComputerSystem, however the values > > + is > > left as empty. With the > > + existence of "BootOrder", BIOS can provision the valid values using > > + HTTP > > PATCH with out error. > > + > > +```C > > +In Redfish Computer System resource: > > +{ > > + "Boot": { > > + "AutomaticRetryAttempts": 3, > > + "BootOrder": [] > > + } > > +} > > +``` > > + > > +- Computer System Bios resource
> > +The "Bios" property in Computer System resource usually has a "@odata.= id" > > property that is an > > +URI points to the BIOS Redfish resource. The "Bios" property must > > +exist in the > > computer system > > +resource and the URI of "Bios" property is required to be provided by > > +BMC as > > the default value. > > +With this, BIOS knows where to provision the BIOS resource. > > + > > +```C > > +In Redfish Computer System resource: > > +{ > > + "Bios": { > > + "@odata.id": "/redfish/v1/Systems/system/Bios" > > + } > > +} > > +``` > > + > > +- BIOS AttributeRegistry
> > +The "AttributeRegistry" is a property in "Bios" resource, which is > > +the resource > > ID of > > +message registry file that has the system-specific information about > > +a BIOS > > resource. > > +"AttributeRegistry" must exist in "Bios" resource and the value can't > > +be empty > > if the the > > +platform support system-specific information BIOS resource. In order > > +to > > provision the BIOS > > +attribute registry resource, BIOS attribute registry must be defined > > +as a > > collection member > > +in the service root "Registries" collection property. The value of > > +"Id" property > > in > > +MessageFileRegistry must be as the same as "AttributeRegistry" value > > +in BIOS > > resource. > > +Also, the "Languages" and "Location" array property must be > > +predefined in > > the Redfish message > > +file. The location URI of message registry file can be determined by B= MC. > > With this, BIOS can get the resource ID from "AttributeRegistry" > > property and look for the same ID defined in the > > +Message File Registry collection for provisioning the entire BIOS > > AttributeRegistry resource. > > + > > +```C > > +In Redfish Computer System Bios resource: > > +{ > > + "AttributeRegistry": "BiosAttributeRegistry" > > +} > > + > > +In Service Root Registries resource: > > +{ > > + "Members": [ > > + { > > + "@odata.id": "/redfish/v1/Registries/BiosAttributeRegistry" > > + } > > + ] > > +} > > + > > +In /redfish/v1/Registries/BiosAttributeRegistry: > > +{ > > + "Id": "BiosAttributeRegistry", > > + "Languages": [ > > + "en" > > + ], > > + "Languages@odata.count": 1, > > + "Location": [ > > + { > > + "Language": "en", > > + "Uri": "/redfish/v1/Registries/Bios" > > + } > > + ] > > +} > > + > > +The URI "/redfish/v1/Registries/Bios" is where BIOS to put the BIOS > > +attribute > > registry resource. > > +``` > > + > > +**BIOS Managed Redfish Resource Consumption** > > + > > +The ability to tell if there are the changes on BIOS managed Redfish r= esource. > > The modifications to BIOS managed resource is considered as an > > asynchronous operation because the Redfish feature drivers can only be > > +executed at the platform host firmware POST time. With the above > > constraint, we need the below requirements > > +on BMC Redfish service. > > + - ETAG Support in HTTP Header
> > + To reduce the unnecessary HTTP GET for the unchanged Redfish > > +resource > > that leads to increase the platform > > + boot time, ETAG is leveraged to tell BIOS if BIOS has to get the > > + entire > > resource as there were some > > + changes made on the resource. Although ETAG support in HTTP > > + response > > header is not mandatory by edk2 > > + Redfish design, it is still a strong recommendation if the platform > > + boot time > > is a concern.
> > + Below PCD is used to configure the BMC Redfish service supports ETAG= . > > + > > +```C > > + gEfiRedfishClientPkgTokenSpaceGuid.PcdRedfishServiceEtagSupported > > +``` > > + > > + - HTTP Query Head Support
> > + In order to retrieve the HTTP response headers only to reduce the > > unnecessary HTTP GET for the entire > > + Redfish resource. HTTP Query Head support on Redfish service is > > + mandatory > > if the system boot time is a > > + concern. > > + > > + - Redfish Setting Annotation Support (defined in Redfish > > + specification 1.18 > > section 9.10).
> > + @Redfish.Settings annotation represents the future state of > > + resource. The > > future state of BIOS managed > > + properties will be consume in the next time platform boot, no > > + matter it is a > > reset cycle or power cycle.
> > + This is a requirement for BMC Redfish service having > > + @Redfish.Settings for > > the changed properties made by > > + remote user. With the @Redfish.Settings annotation in the resource, > > + BIOS > > can identify which Redfish > > + properties were changed. BIOS can then only consume these changes > > + and > > apply those to BIOS platform > > + configurations. Without providing @Redfish.Settings for the > > + changes, BIOS > > can just consume all of the > > + BIOS managed properties on Redfish service even the properties > > + weren't > > changed. > > + > > + - ETAG Support in Redfish Setting Annotation
ETAG in > > + @Redfish.Settings resource is also required. As @Redfish.Settings > > annotation may not be deleted by > > + BMC after it has been consumed, the out of date @Redfish.Settings > > + may still > > leave in the Redfish > > + resource. With ETAG is provided in @Redfish.Settings, BIOS is able > > + to tell if > > @Redfish.Settings is fresh > > + or stale.

> > + Below is the example of @Redfish.Settings for BIOS attribute > > + change, > > + > > +```C > > + "@Redfish.Settings": { > > + "@odata.type": "#Settings.v1_3_3.Settings", > > + "SettingsObject": { > > + "@odata.id": "/redfish/v1/Systems/1/Bios", > > + "@odata.etag": "W/\"ABCDEFG\"", > > + "Attributes": { > > + "BootMode": "Uefi" > > + } > > + } > > + } > > +``` > > + > > +**Redfish HTTP Content Encoding**
For the performance > > +consideration when BIOS HTTP POST, PUT and PATCH > > the resource, HTTP Content-Encoding > > +header is leverage to compress the resource to reduce the payload > > +size with > > BMC Redfish support. Below PCD string is introduced for platform > > developer to set the encoding method supported by BMC Redfish, > > currently > > +only "None" and "gzip" are supported. > > + > > +```C > > + > > gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServiceContentEncoding|["None"] > > [ > > "gzip"] > > +``` > > + > > +**BIOS Redfish Action** > > +- Redfish supports the HTTP POST and DELETE operation
HTTP POST > > +operation is triggered by BIOS to create a Redfish collection > > member in the Redfish > > +collection resource, and also for triggering the Redfish action. For > > +the Redfish > > action, such > > +as loading the BIOS default and Secure boot certification > > +enrollment.
HTTP DELETE operation is triggered by BIOS to delete > > +a member in the > > Redfish collection. > > > > ### Redfish Task design > > TBD. > > -- > > 2.37.1.windows.1 > > > > > > > > > > >=20 >=20 >=20 >=20 >=20 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#115611): https://edk2.groups.io/g/devel/message/115611 Mute This Topic: https://groups.io/mt/104172431/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-