From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.78]) by mx.groups.io with SMTP id smtpd.web10.16454.1683864572572050586 for ; Thu, 11 May 2023 21:09:32 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=huT7GgCf; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.243.78, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Qqd56+int/6srZl1+EMf96LcvQhWqL2Dpo01WsYEzDexe2dklPBfIPcQj55rmFtpNbenrHYOeXaBT2nnAlnjPkry7epdRQ9io3Darl6dtVYGZnKRJu4Y0OWKcvPj7tQNEPPRVyFdxVfYDDiuyJTn38Px61ok1tjg5b6bmcpCB0PLGCbmDRH6MsLcOgAzSYj5OIF88hOPLRr7BOuTNRTXkBlDqB3bzJ0vAiqJle5X42ESthL7Tw6Den6mht7r/nCacrwWMdtLjykp+6MG7yosm4UqxmE1ZtVegN6Kpjis3f++jGxjdgkyz9gPrP4gQa9p6kZB7HCcFeFWDAkKGd5d4Q== 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=tzTK2Z9fR4irvnq298z9+IGt75nTN1xB0x8o1K3HUNg=; b=Dq9qvJMduReUG20ThR/AAfwmgyGl6kjd5zaOCl1V2EjOZb/giH1NY9S3nNgTZ7n8pQPBO9CX/rPnIuHNdIHJNmVe0ZY/oe5t1nMhisleTS3JuCMxQLoyqNICHkxE10z9UtQSqjGguETECFO2EHZv8OuPiO69WYWxuzwxcc76KvmaNdnBUykwn0TOQz/rzLVKMwFRGsAUyKh+xF1pPrrIiwi1/E29d6k/HT3T2mX+Q/9hVDElEGZMKZla6juRa54knE+LW86GcclwMXxT3dnT+/9U9GPKuqKXhfmiVokTSN/vt6aGD+DDCkkAm0oU0osvodvjdya1rq4v6iaVcMBQBw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tzTK2Z9fR4irvnq298z9+IGt75nTN1xB0x8o1K3HUNg=; b=huT7GgCfrK4L+pKSXtWjVGnKer7kTk+PFON+5j1nCatXRDPJejrgSazoIMXTYzVasO72wiqkXh8IS1K3BmqdHUQbh+2+cuuBGrrJ3Adsa13Hlf3umdxJ7Q9xUcj4etOsXC5BgJiqxE+qQ9oprWbfjeT5I9oRuNvpHZBlKGO390Y= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by CH3PR12MB8355.namprd12.prod.outlook.com (2603:10b6:610:131::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33; Fri, 12 May 2023 04:09:30 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::edb0:bed8:c650:5040]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::edb0:bed8:c650:5040%5]) with mapi id 15.20.6387.022; Fri, 12 May 2023 04:09:30 +0000 From: "Chang, Abner" To: Nickle Wang , "devel@edk2.groups.io" CC: Igor Kulchytskyy Subject: Re: [edk2-redfish-client][PATCH 2/4] RedfishClientPkg: Add Redfish.Settings support Thread-Topic: [edk2-redfish-client][PATCH 2/4] RedfishClientPkg: Add Redfish.Settings support Thread-Index: AQHZhIR5bl/34AJnjU26UZ8Xr1k9Y69WBghQ Date: Fri, 12 May 2023 04:09:30 +0000 Message-ID: References: <20230512034705.8537-1-nicklew@nvidia.com> In-Reply-To: <20230512034705.8537-1-nicklew@nvidia.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-05-12T04:09:28Z; 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_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=0c705a30-81ec-4cf4-93e3-8da4c9835169; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|CH3PR12MB8355:EE_ x-ms-office365-filtering-correlation-id: a346d592-f27b-4b08-c24d-08db529eafa0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aaj0YxLPG0IjWnFG+qMv/q/siPVDuO2pvl5qHC1aiHbsgTGxS1Im8ph6AeIgDmM1bFcWzyWRe0WLoQZkWvSC8IfRbb3BZXZeS0knR/OgaUSZo7otnaUsAAFLpb2HJTKxMkIi6hInIi3hrfBHVmfUJsueTpLP9u2gR7pbJ1COyNJPC5biENI8jfl605Pdqo4/ePeQYovAS6VDQluE0iKyJIFFkHQ7L5H5nTObtJ1DihIkE1xrARg+VHVKsKfcPAhWufP71eYmoSh38YAHvTVVwyabUPQW4ZJadhqn6ZZCmiJ2k9tkB1l15ubNhnlCwQzdGc8ZD/7M2HDJS6y5rbVYwjMAkmpA5ofr7dafYIXtHXA3dWEY7naHAsuDx46wlsxUHLcFWDtUQBWdn1Ux0wx037/Q1RA+84W8zPuZciqS4nwtJ/2nh4v44p2zxzHaSvOnf7WMc0bK12U787/uXwGo9KVQNqaJ0ZMFcy/UJazod+cXoshjMmWh5elFYfvOlmc6j4NE55u+JBjDZFmDHMSDVA40uAeHI1UdBz6L6MmFtFWoza5L/stmHnhJYTJeMLeoBtNzVQRKEzEeEDLMUjtpjOlqc91EuMMDbImuQJfsed1pD38zdZ4GqsyTBl6G1HzW x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(376002)(136003)(366004)(346002)(39860400002)(396003)(451199021)(6506007)(26005)(9686003)(122000001)(38100700002)(7696005)(38070700005)(186003)(71200400001)(83380400001)(2906002)(41300700001)(4326008)(76116006)(8676002)(55016003)(33656002)(19627235002)(66556008)(66946007)(52536014)(110136005)(478600001)(64756008)(53546011)(86362001)(5660300002)(66446008)(8936002)(316002)(66476007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?RB3mKLKRXlSx0Ii1rTk4H6w8WpGi2gJmXusLFxmd/3QZV6+HVezY2qv6FKer?= =?us-ascii?Q?e/eH3Dm9NsJZa0GqHH0PNSJwen2awYuOMbUUl+X22kEPzg9z6Gqzu76NIMl8?= =?us-ascii?Q?ZsHaKs576JGsk0mWK4dbndWZ6+Bxw3jfaZ2LTwpDeh5aLiY9GzK7W5luUNvf?= =?us-ascii?Q?OuEQHXJDTM4CpQM3DtavwrHnIS+gt79e7RGPvOVrOYxnumKotside6PP8Gbu?= =?us-ascii?Q?NJ3YfiKhvMQ9c2pbFFH+7K/8S7pskr6/8vZzjnPfp1l8uRmjZonQOCXT47gs?= =?us-ascii?Q?YmKnYrws7k6FLy4XDtYjD8iH4WJvc2EReCTynXU0zgBbdoAYSr982d+4+Pq4?= =?us-ascii?Q?fcBoFQwRjosM19vXT14XcpU9xjSU0mBiA/hte/V+MV1hqVFLfv7p/Xfy2Jvr?= =?us-ascii?Q?NNSg+5F2R88ONjw5txpQXIxgO2zXvwgXgUI16Ul83ygrRgO0G+3ZcVb6Unei?= =?us-ascii?Q?HGEHHOnrTeXeNpjRo5M6QSRTEH3mvRGHB2q52gw6ZsN3k9ZmB4foJfwVKAf8?= =?us-ascii?Q?L7e4e5mU2vg1PryYioZ2lvHjSEtUOdOhhhjQyb5SYxjdKb9roYpZDmU1z++h?= =?us-ascii?Q?aMn/wnItrcWJJ0jUpE1skOMsJqBD1M6VPGmRSe0aZXf22NDgWh4x35qbZr+Q?= =?us-ascii?Q?qpgdtO/EgQqv1/Zd47Mmsr5OAhRo79nPrcxz8ZiJBGWV16SsCpSq/f6Hopdm?= =?us-ascii?Q?NkLu45lqnCVksLJokN+Fx/h6kfghk4xlTlRdE8+7qYdxXyFzn5Iz1BSJDhNw?= =?us-ascii?Q?flbkcPQe0SGE5w5OXmzAuRYiiRdXsu9guGD+tr1LZ7QR9ecoKOciVbLWFEW2?= =?us-ascii?Q?RxmUINc6+SCYpPpnXFe8wMFKGFIRgUujgO/2I1iA8r9oNQOwnqbt63ETcv1k?= =?us-ascii?Q?sX6FPjOIiO3+RM1qfcAHY3+/XrcJpeJOK2zf5DWK2/DVhuPSYfGTP/R7DeNb?= =?us-ascii?Q?dDQp9qACr+E1YEL7kNdxy2uszRmEmn11DYP47h8T0ptF4xW79FcjSPLv5bzA?= =?us-ascii?Q?J1RGoWfzDkNSXtucdsRTH1EQunWFGSGRUhpSqGk0hbERHtMKuCqN2Pj3XZye?= =?us-ascii?Q?i2ugxWQ5Eqo3KMTWPZsi/ixfrXdIdzg80DhbI8V1YBH06XiM3FbfCWsuiuxL?= =?us-ascii?Q?HDcNoRJQj4XSxS7veIopE9J1vEn330i5z26o3Y1qPGKyBLwXJFKT47q1t6dv?= =?us-ascii?Q?59gC7jqCuQSr/u4ZCmBDCOIAusZmk/sU7JLm76jHAHPAuKzCtcP47D1eiOFi?= =?us-ascii?Q?PRYvQ0MvTtiU8wwUT/HRoU2vl53uinEKXnHpaXxSdqRx2pGqJ64eY3I4Z8lv?= =?us-ascii?Q?CQTFcS+pICS+Jx7i4R/2UesjvzzIudsTMjULGqj5PQSX/FfX7bbDnGN/6/5v?= =?us-ascii?Q?iAx2g0EHZ6i7Ud6yAOB8hU8jfR5O+HiK/vsGvkkBQdGvlffrNY6B9NEyxmqC?= =?us-ascii?Q?AAJQZMOyjQZh8iPXtx55//D37qzxI1gSoS5rvx09wyOuv9b1it77jqAHMGdQ?= =?us-ascii?Q?z2XRgc1uRvUPQ22qhXtEhPGB6cxexevkiy9gEz14y3/kmdoFY7UDk4E2iNt/?= =?us-ascii?Q?Tzq9kku8LcKw9kXPFf8=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a346d592-f27b-4b08-c24d-08db529eafa0 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 May 2023 04:09:30.7303 (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: iFe9EX5y9o117092CggLm1jh5YXttQO5NGMSKAZqpTjlnnr7PhDiqfkiCNsJYhk7p9IuKfBUzCQHVo0sc93Kfw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8355 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Reviewed-by: Abner Chang > -----Original Message----- > From: Nickle Wang > Sent: Friday, May 12, 2023 11:47 AM > To: devel@edk2.groups.io > Cc: Chang, Abner ; Igor Kulchytskyy > > Subject: [edk2-redfish-client][PATCH 2/4] RedfishClientPkg: Add > Redfish.Settings support >=20 > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. >=20 >=20 > BIOS feature driver cannot recognize "@Redfish.Settings", decode it and g= et > pending setting URI. So BIOS feature driver can consume pending setting > from correct place. >=20 > Signed-off-by: Simon Wang > Cc: Nickle Wang > Cc: Abner Chang > Cc: Igor Kulchytskyy > --- > .../Features/Bios/v1_0_9/Dxe/BiosDxe.c | 65 ++++++++++++++++--- > 1 file changed, 57 insertions(+), 8 deletions(-) >=20 > diff --git a/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c > b/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c > index 15ec208d..125e4eda 100644 > --- a/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c > +++ b/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c > @@ -2,6 +2,7 @@ > Redfish feature driver implementation - Bios >=20 > (C) Copyright 2020-2022 Hewlett Packard Enterprise Development LP
> + Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. >=20 > SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > @@ -101,7 +102,13 @@ RedfishResourceConsumeResource ( > REDFISH_RESOURCE_COMMON_PRIVATE *Private; > EFI_STATUS Status; > REDFISH_RESPONSE Response; > + REDFISH_RESPONSE *ExpectedResponse; > + REDFISH_RESPONSE RedfishSettingsResponse; > CHAR8 *Etag; > + UINTN Index; > + EDKII_JSON_VALUE JsonValue; > + EFI_STRING RedfishSettingsUri; > + CONST CHAR8 *RedfishSettingsUriKeys[] =3D > { "@Redfish.Settings", "SettingsObject", "@odata.id" }; >=20 > if ((This =3D=3D NULL) || IS_EMPTY_STRING (Uri)) { > return EFI_INVALID_PARAMETER; > @@ -119,8 +126,38 @@ RedfishResourceConsumeResource ( > return Status; > } >=20 > + ExpectedResponse =3D &Response; > + RedfishSettingsUri =3D NULL; > + JsonValue =3D RedfishJsonInPayload (Response.Payload); > + > + // > + // Seeking RedfishSettings URI link. > + // > + for (Index =3D 0; Index < sizeof (RedfishSettingsUriKeys) / sizeof > (*RedfishSettingsUriKeys); Index++) { > + if (JsonValue =3D=3D NULL) { > + break; > + } > + > + JsonValue =3D JsonObjectGetValue (JsonValueGetObject (JsonValue), > + RedfishSettingsUriKeys[Index]); } > + > + if (JsonValue !=3D NULL) { > + // > + // Verify RedfishSettings URI link is valid to retrieve resource or = not. > + // > + RedfishSettingsUri =3D JsonValueGetUnicodeString (JsonValue); > + > + Status =3D GetResourceByUri (Private->RedfishService, RedfishSetting= sUri, > &RedfishSettingsResponse); > + if (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "%a, @Redfish.Settings exists, get resource > from: %s failed\n", __FUNCTION__, RedfishSettingsUri)); > + } else { > + Uri =3D RedfishSettingsUri; > + ExpectedResponse =3D &RedfishSettingsResponse; > + } > + } > + > Private->Uri =3D Uri; > - Private->Payload =3D Response.Payload; > + Private->Payload =3D ExpectedResponse->Payload; > ASSERT (Private->Payload !=3D NULL); >=20 > Private->Json =3D JsonDumpString (RedfishJsonInPayload (Private->Paylo= ad), > EDKII_JSON_COMPACT); @@ -130,7 +167,7 @@ > RedfishResourceConsumeResource ( > // Find etag in HTTP response header > // > Etag =3D NULL; > - Status =3D GetEtagAndLocation (&Response, &Etag, NULL); > + Status =3D GetEtagAndLocation (ExpectedResponse, &Etag, NULL); > if (EFI_ERROR (Status)) { > DEBUG ((DEBUG_ERROR, "%a, failed to get ETag from HTTP header\n", > __FUNCTION__)); > } > @@ -153,12 +190,24 @@ RedfishResourceConsumeResource ( > // Release resource > // > if (Private->Payload !=3D NULL) { > - RedfishFreeResponse ( > - Response.StatusCode, > - Response.HeaderCount, > - Response.Headers, > - Response.Payload > - ); > + if (Response.Payload !=3D NULL) { > + RedfishFreeResponse ( > + Response.StatusCode, > + Response.HeaderCount, > + Response.Headers, > + Response.Payload > + ); > + } > + > + if (RedfishSettingsResponse.Payload !=3D NULL) { > + RedfishFreeResponse ( > + RedfishSettingsResponse.StatusCode, > + RedfishSettingsResponse.HeaderCount, > + RedfishSettingsResponse.Headers, > + RedfishSettingsResponse.Payload > + ); > + } > + > Private->Payload =3D NULL; > } >=20 > -- > 2.17.1