From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (NAM02-BN1-obe.outbound.protection.outlook.com [40.107.212.42]) by mx.groups.io with SMTP id smtpd.web10.18524.1683876207647259212 for ; Fri, 12 May 2023 00:23:28 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@nvidia.com header.s=selector2 header.b=OjfTBb5k; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.212.42, mailfrom: nicklew@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=afLtO1ZQxGf+JEG53Z7/mhwQ/yYDO0a+6T3SHz3Lg/lZqWPplib8nBDJRRZ8HfUzRPur/GS+LmN7DhXSQjprp84NcTqat8cwB3JZry+RoaKQDhTMFGnR0MXAjVcVOSfh0/VFaqYb0n5gIsnIfz7u5fKWvdpfe8LNP/XJJxjr4udtfEFHb9J9r934kbye9400vk88mrN5+pSvJwkCkBpczs9dg2r6IIaap1wy4fwsFcOQakA4xN9fKaRSLjpDLA1SyupGaO4wud2f/LualOJZh0YDza03559jh7dJa+2vXLSDsay3CF3DO0/dik0AL22Tjts1wvGsO2jh4MHHEY+WkA== 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=RnNShpTpY+bXuvlYy+OpLUUH5TrFKFYkbgb8QRaR85g=; b=flp2fiPP5iVXcgr0s7CC0+epb4yOugNmMN+puU4XdRUgfRmLNmoi7AwD7BT1gJqitKujlNtpW5VA88iz9IZEOSF8l3bRYu1Ban2UYDK6X5LJ6XCXYUVoanajUEQ66Ny986PBRv+QEZzJe51zAbOsVgWczbbrOkDEEV84xq/UNeZSIi7UBsqElaz6L88/jwKDxjlNJwSq5v2+1GFqB5dv/tW/0wkdACPiq2+Vy7MmSP7rTXSEhudZMDLouLo0f9V2uB+OYtVqRpvd06IsClvP6qWquhFWdIL7jjR9TpHKvuNO+hYbkfRR7m8dW52mxCh0ZD+DZ/zpE0ShWmVFRImqxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RnNShpTpY+bXuvlYy+OpLUUH5TrFKFYkbgb8QRaR85g=; b=OjfTBb5kAUml8RJ0eL4drZ5TpsEZXVH8E8eH/caAeODAgX28uTUu89cmD2c3TgD2gfU0+qRFYT1sPXquc0KnNxkpPhNmqaNGwup5+k4sIQY075zgCpjOQNnGk33mqfMmfLr5HGTjNB8wvAzrEjy6C3yh/tJEfCyoYjVSK2GEfR6NBLJzYXNtdpYsCvwIqCOLGnK5gvTjgkR7aGmzewR4FRl79ej7S0T34p25smA35fexu2BED6+zdgPokGKWtYQnALtkx0sH/Bk/FL2ZXAcUqfEfjZlWlUaZQS9srXb3Xt4ir/JrLmKQe4CYHBgOKaknGzxsgnGGPq7DBCRQUOw8HQ== Received: from DM6PR03CA0012.namprd03.prod.outlook.com (2603:10b6:5:40::25) by SJ1PR12MB6242.namprd12.prod.outlook.com (2603:10b6:a03:457::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.36; Fri, 12 May 2023 07:23:25 +0000 Received: from DM6NAM11FT019.eop-nam11.prod.protection.outlook.com (2603:10b6:5:40:cafe::7) by DM6PR03CA0012.outlook.office365.com (2603:10b6:5:40::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.22 via Frontend Transport; Fri, 12 May 2023 07:23:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by DM6NAM11FT019.mail.protection.outlook.com (10.13.172.172) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.24 via Frontend Transport; Fri, 12 May 2023 07:23:24 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Fri, 12 May 2023 00:23:14 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Fri, 12 May 2023 00:23:14 -0700 Received: from NV-CL38DL3.nvidia.com (10.127.8.9) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.986.37 via Frontend Transport; Fri, 12 May 2023 00:23:13 -0700 From: "Nickle Wang" To: CC: Abner Chang , Igor Kulchytskyy Subject: [edk2-redfish-client][PATCH 3/3] RedfishClientPkg: Utilize RedfishAddendumLib Date: Fri, 12 May 2023 15:23:08 +0800 Message-ID: <20230512072308.17977-1-nicklew@nvidia.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Return-Path: nicklew@nvidia.com X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT019:EE_|SJ1PR12MB6242:EE_ X-MS-Office365-Filtering-Correlation-Id: ed1b3f0e-0bd2-4cec-633b-08db52b9c614 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lTYgE6AxI/hkw/Aeg/kcvVBC9+kPLTzmk9A+lJixpaOQxoU4req9INsGq85dPyg/74jcH465ZLHd2cktvluPM52go2sWIprg+iGdrKaMin5ugO4aVN/lymvqH8D6rzHuwGrQeCAs1pfGUzjOuolsmq7XZZfvh/jw7u4Fz+lcS2hefBoLJ/+QHDDdk+ryw/WWmYlDBdzU9qUL+t9BCbDDI7UkfVgPSbkg8yF6FtF2v4oCmdO/YvhEw7Fv9ynstCH6mg/AD6vgfHVpc/Vwc1iZUsjimpBADDIbrEEzSPKz1MDf9DYYtreqhZpejbX7FQuPNQS/0tL/pO/Y/qU+hK17StVZjCDzzcjV4e69Q9sThuz3kTY7/4jPsOqSnJSapjMuY55Yn+jnygVXJ4lIIla56vBWHb2Y3OUvi1FCI56UCZuD0B+Cjmyy0fGOIEVZ1/unQDjHf88Mp98o140OSwHrv2/lEZwnFxAsZIAsffV+AlKZXAwXL4Z3TbrOzBgo9RzCAjFrXmAKkzl7YOaXGLP2r2bTrtN/8dVoGFsBIk7KYw+aN2Ee3uNnYmjgkHgYA/6PxGg7pI3TKp1Omhd4oR/h7C2fqHM2xbrVoYXh9SZYmTXnDnfYVves7z84Fn9k43rPopRETKRhIiNvPfweo3jdpOYJ2Hn/1fseiCZNOrAg4gZQ265TWsl3XelVjLCmJBlo7AnW7mEtOgM3eUEH3U+agw== X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230028)(4636009)(346002)(396003)(39860400002)(376002)(136003)(451199021)(46966006)(40470700004)(36840700001)(19627235002)(478600001)(40460700003)(54906003)(5660300002)(8676002)(8936002)(86362001)(2906002)(36756003)(82310400005)(40480700001)(6916009)(82740400003)(4326008)(70586007)(316002)(7636003)(356005)(70206006)(41300700001)(1076003)(186003)(26005)(36860700001)(47076005)(83380400001)(2616005)(336012)(426003)(7696005)(6666004);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2023 07:23:24.7303 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ed1b3f0e-0bd2-4cec-633b-08db52b9c614 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT019.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6242 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Bios feature driver utilizes RedfishAddendumLib and get additional data before sending BIOS attributes to Redfish service. Signed-off-by: Nickle Wang Cc: Abner Chang Cc: Igor Kulchytskyy --- .../Features/Bios/v1_0_9/Dxe/BiosDxe.inf | 2 + .../Include/RedfishResourceCommon.h | 2 + .../Features/Bios/v1_0_9/Common/BiosCommon.c | 100 ++++++++++++++++++ 3 files changed, 104 insertions(+) diff --git a/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.inf b/Redfis= hClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.inf index 8c01a3b8..37346e50 100644 --- a/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.inf +++ b/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.inf @@ -1,6 +1,7 @@ ## @file # # (C) Copyright 2020-2022 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserve= d. # # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -37,6 +38,7 @@ RedfishResourceIdentifyLib UefiLib UefiDriverEntryPoint + RedfishAddendumLib =20 [Protocols] gEdkIIRedfishConfigHandlerProtocolGuid ## PRODUCED diff --git a/RedfishClientPkg/Include/RedfishResourceCommon.h b/RedfishClie= ntPkg/Include/RedfishResourceCommon.h index c270f92b..b006755d 100644 --- a/RedfishClientPkg/Include/RedfishResourceCommon.h +++ b/RedfishClientPkg/Include/RedfishResourceCommon.h @@ -2,6 +2,7 @@ Redfish feature driver common header file. =20 (C) Copyright 2020-2022 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved= . =20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -30,6 +31,7 @@ #include #include #include +#include =20 // // Protocols diff --git a/RedfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c b/Re= dfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c index 22074559..c7c77a02 100644 --- a/RedfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c +++ b/RedfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c @@ -2,6 +2,7 @@ Redfish feature driver implementation - common functions =20 (C) Copyright 2020-2022 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved= . =20 SPDX-License-Identifier: BSD-2-Clause-Patent =20 @@ -265,6 +266,7 @@ ProvisioningBiosResource ( ) { CHAR8 *Json; + CHAR8 *JsonWithAddendum; EFI_STATUS Status; EFI_STRING NewResourceLocation; CHAR8 *EtagStr; @@ -290,6 +292,38 @@ ProvisioningBiosResource ( return Status; } =20 + // + // Check and see if platform has OEM data or not + // + Status =3D RedfishGetOemData ( + Private->Uri, + RESOURCE_SCHEMA, + RESOURCE_SCHEMA_VERSION, + Json, + &JsonWithAddendum + ); + if (!EFI_ERROR (Status) && (JsonWithAddendum !=3D NULL)) { + FreePool (Json); + Json =3D JsonWithAddendum; + JsonWithAddendum =3D NULL; + } + + // + // Check and see if platform has addendum data or not + // + Status =3D RedfishGetAddendumData ( + Private->Uri, + RESOURCE_SCHEMA, + RESOURCE_SCHEMA_VERSION, + Json, + &JsonWithAddendum + ); + if (!EFI_ERROR (Status) && (JsonWithAddendum !=3D NULL)) { + FreePool (Json); + Json =3D JsonWithAddendum; + JsonWithAddendum =3D NULL; + } + Status =3D CreatePayloadToPostResource (Private->RedfishService, Private= ->Payload, Json, &NewResourceLocation, &EtagStr); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "%a, post Bios resource for %s failed: %r\n", __F= UNCTION__, ConfigureLang, Status)); @@ -369,6 +403,7 @@ ProvisioningBiosExistResource ( EFI_STRING ConfigureLang; CHAR8 *EtagStr; CHAR8 *Json; + CHAR8 *JsonWithAddendum; =20 if (Private =3D=3D NULL) { return EFI_INVALID_PARAMETER; @@ -401,6 +436,38 @@ ProvisioningBiosExistResource ( goto ON_RELEASE; } =20 + // + // Check and see if platform has OEM data or not + // + Status =3D RedfishGetOemData ( + Private->Uri, + RESOURCE_SCHEMA, + RESOURCE_SCHEMA_VERSION, + Json, + &JsonWithAddendum + ); + if (!EFI_ERROR (Status) && (JsonWithAddendum !=3D NULL)) { + FreePool (Json); + Json =3D JsonWithAddendum; + JsonWithAddendum =3D NULL; + } + + // + // Check and see if platform has addendum data or not + // + Status =3D RedfishGetAddendumData ( + Private->Uri, + RESOURCE_SCHEMA, + RESOURCE_SCHEMA_VERSION, + Json, + &JsonWithAddendum + ); + if (!EFI_ERROR (Status) && (JsonWithAddendum !=3D NULL)) { + FreePool (Json); + Json =3D JsonWithAddendum; + JsonWithAddendum =3D NULL; + } + DEBUG ((REDFISH_DEBUG_TRACE, "%a, provisioning existing resource for %s\= n", __FUNCTION__, ConfigureLang)); // // PUT back to instance @@ -528,6 +595,7 @@ RedfishUpdateResourceCommon ( { EFI_STATUS Status; CHAR8 *Json; + CHAR8 *JsonWithAddendum; EFI_STRING ConfigureLang; CHAR8 *EtagStr; =20 @@ -562,6 +630,38 @@ RedfishUpdateResourceCommon ( goto ON_RELEASE; } =20 + // + // Check and see if platform has OEM data or not + // + Status =3D RedfishGetOemData ( + Private->Uri, + RESOURCE_SCHEMA, + RESOURCE_SCHEMA_VERSION, + Json, + &JsonWithAddendum + ); + if (!EFI_ERROR (Status) && (JsonWithAddendum !=3D NULL)) { + FreePool (Json); + Json =3D JsonWithAddendum; + JsonWithAddendum =3D NULL; + } + + // + // Check and see if platform has addendum data or not + // + Status =3D RedfishGetAddendumData ( + Private->Uri, + RESOURCE_SCHEMA, + RESOURCE_SCHEMA_VERSION, + Json, + &JsonWithAddendum + ); + if (!EFI_ERROR (Status) && (JsonWithAddendum !=3D NULL)) { + FreePool (Json); + Json =3D JsonWithAddendum; + JsonWithAddendum =3D NULL; + } + DEBUG ((REDFISH_DEBUG_TRACE, "%a, update resource for %s\n", __FUNCTION_= _, ConfigureLang)); // // PUT back to instance --=20 2.17.1