* [Patch V3] NetworkPkg: Add HTTP Additional Event Notifications
@ 2021-07-28 11:58 Heng Luo
2021-07-28 13:50 ` [edk2-devel] " Maciej Rabeda
[not found] ` <1695F8AD5636CCB5.10937@groups.io>
0 siblings, 2 replies; 3+ messages in thread
From: Heng Luo @ 2021-07-28 11:58 UTC (permalink / raw)
To: devel; +Cc: Maciej Rabeda, Jiaxin Wu, Siyuan Fu
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3496
Add new EDKII_HTTP_CALLBACK_PROTOCOL in NetworkPkg,
Send HTTP Events via EDKII_HTTP_CALLBACK_PROTOCOL
when Dns/ConnectTcp/TlsConnectSession/InitSession
occurs.
Signed-off-by: Heng Luo <heng.luo@intel.com>
Cc: Maciej Rabeda <maciej.rabeda@linux.intel.com>
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Cc: Siyuan Fu <siyuan.fu@intel.com>
---
NetworkPkg/HttpDxe/HttpDriver.h | 3 ++-
NetworkPkg/HttpDxe/HttpDxe.inf | 3 ++-
NetworkPkg/HttpDxe/HttpImpl.c | 4 +++-
NetworkPkg/HttpDxe/HttpProto.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
NetworkPkg/HttpDxe/HttpProto.h | 15 ++++++++++++++-
NetworkPkg/Include/Protocol/HttpCallback.h | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
NetworkPkg/NetworkPkg.dec | 3 +++
7 files changed, 166 insertions(+), 5 deletions(-)
diff --git a/NetworkPkg/HttpDxe/HttpDriver.h b/NetworkPkg/HttpDxe/HttpDriver.h
index 5fe8c5b5e9..b701b80858 100644
--- a/NetworkPkg/HttpDxe/HttpDriver.h
+++ b/NetworkPkg/HttpDxe/HttpDriver.h
@@ -1,7 +1,7 @@
/** @file
The header files of the driver binding and service binding protocol for HttpDxe driver.
- Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -47,6 +47,7 @@
#include <Protocol/Ip6Config.h>
#include <Protocol/Tls.h>
#include <Protocol/TlsConfig.h>
+#include <Protocol/HttpCallback.h>
#include <Guid/ImageAuthentication.h>
//
diff --git a/NetworkPkg/HttpDxe/HttpDxe.inf b/NetworkPkg/HttpDxe/HttpDxe.inf
index 35fe31af18..23fb9ec394 100644
--- a/NetworkPkg/HttpDxe/HttpDxe.inf
+++ b/NetworkPkg/HttpDxe/HttpDxe.inf
@@ -1,7 +1,7 @@
## @file
# Implementation of EFI HTTP protocol interfaces.
#
-# Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -65,6 +65,7 @@
gEfiTlsServiceBindingProtocolGuid ## SOMETIMES_CONSUMES
gEfiTlsProtocolGuid ## SOMETIMES_CONSUMES
gEfiTlsConfigurationProtocolGuid ## SOMETIMES_CONSUMES
+ gEdkiiHttpCallbackProtocolGuid ## SOMETIMES_CONSUMES
[Guids]
gEfiTlsCaCertificateGuid ## SOMETIMES_CONSUMES ## Variable:L"TlsCaCertificate"
diff --git a/NetworkPkg/HttpDxe/HttpImpl.c b/NetworkPkg/HttpDxe/HttpImpl.c
index 5a6ecbc9d9..97f15d229f 100644
--- a/NetworkPkg/HttpDxe/HttpImpl.c
+++ b/NetworkPkg/HttpDxe/HttpImpl.c
@@ -1,7 +1,7 @@
/** @file
Implementation of EFI_HTTP_PROTOCOL protocol interfaces.
- Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -527,6 +527,7 @@ EfiHttpRequest (
} else {
Status = HttpDns6 (HttpInstance, HostNameStr, &HttpInstance->RemoteIpv6Addr);
}
+ HttpNotify (HttpEventDns, Status);
FreePool (HostNameStr);
if (EFI_ERROR (Status)) {
@@ -588,6 +589,7 @@ EfiHttpRequest (
Configure || ReConfigure,
TlsConfigure
);
+ HttpNotify (HttpEventInitSession, Status);
if (EFI_ERROR (Status)) {
goto Error2;
}
diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c
index afc7db5a72..affa916bd6 100644
--- a/NetworkPkg/HttpDxe/HttpProto.c
+++ b/NetworkPkg/HttpDxe/HttpProto.c
@@ -1,7 +1,7 @@
/** @file
Miscellaneous routines for HttpDxe driver.
-Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -966,6 +966,7 @@ HttpCreateConnection (
HttpInstance->IsTcp4ConnDone = FALSE;
HttpInstance->Tcp4ConnToken.CompletionToken.Status = EFI_NOT_READY;
Status = HttpInstance->Tcp4->Connect (HttpInstance->Tcp4, &HttpInstance->Tcp4ConnToken);
+ HttpNotify (HttpEventConnectTcp, Status);
if (EFI_ERROR (Status)) {
DEBUG ((EFI_D_ERROR, "HttpCreateConnection: Tcp4->Connect() = %r\n", Status));
return Status;
@@ -981,6 +982,7 @@ HttpCreateConnection (
HttpInstance->IsTcp6ConnDone = FALSE;
HttpInstance->Tcp6ConnToken.CompletionToken.Status = EFI_NOT_READY;
Status = HttpInstance->Tcp6->Connect (HttpInstance->Tcp6, &HttpInstance->Tcp6ConnToken);
+ HttpNotify (HttpEventConnectTcp, Status);
if (EFI_ERROR (Status)) {
DEBUG ((EFI_D_ERROR, "HttpCreateConnection: Tcp6->Connect() = %r\n", Status));
return Status;
@@ -1277,6 +1279,7 @@ HttpConnectTcp4 (
}
Status = TlsConnectSession (HttpInstance, HttpInstance->TimeoutEvent);
+ HttpNotify (HttpEventTlsConnectSession, Status);
gBS->SetTimer (HttpInstance->TimeoutEvent, TimerCancel, 0);
@@ -1369,6 +1372,7 @@ HttpConnectTcp6 (
}
Status = TlsConnectSession (HttpInstance, HttpInstance->TimeoutEvent);
+ HttpNotify (HttpEventTlsConnectSession, Status);
gBS->SetTimer (HttpInstance->TimeoutEvent, TimerCancel, 0);
@@ -2195,3 +2199,55 @@ HttpTcpTokenCleanup (
}
}
+
+/**
+ Send Events via EDKII_HTTP_CALLBACK_PROTOCOL.
+
+ @param[in] Event The event that occurs in the current state.
+ @param[in] EventStatus The Status of Event, EFI_SUCCESS or other errors.
+
+**/
+VOID
+HttpNotify (
+ IN EDKII_HTTP_CALLBACK_EVENT Event,
+ IN EFI_STATUS EventStatus
+ )
+{
+ EFI_STATUS Status;
+ EFI_HANDLE *Handles;
+ UINTN Index;
+ UINTN HandleCount;
+ EFI_HANDLE Handle;
+ EDKII_HTTP_CALLBACK_PROTOCOL *HttpCallback;
+
+ DEBUG ((DEBUG_INFO, "HttpNotify: Event - %d, EventStatus - %r\n", Event, EventStatus));
+
+ Handles = NULL;
+ HandleCount = 0;
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEdkiiHttpCallbackProtocolGuid,
+ NULL,
+ &HandleCount,
+ &Handles
+ );
+ if (Status == EFI_SUCCESS) {
+ for (Index = 0; Index < HandleCount; Index++) {
+ Handle = Handles[Index];
+ Status = gBS->HandleProtocol (
+ Handle,
+ &gEdkiiHttpCallbackProtocolGuid,
+ (VOID **) &HttpCallback
+ );
+ if (Status == EFI_SUCCESS) {
+ DEBUG ((DEBUG_INFO, "HttpNotify: Notifying %p\n", HttpCallback));
+ HttpCallback->Callback (
+ HttpCallback,
+ Event,
+ EventStatus
+ );
+ }
+ }
+ FreePool (Handles);
+ }
+}
diff --git a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h
index 00ba26aca4..5b90a6b074 100644
--- a/NetworkPkg/HttpDxe/HttpProto.h
+++ b/NetworkPkg/HttpDxe/HttpProto.h
@@ -1,7 +1,7 @@
/** @file
The header files of miscellaneous routines for HttpDxe driver.
-Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -609,4 +609,17 @@ HttpResponseWorker (
IN HTTP_TOKEN_WRAP *Wrap
);
+/**
+ Send Events via EDKII_HTTP_CALLBACK_PROTOCOL.
+
+ @param[in] Event The event that occurs in the current state.
+ @param[in] EventStatus The Status of Event, EFI_SUCCESS or other errors.
+
+**/
+VOID
+HttpNotify (
+ IN EDKII_HTTP_CALLBACK_EVENT Event,
+ IN EFI_STATUS EventStatus
+ );
+
#endif
diff --git a/NetworkPkg/Include/Protocol/HttpCallback.h b/NetworkPkg/Include/Protocol/HttpCallback.h
new file mode 100644
index 0000000000..d036a8a4be
--- /dev/null
+++ b/NetworkPkg/Include/Protocol/HttpCallback.h
@@ -0,0 +1,85 @@
+/** @file
+ This file defines the EDKII HTTP Callback Protocol interface.
+
+ Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef __EDKII_HTTP_CALLBACK_H__
+#define __EDKII_HTTP_CALLBACK_H__
+
+#define EDKII_HTTP_CALLBACK_PROTOCOL_GUID \
+ { \
+ 0x611114f1, 0xa37b, 0x4468, {0xa4, 0x36, 0x5b, 0xdd, 0xa1, 0x6a, 0xa2, 0x40} \
+ }
+
+typedef struct _EDKII_HTTP_CALLBACK_PROTOCOL EDKII_HTTP_CALLBACK_PROTOCOL;
+
+///
+/// EDKII_HTTP_CALLBACK_EVENT
+///
+typedef enum {
+ ///
+ /// The Status of DNS Event to retrieve the host address.
+ /// EventStatus:
+ /// EFI_SUCCESS Operation succeeded.
+ /// EFI_OUT_OF_RESOURCES Failed to allocate needed resources.
+ /// EFI_DEVICE_ERROR An unexpected network error occurred.
+ /// Others Other errors as indicated.
+ ///
+ HttpEventDns,
+
+ ///
+ /// The Status of Event to initiate a nonblocking TCP connection request.
+ /// EventStatus:
+ /// EFI_SUCCESS The connection request is successfully initiated.
+ /// EFI_NOT_STARTED This EFI TCP Protocol instance has not been configured.
+ /// EFI_DEVICE_ERROR An unexpected system or network error occurred.
+ /// Others Other errors as indicated.
+ ///
+ HttpEventConnectTcp,
+
+ ///
+ /// The Status of Event to connect one TLS session by finishing the TLS handshake process.
+ /// EventStatus:
+ /// EFI_SUCCESS The TLS session is established.
+ /// EFI_OUT_OF_RESOURCES Can't allocate memory resources.
+ /// EFI_ABORTED TLS session state is incorrect.
+ /// Others Other error as indicated.
+ ///
+ HttpEventTlsConnectSession,
+
+ ///
+ /// The Status of Event to initialize Http session
+ /// EventStatus:
+ /// EFI_SUCCESS The initialization of session is done.
+ /// Others Other error as indicated.
+ ///
+ HttpEventInitSession
+} EDKII_HTTP_CALLBACK_EVENT;
+
+/**
+ Callback function that is invoked when HTTP event occurs.
+
+ @param[in] This Pointer to the EDKII_HTTP_CALLBACK_PROTOCOL instance.
+ @param[in] Event The event that occurs in the current state.
+ @param[in] EventStatus The Status of Event, EFI_SUCCESS or other errors.
+**/
+typedef
+VOID
+(EFIAPI * EDKII_HTTP_CALLBACK) (
+ IN EDKII_HTTP_CALLBACK_PROTOCOL *This,
+ IN EDKII_HTTP_CALLBACK_EVENT Event,
+ IN EFI_STATUS EventStatus
+ );
+
+///
+/// EFI HTTP Callback Protocol is invoked when HTTP event occurs.
+///
+struct _EDKII_HTTP_CALLBACK_PROTOCOL {
+ EDKII_HTTP_CALLBACK Callback;
+};
+
+extern EFI_GUID gEdkiiHttpCallbackProtocolGuid;
+
+#endif
diff --git a/NetworkPkg/NetworkPkg.dec b/NetworkPkg/NetworkPkg.dec
index b81f10ef6e..0f9f7bb15e 100644
--- a/NetworkPkg/NetworkPkg.dec
+++ b/NetworkPkg/NetworkPkg.dec
@@ -88,6 +88,9 @@
## Include/Protocol/Dpc.h
gEfiDpcProtocolGuid = {0x480f8ae9, 0xc46, 0x4aa9, { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6 }}
+ ## Include/Protocol/HttpCallback.h
+ gEdkiiHttpCallbackProtocolGuid = {0x611114f1, 0xa37b, 0x4468, {0xa4, 0x36, 0x5b, 0xdd, 0xa1, 0x6a, 0xa2, 0x40}}
+
[PcdsFixedAtBuild]
## The max attempt number will be created by iSCSI driver.
# @Prompt Max attempt number.
--
2.31.1.windows.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [edk2-devel] [Patch V3] NetworkPkg: Add HTTP Additional Event Notifications
2021-07-28 11:58 [Patch V3] NetworkPkg: Add HTTP Additional Event Notifications Heng Luo
@ 2021-07-28 13:50 ` Maciej Rabeda
[not found] ` <1695F8AD5636CCB5.10937@groups.io>
1 sibling, 0 replies; 3+ messages in thread
From: Maciej Rabeda @ 2021-07-28 13:50 UTC (permalink / raw)
To: devel, heng.luo; +Cc: Jiaxin Wu, Siyuan Fu
Reviewed-by: Maciej Rabeda <maciej.rabeda@linux.intel.com>
On 28-Jul-21 13:58, Heng Luo wrote:
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3496
>
> Add new EDKII_HTTP_CALLBACK_PROTOCOL in NetworkPkg,
> Send HTTP Events via EDKII_HTTP_CALLBACK_PROTOCOL
> when Dns/ConnectTcp/TlsConnectSession/InitSession
> occurs.
>
> Signed-off-by: Heng Luo <heng.luo@intel.com>
> Cc: Maciej Rabeda <maciej.rabeda@linux.intel.com>
> Cc: Jiaxin Wu <jiaxin.wu@intel.com>
> Cc: Siyuan Fu <siyuan.fu@intel.com>
> ---
>
> NetworkPkg/HttpDxe/HttpDriver.h | 3 ++-
> NetworkPkg/HttpDxe/HttpDxe.inf | 3 ++-
> NetworkPkg/HttpDxe/HttpImpl.c | 4 +++-
> NetworkPkg/HttpDxe/HttpProto.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> NetworkPkg/HttpDxe/HttpProto.h | 15 ++++++++++++++-
> NetworkPkg/Include/Protocol/HttpCallback.h | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> NetworkPkg/NetworkPkg.dec | 3 +++
> 7 files changed, 166 insertions(+), 5 deletions(-)
>
> diff --git a/NetworkPkg/HttpDxe/HttpDriver.h b/NetworkPkg/HttpDxe/HttpDriver.h
> index 5fe8c5b5e9..b701b80858 100644
> --- a/NetworkPkg/HttpDxe/HttpDriver.h
> +++ b/NetworkPkg/HttpDxe/HttpDriver.h
> @@ -1,7 +1,7 @@
> /** @file
> The header files of the driver binding and service binding protocol for HttpDxe driver.
>
> - Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
> + Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
> (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
> @@ -47,6 +47,7 @@
> #include <Protocol/Ip6Config.h>
> #include <Protocol/Tls.h>
> #include <Protocol/TlsConfig.h>
> +#include <Protocol/HttpCallback.h>
>
> #include <Guid/ImageAuthentication.h>
> //
> diff --git a/NetworkPkg/HttpDxe/HttpDxe.inf b/NetworkPkg/HttpDxe/HttpDxe.inf
> index 35fe31af18..23fb9ec394 100644
> --- a/NetworkPkg/HttpDxe/HttpDxe.inf
> +++ b/NetworkPkg/HttpDxe/HttpDxe.inf
> @@ -1,7 +1,7 @@
> ## @file
> # Implementation of EFI HTTP protocol interfaces.
> #
> -# Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent
> #
> @@ -65,6 +65,7 @@
> gEfiTlsServiceBindingProtocolGuid ## SOMETIMES_CONSUMES
> gEfiTlsProtocolGuid ## SOMETIMES_CONSUMES
> gEfiTlsConfigurationProtocolGuid ## SOMETIMES_CONSUMES
> + gEdkiiHttpCallbackProtocolGuid ## SOMETIMES_CONSUMES
>
> [Guids]
> gEfiTlsCaCertificateGuid ## SOMETIMES_CONSUMES ## Variable:L"TlsCaCertificate"
> diff --git a/NetworkPkg/HttpDxe/HttpImpl.c b/NetworkPkg/HttpDxe/HttpImpl.c
> index 5a6ecbc9d9..97f15d229f 100644
> --- a/NetworkPkg/HttpDxe/HttpImpl.c
> +++ b/NetworkPkg/HttpDxe/HttpImpl.c
> @@ -1,7 +1,7 @@
> /** @file
> Implementation of EFI_HTTP_PROTOCOL protocol interfaces.
>
> - Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
> + Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
> (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
>
> SPDX-License-Identifier: BSD-2-Clause-Patent
> @@ -527,6 +527,7 @@ EfiHttpRequest (
> } else {
> Status = HttpDns6 (HttpInstance, HostNameStr, &HttpInstance->RemoteIpv6Addr);
> }
> + HttpNotify (HttpEventDns, Status);
>
> FreePool (HostNameStr);
> if (EFI_ERROR (Status)) {
> @@ -588,6 +589,7 @@ EfiHttpRequest (
> Configure || ReConfigure,
> TlsConfigure
> );
> + HttpNotify (HttpEventInitSession, Status);
> if (EFI_ERROR (Status)) {
> goto Error2;
> }
> diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c
> index afc7db5a72..affa916bd6 100644
> --- a/NetworkPkg/HttpDxe/HttpProto.c
> +++ b/NetworkPkg/HttpDxe/HttpProto.c
> @@ -1,7 +1,7 @@
> /** @file
> Miscellaneous routines for HttpDxe driver.
>
> -Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
> (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -966,6 +966,7 @@ HttpCreateConnection (
> HttpInstance->IsTcp4ConnDone = FALSE;
> HttpInstance->Tcp4ConnToken.CompletionToken.Status = EFI_NOT_READY;
> Status = HttpInstance->Tcp4->Connect (HttpInstance->Tcp4, &HttpInstance->Tcp4ConnToken);
> + HttpNotify (HttpEventConnectTcp, Status);
> if (EFI_ERROR (Status)) {
> DEBUG ((EFI_D_ERROR, "HttpCreateConnection: Tcp4->Connect() = %r\n", Status));
> return Status;
> @@ -981,6 +982,7 @@ HttpCreateConnection (
> HttpInstance->IsTcp6ConnDone = FALSE;
> HttpInstance->Tcp6ConnToken.CompletionToken.Status = EFI_NOT_READY;
> Status = HttpInstance->Tcp6->Connect (HttpInstance->Tcp6, &HttpInstance->Tcp6ConnToken);
> + HttpNotify (HttpEventConnectTcp, Status);
> if (EFI_ERROR (Status)) {
> DEBUG ((EFI_D_ERROR, "HttpCreateConnection: Tcp6->Connect() = %r\n", Status));
> return Status;
> @@ -1277,6 +1279,7 @@ HttpConnectTcp4 (
> }
>
> Status = TlsConnectSession (HttpInstance, HttpInstance->TimeoutEvent);
> + HttpNotify (HttpEventTlsConnectSession, Status);
>
> gBS->SetTimer (HttpInstance->TimeoutEvent, TimerCancel, 0);
>
> @@ -1369,6 +1372,7 @@ HttpConnectTcp6 (
> }
>
> Status = TlsConnectSession (HttpInstance, HttpInstance->TimeoutEvent);
> + HttpNotify (HttpEventTlsConnectSession, Status);
>
> gBS->SetTimer (HttpInstance->TimeoutEvent, TimerCancel, 0);
>
> @@ -2195,3 +2199,55 @@ HttpTcpTokenCleanup (
> }
>
> }
> +
> +/**
> + Send Events via EDKII_HTTP_CALLBACK_PROTOCOL.
> +
> + @param[in] Event The event that occurs in the current state.
> + @param[in] EventStatus The Status of Event, EFI_SUCCESS or other errors.
> +
> +**/
> +VOID
> +HttpNotify (
> + IN EDKII_HTTP_CALLBACK_EVENT Event,
> + IN EFI_STATUS EventStatus
> + )
> +{
> + EFI_STATUS Status;
> + EFI_HANDLE *Handles;
> + UINTN Index;
> + UINTN HandleCount;
> + EFI_HANDLE Handle;
> + EDKII_HTTP_CALLBACK_PROTOCOL *HttpCallback;
> +
> + DEBUG ((DEBUG_INFO, "HttpNotify: Event - %d, EventStatus - %r\n", Event, EventStatus));
> +
> + Handles = NULL;
> + HandleCount = 0;
> + Status = gBS->LocateHandleBuffer (
> + ByProtocol,
> + &gEdkiiHttpCallbackProtocolGuid,
> + NULL,
> + &HandleCount,
> + &Handles
> + );
> + if (Status == EFI_SUCCESS) {
> + for (Index = 0; Index < HandleCount; Index++) {
> + Handle = Handles[Index];
> + Status = gBS->HandleProtocol (
> + Handle,
> + &gEdkiiHttpCallbackProtocolGuid,
> + (VOID **) &HttpCallback
> + );
> + if (Status == EFI_SUCCESS) {
> + DEBUG ((DEBUG_INFO, "HttpNotify: Notifying %p\n", HttpCallback));
> + HttpCallback->Callback (
> + HttpCallback,
> + Event,
> + EventStatus
> + );
> + }
> + }
> + FreePool (Handles);
> + }
> +}
> diff --git a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h
> index 00ba26aca4..5b90a6b074 100644
> --- a/NetworkPkg/HttpDxe/HttpProto.h
> +++ b/NetworkPkg/HttpDxe/HttpProto.h
> @@ -1,7 +1,7 @@
> /** @file
> The header files of miscellaneous routines for HttpDxe driver.
>
> -Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
> (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -609,4 +609,17 @@ HttpResponseWorker (
> IN HTTP_TOKEN_WRAP *Wrap
> );
>
> +/**
> + Send Events via EDKII_HTTP_CALLBACK_PROTOCOL.
> +
> + @param[in] Event The event that occurs in the current state.
> + @param[in] EventStatus The Status of Event, EFI_SUCCESS or other errors.
> +
> +**/
> +VOID
> +HttpNotify (
> + IN EDKII_HTTP_CALLBACK_EVENT Event,
> + IN EFI_STATUS EventStatus
> + );
> +
> #endif
> diff --git a/NetworkPkg/Include/Protocol/HttpCallback.h b/NetworkPkg/Include/Protocol/HttpCallback.h
> new file mode 100644
> index 0000000000..d036a8a4be
> --- /dev/null
> +++ b/NetworkPkg/Include/Protocol/HttpCallback.h
> @@ -0,0 +1,85 @@
> +/** @file
> + This file defines the EDKII HTTP Callback Protocol interface.
> +
> + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#ifndef __EDKII_HTTP_CALLBACK_H__
> +#define __EDKII_HTTP_CALLBACK_H__
> +
> +#define EDKII_HTTP_CALLBACK_PROTOCOL_GUID \
> + { \
> + 0x611114f1, 0xa37b, 0x4468, {0xa4, 0x36, 0x5b, 0xdd, 0xa1, 0x6a, 0xa2, 0x40} \
> + }
> +
> +typedef struct _EDKII_HTTP_CALLBACK_PROTOCOL EDKII_HTTP_CALLBACK_PROTOCOL;
> +
> +///
> +/// EDKII_HTTP_CALLBACK_EVENT
> +///
> +typedef enum {
> + ///
> + /// The Status of DNS Event to retrieve the host address.
> + /// EventStatus:
> + /// EFI_SUCCESS Operation succeeded.
> + /// EFI_OUT_OF_RESOURCES Failed to allocate needed resources.
> + /// EFI_DEVICE_ERROR An unexpected network error occurred.
> + /// Others Other errors as indicated.
> + ///
> + HttpEventDns,
> +
> + ///
> + /// The Status of Event to initiate a nonblocking TCP connection request.
> + /// EventStatus:
> + /// EFI_SUCCESS The connection request is successfully initiated.
> + /// EFI_NOT_STARTED This EFI TCP Protocol instance has not been configured.
> + /// EFI_DEVICE_ERROR An unexpected system or network error occurred.
> + /// Others Other errors as indicated.
> + ///
> + HttpEventConnectTcp,
> +
> + ///
> + /// The Status of Event to connect one TLS session by finishing the TLS handshake process.
> + /// EventStatus:
> + /// EFI_SUCCESS The TLS session is established.
> + /// EFI_OUT_OF_RESOURCES Can't allocate memory resources.
> + /// EFI_ABORTED TLS session state is incorrect.
> + /// Others Other error as indicated.
> + ///
> + HttpEventTlsConnectSession,
> +
> + ///
> + /// The Status of Event to initialize Http session
> + /// EventStatus:
> + /// EFI_SUCCESS The initialization of session is done.
> + /// Others Other error as indicated.
> + ///
> + HttpEventInitSession
> +} EDKII_HTTP_CALLBACK_EVENT;
> +
> +/**
> + Callback function that is invoked when HTTP event occurs.
> +
> + @param[in] This Pointer to the EDKII_HTTP_CALLBACK_PROTOCOL instance.
> + @param[in] Event The event that occurs in the current state.
> + @param[in] EventStatus The Status of Event, EFI_SUCCESS or other errors.
> +**/
> +typedef
> +VOID
> +(EFIAPI * EDKII_HTTP_CALLBACK) (
> + IN EDKII_HTTP_CALLBACK_PROTOCOL *This,
> + IN EDKII_HTTP_CALLBACK_EVENT Event,
> + IN EFI_STATUS EventStatus
> + );
> +
> +///
> +/// EFI HTTP Callback Protocol is invoked when HTTP event occurs.
> +///
> +struct _EDKII_HTTP_CALLBACK_PROTOCOL {
> + EDKII_HTTP_CALLBACK Callback;
> +};
> +
> +extern EFI_GUID gEdkiiHttpCallbackProtocolGuid;
> +
> +#endif
> diff --git a/NetworkPkg/NetworkPkg.dec b/NetworkPkg/NetworkPkg.dec
> index b81f10ef6e..0f9f7bb15e 100644
> --- a/NetworkPkg/NetworkPkg.dec
> +++ b/NetworkPkg/NetworkPkg.dec
> @@ -88,6 +88,9 @@
> ## Include/Protocol/Dpc.h
> gEfiDpcProtocolGuid = {0x480f8ae9, 0xc46, 0x4aa9, { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6 }}
>
> + ## Include/Protocol/HttpCallback.h
> + gEdkiiHttpCallbackProtocolGuid = {0x611114f1, 0xa37b, 0x4468, {0xa4, 0x36, 0x5b, 0xdd, 0xa1, 0x6a, 0xa2, 0x40}}
> +
> [PcdsFixedAtBuild]
> ## The max attempt number will be created by iSCSI driver.
> # @Prompt Max attempt number.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [edk2-devel] [Patch V3] NetworkPkg: Add HTTP Additional Event Notifications
[not found] ` <1695F8AD5636CCB5.10937@groups.io>
@ 2021-07-28 16:49 ` Maciej Rabeda
0 siblings, 0 replies; 3+ messages in thread
From: Maciej Rabeda @ 2021-07-28 16:49 UTC (permalink / raw)
To: devel, heng.luo; +Cc: Jiaxin Wu, Siyuan Fu
Change merged: https://github.com/tianocore/edk2/pull/1840
On 28-Jul-21 15:50, Maciej Rabeda wrote:
> Reviewed-by: Maciej Rabeda <maciej.rabeda@linux.intel.com>
>
> On 28-Jul-21 13:58, Heng Luo wrote:
>> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3496
>>
>> Add new EDKII_HTTP_CALLBACK_PROTOCOL in NetworkPkg,
>> Send HTTP Events via EDKII_HTTP_CALLBACK_PROTOCOL
>> when Dns/ConnectTcp/TlsConnectSession/InitSession
>> occurs.
>>
>> Signed-off-by: Heng Luo <heng.luo@intel.com>
>> Cc: Maciej Rabeda <maciej.rabeda@linux.intel.com>
>> Cc: Jiaxin Wu <jiaxin.wu@intel.com>
>> Cc: Siyuan Fu <siyuan.fu@intel.com>
>> ---
>>
>> NetworkPkg/HttpDxe/HttpDriver.h | 3 ++-
>> NetworkPkg/HttpDxe/HttpDxe.inf | 3 ++-
>> NetworkPkg/HttpDxe/HttpImpl.c | 4 +++-
>> NetworkPkg/HttpDxe/HttpProto.c | 58
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>> NetworkPkg/HttpDxe/HttpProto.h | 15 ++++++++++++++-
>> NetworkPkg/Include/Protocol/HttpCallback.h | 85
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> NetworkPkg/NetworkPkg.dec | 3 +++
>> 7 files changed, 166 insertions(+), 5 deletions(-)
>>
>> diff --git a/NetworkPkg/HttpDxe/HttpDriver.h
>> b/NetworkPkg/HttpDxe/HttpDriver.h
>> index 5fe8c5b5e9..b701b80858 100644
>> --- a/NetworkPkg/HttpDxe/HttpDriver.h
>> +++ b/NetworkPkg/HttpDxe/HttpDriver.h
>> @@ -1,7 +1,7 @@
>> /** @file
>> The header files of the driver binding and service binding
>> protocol for HttpDxe driver.
>> - Copyright (c) 2015 - 2018, Intel Corporation. All rights
>> reserved.<BR>
>> + Copyright (c) 2015 - 2021, Intel Corporation. All rights
>> reserved.<BR>
>> (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>> @@ -47,6 +47,7 @@
>> #include <Protocol/Ip6Config.h>
>> #include <Protocol/Tls.h>
>> #include <Protocol/TlsConfig.h>
>> +#include <Protocol/HttpCallback.h>
>> #include <Guid/ImageAuthentication.h>
>> //
>> diff --git a/NetworkPkg/HttpDxe/HttpDxe.inf
>> b/NetworkPkg/HttpDxe/HttpDxe.inf
>> index 35fe31af18..23fb9ec394 100644
>> --- a/NetworkPkg/HttpDxe/HttpDxe.inf
>> +++ b/NetworkPkg/HttpDxe/HttpDxe.inf
>> @@ -1,7 +1,7 @@
>> ## @file
>> # Implementation of EFI HTTP protocol interfaces.
>> #
>> -# Copyright (c) 2015 - 2018, Intel Corporation. All rights
>> reserved.<BR>
>> +# Copyright (c) 2015 - 2021, Intel Corporation. All rights
>> reserved.<BR>
>> #
>> # SPDX-License-Identifier: BSD-2-Clause-Patent
>> #
>> @@ -65,6 +65,7 @@
>> gEfiTlsServiceBindingProtocolGuid ##
>> SOMETIMES_CONSUMES
>> gEfiTlsProtocolGuid ##
>> SOMETIMES_CONSUMES
>> gEfiTlsConfigurationProtocolGuid ##
>> SOMETIMES_CONSUMES
>> + gEdkiiHttpCallbackProtocolGuid ##
>> SOMETIMES_CONSUMES
>> [Guids]
>> gEfiTlsCaCertificateGuid ##
>> SOMETIMES_CONSUMES ## Variable:L"TlsCaCertificate"
>> diff --git a/NetworkPkg/HttpDxe/HttpImpl.c
>> b/NetworkPkg/HttpDxe/HttpImpl.c
>> index 5a6ecbc9d9..97f15d229f 100644
>> --- a/NetworkPkg/HttpDxe/HttpImpl.c
>> +++ b/NetworkPkg/HttpDxe/HttpImpl.c
>> @@ -1,7 +1,7 @@
>> /** @file
>> Implementation of EFI_HTTP_PROTOCOL protocol interfaces.
>> - Copyright (c) 2015 - 2018, Intel Corporation. All rights
>> reserved.<BR>
>> + Copyright (c) 2015 - 2021, Intel Corporation. All rights
>> reserved.<BR>
>> (C) Copyright 2015-2016 Hewlett Packard Enterprise Development
>> LP<BR>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>> @@ -527,6 +527,7 @@ EfiHttpRequest (
>> } else {
>> Status = HttpDns6 (HttpInstance, HostNameStr,
>> &HttpInstance->RemoteIpv6Addr);
>> }
>> + HttpNotify (HttpEventDns, Status);
>> FreePool (HostNameStr);
>> if (EFI_ERROR (Status)) {
>> @@ -588,6 +589,7 @@ EfiHttpRequest (
>> Configure || ReConfigure,
>> TlsConfigure
>> );
>> + HttpNotify (HttpEventInitSession, Status);
>> if (EFI_ERROR (Status)) {
>> goto Error2;
>> }
>> diff --git a/NetworkPkg/HttpDxe/HttpProto.c
>> b/NetworkPkg/HttpDxe/HttpProto.c
>> index afc7db5a72..affa916bd6 100644
>> --- a/NetworkPkg/HttpDxe/HttpProto.c
>> +++ b/NetworkPkg/HttpDxe/HttpProto.c
>> @@ -1,7 +1,7 @@
>> /** @file
>> Miscellaneous routines for HttpDxe driver.
>> -Copyright (c) 2015 - 2018, Intel Corporation. All rights
>> reserved.<BR>
>> +Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
>> (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>> @@ -966,6 +966,7 @@ HttpCreateConnection (
>> HttpInstance->IsTcp4ConnDone = FALSE;
>> HttpInstance->Tcp4ConnToken.CompletionToken.Status =
>> EFI_NOT_READY;
>> Status = HttpInstance->Tcp4->Connect (HttpInstance->Tcp4,
>> &HttpInstance->Tcp4ConnToken);
>> + HttpNotify (HttpEventConnectTcp, Status);
>> if (EFI_ERROR (Status)) {
>> DEBUG ((EFI_D_ERROR, "HttpCreateConnection: Tcp4->Connect() =
>> %r\n", Status));
>> return Status;
>> @@ -981,6 +982,7 @@ HttpCreateConnection (
>> HttpInstance->IsTcp6ConnDone = FALSE;
>> HttpInstance->Tcp6ConnToken.CompletionToken.Status =
>> EFI_NOT_READY;
>> Status = HttpInstance->Tcp6->Connect (HttpInstance->Tcp6,
>> &HttpInstance->Tcp6ConnToken);
>> + HttpNotify (HttpEventConnectTcp, Status);
>> if (EFI_ERROR (Status)) {
>> DEBUG ((EFI_D_ERROR, "HttpCreateConnection: Tcp6->Connect() =
>> %r\n", Status));
>> return Status;
>> @@ -1277,6 +1279,7 @@ HttpConnectTcp4 (
>> }
>> Status = TlsConnectSession (HttpInstance,
>> HttpInstance->TimeoutEvent);
>> + HttpNotify (HttpEventTlsConnectSession, Status);
>> gBS->SetTimer (HttpInstance->TimeoutEvent, TimerCancel, 0);
>> @@ -1369,6 +1372,7 @@ HttpConnectTcp6 (
>> }
>> Status = TlsConnectSession (HttpInstance,
>> HttpInstance->TimeoutEvent);
>> + HttpNotify (HttpEventTlsConnectSession, Status);
>> gBS->SetTimer (HttpInstance->TimeoutEvent, TimerCancel, 0);
>> @@ -2195,3 +2199,55 @@ HttpTcpTokenCleanup (
>> }
>> }
>> +
>> +/**
>> + Send Events via EDKII_HTTP_CALLBACK_PROTOCOL.
>> +
>> + @param[in] Event The event that occurs in the
>> current state.
>> + @param[in] EventStatus The Status of Event, EFI_SUCCESS
>> or other errors.
>> +
>> +**/
>> +VOID
>> +HttpNotify (
>> + IN EDKII_HTTP_CALLBACK_EVENT Event,
>> + IN EFI_STATUS EventStatus
>> + )
>> +{
>> + EFI_STATUS Status;
>> + EFI_HANDLE *Handles;
>> + UINTN Index;
>> + UINTN HandleCount;
>> + EFI_HANDLE Handle;
>> + EDKII_HTTP_CALLBACK_PROTOCOL *HttpCallback;
>> +
>> + DEBUG ((DEBUG_INFO, "HttpNotify: Event - %d, EventStatus - %r\n",
>> Event, EventStatus));
>> +
>> + Handles = NULL;
>> + HandleCount = 0;
>> + Status = gBS->LocateHandleBuffer (
>> + ByProtocol,
>> + &gEdkiiHttpCallbackProtocolGuid,
>> + NULL,
>> + &HandleCount,
>> + &Handles
>> + );
>> + if (Status == EFI_SUCCESS) {
>> + for (Index = 0; Index < HandleCount; Index++) {
>> + Handle = Handles[Index];
>> + Status = gBS->HandleProtocol (
>> + Handle,
>> + &gEdkiiHttpCallbackProtocolGuid,
>> + (VOID **) &HttpCallback
>> + );
>> + if (Status == EFI_SUCCESS) {
>> + DEBUG ((DEBUG_INFO, "HttpNotify: Notifying %p\n",
>> HttpCallback));
>> + HttpCallback->Callback (
>> + HttpCallback,
>> + Event,
>> + EventStatus
>> + );
>> + }
>> + }
>> + FreePool (Handles);
>> + }
>> +}
>> diff --git a/NetworkPkg/HttpDxe/HttpProto.h
>> b/NetworkPkg/HttpDxe/HttpProto.h
>> index 00ba26aca4..5b90a6b074 100644
>> --- a/NetworkPkg/HttpDxe/HttpProto.h
>> +++ b/NetworkPkg/HttpDxe/HttpProto.h
>> @@ -1,7 +1,7 @@
>> /** @file
>> The header files of miscellaneous routines for HttpDxe driver.
>> -Copyright (c) 2015 - 2018, Intel Corporation. All rights
>> reserved.<BR>
>> +Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
>> (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
>> SPDX-License-Identifier: BSD-2-Clause-Patent
>> @@ -609,4 +609,17 @@ HttpResponseWorker (
>> IN HTTP_TOKEN_WRAP *Wrap
>> );
>> +/**
>> + Send Events via EDKII_HTTP_CALLBACK_PROTOCOL.
>> +
>> + @param[in] Event The event that occurs in the
>> current state.
>> + @param[in] EventStatus The Status of Event, EFI_SUCCESS
>> or other errors.
>> +
>> +**/
>> +VOID
>> +HttpNotify (
>> + IN EDKII_HTTP_CALLBACK_EVENT Event,
>> + IN EFI_STATUS EventStatus
>> + );
>> +
>> #endif
>> diff --git a/NetworkPkg/Include/Protocol/HttpCallback.h
>> b/NetworkPkg/Include/Protocol/HttpCallback.h
>> new file mode 100644
>> index 0000000000..d036a8a4be
>> --- /dev/null
>> +++ b/NetworkPkg/Include/Protocol/HttpCallback.h
>> @@ -0,0 +1,85 @@
>> +/** @file
>> + This file defines the EDKII HTTP Callback Protocol interface.
>> +
>> + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
>> + SPDX-License-Identifier: BSD-2-Clause-Patent
>> +**/
>> +
>> +#ifndef __EDKII_HTTP_CALLBACK_H__
>> +#define __EDKII_HTTP_CALLBACK_H__
>> +
>> +#define EDKII_HTTP_CALLBACK_PROTOCOL_GUID \
>> + { \
>> + 0x611114f1, 0xa37b, 0x4468, {0xa4, 0x36, 0x5b, 0xdd, 0xa1, 0x6a,
>> 0xa2, 0x40} \
>> + }
>> +
>> +typedef struct _EDKII_HTTP_CALLBACK_PROTOCOL
>> EDKII_HTTP_CALLBACK_PROTOCOL;
>> +
>> +///
>> +/// EDKII_HTTP_CALLBACK_EVENT
>> +///
>> +typedef enum {
>> + ///
>> + /// The Status of DNS Event to retrieve the host address.
>> + /// EventStatus:
>> + /// EFI_SUCCESS Operation succeeded.
>> + /// EFI_OUT_OF_RESOURCES Failed to allocate needed resources.
>> + /// EFI_DEVICE_ERROR An unexpected network error occurred.
>> + /// Others Other errors as indicated.
>> + ///
>> + HttpEventDns,
>> +
>> + ///
>> + /// The Status of Event to initiate a nonblocking TCP connection
>> request.
>> + /// EventStatus:
>> + /// EFI_SUCCESS The connection request is successfully
>> initiated.
>> + /// EFI_NOT_STARTED This EFI TCP Protocol instance has not
>> been configured.
>> + /// EFI_DEVICE_ERROR An unexpected system or network error
>> occurred.
>> + /// Others Other errors as indicated.
>> + ///
>> + HttpEventConnectTcp,
>> +
>> + ///
>> + /// The Status of Event to connect one TLS session by finishing
>> the TLS handshake process.
>> + /// EventStatus:
>> + /// EFI_SUCCESS The TLS session is established.
>> + /// EFI_OUT_OF_RESOURCES Can't allocate memory resources.
>> + /// EFI_ABORTED TLS session state is incorrect.
>> + /// Others Other error as indicated.
>> + ///
>> + HttpEventTlsConnectSession,
>> +
>> + ///
>> + /// The Status of Event to initialize Http session
>> + /// EventStatus:
>> + /// EFI_SUCCESS The initialization of session is done.
>> + /// Others Other error as indicated.
>> + ///
>> + HttpEventInitSession
>> +} EDKII_HTTP_CALLBACK_EVENT;
>> +
>> +/**
>> + Callback function that is invoked when HTTP event occurs.
>> +
>> + @param[in] This Pointer to the
>> EDKII_HTTP_CALLBACK_PROTOCOL instance.
>> + @param[in] Event The event that occurs in the
>> current state.
>> + @param[in] EventStatus The Status of Event, EFI_SUCCESS
>> or other errors.
>> +**/
>> +typedef
>> +VOID
>> +(EFIAPI * EDKII_HTTP_CALLBACK) (
>> + IN EDKII_HTTP_CALLBACK_PROTOCOL *This,
>> + IN EDKII_HTTP_CALLBACK_EVENT Event,
>> + IN EFI_STATUS EventStatus
>> + );
>> +
>> +///
>> +/// EFI HTTP Callback Protocol is invoked when HTTP event occurs.
>> +///
>> +struct _EDKII_HTTP_CALLBACK_PROTOCOL {
>> + EDKII_HTTP_CALLBACK Callback;
>> +};
>> +
>> +extern EFI_GUID gEdkiiHttpCallbackProtocolGuid;
>> +
>> +#endif
>> diff --git a/NetworkPkg/NetworkPkg.dec b/NetworkPkg/NetworkPkg.dec
>> index b81f10ef6e..0f9f7bb15e 100644
>> --- a/NetworkPkg/NetworkPkg.dec
>> +++ b/NetworkPkg/NetworkPkg.dec
>> @@ -88,6 +88,9 @@
>> ## Include/Protocol/Dpc.h
>> gEfiDpcProtocolGuid = {0x480f8ae9, 0xc46, 0x4aa9, {
>> 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6 }}
>> + ## Include/Protocol/HttpCallback.h
>> + gEdkiiHttpCallbackProtocolGuid = {0x611114f1, 0xa37b, 0x4468,
>> {0xa4, 0x36, 0x5b, 0xdd, 0xa1, 0x6a, 0xa2, 0x40}}
>> +
>> [PcdsFixedAtBuild]
>> ## The max attempt number will be created by iSCSI driver.
>> # @Prompt Max attempt number.
>
>
>
>
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-07-28 16:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-28 11:58 [Patch V3] NetworkPkg: Add HTTP Additional Event Notifications Heng Luo
2021-07-28 13:50 ` [edk2-devel] " Maciej Rabeda
[not found] ` <1695F8AD5636CCB5.10937@groups.io>
2021-07-28 16:49 ` Maciej Rabeda
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox