Dear Maintainers, Could you review the patch? All checks have passed the EDK2 CI build. https://github.com/tianocore/edk2/pull/2717
Thanks, Heng > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Heng Luo > Sent: Sunday, April 3, 2022 2:14 PM > To: devel@edk2.groups.io > Cc: Maciej Rabeda <maciej.rab...@linux.intel.com>; Fu, Siyuan > <siyuan...@intel.com>; Wu, Jiaxin <jiaxin...@intel.com> > Subject: [edk2-devel] [Patch V4] NetworkPkg: Add PCDs for HTTP DNS > RetryCount and RetryInterval > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3889 > > Currently the HTTP DNS Retry Interval is 2 second and no retry attempt. > If DNS response can't arrive in 2 second, the DNS request is failed, and then > HTTP boot is failed. > In order to resolve this issue, Add PCDs to support RetryCount and > RetryInterval > configured in Platform. > > Cc: Maciej Rabeda <maciej.rab...@linux.intel.com> > Cc: Fu Siyuan <siyuan...@intel.com> > Cc: Wu Jiaxin <jiaxin...@intel.com> > Signed-off-by: Heng Luo <heng....@intel.com> > --- > NetworkPkg/HttpDxe/HttpDns.c | 4 ++++ > NetworkPkg/HttpDxe/HttpDxe.inf | 2 ++ > NetworkPkg/NetworkPkg.dec | 9 +++++++++ > NetworkPkg/NetworkPkg.uni | 11 +++++++++++ > 4 files changed, 26 insertions(+) > > diff --git a/NetworkPkg/HttpDxe/HttpDns.c b/NetworkPkg/HttpDxe/HttpDns.c > index 59a2784e6a..13cbde0f34 100644 > --- a/NetworkPkg/HttpDxe/HttpDns.c > +++ b/NetworkPkg/HttpDxe/HttpDns.c > @@ -108,6 +108,8 @@ HttpDns4 ( > Dns4CfgData.DnsServerListCount = DnsServerListCount; > Dns4CfgData.DnsServerList = DnsServerList; > Dns4CfgData.UseDefaultSetting = HttpInstance- > >IPv4Node.UseDefaultAddress; > + Dns4CfgData.RetryInterval = PcdGet32 (PcdHttpDnsRetryInterval); > + Dns4CfgData.RetryCount = PcdGet32 (PcdHttpDnsRetryCount); > if (!Dns4CfgData.UseDefaultSetting) { > IP4_COPY_ADDRESS (&Dns4CfgData.StationIp, &HttpInstance- > >IPv4Node.LocalAddress); > IP4_COPY_ADDRESS (&Dns4CfgData.SubnetMask, &HttpInstance- > >IPv4Node.LocalSubnet); > @@ -315,6 +317,8 @@ HttpDns6 ( > Dns6ConfigData.DnsServerList = DnsServerList; > Dns6ConfigData.EnableDnsCache = TRUE; > Dns6ConfigData.Protocol = EFI_IP_PROTO_UDP; > + Dns6ConfigData.RetryInterval = PcdGet32 (PcdHttpDnsRetryInterval); > + Dns6ConfigData.RetryCount = PcdGet32 (PcdHttpDnsRetryCount); > IP6_COPY_ADDRESS (&Dns6ConfigData.StationIp, &HttpInstance- > >Ipv6Node.LocalAddress); > Status = Dns6->Configure ( > Dns6, > diff --git a/NetworkPkg/HttpDxe/HttpDxe.inf > b/NetworkPkg/HttpDxe/HttpDxe.inf index af681c0184..c9502d0bb6 100644 > --- a/NetworkPkg/HttpDxe/HttpDxe.inf > +++ b/NetworkPkg/HttpDxe/HttpDxe.inf > @@ -75,6 +75,8 @@ > [Pcd] > gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections ## CONSUMES > gEfiNetworkPkgTokenSpaceGuid.PcdHttpIoTimeout ## CONSUMES > + gEfiNetworkPkgTokenSpaceGuid.PcdHttpDnsRetryInterval ## CONSUMES > + gEfiNetworkPkgTokenSpaceGuid.PcdHttpDnsRetryCount ## CONSUMES > > [UserExtensions.TianoCore."ExtraFiles"] > HttpDxeExtra.uni > diff --git a/NetworkPkg/NetworkPkg.dec b/NetworkPkg/NetworkPkg.dec index > 928e84fec4..5e43ebf8c5 100644 > --- a/NetworkPkg/NetworkPkg.dec > +++ b/NetworkPkg/NetworkPkg.dec > @@ -163,5 +163,14 @@ > # @Prompt The Timeout value of HTTP Io. Default value is 5000. > > gEfiNetworkPkgTokenSpaceGuid.PcdHttpIoTimeout|5000|UINT32|0x0000000F > > + ## The Retry Interval of HTTP DNS in seconds. If the Retry Interval > + is less than # DNS_DEFAULT_TIMEOUT, then use the > DNS_DEFAULT_TIMEOUT. > + # @Prompt The value of Retry Interval. Default value is 0 > + > + > gEfiNetworkPkgTokenSpaceGuid.PcdHttpDnsRetryInterval|0|UINT32|0x000000 > + 10 > + > + ## The Retry Count of HTTP DNS if no DNS response received after Retry > Interval. > + # @Prompt The value of Retry Count, Default value is 0. > + > gEfiNetworkPkgTokenSpaceGuid.PcdHttpDnsRetryCount|0|UINT32|0x0000001 > 1 > + > [UserExtensions.TianoCore."ExtraFiles"] > NetworkPkgExtra.uni > diff --git a/NetworkPkg/NetworkPkg.uni b/NetworkPkg/NetworkPkg.uni index > 6d0fa67c6f..c0bbbd3ee1 100644 > --- a/NetworkPkg/NetworkPkg.uni > +++ b/NetworkPkg/NetworkPkg.uni > @@ -111,3 +111,14 @@ > #string STR_gEfiNetworkPkgTokenSpaceGuid_PcdHttpIoTimeout_HELP > #language en-US "This value is used to configure the request and response > timeout when getting " > > "the recovery image from the > remote source during an HTTP recovery boot." > > "The default value set is 5 seconds." > + > +#string > STR_gEfiNetworkPkgTokenSpaceGuid_PcdHttpDnsRetryInterval_PROMPT > #language en-US "Retry Interval of HTTP DNS" > + > +#string STR_gEfiNetworkPkgTokenSpaceGuid_PcdHttpDnsRetryInterval_HELP > #language en-US "This value is used to configure the retry Interval of HTTP > DNS." > + > "The default value set is 0 second. > If the value is less than" > + > "DNS_DEFAULT_TIMEOUT, then > use the DNS_DEFAULT_TIMEOUT." > + > +#string STR_gEfiNetworkPkgTokenSpaceGuid_PcdHttpDnsRetryCount_PROMPT > #language en-US "Retry Count of HTTP DNS" > + > +#string STR_gEfiNetworkPkgTokenSpaceGuid_PcdHttpDnsRetryCount_HELP > #language en-US "This value is used to configure the Retry Count of HTTP DNS > if > " > + > "no DNS response received after > Retry Interval. The default value set is 0." > -- > 2.31.1.windows.1 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#88449): https://edk2.groups.io/g/devel/message/88449 Mute This Topic: https://groups.io/mt/90215162/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-