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 A73A19415FA for ; Mon, 5 Feb 2024 08:35:47 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=6o7eRO+bb/28+bpk/VjAurf+/eZ2AtthsWE4AWR1ius=; 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=1707122146; v=1; b=M2UdE0D6sRBKXnxIfdwSDnr2hSSlfWlq5+9z9iJFNSXjM8Tg893qks4LJoevy9YsaPg1p69P MIGM3A7fexdRjNOfDwPz0kCt/RC8Eeev+eyma2c8cN9zPxv9CB4XQYg7Pl328KeQLDnfope0WgY Zcv0tp6ijH1Jx0lX4N4nkQXI= X-Received: by 127.0.0.2 with SMTP id hRKvYY7687511xhEjPkRvFXg; Mon, 05 Feb 2024 00:35:46 -0800 X-Received: from NAM04-BN8-obe.outbound.protection.outlook.com (NAM04-BN8-obe.outbound.protection.outlook.com [40.107.100.63]) by mx.groups.io with SMTP id smtpd.web10.58989.1707122145582381103 for ; Mon, 05 Feb 2024 00:35:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gofMdsCwMU4c0DBU/rmOFy/EsenI5yeZaglo8wxUQxaMOUL74gtTo+P2BYS6AQiO2dPL4Gvx6dX7E/v6yjlK5hbj1rcZ7mQ2CeRnpxBEgP1C2R25ZJxg856XIRK2LlZbZsBq/G5JxJoODNHHtHG4SOvoQOQwMbeNWJHOn0AI+FyDFQKPr7xQ6j+y1elOuP6ak6mnIlOZHTw8lOwyKAdWKKyt2om1IDsuk/KC6PuXTM38v54z6pDo9KoDlIYlG4bk5qXiDj57yqZo8pZBsZgDDfh1fBZXz6w5B9X+GTBuoHUYhAfU+HZIVrmgIo86tW7sB/g9LVFIB8BMTnORlRRPyg== 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=FtWzFddmrtpd0WSlobGXgmGvSD0mQ9usWZ9rAYA6NLQ=; b=j9EHnXIDkcgN77HGvE1VqZrkbDEGZtkfUsP+yxvb+bXvQtood+9n+hurJZzk12oCKEwouQv9JAXak5HAW7h7toxxAdpdW0PSOuaTeqd49bW4pwcM1NdF0DC3XUxBDP4cn26oEzuOD7jnXIr42f8vruLjiToPnSM3A5bMrQeELrM2IKatLhItIJY7+Y4o9Nk9d2BSxj3dlaFjZr6ascloZEX6aF0ff5ddSibn/LmQuCVvGXbPJgS2ET6MvR7+gRulpBc7f7fNv46dX6F/vZWfJs/o1e0LghdMENCiicEXTS4KNsQ6DqdX+GkramLp0cjn6J9023eRl7b4NDWSWI807w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from LV8PR12MB9452.namprd12.prod.outlook.com (2603:10b6:408:200::8) by CH0PR12MB5387.namprd12.prod.outlook.com (2603:10b6:610:d6::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.16; Mon, 5 Feb 2024 08:35:40 +0000 X-Received: from LV8PR12MB9452.namprd12.prod.outlook.com ([fe80::1c1c:8b58:d84f:7052]) by LV8PR12MB9452.namprd12.prod.outlook.com ([fe80::1c1c:8b58:d84f:7052%5]) with mapi id 15.20.7270.016; Mon, 5 Feb 2024 08:35:40 +0000 From: "Chang, Abner via groups.io" To: "devel@edk2.groups.io" CC: Nickle Wang , 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/g Date: Mon, 5 Feb 2024 08:35:40 +0000 Message-ID: References: <17B0EA7BBF8F1A48.13964@groups.io> In-Reply-To: <17B0EA7BBF8F1A48.13964@groups.io> Accept-Language: en-US, zh-CN 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: LV8PR12MB9452:EE_|CH0PR12MB5387:EE_ x-ms-office365-filtering-correlation-id: fb72dc86-95ba-4356-a907-08dc26256f35 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: icz5Dn5VJdkXIoMgpcqH9gAPcg4yViU0uVHZV27pwGQXwsKzKhuT+7+pTeVlAqKBAI9U6M0CRhnqP2MYaQvEHEDHnIs8/2yw1c7J/ilWdRFvrJsY4EfVJbh/u9iwNCvyqG5zSlsq4PIWjOhX+0PhrZK/nx9YN8lhzG4nY401NyZOEc897B4fUaDYMpnBcY54CQgXc78DcVtwkxfXWfzZ0nN1wvWdXxpSp90opTXa+xOTDW3lBPsuM7v6i/Lb6r6kFPP+oTkERP3pzWJYg6F1Xwj5fOoPmXCjz6R1pnK/6DTYrMjp1zO00B200ZCgzsUlUhZSyb+/BkN8OLuNvT62hzq68BEavPJV7M/cV+FpLWmyRpI/WbUiD3uebPEwH+vsTTyu3LNUG/53Mbwa7l9R8SwSDCEPQzaofo+B5cT5ZX2N5B/VAK7Hg62PILSx6AauftGPXBfUTyIGbjKn7mBuyTJ8mXO8xHvBFUndtRrdJ2Z07vdm7IPS5AqOeNkLnMN0YmvbHGRj0SnaPfHZdHMhqz2xOEoCY5NuVPUd63KIE5mZ9/tCW8TfH4hZsq+pwvi/Y5hwD87Juyvw4g2xn0cFYImqjTvQTha0PaQ1ZYE1BwJ0ugPZHA3vmJZaWXz17UpE0Q6v/+/A3V1MVt8Y6fBexA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?G2czq51GX0EsypgmImkyQ7wRRjawJpOMX8DGzmwxgIj40NMix16+QTEtcnRy?= =?us-ascii?Q?nBLTDJN/OQNLBqyqhrISSt4ZteNNdgOU0/u9m6C7fm15Dcy8zc9KswLdCEUV?= =?us-ascii?Q?SbBtS2bojF87WUCs8Fl8ZKt3Os5ncAp+6cendHlGaf2UlXAfeXP77XiAx6zQ?= =?us-ascii?Q?2iLhdRBU/jOiQObGczxPxVPQ6kLlr3qiopJ3qltcgRCKfbAok5WBVb5g5Gzz?= =?us-ascii?Q?9kHgA3NtJYZ4uhqphA8bktEhBJUYHKQMfAWAZBziunq8+glx49WwjclCdhtc?= =?us-ascii?Q?yaZW+QL+mnSFa0S+tDjLFNSl7KJBUbpeRE8xFFxti/Z+5EqNcea5Ki+T5wRF?= =?us-ascii?Q?Gk2WIXnVH/KtQPc2tf+Nm11Z7yqCRDUh3+hgHAjd7zy8CoZkpMOoCUvmkppX?= =?us-ascii?Q?StB+je2HrEU7UOIrbiqcmAscSu9QYICfE/2GxsDhHswFGHxMNxiMS7NGS3d2?= =?us-ascii?Q?1vIBwVDvr4Q+fOQsOBquY2g7lPNjQdBufHqs9HfVSEimcnFYEc+VdbD/88t1?= =?us-ascii?Q?1tuIZnSzGQOwioJvyR4nLNDOcEOdqCRkVabesZeCXJBEziHTQfSOYWdn/oKr?= =?us-ascii?Q?0jlspTgaNqMsaxR8pBktQMeEKaP3C260SGQTDc1+KzQsQjQ0l0eaMtQ/4aG/?= =?us-ascii?Q?vsvl3HbKrz2PMv0bX7z3GcFtIHT+dNysd06onMjlPznuIaoHRPD3xxIJoEd+?= =?us-ascii?Q?baWXQhxsU9/k7oDlBwVod7fWK9kMCC8k83G3RFUcTWmXqtyJasmGniutf/Q6?= =?us-ascii?Q?Ej4gnBPlL3ISgQHULl7DUNhq7sHQeZKvH894TJQZk+W2mPJ10hAIVD9f6sgk?= =?us-ascii?Q?0a9HJOlxTuyQyrcJCWO5ywL19yHeNAt0rKZBDPnk2fp8TZUIpTeE0LchDPBT?= =?us-ascii?Q?MmDAGxld+3CCOJ7aVcIejl7FHDAgAlBCmx67D3IdAlttOzreqH3BLDhp+JGC?= =?us-ascii?Q?UC50Tl80vH4q8VUhgw2LqEF3IEPgdV9MIAX22YBryPEVO30tQmcTz0J47qCK?= =?us-ascii?Q?8y/5CXIaOP+LTUQRVVVtYc1+WlJWVqmFZ1/F7HKPzGMM1dvhYcI4ty+ZoD+2?= =?us-ascii?Q?t5XfdUY2KEy/QvyPsd7rcsN4eqiRKDVaBKdvl55p7AYiLGOUlMiVUdopS6+S?= =?us-ascii?Q?BIOvDx2tM51pf3BeANlLsATaJkIbv/3aBZ1nHRfkCcPOaJjBiT1A+Se27juS?= =?us-ascii?Q?7vM/L19YvbgTRUI3Hi6xJFwHBAKrnMDCh7gd5SXhloHHA2CeNlYbXWuZLOpn?= =?us-ascii?Q?ZHr9AcAY5oU0NRvrv+HztnVxG9q5868GOOmFb6Xvlqzq6pw+oUsfZLXLUAei?= =?us-ascii?Q?nOBRwZzuafVMXVj4R0NGFmqrlDniB91KlyCIE4ohjP5WRIDCcaZ42diYZbDv?= =?us-ascii?Q?7WpTI8khO6UXj8K/j4MUZ0Zz8OS8DkapbyTbuAbV3d3W717tKKUMc4JCYzhR?= =?us-ascii?Q?3IICSi2+LZfe+dgupqLCCLOH9lbc9PgmZ/Qzc3ljKnNMYST/g1tJlEOTrn/j?= =?us-ascii?Q?p5+FsEEdtjEffAVUd36omgjCk9RwBQ/+xcsK8sgjZuh/MvMgZKuB4qnwOXFJ?= =?us-ascii?Q?XZgu1tKk2Wj3zp8m6f5Iw03zs0rErnGYsppcivTV?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9452.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fb72dc86-95ba-4356-a907-08dc26256f35 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Feb 2024 08:35:40.1074 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: aeOX6xutlcRL5+s7mfYvFt6XOKjkfKMZWsUW9t0cPUmKxznGGxabNyWK3ajqlAifGWr6ozas6bZFkWUF1M8nAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5387 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,abner.chang@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: RZe8XMQQSWZ3LrIaGhJ0MvLSx7686176AA= 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=M2UdE0D6; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io [AMD Official Use Only - General] Hi Igor and Nickle, Sorry for sending out V3 so quick. I forget to add the criteria for HTTP PO= ST and DELETE. Thanks Abner > -----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 caut= ion > 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 Redf= ish > service at Bios resource. With the x-uefi-redfish > +Below is the flow diagram of provisioning platform configuration to Redf= ish > service at BIOS resource. With the x-uefi-redfish > configure language described in above section, Redfish feature driver co= llect > 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 wor= k > 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 to > 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 servi= ce. If all > attributes the feature driver manages > are presented in Redfish service, feature driver must provision them= 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 implementati= on > 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 resourc= e 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 sect= ion > 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 wit= h > 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 an= d 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 normal= ly > be done by identifying the bootstrap account in HTTP request. The bootstr= ap > 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 resour= ce > but just manages some properties > + in the resource or a subset of resource. For example, the "Boot" prope= rty in > ComputerSystem. BIOS is not able to use HTTP PUT to replace a resource th= at > 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 value= s is > left as empty. With the > + existence of "BootOrder", BIOS can provision the valid values using HT= TP > 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 BM= C 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 r= esource > ID of > +message registry file that has the system-specific information about a B= IOS > 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 i= n > the Redfish message > +file. The location URI of message registry file can be determined by BMC= . > 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 attr= ibute > registry resource. > +``` > + > +**BIOS Managed Redfish Resource Consumption** > + > +The ability to tell if there are the changes on BIOS managed Redfish res= ource. > 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 entir= e > 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 bo= ot 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 mandat= ory > 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 i= t 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, BI= OS > 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, B= IOS > 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.Setti= ngs > 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 w= ith > BMC Redfish support. Below PCD string is introduced for platform develope= r > 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 > -=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 (#115108): https://edk2.groups.io/g/devel/message/115108 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-