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 B227CAC0CB0 for ; Mon, 4 Dec 2023 07:17:36 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=xQvhCjlVeYx2e8F8JlXAR8DGkvCWlMK32qmZxaHyWYE=; 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: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=1701674255; v=1; b=jVKDKbxVu/kfy9hDe4sgScb2gd58PFSBjilx1M2skX2je7qmcP0V/rNL/HN7ewYBmQ0QUJC8 f0In5Kc80YMOWMgOwO5h4CxDvf1+BpMPd1aWS20k5iNVTKAtIPs8/zmyRK3chBSRZHb8QBtSKpe 8n3RGY/R6VqgsTdVyx/wjtHw= X-Received: by 127.0.0.2 with SMTP id 2eOfYY7687511xFlq2DZLONn; Sun, 03 Dec 2023 23:17:35 -0800 X-Received: from NAM12-MW2-obe.outbound.protection.outlook.com (NAM12-MW2-obe.outbound.protection.outlook.com [40.107.244.60]) by mx.groups.io with SMTP id smtpd.web11.63674.1701674254523783156 for ; Sun, 03 Dec 2023 23:17:34 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JlVrLQvfHZyAS2gAiE89hxRYVdgqrOopyjrYo+87Myqvyg9N7+oRn1Bu6zbGpBwjyPfzsfwo7+lKfcjqVFzmBy3LD+K/+yXs9F5X9+FTCn4zg939B9XASByZXZN4EVLmIr7js1x8pQKYuUvwC8tSH8I9X1jV1xpya+yb2sbd3NWe4Lj++uLsJ1cky4jlGoem9ImPqkOPRRhVBuhlegweIXnN+nZ04jpqUvD4hrcBMhx1uxX07LIlzPm9CrTUkay372ozbN1OjqEngwdsIBdYi56X/GJv5t4Ae5HkDExNiALUzFhYXMk60TIdQH0PgUe14yRe9e3ukR+ISUoe3DIlTA== 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=F/upZuqTflSOq4DIDW+jrYfs2HmH8A6tAI6K0QcMCc0=; b=Tx2ZmYAy46tOyuX/mZIpLv+1TR0QritPCVjmJPyL4nq6x/hUD+5INd4BmjRJBWJICjMwFKQ/DuFspiE1oA5Wv58FfUtVpNmUUHLxDEdmexKlmRPVfEo1egKC4m8ltblnBKkURQviVjR2EIWVpfhc8rr6ZcbH0n3oKifc2TMwIwhppNwP7Saw4rdy3/PPKX7vOwlet5pSknkBFfsiYMI9ey4GZL6KlVi4XN6mIdLJq+13GIk7Uj7nDtM/+M0Y/rJtBnGj0tIhQeBUGp4I3XoBkrqxvjhojEw2zU1yTxfQ1oh5/OovOPVKQ7WGieCAZe69Kls0pDIfotuxRrXIII8SWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none X-Received: from MW4PR12MB7031.namprd12.prod.outlook.com (2603:10b6:303:1ef::6) by BL3PR12MB6617.namprd12.prod.outlook.com (2603:10b6:208:38c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.33; Mon, 4 Dec 2023 07:17:31 +0000 X-Received: from MW4PR12MB7031.namprd12.prod.outlook.com ([fe80::a78e:602e:415c:4cb4]) by MW4PR12MB7031.namprd12.prod.outlook.com ([fe80::a78e:602e:415c:4cb4%3]) with mapi id 15.20.7046.033; Mon, 4 Dec 2023 07:17:31 +0000 From: "Nickle Wang via groups.io" To: "abner.chang@amd.com" , "devel@edk2.groups.io" CC: Igor Kulchytskyy , Mike Maslenkin Subject: Re: [edk2-devel] [PATCH V3 3/9] RedfishPkg/RedfishConfigHandler: Use Redfish HI readiness notification Thread-Topic: [PATCH V3 3/9] RedfishPkg/RedfishConfigHandler: Use Redfish HI readiness notification Thread-Index: AQHaIPL/z1H+8t/zFEW7bx02mcOwfLCYwffg Date: Mon, 4 Dec 2023 07:17:31 +0000 Message-ID: References: <20231127053107.1686-1-abner.chang@amd.com> <20231127053107.1686-4-abner.chang@amd.com> In-Reply-To: <20231127053107.1686-4-abner.chang@amd.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR12MB7031:EE_|BL3PR12MB6617:EE_ x-ms-office365-filtering-correlation-id: c7264d58-0374-481c-8278-08dbf499144c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: ciY7v08y7lyxaIYryfY/J8Mpht5NDIaHyTos62+FWb6B0fa+l/M392qraVMC2nPxXXZXsus+oV++3vdJYKYCEWIM3JAV+wFJ0DBXTMCb68ugL+qPSgqW8JKBQ5MqvR+6AohwY/fPihHni9Vqj0xh/lkbNnPn7ZzA1c+m4Jgi+m/IF70Y5BLI+veXjQ2hHKTPCCv9WHMwGIS26UOlSVwLZ8t2rF84BlN6nN6gvbJcIT5VRSkodFnVL/5bcdXycUZGaWi1FxhsOMCWh+YXgux9H7cS67yntkM4JC6lZSivQHDBDZSoEpxP/CbMyzwkajUAOti28740IX9NUZKXD6llFlR2qJj+OezDrmnXAeJduNb/PZJuID+WDFMQchj6BJttlkh0UMVEDpJHBVTIVJ8BTtgAnmRREDqJS7dw+7pleUUnbhdiH6+oGbQ3ZRYrHmJyZspFdvH2NbAOEYWfXsn+T7e4dLZ/p2J/QwD7aE8COsBqi8eUdZipG1BaOGsj6g+bMp7QiRqTli7L+vdMF7ploIBj13RW/yFsxnHaSij8f49s99wQ8yJZ/T8mBNCMwjMHs0J4xxmqePP6Spwfa1YMDmgGGcfeYOJzYl+v61v3p+48RPCMru7GFU9AKsV6Y0pzpcDzUykMtj6kzt4m4HvU9cqzkBc3ew9UEzH/ut/nU5Y= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?8Lkoq/xyiIapwYMRmFyvnGCS/oQ9tKN/abn3Muio2n1fpngIaElR71xD0rhB?= =?us-ascii?Q?BBRnwKoWheOZx01Zn8IDPscNSFtL8r+mSeVnFDfCPDEJSBnn6xq8ZjyZMnsv?= =?us-ascii?Q?liL5t2ZomFZiuxeBtr2DTVwJBwwaM8a5/a/WTK1sb+od/4kYejUDwCzyxYju?= =?us-ascii?Q?c/CxcuH7NTRtjdtEmUYJ5HQI9RUMSuwiP1ICwG/VVycs7ldXtJlnMczYZz3/?= =?us-ascii?Q?bkX5SV/VF25Ngj/5cp6RnbKT0ex+cHgO0BGPaVauSQZ/yzX415QEXP6c2uVv?= =?us-ascii?Q?xRGTXuXrfZpdKKHk9gYcH2DvTJ3IeY8uu/bQLacoLqnVK0K/Bn55vAHgNK/z?= =?us-ascii?Q?GuU+03kT8xeiSFd9zZ2VOf4EERBC45N0peksGcP8a81oEG5CnsIHn5jt4TIk?= =?us-ascii?Q?+d7xCvtPczup7m3bWRV+lM+nCArCLHbgyOEBtezCyeI3ugCSswSqqkx7FiQt?= =?us-ascii?Q?GcLuMsXc0Z66GoI+tr/q86AYte+zhgM9M/Vdk/SNVH6pThfpWu/n2UlnGuyl?= =?us-ascii?Q?r37CWTS/s5t5Fc0lfUlxk2i8+Zm2ezZ/kPcG92Q9QYlr71nWE0PjspC6ED0q?= =?us-ascii?Q?Dzjq1KmH0oNaIfPv+HrmUMGEz20OZx13WzOPjTlOhS840HMm18YtEFy8AKON?= =?us-ascii?Q?M0EY/S0RTiTQEimWoMzI8+9/1ti3RgflV4vW78YuR6rblTkR++7tcDu8eBb9?= =?us-ascii?Q?p/WRBe2e75ulCi0GOKHQ+xmncyTeArJnfqKpF4Ru0kMAx8qxDLb9o1BQMpFH?= =?us-ascii?Q?Uvm2ezMqCZi+c1UV5TbLS59Lepb6KwBRbkUC7r5gO309Kkf8IBmbYLBaK2hZ?= =?us-ascii?Q?JyaaTu57vFIUolQSFqDIQaSAWFfXPBUo8Qlw1mBxqtezh+zP4KGspbsrwL2Z?= =?us-ascii?Q?Q8OlC64TVB7GSutQosT0zuudTWln49l5BF6cu20IFkYutaQThXHjFYazYKsu?= =?us-ascii?Q?ZkZDSNY0btkdiGbq4HGsDED38DXPQajfZRc7gHbUiyRKOuFm8gm7pAQmoKxQ?= =?us-ascii?Q?aS0bhSPVdhA0OSwe+QOB6rIRJaUScWauUkAi8UaF5yyd+Y2xQy3PvmqPa00y?= =?us-ascii?Q?HBVYgWyue0iU8h71TcGF8HCD+/EdPOdqY8VExpO1Sg+noSTgsMCt9llqJwuL?= =?us-ascii?Q?0CoiTOgPj+BfORQCX+LQhWK1To9Kl1U/omsXvYGKOksbqlPtkXtBlBxlxMe+?= =?us-ascii?Q?DeVVnSVCTv13A2uxr6AWOYSFIPQxQcwMb3xWYicvq6JjiqLOYAToe3pCUPaN?= =?us-ascii?Q?3Fd4udIx25gi2b85ZSY/B5B0NqoStoiExowxWtBuqXlCyGUBqoXx+STeDks4?= =?us-ascii?Q?taTiIh1IU7be9Hs8YW8pdejW/o65U3K1oEaNlgsh6J8mzP3XxVGkvt5UAaUt?= =?us-ascii?Q?QL1UwGt/4O6bVbmXinHyiOZUUdDlTEWiqAAzDRfztXDINaRZknpQ/cIfeGbq?= =?us-ascii?Q?EmDSIPN3Gx4bXkPbgUEx8fUxr9kmHYs8x7d/U5fZyT9/z2Io154RhphD0eJG?= =?us-ascii?Q?jm92ww2eTiZ7C3JBnvzEecabzEvqUubnyOdGRjEtvO9Ycw3kyiFxEnmmlzFl?= =?us-ascii?Q?cxZh67dwRlmJPffntyVzWV1I0Dn/K5Ap/pmaliF2dDR+cpfE0o1FryW1Se+O?= =?us-ascii?Q?ONEnoBgor16Z8paHNuB3v3bIGPXq7CGydF3ND5SUKbat?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7031.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c7264d58-0374-481c-8278-08dbf499144c X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2023 07:17:31.0255 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 14xhZhGQdaDEDE+OlNC2DpbusSuCrZwfya+IXyqeBTyNOHA3SUwZo9o1xBcza7FjyLEDDWpbrp7R8s6BK6G0aw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6617 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,nicklew@nvidia.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: msCafp6SmImnSVZqWVfcN7ynx7686176AA= 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=jVKDKbxV; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); 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 Reviewed-by: Nickle Wang Regards, Nickle > -----Original Message----- > From: abner.chang@amd.com > Sent: Monday, November 27, 2023 1:31 PM > To: devel@edk2.groups.io > Cc: Nickle Wang ; Igor Kulchytskyy ; > Mike Maslenkin > Subject: [PATCH V3 3/9] RedfishPkg/RedfishConfigHandler: Use Redfish HI > readiness notification >=20 > External email: Use caution opening links or attachments >=20 >=20 > From: Abner Chang >=20 > Wait until Redfish Host Interface is installed on the system then acquire= Redfish > service. >=20 > Signed-off-by: Abner Chang > Cc: Nickle Wang > Cc: Igor Kulchytskyy > Cc: Mike Maslenkin > --- > .../RedfishConfigHandlerDriver.inf | 9 +- > .../RedfishConfigHandlerDriver.c | 168 ++++++++++++------ > 2 files changed, 116 insertions(+), 61 deletions(-) >=20 > diff --git a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.i= nf > b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.inf > index b167c6e1ee4..aed93f570cf 100644 > --- a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.inf > +++ b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.inf > @@ -46,11 +46,12 @@ > UefiDriverEntryPoint >=20 > [Protocols] > - gEfiRedfishDiscoverProtocolGuid ## CONSUMES > + gEfiRedfishDiscoverProtocolGuid ## CONSUMES > gEfiRestExServiceBindingProtocolGuid > - gEfiRestExProtocolGuid ## CONSUMES > - gEdkIIRedfishCredentialProtocolGuid ## CONSUMES > - gEdkIIRedfishConfigHandlerProtocolGuid ## CONSUMES > + gEfiRestExProtocolGuid ## CONSUMES > + gEdkIIRedfishCredentialProtocolGuid ## CONSUMES > + gEdkIIRedfishConfigHandlerProtocolGuid ## CONSUMES > + gEdkIIRedfishHostInterfaceReadyProtocolGuid ## CONSUMES >=20 > [Guids] > gEfiEventExitBootServicesGuid ## CONSUMES ## Event > diff --git a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c > b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c > index f987cc67a69..b421f51374d 100644 > --- a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c > +++ b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c > @@ -17,11 +17,15 @@ EFI_EVENT gEfiRedfishDiscoverProtocolEvent =3D NULL;= // > // Variables for using RFI Redfish Discover Protocol // > -VOID *gEfiRedfishDiscoverRegistration; > -EFI_HANDLE gEfiRedfishDiscoverControllerHandle =3D N= ULL; > -EFI_REDFISH_DISCOVER_PROTOCOL *gEfiRedfishDiscoverProtocol =3D N= ULL; > -BOOLEAN gRedfishDiscoverActivated =3D F= ALSE; > -BOOLEAN gRedfishServiceDiscovered =3D F= ALSE; > +VOID *gEfiRedfishDiscoverRegistration= ; > +EFI_HANDLE gEfiRedfishDiscoverControllerHan= dle =3D NULL; > +EFI_REDFISH_DISCOVER_PROTOCOL *gEfiRedfishDiscoverProtocol = =3D > NULL; > +BOOLEAN gRedfishDiscoverActivated = =3D FALSE; > +BOOLEAN gRedfishServiceDiscovered = =3D FALSE; > +EFI_REDFISH_DISCOVER_NETWORK_INTERFACE *mNetworkInterfaces > =3D NULL; > +UINTN mNumberOfNetworkInterfaces; > +EFI_EVENT mEdkIIRedfishHostInterfaceReadyE= vent; > +VOID *mEdkIIRedfishHostInterfaceRegis= tration; >=20 > /// > /// Driver Binding Protocol instance > @@ -339,6 +343,83 @@ RedfishServiceDiscoveredCallback ( > FreePool (RedfishDiscoveredToken); > } >=20 > +/** > + Callback function executed when the > +gEdkIIRedfishHostInterfaceReadyProtocolGuid > + protocol interface is installed. > + > + @param[in] Event Event whose notification function is being invok= ed. > + @param[in] Context Pointer to the Context buffer > + > +**/ > +VOID > +EFIAPI > +AcquireRedfishServiceOnNetworkInterfaceCallback ( > + IN EFI_EVENT Event, > + IN VOID *Context > + ) > +{ > + EFI_STATUS Status; > + EFI_REDFISH_DISCOVER_NETWORK_INTERFACE *ThisNetworkInterface; > + UINTN NetworkInterfaceIndex; > + EFI_REDFISH_DISCOVERED_TOKEN *ThisRedfishDiscoveredToken; > + > + ThisNetworkInterface =3D mNetworkInterfaces; // // Loop to discover > + Redfish service on each network interface. > + // > + for (NetworkInterfaceIndex =3D 0; NetworkInterfaceIndex < > mNumberOfNetworkInterfaces; NetworkInterfaceIndex++) { > + ThisRedfishDiscoveredToken =3D (EFI_REDFISH_DISCOVERED_TOKEN > *)AllocateZeroPool (sizeof (EFI_REDFISH_DISCOVERED_TOKEN)); > + if (ThisRedfishDiscoveredToken =3D=3D NULL) { > + DEBUG ((DEBUG_ERROR, "%a: Not enough memory for > EFI_REDFISH_DISCOVERED_TOKEN.\n", __func__)); > + return; > + } > + > + ThisRedfishDiscoveredToken->Signature =3D > + REDFISH_DISCOVER_TOKEN_SIGNATURE; > + > + // > + // Initial this Redfish Discovered Token > + // > + Status =3D gBS->CreateEvent ( > + EVT_NOTIFY_SIGNAL, > + TPL_CALLBACK, > + RedfishServiceDiscoveredCallback, > + (VOID *)ThisRedfishDiscoveredToken, > + &ThisRedfishDiscoveredToken->Event > + ); > + if (EFI_ERROR (Status)) { > + FreePool (ThisRedfishDiscoveredToken); > + DEBUG ((DEBUG_ERROR, "%a: Failed to create event for Redfish disco= vered > token.\n", __func__)); > + return; > + } > + > + // > + // Acquire for Redfish service which is reported by > + // Redfish Host Interface. > + // > + Status =3D gEfiRedfishDiscoverProtocol->AcquireRedfishService ( > + gEfiRedfishDiscoverProtocol, > + gRedfishConfigData.Image, > + ThisNetworkInterface, > + EFI_REDFISH_DISCOVER_HOST_IN= TERFACE, > + ThisRedfishDiscoveredToken > + ); > + > + // > + // Free Redfish Discovered Token if Discover Instance was not create= d and > + // Redfish Service Discovered Callback event was not triggered. > + // > + if ((ThisRedfishDiscoveredToken->DiscoverList.NumberOfServiceFound = =3D=3D 0) > || > + EFI_ERROR (ThisRedfishDiscoveredToken->DiscoverList.RedfishInsta= nces- > >Status)) > + { > + gBS->CloseEvent (ThisRedfishDiscoveredToken->Event); > + DEBUG ((DEBUG_ERROR, "%a: Free Redfish discovered token - %x.\n", > __func__, ThisRedfishDiscoveredToken)); > + FreePool (ThisRedfishDiscoveredToken); > + } > + > + ThisNetworkInterface++; > + } > +} > + > /** > Callback function executed when the EFI_REDFISH_DISCOVER_PROTOCOL > protocol interface is installed. > @@ -354,13 +435,10 @@ RedfishDiscoverProtocolInstalled ( > OUT VOID *Context > ) > { > - EFI_STATUS Status; > - UINTN BufferSize; > - EFI_HANDLE HandleBuffer; > - UINTN NetworkInterfaceIndex; > - EFI_REDFISH_DISCOVER_NETWORK_INTERFACE *ThisNetworkInterface; > - EFI_REDFISH_DISCOVERED_TOKEN *ThisRedfishDiscoveredToken; > - UINTN NumberOfNetworkInterfaces; > + EFI_STATUS Status; > + UINTN BufferSize; > + EFI_HANDLE HandleBuffer; > + VOID *RedfishHostInterfaceReadyProtocol; >=20 > DEBUG ((DEBUG_MANAGEABILITY, "%a: New network interface is installed o= n > system by EFI Redfish discover driver.\n", __func__)); >=20 > @@ -401,67 +479,43 @@ RedfishDiscoverProtocolInstalled ( > Status =3D gEfiRedfishDiscoverProtocol->GetNetworkInterfaceList ( > gEfiRedfishDiscoverProtocol, > gRedfishConfigData.Image, > - &NumberOfNetworkInterfaces, > - &ThisNetworkInterface > + &mNumberOfNetworkInterfaces, > + &mNetworkInterfaces > ); > - if (EFI_ERROR (Status) || (NumberOfNetworkInterfaces =3D=3D 0)) { > + if (EFI_ERROR (Status) || (mNumberOfNetworkInterfaces =3D=3D 0)) { > DEBUG ((DEBUG_ERROR, "%a: No network interfaces found on the handle.= \n", > __func__)); > return; > } >=20 > // > - // Loop to discover Redfish service on each network interface. > + // Check if Redfish Host Interface is ready or not. > // > - for (NetworkInterfaceIndex =3D 0; NetworkInterfaceIndex < > NumberOfNetworkInterfaces; NetworkInterfaceIndex++) { > - ThisRedfishDiscoveredToken =3D (EFI_REDFISH_DISCOVERED_TOKEN > *)AllocateZeroPool (sizeof (EFI_REDFISH_DISCOVERED_TOKEN)); > - if (ThisRedfishDiscoveredToken =3D=3D NULL) { > - DEBUG ((DEBUG_ERROR, "%a: Not enough memory for > EFI_REDFISH_DISCOVERED_TOKEN.\n", __func__)); > - return; > - } > - > - ThisRedfishDiscoveredToken->Signature =3D > REDFISH_DISCOVER_TOKEN_SIGNATURE; > - > - // > - // Initial this Redfish Discovered Token > - // > + Status =3D gBS->LocateProtocol > + (&gEdkIIRedfishHostInterfaceReadyProtocolGuid, NULL, > + &RedfishHostInterfaceReadyProtocol); > + if (!EFI_ERROR (Status)) { > + // Acquire Redfish service; > + AcquireRedfishServiceOnNetworkInterfaceCallback ((EFI_EVENT)NULL, > + (VOID *)NULL); } else { > Status =3D gBS->CreateEvent ( > EVT_NOTIFY_SIGNAL, > TPL_CALLBACK, > - RedfishServiceDiscoveredCallback, > - (VOID *)ThisRedfishDiscoveredToken, > - &ThisRedfishDiscoveredToken->Event > + AcquireRedfishServiceOnNetworkInterfaceCallback, > + NULL, > + &mEdkIIRedfishHostInterfaceReadyEvent > ); > if (EFI_ERROR (Status)) { > - FreePool (ThisRedfishDiscoveredToken); > - DEBUG ((DEBUG_ERROR, "%a: Failed to create event for Redfish disco= vered > token.\n", __func__)); > + DEBUG ((DEBUG_ERROR, "%a: Failed to create event for > + gEdkIIRedfishHostInterfaceReadyProtocolGuid installation.", > + __func__)); > return; > } >=20 > - // > - // Acquire for Redfish service which is reported by > - // Redfish Host Interface. > - // > - Status =3D gEfiRedfishDiscoverProtocol->AcquireRedfishService ( > - gEfiRedfishDiscoverProtocol, > - gRedfishConfigData.Image, > - ThisNetworkInterface, > - EFI_REDFISH_DISCOVER_HOST_IN= TERFACE, > - ThisRedfishDiscoveredToken > - ); > - > - // > - // Free Redfish Discovered Token if Discover Instance was not create= d and > - // Redfish Service Discovered Callback event was not triggered. > - // > - if ((ThisRedfishDiscoveredToken->DiscoverList.NumberOfServiceFound = =3D=3D 0) || > - EFI_ERROR (ThisRedfishDiscoveredToken->DiscoverList.RedfishInsta= nces- > >Status)) > - { > - gBS->CloseEvent (ThisRedfishDiscoveredToken->Event); > - DEBUG ((DEBUG_ERROR, "%a: Free Redfish discovered token - %x.\n", > __func__, ThisRedfishDiscoveredToken)); > - FreePool (ThisRedfishDiscoveredToken); > + Status =3D gBS->RegisterProtocolNotify ( > + &gEdkIIRedfishHostInterfaceReadyProtocolGuid, > + mEdkIIRedfishHostInterfaceReadyEvent, > + &mEdkIIRedfishHostInterfaceRegistration > + ); > + if (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "%a: Fail to register event for the installat= ion of > gEdkIIRedfishHostInterfaceReadyProtocolGuid.", __func__)); > + return; > } > - > - ThisNetworkInterface++; > } >=20 > return; > -- > 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 (#112009): https://edk2.groups.io/g/devel/message/112009 Mute This Topic: https://groups.io/mt/102824316/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-