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 02B8D941991 for ; Wed, 28 Feb 2024 17:59:38 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=h9VYs41E65gxAM6QoVQZGlLGNWw//NjPLr90QMwh3R4=; c=relaxed/simple; d=groups.io; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:To:Cc:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type:Content-Transfer-Encoding; s=20140610; t=1709143177; v=1; b=rnoJG2W+KJ7bzsLouz1tuH1WZtoLlwHOSifvgKq+KdPE4qNu50BHaVtiYSgdvT9Qi4y0wXvQ 7tS/S5c4gwch5HnlACXNzHKYVZiZKxwLemestT75zPuWey/6tNlzMhDdYkN5TTYhGNpEoeckb8P 2rTuaU+VkroDgB+tV23F+kZY= X-Received: by 127.0.0.2 with SMTP id lxLvYY7687511xPEjZOB59Y6; Wed, 28 Feb 2024 09:59:37 -0800 X-Received: from mail-yb1-f175.google.com (mail-yb1-f175.google.com [209.85.219.175]) by mx.groups.io with SMTP id smtpd.web10.3650.1709143177020363781 for ; Wed, 28 Feb 2024 09:59:37 -0800 X-Received: by mail-yb1-f175.google.com with SMTP id 3f1490d57ef6-dc745927098so43670276.3 for ; Wed, 28 Feb 2024 09:59:36 -0800 (PST) X-Gm-Message-State: Mq8XfUNn6vUy5liNMsqEjqzxx7686176AA= X-Google-Smtp-Source: AGHT+IGaqDMDj8P9Kt7z8R7vFERfCMUmdi+0pMDqMZJ0G24uKk/CMDl6jCPg66dlQR+00iL2sKfkRG+K2KcifP71Oz8= X-Received: by 2002:a25:b906:0:b0:dcc:6757:1720 with SMTP id x6-20020a25b906000000b00dcc67571720mr19038ybj.32.1709143176028; Wed, 28 Feb 2024 09:59:36 -0800 (PST) MIME-Version: 1.0 References: <20240226045522.1454-1-abner.chang@amd.com> In-Reply-To: <20240226045522.1454-1-abner.chang@amd.com> From: "Mike Maslenkin" Date: Wed, 28 Feb 2024 20:59:00 +0300 Message-ID: Subject: Re: [edk2-devel] [edk2-redfish-client][PATCH] edk2-Redfish-client: Clarify HTTP method used for provisioning To: abner.chang@amd.com Cc: devel@edk2.groups.io, Nickle Wang , Igor Kulchytskyy 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,mike.maslenkin@gmail.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: Content-Type: text/plain; charset="UTF-8" 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=rnoJG2W+; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=gmail.com (policy=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 Reviewed-by: Mike Maslenkin Regards, Mike. On Mon, Feb 26, 2024 at 7:55=E2=80=AFAM wrote: > > From: Abner Chang > > Clarify the HTTP method that is used to provision BIOS > managed Redfish resource. > > Signed-off-by: Abner Chang > Cc: Nickle Wang > Cc: Igor Kulchytskyy > Cc: Mike Maslenkin > --- > RedfishClientPkg/Readme.md | 35 ++++++++++++------- > .../Media/redfish-call-flow-provisioning.svg | 2 +- > .../Media/redfish-synchronization-design.svg | 4 +-- > 3 files changed, 26 insertions(+), 15 deletions(-) > > diff --git a/RedfishClientPkg/Readme.md b/RedfishClientPkg/Readme.md > index 82cb9c8c99..1789dff6f8 100644 > --- a/RedfishClientPkg/Readme.md > +++ b/RedfishClientPkg/Readme.md > @@ -310,21 +310,32 @@ 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 `RedfishResourceIdentifyLib` is introduced for platform to i= mplement its own policy to identify Redfish resource. > + - This function is used to check if the given Redfish resource is the = one the feature driver > + wants to manage. A platform 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 > - to perform resource provisioning job. > + - 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 to perform re= source provisioning > + job. > - Provisioning() > - - When this function is called, feature driver will provision all attr= ibutes that it managed to Redfish service. This > - operation usually create new resource at Redfish service and require= different operation that specified by Redfish service. > + - When this function is called, feature driver will provision all attr= ibutes that it managed > + to Redfish service. This operation usually creates the new Redfish p= roperties at the > + existing URI in Redfish service. Use HTTP PATCH to provision Redfish= properties as BIOS > + may only manage some but not all of the properties of the resource. = See [Redfish-edk2 implementation](#Redfish-Service-Implementation-that-Inco= rporates-with-EDK2-Redfish) for > + the details. HTTP POST is still used for creating a collection membe= r, such as the > + collection member of processor or memory for the Redfish inventory m= anagement. > + However, HTTP PUT to overwrite an entire Redfish resource is not use= d in edk2 Redfish > + implementation as edk2 Redfish implementation has no idea of whether= the Redfish resource > + is entirely managed by BIOS or not. > - Consume() > - - When there is pending settings in Redfish service, this function is = called for feature driver to consume pending settings > - requested by user. > + - When there is pending settings in Redfish service, this function is = called for feature > + driver to consume pending settings requested by user. HTTP GET is th= e method used > + to retrieve Redfish properties. > - Update() > - - When platform configuration is updated, this function is called to u= pdate configuration changes to Redfish service and > - Redfish service can show the latest settings on platform. > + - When platform configuration is updated, this function is called to u= pdate configuration > + changes to Redfish service and Redfish service can show the latest s= ettings on platform. > + HTTP PATCH is the method used to update the properties of Redfish re= source. > > The EDKII Redfish Resource Addendum Protocol is introduced to provide pl= atform addendum data that Redfish service requires. > This protocol will be called at Provisioning() and Update() functions so= platform can add OEM attribute or any other attribute > @@ -338,7 +349,7 @@ struct _EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL { > }; > ``` > > -### Redfish Service Implementation that Incorporates with EDK2 Redfish > +### Redfish Service Implementation that Incorporates with EDK2 R= edfish > 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 fir= mware and BMC firmware is not > diff --git a/RedfishClientPkg/Documents/Media/redfish-call-flow-provision= ing.svg b/RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.s= vg > index 70556152fe..d1d653b621 100755 > --- a/RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.svg > +++ b/RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.svg > @@ -25,7 +25,7 @@ > 2. Follow Bios schema and > create attribute list > 4. BIOS current settings is ready > - Issue HTTP =E2=80=9CPUT=E2=80=9D to /redfish/v1/systems/SYS/Bios > + Issue HTTP =E2=80=9CPATCH=E2=80=9D to /redfish/v1/systems/SYS/Bios= > > > Chipset/HII > diff --git a/RedfishClientPkg/Documents/Media/redfish-synchronization-des= ign.svg b/RedfishClientPkg/Documents/Media/redfish-synchronization-design.s= vg > index 2dd1fb6109..5b95dcea0f 100755 > --- a/RedfishClientPkg/Documents/Media/redfish-synchronization-design.svg > +++ b/RedfishClientPkg/Documents/Media/redfish-synchronization-design.svg > @@ -28,10 +28,10 @@ > > > = HTTP > - = POST/PUT > + = PATCH > > HTTP= > - PATCH/PUT > + PATCH > > R= edfishResourceIdentifyLib > > -- > 2.37.1.windows.1 > -=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 (#116127): https://edk2.groups.io/g/devel/message/116127 Mute This Topic: https://groups.io/mt/104577338/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-