From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=jiaxin.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 43C2C202E5CDB for ; Wed, 18 Oct 2017 01:56:27 -0700 (PDT) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Oct 2017 02:00:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,395,1503385200"; d="scan'208";a="163949963" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga005.fm.intel.com with ESMTP; 18 Oct 2017 02:00:03 -0700 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 18 Oct 2017 02:00:03 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 18 Oct 2017 02:00:03 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Wed, 18 Oct 2017 17:00:01 +0800 From: "Wu, Jiaxin" To: Karunakar P , "edk2-devel@lists.01.org" CC: "Ye, Ting" , "Fu, Siyuan" Thread-Topic: [edk2] [Patch 0/2] Add IPv6 support condition check for HTTP/ISCSI. Thread-Index: AQHTRutxHiY7sCoAOk64R2b+EzYtmKLnST/QgAADsoCAAeJJEP//jI8AgACP07A= Date: Wed, 18 Oct 2017 09:00:00 +0000 Message-ID: <895558F6EA4E3B41AC93A00D163B72741633EE3A@SHSMSX103.ccr.corp.intel.com> References: <1508205501-13832-1-git-send-email-jiaxin.wu@intel.com> <895558F6EA4E3B41AC93A00D163B72741633E5F1@SHSMSX103.ccr.corp.intel.com> , <895558F6EA4E3B41AC93A00D163B72741633ECFC@SHSMSX103.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZGIyYmFjMGQtNTg5NC00NTk4LWJiZjAtODgyODU1NWFjZWE5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Ik52S1g5TkUrSFRrbmNhb3V6b2hPamtpV25naStRejc1eWZPVnB5dDFiMXc9In0= x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch 0/2] Add IPv6 support condition check for HTTP/ISCSI. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Oct 2017 08:56:27 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Karunakar, Actually, in my part, I didn't meet the ASSERT no matter the "Ipv6Available= " returned from HttpBootCheckIpv6Support is true or false. According your A= SSERT case that happened in Ip4DxeDriverBindingStart, which is caused by th= e FreePool of Private in Ip6DxeDriverBindingStart, so I guess the Ip6DxeDri= verBindingStart may be involved ahead of Ip4DxeDriverBindingStart, then som= ething wrong happened in Ip6DxeDriverBindingStart and goto the ON_ERROR (Pr= ivate is freed here!). so, you can add the breakpoint within Ip6DxeDriverBi= ndingStart/Ip4DxeDriverBindingStart to check it. Per my analysis above, it does the issue that may trigger the potential ASS= ERT. So, I refined the patch as version2. The principle of patch v2 is that= IPv6 and IPv4 should not affect each other even any failure happen, but th= e original code doesn't follow that:). =20 Thanks, Jiaxin > -----Original Message----- > From: Karunakar P [mailto:karunakarp@amiindia.co.in] > Sent: Wednesday, October 18, 2017 4:06 PM > To: Wu, Jiaxin ; edk2-devel@lists.01.org > Cc: Ye, Ting ; Fu, Siyuan > Subject: RE: [edk2] [Patch 0/2] Add IPv6 support condition check for > HTTP/ISCSI. >=20 > Hi Jiaxin, >=20 > 1. Cleaning the ConfigData when switching the mode will resolve the Issue= A. > 2. Will also verify the ASSERT issue and update you. >=20 > Could you please help in clarifying the below items, > 1. Could you please let us know why the ASSERT happens? > 2. I've not faced any ASSERT with the changes attached in Bugzilla, Did y= ou > find any issues/drawbacks with that? > -> In HttpBootCheckIpv6Support () definition Instead of getting Ipv6Suppo= rt > from Private->Nii->Ipv6Supported if we open the protocol there itself, Th= en > there will not be issues in Destroying Children or FreePool(Private) righ= t. > Because we're going to check HttpBootCheckIpv6Support() before opening > any instances in HttpBootIp6DxeDriverBindingStart(). >=20 > Thanks for your great support. >=20 > Thank You, > Karunakar > ________________________________________ > From: Wu, Jiaxin [jiaxin.wu@intel.com] > Sent: 18 October 2017 12:35 > To: Karunakar P; edk2-devel@lists.01.org > Cc: Ye, Ting; Fu, Siyuan > Subject: RE: [edk2] [Patch 0/2] Add IPv6 support condition check for > HTTP/ISCSI. >=20 > Hi Karunakar, >=20 > Thanks your verification. Base on your comments, I refined the series > patches as below to fix the issues: >=20 > [Patch v3 0/3] NetworkPkg/IScsiDxe: Display InitiatorInfo correctly. > NetworkPkg/IScsiDxe: Fix the incorrect/needless DHCP process. > NetworkPkg/IScsiDxe: Clean the previous ConfigData when switc= hing > the IP mode. /// This one is to fix the issue A. > NetworkPkg/IScsiDxe: Display InitiatorInfo in attempt page ev= en DHCP > enabled. >=20 > [Patch v2 0/2] Add IPv6 support condition check. > NetworkPkg/HttpBootDxe: Add IPv6 support condition check. //= / B > && C have been fixed in version 2. > NetworkPkg/IScsiDxe: Add IPv6 support condition check. >=20 > Please help to verify them. >=20 > Best Regards, > Jiaxin >=20 >=20 > > -----Original Message----- > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > > Karunakar P > > Sent: Tuesday, October 17, 2017 6:13 PM > > To: Wu, Jiaxin ; edk2-devel@lists.01.org > > Cc: Ye, Ting ; Fu, Siyuan > > Subject: Re: [edk2] [Patch 0/2] Add IPv6 support condition check for > > HTTP/ISCSI. > > > > Hi Jiaxin, > > > > I Reviewed the changes for 3 features/Bugs and verified the same, Pleas= e > > find my below comments and issues faced > > > > A. Display InitiatorInfo in attempt page even DHCP enabled > > -----------------------------------------------------------------------= -------------------- > --- > > -------------------------------------------- > > 1. I applied IScsiConfigVfr.vfr changes and as well IScsiMisc.c change= s > > 2. It displays initiator info properly when it's Enabled for DHCP > > 3. But, I found some different behavior in below case > > a. Add an Attempt (Attempt1 -> Initiator Info Enabled for DHCP) > > b. On reboot iSCSI attempt was success and Initiator Details shown > > properly =3D=3D> This is as expected > > c. Edit the same Attempt1 details to IP6 and save changes and reset > > d. Now Iscsi connection with IP6 =3D=3D> This is as Expected > > e. Now if we again Change the Attempt1 to IP4, It is Displaying Sub= net > > Mask =3D=3D> I guess we are not clearing It > > > > I guess we need to do ZeroMem for initiator details before. > > > > > > B. [Patch 2/2] NetworkPkg/IScsiDxe: Add IPv6 support condition check. > > -----------------------------------------------------------------------= -------------------- > --- > > ------------------------------------------- > > -> This changes looks similar whatever I attached in Bugzilla, and veri= fied > the > > same with off board card witch doesn't support IP6 > > -> It works fine, I didn't find any issues on it. > > > > > > C. [Patch 1/2] NetworkPkg/HttpBootDxe: Add IPv6 support condition check= . > > -----------------------------------------------------------------------= -------------------- > --- > > -----------------------------------------------------------------------= - > > I found some issues in this changes, please find my below comments > > 1. HttpBootCheckIpv6Support() function definition and function call > > parameter differs , To correct this I've done 1 insertion(+), 1 deletio= n(-) like > > below > > ... > > +HttpBootCheckIpv6Support ( > > + IN EFI_HANDLE ControllerHandle, > > + IN HTTP_BOOT_PRIVATE_DATA *Private, > > + OUT BOOLEAN *Ipv6Support > > + ) > > ... > > + // Set IPv6 available flag. > > + // > > + Status =3D HttpBootCheckIpv6Support (ControllerHandle, > > -This->DriverBindingHandle, &Ipv6Available); > > +Private, &Ipv6Available); > > ... > > > > 2. With the above changes I've verified with Off board card which doesn= 't > > support IP6, But I'm facing below ASSERT > > (324): CR has Bad Signature > > > > EFI_STATUS > > EFIAPI > > HttpBootIp4DxeDriverBindingStart ( > > IN EFI_DRIVER_BINDING_PROTOCOL *This, > > IN EFI_HANDLE ControllerHandle, > > IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL > > ) > > { > > ... > > if (!EFI_ERROR (Status)) { > > Private =3D HTTP_BOOT_PRIVATE_DATA_FROM_ID(Id); // AS= SERTs > > here > > } else { > > ..... > > > > 3. I would like add some points and info about the this ASSERT, which I= 've > > found > > The ASSERT is happening because of FreePool (Private), mentioned exact > > line no below > > > > EFI_STATUS > > EFIAPI > > HttpBootIp6DxeDriverBindingStart ( > > IN EFI_DRIVER_BINDING_PROTOCOL *This, > > IN EFI_HANDLE ControllerHandle, > > IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL > > ) > > { > > ... > > Status =3D gBS->InstallProtocolInterface ( > > &ControllerHandle, > > &gEfiCallerIdGuid, > > EFI_NATIVE_INTERFACE, > > &Private->Id > > ); > > if (EFI_ERROR (Status)) { > > goto ON_ERROR; > > } > > > > } > > + > > + // > > + // Set IPv6 available flag. > > + // > > + Status =3D HttpBootCheckIpv6Support (ControllerHandle, > > -This->DriverBindingHandle, &Ipv6Available); > > +Private, &Ipv6Available); > > + if (EFI_ERROR (Status)) { > > + // > > + // Fail to get the data whether UNDI supports IPv6. > > + // Set default value to TRUE. > > + // > > + Ipv6Available =3D TRUE; > > + } > > + > > + if (!Ipv6Available) { > > + return EFI_UNSUPPORTED; > > + } > > > > if (Private->Ip6Nic !=3D NULL) { > > // > > ... > > > > ON_ERROR: > > > > HttpBootDestroyIp6Children(This, Private); > > HttpBootConfigFormUnload (Private); > > FreePool (Private); = // If I comment this > > line ASSERT is not happening > > > > return Status; > > } > > > > 4. At your end could you please verify this IP6 Condition check for HTT= P > > > > Please correct if anything is wrong, Thanks for your support > > > > > > Thank You, > > Karunakar > > > > -----Original Message----- > > From: Wu, Jiaxin [mailto:jiaxin.wu@intel.com] > > Sent: Tuesday, October 17, 2017 7:32 AM > > To: Wu, Jiaxin; edk2-devel@lists.01.org > > Cc: Karunakar P; Ye, Ting; Fu, Siyuan > > Subject: RE: [edk2] [Patch 0/2] Add IPv6 support condition check for > > HTTP/ISCSI. > > > > Hello Karunakar, > > > > Base on your original changes attached in Bugzilla 701 > > (https://bugzilla.tianocore.org/show_bug.cgi?id=3D710), I created the f= ormal > > series patches to support the IPv6 condition check for HTTP/ISCSI. > > > > Please help to review/verify it. > > > > BTW, To review the ISCSI part, please apply the "[Patch v2 0/2] > > NetworkPkg/IScsiDxe: Display InitiatorInfo correctly" first to avoid an= y > patch > > conflict. > > > > Thanks, > > Jiaxin > > > > > > > > > -----Original Message----- > > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf O= f > > > Jiaxin Wu > > > Sent: Tuesday, October 17, 2017 9:58 AM > > > To: edk2-devel@lists.01.org > > > Cc: Karunakar P ; Ye, Ting > > > ; Fu, Siyuan ; Wu, Jiaxin > > > > > > Subject: [edk2] [Patch 0/2] Add IPv6 support condition check for > > HTTP/ISCSI. > > > > > > Base on the request of > > > https://bugzilla.tianocore.org/show_bug.cgi?id=3D710, > > > we provide this patch to IPv6 condition check by leveraging AIP Proto= col. > > > > > > Cc: Karunakar P > > > Cc: Ye Ting > > > Cc: Fu Siyuan > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > > Signed-off-by: Karunakar P > > > Signed-off-by: Wu Jiaxin > > > > > > Jiaxin Wu (2): > > > NetworkPkg/HttpBootDxe: Add IPv6 support condition check. > > > NetworkPkg/IScsiDxe: Add IPv6 support condition check. > > > > > > NetworkPkg/HttpBootDxe/HttpBootDxe.c | 115 > > > +++++++++++++++++++++++++++- > > > NetworkPkg/HttpBootDxe/HttpBootDxe.h | 2 + > > > NetworkPkg/HttpBootDxe/HttpBootDxe.inf | 4 +- > > > NetworkPkg/IScsiDxe/IScsiConfig.c | 18 +++++ > > > NetworkPkg/IScsiDxe/IScsiDriver.c | 2 +- > > > NetworkPkg/IScsiDxe/IScsiDriver.h | 1 + > > > NetworkPkg/IScsiDxe/IScsiDxe.inf | 2 + > > > NetworkPkg/IScsiDxe/IScsiImpl.h | 1 + > > > NetworkPkg/IScsiDxe/IScsiMisc.c | 135 > > > ++++++++++++++++++++++++++++++++- > > > NetworkPkg/IScsiDxe/IScsiMisc.h | 4 +- > > > 10 files changed, 278 insertions(+), 6 deletions(-) > > > > > > -- > > > 1.9.5.msysgit.1 > > > > > > _______________________________________________ > > > edk2-devel mailing list > > > edk2-devel@lists.01.org > > > https://lists.01.org/mailman/listinfo/edk2-devel > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel