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 5696294148A for ; Mon, 5 Feb 2024 07:52:26 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=NU8imHkeklaoHKXzLlODBWAg8P693u786Ix9hE+6JqY=; 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=1707119544; v=1; b=krNEO4vziq56WOvkWvXaVehQllSDeoVuRKqvyX4zYbVXmwlsLoXoAiHKmT9MN2bMdERrpjP4 a8E6oq+4FLptF4sNs65I+Udq0+2hBvZDINllqvZPAIjkp4rxz1SBJPIX+dofYOidIilaZuD0Ik8 Ir8IlTBrBINM5V+xq/Fb7Of0= X-Received: by 127.0.0.2 with SMTP id zI6DYY7687511xaUJ3NQWg17; Sun, 04 Feb 2024 23:52:24 -0800 X-Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.70]) by mx.groups.io with SMTP id smtpd.web11.58087.1707119543990472090 for ; Sun, 04 Feb 2024 23:52:24 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GeE7WrJ1MsjKVJ5ETdjju0GUH/W2mxmhf5DQWnFynP3W/dVVe+VYGPKpw3FWCK6iH8tyBzLnyCwgFWQLBHeEBnHpvIw+MZHf0BucLobpXel2WrtDJ7xaSg5r4ynerhMkFqk7sEcePbKVMVSO2mpgjwUGDpHKpx9a2caX3XLjmokxilFAX2F/2yn18rlTWP1VSHUd1rApFTxK8rhRk8wedX23fwCxG8C670RFYeeEsdTm768jKdBbjFmKqXUQjbm/+GEcZVki6gdSCprl9dSwiqmUgBDJkb3jVxpQHTBrI6Yx/JiUnec/N+wXQAUWVgnqqhwkwy5MKz6bNNNDVhJhpw== 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=JJAZl54QNdkKDYlJlCGxpUA7cilWC9YBzyhlhRH4ONg=; b=dWs26nUGB0pDMwY4qNkekWh4/6dO/J6ywCWqrhAysZpbxknx8DZN/PSw2q6YIj0qpDXlsJMxN3CnhphIr8pWP3I/XSKZbA2cub+UYDJ4d3yl0a5b1RHBQZQDjd042/FRWXUtiOUE9Ixle6fzbsg/cGhCtP8/tbUHAehZPkQVT8geFVqFu/miFCrN+lmokxDSwKMP8AIyto4CbppfhwpSxEQZjH+K2aXtoaSB1Ec5MtKU0uIJ1fWKDxhbkC6NJH9r660Cpeyi9y3wPA5ytAarJK9Og4b9in05fDrT5A0tzcv40bBSVEgqAUhFYX6KgPSIUhUC4Zx3H7oOGPGtz8Wznw== 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 DM4PR12MB8499.namprd12.prod.outlook.com (2603:10b6:8:181::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.14; Mon, 5 Feb 2024 07:52:21 +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 07:52:21 +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 V2] RedfishClientPkg: Readme.md update Thread-Topic: [edk2-devel] [edk2-redfish-client][PATCH V2] RedfishClientPkg: Readme.md update Thread-Index: AQHaWAfhWFZ0xALaPEiMGo+etsh7XrD7X8cg Date: Mon, 5 Feb 2024 07:52:21 +0000 Message-ID: References: <17B0E805BD7B0FC3.13964@groups.io> In-Reply-To: <17B0E805BD7B0FC3.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=27a66d5d-199c-4df1-a1d3-db3a51f4555c;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-05T07:49:59Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LV8PR12MB9452:EE_|DM4PR12MB8499:EE_ x-ms-office365-filtering-correlation-id: 74fa49dc-4050-4e61-68d5-08dc261f622b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: ld30NWNdDYEpgfoqNB2Qhheo7Ammc0DjxtKVK8FSuCi8/UZoiJuZ8FaVslf9D/O4dHeMLh0z9OXdc2AQWm3Fpw6aGXZ0NeZT9N7mVGOYiqSPtFGWFEgea4O3m61BkW/Z1+r0LIJnTo5kXN0kKaVNgB9uteK+HkyXs73UDix7eYNAaazTTGSo+tauicj71MM8DohEZ4YUYTRrbAjNQlCjWGsD18OjqV7ljGwYxfv2OQZvYerbsO6ySK1aEaOcx3VfOFAYGNhqu10hyYFpN4ynGFEFW2I3xYbDPnYNdhTN+Avn+qvdt9Cyi+gKZzJyKgtqG55eN9cVGL7H7uiQ7AsfK7lil6aT/UpU7vWQC9g5Cg0gol0hYeD90/DizyC+A05PPJLXRs+hfeWr0py51nvRt5/O+72P1Zu3EDocedQsoP83qP6MrEsbfbTXyS4gkV6VuF/EpNCX5byB0sbaGZl2GvO4Rf5r+lt2oQdTQtfvtwMpKKC0gGis43d512Ib+VDyfFu8HFf4QJFNplv9Au0UZcEVWyZw9nPylzbMqeYRwSemeN4nf7HMjsMFy0B8gSRbbJI/h65LDQNjargiwDiH3WM0ycabssymUP7KNKon37c4InQtBcEZXjfDYyC/LRPbKqBJS829Y7zEie2DzWHKyA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?Ne3sT+lDo3nwxL5Z3CGcdX3tGTgl+1QwyAmCMo5UXHKzIe2RLOrZvsfBTSSW?= =?us-ascii?Q?ctreXtlx7tTpyIVeiuXn3n+fz4i5Ggj8NHm8AviHSiQCM+2+qdZw5U906E3H?= =?us-ascii?Q?gtobDR0rESC7pNBWNrjbZGcADZSujLxx7Dk0UDt0qfxuplX7Ph3zda01HjwN?= =?us-ascii?Q?5Umqcrbmcn8EkKX/HfOduvJkupQqLxMJ7KGj1gNw4A9dbXtdtT5Lw+v0CaFm?= =?us-ascii?Q?eqbS12+SfhA9sGih8BjXW5kBChaw6QcL09Gno3DKXykRQFHVAl5MyQ9DWBpl?= =?us-ascii?Q?XX/Kpw25qe5ubupu8lUVJK/lMtsHZVjZ6xyeDCA0o8tHZRx4vDRyn7GP0tWu?= =?us-ascii?Q?CQtMuIRyIHyX8jLX8DHs5AhUVct5NCa/m+E3OyRejpoNqhHMljBYKNjMByY9?= =?us-ascii?Q?Rkb5NQCuq7HmvP+CK1qzxj0svAVrab7RfVhSMLWQDeOwhsDMeXX1+DUSLu/w?= =?us-ascii?Q?KyaAL0e8ulxM+6xTO3whTi71PqZUFlqPHvXqs/WlU8hRslf5iARU6SYtNJ87?= =?us-ascii?Q?ZHa6yqpu1STJ8smuuWzrtBRKcOVgBPn7wh1ZmOwsSIj1+Z6llJVGPT/X+Aas?= =?us-ascii?Q?R422tDorwWTMOrBe1Rbv9F4X9D57cpwaT6WIT3ksuGqVkr2OF1JW+qWBh8uV?= =?us-ascii?Q?SPev9Fc6ja+5DVYz8IVY3NYhnm+1i+Lcfp/H5e2qMJrafScX3FWmY1Txp4Q4?= =?us-ascii?Q?VT2VEtun14QC+aD15Qm8sCd/Palw2qqW3biuCQAXwq+AqaCgBqyXscN16ST7?= =?us-ascii?Q?LDWdZTWrJysv5IkBKT240FijGaKTBK4NkgkFnVwdhhxnFEP7lruuJqpNFKZf?= =?us-ascii?Q?u5NLljVBwUoEi1Tz1bhBGSxzLrSu8XDOlWYf8S4jbprzdvA9hxrVO6qTJrNj?= =?us-ascii?Q?gcdu7zK1vXK3+MEKG0lg1SocmvW7oPl8hyXtyRwjIrITZPyR6RVYsuUAJDc9?= =?us-ascii?Q?tiQiJNKdDpXE/eF1NSfi6fz8nVjk8EniWrdOG44VRxVi2ALDBlR4QyK+LeTN?= =?us-ascii?Q?7tvVVQN5z2SQD5eTzMpSLRivemi31eLZTUVAVNA4ugfUtrKXy49Szid04Usk?= =?us-ascii?Q?OOmjkjXfRoUrqixyLLcvX0jZNLqRJv1ktBanj7XsKrCCBnHdmN089iJxYILV?= =?us-ascii?Q?Sr0n7ceM4KR+O53d0bv9I4cNicFKlskP71yQv4T2NyAc5jlP3r399MLWgy7l?= =?us-ascii?Q?QvkPpmn4b1YqbxHGwhghrWp95JIfnDmJv4RunFwhTBQqmADU2RkrKvLZTjo0?= =?us-ascii?Q?2KIf9sB4wefPIUXTXb7+7acgHSGQ9aTG6wwtr3kobvc71Yr2wNPSyVREudWd?= =?us-ascii?Q?Mg6qUbVSDDgoK295fsKV02gjBxjKUtK0B9WodM/DKk78RLFgK/42HWMXuJY+?= =?us-ascii?Q?mvGHmNke+xQ/LY8NwFRfgT7L97pwKKUzKlORAELOH5Nrv1KDCk2BXZujPKzQ?= =?us-ascii?Q?+ZRkLpQa+64UMaR6Ne0KExMTFXejPw1WUgFo8lZMnyHXrBaODaZu3kUqeUKa?= =?us-ascii?Q?te12siLlOz9MOSZp5EHU1kYzcSIkgHgQBqgU5TGavQUHq73Eu7ljGV7QF3jj?= =?us-ascii?Q?IBafI2BkqpylITeqlGw=3D?= 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: 74fa49dc-4050-4e61-68d5-08dc261f622b X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Feb 2024 07:52:21.2364 (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: kezCU9pgytb16XCNTdd4P3wDx1kD+sutpsiF71hQQ+EmWJEc8IAavTTwjt2bqPhSX+xpIfjXRjupo2ZN4U44KQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8499 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: ygp3LYsqw3gwoRByIp36CXAHx7686176AA= 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=krNEO4vz; 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 Nickle and Igor, In V2, add the requirements for provisioning computer system "Bios" propert= y and BIOS "AttributeRegistry" property. Thanks Abner > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Chang, > Abner via groups.io > Sent: Monday, February 5, 2024 3:49 PM > To: devel@edk2.groups.io > Cc: Nickle Wang ; Igor Kulchytskyy > Subject: [edk2-devel] [edk2-redfish-client][PATCH V2] 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 | 171 > +++++++++++++++++++++++++++++++++---- > 1 file changed, 156 insertions(+), 15 deletions(-) > > diff --git a/RedfishClientPkg/Readme.md b/RedfishClientPkg/Readme.md > index edef2ec23b..23ca160a5a 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,160 @@ 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 Task support to POST and DELETE operation made by user in > Redfish collection resource and Redfish actions. > > ### 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 (#115102): https://edk2.groups.io/g/devel/message/115102 Mute This Topic: https://groups.io/mt/104172106/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-