From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.41]) by mx.groups.io with SMTP id smtpd.web11.532.1675484733028746328 for ; Fri, 03 Feb 2023 20:25:33 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=bzZW0KAE; 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.223.41, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JL7RGCm3L1C/3IF4zBSuOqP/BM/bo0uibpAbmGESJ24trKfBlzRDoQAXnvgqx+7GXSy0kX65uvPmyAm+FJufkiItFbwvCA0bz1zFXuTl9XbtdRWGuEX5DUXM7V8z95H861P2hu2B+Nl58CTv1ER877HOfbzWdvoQHLd0CBL+06L350aRsUbS+6KKXzuYOp+kqJefbalF7Gj1scitf0LjGKl+qmNwAtGtpcvkLMUjl0TH0zjlwlqWxJwrpzWhDJ4Zq8EV+t10meWXu70msORt4Ru1sbVCQovDzSu1NEIHiQ86vwTyiGiLPIbPDD1MjxZ8pSY04XEGC2rfWH5+XQCx5g== 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=RJs4bPfdKQUkdmBMQgYK5GuWBrm1b/1PzW/b96eACIo=; b=WEebcEhkVHZax5TAlELKk5m5VY0eJhcTPF+Sxm2+25EKRAjhuGC6zHVgFeU3r/xBsxV3oe/Hs5IfEO8hTKr2ANDTDJbVj4I3zdB/hOoW2j9/x8ALpzIwmpRP4rJD5dUppddwNvRi7yTCROG1Xb8CqMcrnRVWhl3v9Bi7iTarUSAm7KrVEFsItxMi6u0we8Dna1f+5gjTPiQoixCWEbIakcojtqyvh2y9pY5sD5L/vLOh6d9ZYjCLN+BMihvNlrohbwVOWGPrTR65+vNdLYGGo3Ga5V41mqCYi9pE8OBJDzwq3Kd7j87mFO8DL8C1mpeXB/c4qCjWg1ND6g0tOlrfTA== 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=RJs4bPfdKQUkdmBMQgYK5GuWBrm1b/1PzW/b96eACIo=; b=bzZW0KAEJXcyqFUvSUABJ402PqMyKbIcIt7vMdJwoOZkgOJDEAFRWqLOzbTtLL7tXinbxOu4Lf/O9cVPQe6LbK5N1JfQR2cTgjHFVRRaZ+IXhTFUx+Ww9gS7prvySvDTclcLRpKGCi6HrkNLybwOq9DX9WMJq/ElrckVKncQ4Po= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by SJ1PR12MB6195.namprd12.prod.outlook.com (2603:10b6:a03:457::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.31; Sat, 4 Feb 2023 04:25:28 +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:25:22 +0000 From: "Chang, Abner" To: Nickle Wang , "devel@edk2.groups.io" CC: Igor Kulchytskyy , Nick Ramirez Subject: Re: [PATCH 2/2] RedfishPkg: Redfish discover driver improvement Thread-Topic: [PATCH 2/2] RedfishPkg: Redfish discover driver improvement Thread-Index: AQHZNeoPd7Ja5Z/oQkuI1J2cztrVrK6+MMcw Date: Sat, 4 Feb 2023 04:25:21 +0000 Message-ID: References: <20230201030513.391-1-nicklew@nvidia.com> In-Reply-To: <20230201030513.391-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-02-04T04:25:20Z; 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=ea5dac91-3fb1-45a4-8d3c-3d8d93ef21d0; 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_|SJ1PR12MB6195:EE_ x-ms-office365-filtering-correlation-id: a44d6864-2f32-4628-7560-08db0667d471 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vNDZOFcEuBU969aL49COzeR0ZhX6XU9+CH4d8ZXFgmXN7IEqlNVAIS9X+yef5Hbn+6fbppCWhqY/Q1AzMd3QXHKn3PjKO06IOOxThffLsR8tTufAJJCg8RnBKyq8m0YaWAJKJJ09ZgzJEJM6ZprZlqF3+3Hg58rGbJ1CO6GYKylOM8/dlBjxv3l5/7k8NnxM1urdL6ZhPGVS0Skf3H0RAWY0GVc8aoIq8RaPq5MMZYq11C70Shqbo1NeT7jly3v0bodAjRLCFuE0k5SPu3L5QlR7GMgbXowYDIwjaHjyfGmkr1Ha0DTS5plABYIGGyQawLkHEHie5ayxFeYD6/5kGm9k3Hmhd8j619znJScTMXz939biyucwuZHOf4hL92gup9npSBRezdA/P1xSCjEbtSsihK7J/AvJqETfMqs4RymskUCf55d+mqAV74a7LzZkim+kHbx8u4xuZ0D4/ImiLlT6jeJpULwgbIgWJemivGbRAnKAcjQ9vGZPptZRNIwIpaBYX8fA3YwX3wqSwoMLltNyIVDr9zW/nZCaRKBwFBT3KCGahwWkoXxWMrrLc89FqjcxR/GL0BqqNeWPEW3mS5lpOT0gjJsqGQA4arVWzmqyTtpwx+6RX3Ewcfqhd4iuZEeta8TqsTeWZPSk0IzULA4JmzVQ8vSYSLu7BB83ci38ZzYZs0g4X66qahlP62lw1RDh/Zl2qbMCyq245YXUj9duzqaxbk1MDLwX+8Qfrj0= 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)(39860400002)(396003)(366004)(376002)(136003)(346002)(451199018)(83380400001)(86362001)(33656002)(8676002)(55016003)(71200400001)(66556008)(66446008)(4326008)(66946007)(76116006)(122000001)(64756008)(38100700002)(66476007)(38070700005)(53546011)(186003)(6506007)(478600001)(26005)(9686003)(7696005)(54906003)(110136005)(8936002)(19627235002)(5660300002)(316002)(52536014)(41300700001)(2906002)(341764005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?rlNguicnccfhnGGpDMPN2js1JnbQ7/Izy/HVIDdMMuCw7jo81wqLXfnsOg/m?= =?us-ascii?Q?pZIY85ayRvKdWSPvybIgzTHDp4jTAYPzZExLWxo5IYq4qlKHfyHllpH2j6sJ?= =?us-ascii?Q?729pMvfFWxxM6MWUqnXcYu6yYwZpYVBn4W4JEy9y+gf/LvlhNyh9RfZ8Cnsm?= =?us-ascii?Q?qHhouMi+Hi251/P8YnLFS5wjuUxZT6FPu0L4RwWK7yfISEoPzp1lS6P9HBKV?= =?us-ascii?Q?kMij1xO7fARx1cH82hv/6G+ohBr9I+1fkDux1QxasUgN8Oo2oiDQvp0KtCKL?= =?us-ascii?Q?mz3f1VjiIyRCR/gPM7on2I8ZQvdVOL02t0K/tOuy8L6DLe2sBPlA3pN1VDCp?= =?us-ascii?Q?CX7VUmVuzJLkDTKTk9G54C+gLE6AJTxgYuyhgNWQ52t9idzftSlPOLuDalWg?= =?us-ascii?Q?y1qyI4IqhGbKHynnv3L8SkRZF8vnK7Onqkw2I/ltAn0BJXMtLlut+OOBDhsM?= =?us-ascii?Q?3u+W3RakUEl1TqqIpBf+LZs3YdhLa8wCLYpjLzNnm2uKcLUiwSo+NvO2sQ0L?= =?us-ascii?Q?P1P9LS+1HXpYZRUrjmmWePos/qUD2BLJEeg5Prkty/pgtwG/Shhjk6ElcGxc?= =?us-ascii?Q?PwT93gaq9E65Km/qMvOnFR1gusWKkiuIs6TnI+AKvXVUy8gKIY/N0MLH+FxW?= =?us-ascii?Q?LfnoBBHTeBKbK3VZn1cARR/fMY8iPcUFIoUy0jjON7vm3fLs+YhDnfW+gyuV?= =?us-ascii?Q?TOiNLwRRGH0zG+/sczAAw0HI4rYFIU0Hgs6vS7oo4Z2CCQPLxqq7QxIkrmpW?= =?us-ascii?Q?swaAX+Pd9xdJvPRdF1s47pu0kYG8xA1aE9LE5Ax6+LahIteLhATqbg+gnWG/?= =?us-ascii?Q?t6URN8RW/3W5YpnddnhyoxDJ+OsZYjOCsgsKYu7bIj2FoaHn/fNq4g3Llsbd?= =?us-ascii?Q?rHTgnlipiUZ1VDCoe07kllSmuz7em2XKEYIQvb2VQyQSH1vCq6tr4m29QR6a?= =?us-ascii?Q?z+qpR2idD3UwqY21vr19nK5mJLCSs2og5buR2G4pQQDglj3E7nla3AlFm9XN?= =?us-ascii?Q?xrZpKCoXbxAF/TfUISUzPVBi5ezcb5DVvuz1Y2wS7hjyGEvTOKwccWgoUXDF?= =?us-ascii?Q?3jTsBfPfxv7klmV1B1GrhjR6ozyjDO9WHYmQB6Xy3GjnBTOqCxL+R9zy4hxM?= =?us-ascii?Q?eDDTnbAAbTEJUe8/19SDUArQ4cEoi4uL+yeeIJE4nfaPVr1Vuv6AUEGqEa5W?= =?us-ascii?Q?e+8A2N5rrpV1AaKvGy7bkf1+6coHnKmcLy3aQ/SCnE3Jh46m30VW/81TjeVR?= =?us-ascii?Q?K/8W7+vZKCVsjJH1vedKv0kFMaZRNcPC5mGMyK+YBbZ74DQJk1HxCd8S066Y?= =?us-ascii?Q?JYg1JVYpG1pT9ftOhDSRg3oFMeAoVPAWwHVJnro2gD5kKfiKGZqxFSqD/e4T?= =?us-ascii?Q?hEXe7i/005NTZuuOob/l8bZ8rcbIuVe5AFG7nkrqYb7O3Wl+QzhDjWkx0CN9?= =?us-ascii?Q?v8eaaqK/DHyCi30ItZ56ikZ0CUBSye8NEFxMSBjC5NHcuzcWtdUd9qd7zCOR?= =?us-ascii?Q?cnZ6zbLWOarvNlD+JofsU1dqOleMqJ2yqv3A4J62wp1tNgnQHFtyHStzp/PN?= =?us-ascii?Q?sqbLlH4sXCjcpAXeYp4=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: a44d6864-2f32-4628-7560-08db0667d471 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2023 04:25:21.8191 (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: uy52IFDEbEPZFlArqvEoGfY/ziqI6m18ajUnJvN/wcQieoIiNYNN4+6Yh4VN/STmtAvW9J7EvAXKb211UKlL+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6195 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Thanks for catching these bugs. Other comments below in line. > -----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 >=20 > Caution: This message originated from an External Source. Use proper caut= ion > when opening attachments, clicking links, or responding. >=20 >=20 > 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. >=20 > 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(-) >=20 > 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 @@ >=20 > (C) Copyright 2021 Hewlett Packard Enterprise Development LP
> Copyright (c) 2022, AMD Incorporated. All rights reserved. > + Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserv= ed. >=20 > SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > @@ -182,6 +183,9 @@ typedef struct { > // > BOOLEAN HostIntfValidation;= ///< 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; >=20 > /** > 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 @@ >=20 > (C) Copyright 2021 Hewlett Packard Enterprise Development LP
> Copyright (c) 2022, AMD Incorporated. All rights reserved. > + Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserv= ed. >=20 > SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > @@ -270,10 +271,13 @@ Tcp6GetSubnetInfo ( >=20 > if (IpModedata.AddressCount =3D=3D 0) { > DEBUG ((DEBUG_INFO, "%a: No IPv6 address configured.\n", > __FUNCTION__)); > + Instance->SubnetAddrInfoIPv6Number =3D 0; > + return EFI_SUCCESS; > } >=20 > if (Instance->SubnetAddrInfoIPv6 !=3D NULL) { > FreePool (Instance->SubnetAddrInfoIPv6); > + Instance->SubnetAddrInfoIPv6 =3D NULL; > } >=20 > Instance->SubnetAddrInfoIPv6 =3D AllocateZeroPool (IpModedata.AddressC= ount > * sizeof (EFI_IP6_ADDRESS_INFO)); @@ -519,6 +523,14 @@ > DiscoverRedfishHostInterface ( > return EFI_UNSUPPORTED; > } >=20 > + Instance->HostAddrFormat =3D Data->HostIpAddressFormat; > + if (Data->HostIpAddressFormat =3D=3D 1) { > + IP4_COPY_ADDRESS ((VOID *)&Instance->HostIpAddress.v4, (VOID *)Dat= a- > >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 *)Dat= a- > >HostIpAddress); > + } > + > if (Data->RedfishServiceIpAddressFormat =3D=3D 1) { > IP4_COPY_ADDRESS ((VOID *)&Instance->TargetIpAddress.v4, (VOID *)D= ata- > >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 not= equal to 2 when LocalAddressIsIPv6 is TRUE? > + 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; > } >=20 > - 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; > + } > } >=20 > Status =3D RestEx->Configure ( > @@ -1467,11 +1489,13 @@ TestForRequiredProtocols ( > IN EFI_HANDLE ControllerHandle > ) > { > - UINT32 Id; > + UINT32 *Id; > UINTN Index; > EFI_STATUS Status; > + UINTN ListCount; >=20 > - 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].RequiredServiceBindingProto= colGuid, > @@ -1490,8 +1514,10 @@ TestForRequiredProtocols ( > EFI_OPEN_PROTOCOL_GET_PROTOCOL > ); > if (EFI_ERROR (Status)) { > - DEBUG ((DEBUG_ERROR, "%a: %s is found on this controller handle.= \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 abou= t this change?=20 > + 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 Th= is- > >DriverBindingHandle; > NetworkInterface->OpenDriverControllerHandle =3D Co= ntrollerHandle; > - NetworkInterface->NetworkInterfaceProtocolInfo.ProtocolGuid =3D \ > - *gRequiredProtocol[Index].RequiredProtocolGuid; > - NetworkInterface->NetworkInterfaceProtocolInfo.ProtocolServiceGuid= =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->OpenDriverAgent= Handle; > 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 "++". Thanks Abner > + if (Index =3D=3D (sizeof (gRequiredProtocol) / sizeof > (REDFISH_DISCOVER_REQUIRED_PROTOCOL))) { > + break; > + } > + > + continue; > } > } >=20 > 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); > } >=20 > *DeviceDescriptor =3D (REDFISH_INTERFACE_DATA *)RecordTmp; > -- > 2.39.1.windows.1