[edk2-devel] [PATCH] ShellPkg: Fixed system hang issue when executing ping6 command cross network segment in EFI Shell.

Kanagavel S via groups.io posted 1 patch 1 year, 1 month ago
Failed in applying to current master (apply log)
ShellPkg/Library/UefiShellNetwork2CommandsLib/Ping6.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
[edk2-devel] [PATCH] ShellPkg: Fixed system hang issue when executing ping6 command cross network segment in EFI Shell.
Posted by Kanagavel S via groups.io 1 year, 1 month ago
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4376

While shell is polling to send/receive ICMP packets, Private ->status is not updated for below scenario,
Considering 10 packets are transferred and it's RTT time is between 1764-1812 ms .In this 10 packets 2 or 3 packets
are lost in between ping communication and reported timeout issue and last one is successful packet.
In this case failed packet is reported before the last successful packet hence ,private ->status is not
updated with either success or EFI_TIMEOUT.
Counted Fail count of Ping communication ,when private->Txinfo list is empty and sum of failcount and receive
count equals to the total packets private->status has been updated to timeout.

Signed-off-by: Kanagavel S <kanagavels@ami.com>
---
 ShellPkg/Library/UefiShellNetwork2CommandsLib/Ping6.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/ShellPkg/Library/UefiShellNetwork2CommandsLib/Ping6.c b/ShellPkg/Library/UefiShellNetwork2CommandsLib/Ping6.c
index e0b58d4b85..50d1bb6e1d 100644
--- a/ShellPkg/Library/UefiShellNetwork2CommandsLib/Ping6.c
+++ b/ShellPkg/Library/UefiShellNetwork2CommandsLib/Ping6.c
@@ -2,6 +2,7 @@
   The implementation for Ping6 application.



   Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>

+  Copyright (c) 1985 - 2023, American Megatrends International LLC.<BR>



   SPDX-License-Identifier: BSD-2-Clause-Patent



@@ -92,7 +93,7 @@ SHELL_PARAM_ITEM  Ping6ParamList[] = {
 CONST CHAR16           *mIp6DstString;

 CONST CHAR16           *mIp6SrcString;

 EFI_CPU_ARCH_PROTOCOL  *Cpu = NULL;

-

+UINT32                  gFailCount = 0;

 /**

   RTT timer tick routine.



@@ -457,6 +458,9 @@ Ping6OnEchoReplyReceived6 (
 ON_EXIT:



   if (Private->RxCount < Private->SendNum) {

+      if (IsListEmpty (&Private->TxList) && ((Private->RxCount + gFailCount) == Private->SendNum)){

+          Private->Status = EFI_TIMEOUT;

+      }

     //

     // Continue to receive icmp6 echo reply packets.

     //

@@ -715,7 +719,7 @@ Ping6OnTimerRoutine6 (
       // Remove the timeout icmp6 echo request from list.

       //

       ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_PING6_TIMEOUT), gShellNetwork2HiiHandle, TxInfo->SequenceNum);

-

+      gFailCount++;

       RemoveEntryList (&TxInfo->Link);

       Ping6DestroyTxInfo (TxInfo);



@@ -1048,6 +1052,7 @@ ShellPing6 (
   SHELL_STATUS         ShellStatus;



   ShellStatus = SHELL_SUCCESS;

+  gFailCount = 0;

   Private     = AllocateZeroPool (sizeof (PING6_PRIVATE_DATA));



   if (Private == NULL) {

--
2.35.1.windows.2
-The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102178): https://edk2.groups.io/g/devel/message/102178
Mute This Topic: https://groups.io/mt/97949969/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] ShellPkg: Fixed system hang issue when executing ping6 command cross network segment in EFI Shell.
Posted by Kanagavel S via groups.io 10 months, 1 week ago
Please help to review this patch.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106274): https://edk2.groups.io/g/devel/message/106274
Mute This Topic: https://groups.io/mt/97949969/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-