From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.47]) by mx.groups.io with SMTP id smtpd.web10.826.1675486287091642774 for ; Fri, 03 Feb 2023 20:51:27 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=G1/9gdGD; 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.94.47, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=akLSP1NX5nVVfkTVzAkW7Qjr7KvpBldyQ0MAq29oJbz8ahk5DDkRwCJZyFgq+QDZtlcAwF5GxOQjiFdvaYeeZS9sPXoUGGX9zEDNcnqelVDn9wteHZVxWer1mL/FpyJwQ+6URI2oOvsyP/iBNOtOL2ZYhL5ORX1DPycbrHJABGTarWD0tExipOGrReMQc9LQKhj76aqcqk5pi5ybbdJfa+iA3/5fFBNa51+NctFoZswMPRXCj8Vu9G0jjb+8VqCaGtIDBXEUV+d3OMhS7223E40S6pMccc449rIjMh6u3s2kv9KhzbCXUPZ0lRW9hHfD2XjvGedtITBuonuZFzF18Q== 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=wtipgrN6W2QmHF6kIrq3hcP8x++MrGCCwIDTuxlDehU=; b=nAk3dwTumjf906zTf83yoZVC1nG2zch2cGUDGUFZEhOdEGsxc3Sra4l0XzvqsRlEylPQNdnd62GUm2tbTiWjqZaEgm0/vZd+hqcBV+TGA4N4IAQMG1pdcqzT0NSjRj2im8yFQxBgDskiMXI1NieUv1UvZDudaHoG4RbYG+eDMFGPNCkaiWQfIE6marqkFn8x5PmT9zTdGe2Gz6s9AnspoCnhGi7j5c0PzdTyNl7EFRwDSoCoLUEcN+nLqk+W79lO6qZWVAFoQGIJe4s48EaHdqFtmfzwwKAWWB7RKE0Bpp5vtgy23DwE6nJe2SWI9YK/2reDdr1gXbY1AZhk/bZ+rw== 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=wtipgrN6W2QmHF6kIrq3hcP8x++MrGCCwIDTuxlDehU=; b=G1/9gdGDp1zzkEGi6o/aZ71SzbBASbijO3XjETsmuSyWdsclXlA+xvugnJcxBv7Mgqm0MSDUZZ3CLWmd3KM+6KjTbBg2ZGiWnsYCSvZrWFGioXvCBoIlUOjiyna26NvdnXRCpTJy8hFpbtDZEhaT20i4H3MIZ2Jkif6NQjxw/TM= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by CH0PR12MB5124.namprd12.prod.outlook.com (2603:10b6:610:bf::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.28; Sat, 4 Feb 2023 04:51:24 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::d606:ab63:cf3:5d36]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::d606:ab63:cf3:5d36%5]) with mapi id 15.20.6064.031; Sat, 4 Feb 2023 04:51:24 +0000 From: "Chang, Abner" To: "devel@edk2.groups.io" , "Chang, Abner" , Nickle Wang CC: Igor Kulchytskyy , Nick Ramirez Subject: Re: [edk2-devel] [PATCH 2/2] RedfishPkg: Redfish discover driver improvement Thread-Topic: [edk2-devel] [PATCH 2/2] RedfishPkg: Redfish discover driver improvement Thread-Index: AQHZNeoPd7Ja5Z/oQkuI1J2cztrVrK6+MMcwgAAL1PA= Date: Sat, 4 Feb 2023 04:51:24 +0000 Message-ID: References: <20230201030513.391-1-nicklew@nvidia.com> <1740847CF215CCF8.27199@groups.io> In-Reply-To: <1740847CF215CCF8.27199@groups.io> 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-02-04T04:51:23Z; 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=481d20c9-d5e1-4fd8-b2e1-dec2cbf5f253; 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_|CH0PR12MB5124:EE_ x-ms-office365-filtering-correlation-id: 3203e494-8596-435f-76bb-08db066b780e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: s+tQi2UuIPaemOEQ714IPFwJZw0xM2lTOjHt/A6jdxF8mVjNyg6CJFTNDD4sy5dxBJHVmnf4d983oSoi+JlDKgYEyUJ0oCD654v8ko/ZSu3G3xVOpYebJCcVftYU1FECLm6zanYGteVL7DozSOkhYR3jbHLc+V8HvzkKggZvfk+jSCSO0PiuVHTU53BGA1rT7Z+HAWBZZX/o6LCnDBwUvLCAtjK+AJB7wsqVOIWT1HelmOUaLH0Jwkd7GTtkcAZCmKMH4oAh5xG1/ocUVJyNq293F3wkSeyCEpmNLpvyP24u5zPywamybfyIGpl8v5s7IW5zzKkjThGSg0AhQCqrVdtFip2yWKdgo9OQyGTnZYJebu9+1zE1ae05GqzJiXK+08c8CvYa6XJVlLlnaomFMe7OljeSkegPKWTvhIypX0mQcObbHYM5PfMe81yAHZKcFj1nHw1XnW/0is/5P2WMe98t5OwJkXpGMHAhzXX4oSQLH+ZtlXfvExCEKkLUKcCFzt/fi22P8jwv8C8IfrlUr27rf0iKzzlHMDtAcQWCTcWjg+7clLPJU1VbK0aNivwA2UnJUtevsHWSU1LEmco4vX1U7yKpuq3XU86T/5v9g3KgU1L6JzCBcE46TDw7LQX8/wETzNegTYmlZsjskdlE2pK9AMf8snjGUrai2ssUYxbSRgOVKUdrRw0f7pvvhbtxT3+2Y3CScwFzkkROSezKBLjN1nIDbbyYAdPlE3bmdoPv3yqR38R2mOQDthlMDyF98oUXD3UnEFEt7lofPEWWIw== 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:(13230025)(4636009)(396003)(136003)(376002)(346002)(366004)(39860400002)(451199018)(19627235002)(26005)(6506007)(38070700005)(316002)(9686003)(30864003)(53546011)(7696005)(54906003)(71200400001)(33656002)(110136005)(86362001)(966005)(5660300002)(52536014)(55016003)(2906002)(478600001)(4326008)(83380400001)(66476007)(66899018)(66946007)(66446008)(64756008)(66556008)(76116006)(8936002)(8676002)(186003)(122000001)(41300700001)(38100700002)(341764005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?O1qqHdQq3TNmoUuXF0AyKG/FzdW8stWOjTADf64nuMr/bmXlo2R4Nwk0nqFH?= =?us-ascii?Q?TNE89a5125J4K9+v+zsfaxpnzUayqjsyoQ97ODruWIO6bbuHsgCAe9OW91bN?= =?us-ascii?Q?0mP7tIjOxm1fgyC20lidO80ckbpkJvaf0dDSU7vhpneyYf+XdXUACfBa7r0Q?= =?us-ascii?Q?GlgeTJm6Zbu3wAQpTVaMJvjCju8FbVZvhZpWy6q//TsDnlIDQuyPLcuOGJXP?= =?us-ascii?Q?ecv1W6CcVcpe9IabqkmxS57u2tGAxkluPVHsfvfkRsUWif5wsIZktCbfU5NR?= =?us-ascii?Q?sfd7mpWVm6pWhVjaAuX/oduD5IYvI/tv+rrJLxZ0zCUh7HkC6RFB8du4np7s?= =?us-ascii?Q?gGgp2hQW6PxIj7j5ZLrQs3atd2NcaeRPq5Y+iisDLdF6sG7VH+mu/ShzuFFR?= =?us-ascii?Q?XglQl0KAWnt2Tk1vZiGQG57iE4EmFHo3BuVKLB+AHdHH3qI4tSVIJSfXE31q?= =?us-ascii?Q?DtMiqiHQEVHqfXvU5TI5/OK1YK9+vAAC57klbZLWQ43JVphh5UDIhxXucs15?= =?us-ascii?Q?+96aF1waaEZwEbt0Sl1dO7hAON4ACEYb8FsWIMsku9VlvWCk/SFM+yAw2DWO?= =?us-ascii?Q?2GciU9uEa6ViqhMlSVFtQUG4azYqJRC5F8yIqUEckuwOA4ZjiAuYF1ZO1UsC?= =?us-ascii?Q?/9PDYz6WeOWb5CkNGpAMYDtCM1YZqATqfjoDbv4EpAtGS8m0wVHttaFmrn54?= =?us-ascii?Q?Fgn+r3yppKmCp/yBSbaK/mIUz2zXwoccOvPTIhDXlwHPzxk7tEBjMI95aXoo?= =?us-ascii?Q?UWGzrsjvwCts/3JHL0j8t2sCmrK/KHmhlf/Xz86KnYvV9I2J+Z31I/MTFIq5?= =?us-ascii?Q?etUzoDWS9iHHf54RbZt1nP1H7scejJRgT2KiePaLVGUNHDzdNsVt8l46B4Jg?= =?us-ascii?Q?qLNusFdmA7CEdxDp4JJzlMWr9lmK1AG26uWtSxwJl7UGsWUr1bOn7yg2EXzf?= =?us-ascii?Q?gXCq/gD8zd2vqekH6RnFjCe8wnc7VPfrcIEXMDngnMp/oM2UKBO4RO3MgSx+?= =?us-ascii?Q?c3HhSc8LE0F9p15in7FrQ8VlAmGMGB+6JeN5QJhBRJAEa+lygHtGRmD/wEF+?= =?us-ascii?Q?vbt+gUnLJ0/kp9U2Xx24AWL5fksXGnR25R8/HWU6QXpeOBzFK+TAMBc/m3J4?= =?us-ascii?Q?rKlAkpXtzzX75NQ2Y4bQUyntQgmbqjj5WwWYW59zAX1BpBgp3RtJTLDDw5N7?= =?us-ascii?Q?mLaQ5XdFkijQxB4CvywVE5L7cYKrvFTOa7P5Ve3OpWkvAjl+U4j7NJzdoteg?= =?us-ascii?Q?AFY2ZNaUmlJVOsdp6RbvlbYRvlLLQYdFbPPvaTmY9SZ7ynU8tJhDKcs3lnaq?= =?us-ascii?Q?JJ8C0ahRR8An5wFJj9sMM4M9X7CxsDc1/EdX+RDLt2U5XG+8DTBeCri0jrnx?= =?us-ascii?Q?D2IOsF9PbyWXEEVLO4WvsijLGJG2+NYoUA9pbyvQY2xeYbz7UMdn7eACUz4d?= =?us-ascii?Q?v5rsNFjt2y5vva1H6YHUPUl+ar2+JiwOsvn0hvIe4QW/SpfLVGxtXg2VvGsQ?= =?us-ascii?Q?E9f4NwtuAUCGHUkQUbSkfAPyXi6DHW0nAKCxlE6J9jh+i0OZ/xQ0KJ283Qjr?= =?us-ascii?Q?NR6dJcLfFnOly7j3wes=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: 3203e494-8596-435f-76bb-08db066b780e X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2023 04:51:24.7913 (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: xdxCmzt0BstDhdwT92cPq/TXRec0mbR5zTw05L6kFhbealCyi47OztAsTcwU0N2PNaCY+LmFaOWbruYOzB0/9g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5124 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Please ignore my comment for adding space between "Index" and operators. Thanks Abner > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Chang, > Abner via groups.io > Sent: Saturday, February 4, 2023 12:25 PM > To: Nickle Wang ; devel@edk2.groups.io > Cc: Igor Kulchytskyy ; Nick Ramirez > Subject: Re: [edk2-devel] [PATCH 2/2] RedfishPkg: Redfish discover driver > improvement >=20 > Caution: This message originated from an External Source. Use proper caut= ion > when opening attachments, clicking links, or responding. >=20 >=20 > [AMD Official Use Only - General] >=20 > Thanks for catching these bugs. > Other comments below in line. >=20 > > -----Original Message----- > > From: Nickle Wang > > Sent: Wednesday, February 1, 2023 11:05 AM > > To: devel@edk2.groups.io > > Cc: Chang, Abner ; Igor Kulchytskyy > > ; Nick Ramirez > > Subject: [PATCH 2/2] RedfishPkg: Redfish discover driver improvement > > > > Caution: This message originated from an External Source. Use proper > > caution when opening attachments, clicking links, or responding. > > > > > > Bug fix: > > - function stack fault > > - properly handle "SubnetAddrInfoIPv6" when there is no IPv6 support > > - copy-n-paste error in RedfishGetHostInterfaceProtocolData() > > Enhancement: > > - Redfish discover driver now can configure host IP address based on > > the information from SMBIOS type 42 record. This saves the effort of > > configuring host IP address in setup menu. > > - Performance improvement to driver binding process. Redfish discover > > driver will wait until all required drivers are ready and do driver > > binding start(). > > - Use CopyGuid() to copy GUID instead of intrinsic function. > > > > Signed-off-by: Nickle Wang > > Cc: Abner Chang > > Cc: Igor Kulchytskyy > > Cc: Nick Ramirez > > --- > > .../RedfishDiscoverInternal.h | 4 ++ > > .../RedfishDiscoverDxe/RedfishDiscoverDxe.c | 52 +++++++++++++++---- > > .../RedfishSmbiosHostInterface.c | 2 +- > > 3 files changed, 47 insertions(+), 11 deletions(-) > > > > diff --git a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverInternal.h > > b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverInternal.h > > index 04fa09e1cc..3e1bfcdc4d 100644 > > --- a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverInternal.h > > +++ b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverInternal.h > > @@ -3,6 +3,7 @@ > > > > (C) Copyright 2021 Hewlett Packard Enterprise Development LP
> > Copyright (c) 2022, AMD Incorporated. All rights reserved. > > + Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights rese= rved. > > > > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > @@ -182,6 +183,9 @@ typedef struct { > > // > > BOOLEAN HostIntfValidatio= n; ///< Indicates whether > > to validate Redfish Host interface. > > EFI_IP_ADDRESS TargetIpAddress; = ///< Target IP > address > > reported in Redfish Host interface. > > + UINT8 HostAddrFormat; = ///< Unknown=3D00h, > > Ipv4=3D01h, Ipv6=3D02h. > > + EFI_IP_ADDRESS HostIpAddress; = ///< Host IP address > > reported in Redfish Host interface. > > + EFI_IP_ADDRESS HostSubnetMask; = ///< Host subnet > > mask address reported in Redfish Host interface. > > } EFI_REDFISH_DISCOVERED_INTERNAL_INSTANCE; > > > > /** > > diff --git a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c > > b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c > > index 042d6d5fd5..e72ab71de8 100644 > > --- a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c > > +++ b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c > > @@ -4,6 +4,7 @@ > > > > (C) Copyright 2021 Hewlett Packard Enterprise Development LP
> > Copyright (c) 2022, AMD Incorporated. All rights reserved. > > + Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights rese= rved. > > > > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > @@ -270,10 +271,13 @@ Tcp6GetSubnetInfo ( > > > > if (IpModedata.AddressCount =3D=3D 0) { > > DEBUG ((DEBUG_INFO, "%a: No IPv6 address configured.\n", > > __FUNCTION__)); > > + Instance->SubnetAddrInfoIPv6Number =3D 0; > > + return EFI_SUCCESS; > > } > > > > if (Instance->SubnetAddrInfoIPv6 !=3D NULL) { > > FreePool (Instance->SubnetAddrInfoIPv6); > > + Instance->SubnetAddrInfoIPv6 =3D NULL; > > } > > > > Instance->SubnetAddrInfoIPv6 =3D AllocateZeroPool > > (IpModedata.AddressCount > > * sizeof (EFI_IP6_ADDRESS_INFO)); @@ -519,6 +523,14 @@ > > DiscoverRedfishHostInterface ( > > return EFI_UNSUPPORTED; > > } > > > > + Instance->HostAddrFormat =3D Data->HostIpAddressFormat; > > + if (Data->HostIpAddressFormat =3D=3D 1) { > > + IP4_COPY_ADDRESS ((VOID *)&Instance->HostIpAddress.v4, (VOID > > + *)Data- > > >HostIpAddress); > > + IP4_COPY_ADDRESS ((VOID *)&Instance->HostSubnetMask.v4, (VOID > > *)Data->HostIpMask); > > + } else if (Data->HostIpAddressFormat =3D=3D 2) { > > + IP6_COPY_ADDRESS ((VOID *)&Instance->HostIpAddress.v6, (VOID > > + *)Data- > > >HostIpAddress); > > + } > > + > > if (Data->RedfishServiceIpAddressFormat =3D=3D 1) { > > IP4_COPY_ADDRESS ((VOID *)&Instance->TargetIpAddress.v4, (VOID > > *)Data- > > >RedfishServiceIpAddress); > > } else { > > @@ -849,6 +861,10 @@ AddAndSignalNewRedfishService ( > > Status =3D EFI_OUT_OF_RESOURCES; > > goto EXIT_FREE_CONFIG_DATA; > > } > > + > > + if (Instance->HostAddrFormat =3D=3D 2) { > I am thinking if we have to return error if Instance->HostAddrFormat is n= ot equal > to 2 when LocalAddressIsIPv6 is TRUE? >=20 > > + IP6_COPY_ADDRESS (&RestExHttpConfigData- > > >HttpConfigData.AccessPoint.IPv6Node->LocalAddress, &Instance- > > >HostIpAddress.v6); > > + } > > } else { > > RestExHttpConfigData->HttpConfigData.AccessPoint.IPv4Node =3D > > AllocateZeroPool (sizeof (EFI_HTTPv4_ACCESS_POINT)); > > if (RestExHttpConfigData->HttpConfigData.AccessPoint.IPv4Node > > =3D=3D NULL) { @@ -856,7 +872,13 @@ AddAndSignalNewRedfishService ( > > goto EXIT_FREE_CONFIG_DATA; > > } > > > > - RestExHttpConfigData->HttpConfigData.AccessPoint.IPv4Node- > > >UseDefaultAddress =3D TRUE; > > + if (Instance->HostAddrFormat =3D=3D 1) { > > + RestExHttpConfigData->HttpConfigData.AccessPoint.IPv4Node- > > >UseDefaultAddress =3D FALSE; > > + IP4_COPY_ADDRESS (&RestExHttpConfigData- > > >HttpConfigData.AccessPoint.IPv4Node->LocalAddress, &Instance- > > >HostIpAddress.v4); > > + IP4_COPY_ADDRESS (&RestExHttpConfigData- > > >HttpConfigData.AccessPoint.IPv4Node->LocalSubnet, &Instance- > > >HostSubnetMask.v4); > > + } else { > > + RestExHttpConfigData->HttpConfigData.AccessPoint.IPv4Node- > > >UseDefaultAddress =3D TRUE; > > + } > > } > > > > Status =3D RestEx->Configure ( > > @@ -1467,11 +1489,13 @@ TestForRequiredProtocols ( > > IN EFI_HANDLE ControllerHandle > > ) > > { > > - UINT32 Id; > > + UINT32 *Id; > > UINTN Index; > > EFI_STATUS Status; > > + UINTN ListCount; > > > > - for (Index =3D 0; Index < (sizeof (gRequiredProtocol) / sizeof > > (REDFISH_DISCOVER_REQUIRED_PROTOCOL)); Index++) { > > + ListCount =3D (sizeof (gRequiredProtocol) / sizeof > > + (REDFISH_DISCOVER_REQUIRED_PROTOCOL)); > > + for (Index =3D 0; Index < ListCount; Index++) { > > Status =3D gBS->OpenProtocol ( > > ControllerHandle, > > > > gRequiredProtocol[Index].RequiredServiceBindingProtocolGuid, > > @@ -1490,8 +1514,10 @@ TestForRequiredProtocols ( > > EFI_OPEN_PROTOCOL_GET_PROTOCOL > > ); > > if (EFI_ERROR (Status)) { > > - DEBUG ((DEBUG_ERROR, "%a: %s is found on this controller handl= e.\n", > > __FUNCTION__, gRequiredProtocol[Index].ProtocolName)); > > - return EFI_SUCCESS; > > + if (Index =3D=3D ListCount - 1) { > I am not quite understand this change. Could you please elaborate more ab= out > this change? > > + DEBUG ((DEBUG_ERROR, "%a: all required protocols are found > > + on this > > controller handle: %p.\n", __FUNCTION__, ControllerHandle)); > > + return EFI_SUCCESS; > > + } > > } > > } > > } > > @@ -1517,7 +1543,7 @@ BuildupNetworkInterface ( > > IN EFI_HANDLE ControllerHandle > > ) > > { > > - UINT32 Id; > > + UINT32 *Id; > > UINT32 Index; > > EFI_REDFISH_DISCOVER_NETWORK_INTERFACE_INTERNAL > > *NetworkInterface; > > BOOLEAN IsNew; > > @@ -1581,10 +1607,8 @@ BuildupNetworkInterface ( > > NetworkInterface->NetworkProtocolType =3D > > gRequiredProtocol[Index].ProtocolType; > > NetworkInterface->OpenDriverAgentHandle =3D = This- > > >DriverBindingHandle; > > NetworkInterface->OpenDriverControllerHandle =3D > ControllerHandle; > > - NetworkInterface->NetworkInterfaceProtocolInfo.ProtocolGuid =3D = \ > > - *gRequiredProtocol[Index].RequiredProtocolGuid; > > - NetworkInterface->NetworkInterfaceProtocolInfo.ProtocolServiceGu= id =3D > \ > > - *gRequiredProtocol[Index].RequiredServiceBindingProtocolGuid; > > + CopyGuid (&NetworkInterface- > > >NetworkInterfaceProtocolInfo.ProtocolGuid, > > gRequiredProtocol[Index].RequiredProtocolGuid); > > + CopyGuid > > + (&NetworkInterface->NetworkInterfaceProtocolInfo.ProtocolServiceGuid > > + , gRequiredProtocol[Index].RequiredServiceBindingProtocolGuid); > > ProtocolDiscoverIdPtr =3D &NetworkInterface- > > >NetworkInterfaceProtocolInfo.ProtocolDiscoverId; > > OpenDriverAgentHandle =3D NetworkInterface->OpenDriverAge= ntHandle; > > OpenDriverControllerHandle =3D NetworkInterface- > > >OpenDriverControllerHandle; > > @@ -1678,6 +1702,14 @@ BuildupNetworkInterface ( > > if (EFI_ERROR (Status)) { > > DEBUG ((DEBUG_ERROR, "%a: Fail to install > > EFI_REDFISH_DISCOVER_PROTOCOL\n", __FUNCTION__)); > > } > > + } else { > > + DEBUG ((DEBUG_INFO, "%a, Not REST EX, continue with > > + next\n", > > __FUNCTION__)); > > + Index++; > Space between Index and "++". >=20 > Thanks > Abner >=20 > > + if (Index =3D=3D (sizeof (gRequiredProtocol) / sizeof > > (REDFISH_DISCOVER_REQUIRED_PROTOCOL))) { > > + break; > > + } > > + > > + continue; > > } > > } > > > > diff --git > > a/RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c > > b/RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c > > index 88cec1f416..b25a222a88 100644 > > --- a/RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c > > +++ b/RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c > > @@ -71,7 +71,7 @@ RedfishGetHostInterfaceProtocolData ( > > if (*RecordTmp =3D=3D > > REDFISH_HOST_INTERFACE_DEVICE_TYPE_PCI_PCIE_V2) { > > ASSERT (SpecificDataLen =3D=3D sizeof > > (PCI_OR_PCIE_INTERFACE_DEVICE_DESCRIPTOR_V2) + 1); > > } else { > > - ASSERT (SpecificDataLen > sizeof > > (REDFISH_HOST_INTERFACE_DEVICE_TYPE_USB_V2) + 1); > > + ASSERT (SpecificDataLen =3D=3D sizeof > > + (USB_INTERFACE_DEVICE_DESCRIPTOR_V2) + 1); > > } > > > > *DeviceDescriptor =3D (REDFISH_INTERFACE_DATA *)RecordTmp; > > -- > > 2.39.1.windows.1 >=20 >=20 >=20 >=20