public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Mike Maslenkin" <mike.maslenkin@gmail.com>
To: devel@edk2.groups.io
Cc: abner.chang@amd.com, nicklew@nvidia.com, igork@ami.com,
	Mike Maslenkin <mike.maslenkin@gmail.com>
Subject: [edk2-devel] [PATCH v3 16/16] RedfishPkg: RedfishDiscoverDxe: add [] brackets to URI for IPv6 addresses
Date: Mon, 25 Dec 2023 01:59:27 +0300	[thread overview]
Message-ID: <20231224225927.9119-17-mike.maslenkin@gmail.com> (raw)
In-Reply-To: <20231224225927.9119-1-mike.maslenkin@gmail.com>

URI is generated based on the RedfishLocation containing an ASCII string
representing the IP address. So, in the case of IPv4 the canonical
representation of an IPv4 address was inserted into the resulting Unicode
string i.e: "http{,s}://X.X.X.X/".

In the case of IPv6, to access resources, the IP address must be specified
in brackets, i.e. the resulting string should look like:
  "http{,s}://[X::X:X:X:X]/".

Cc: Abner Chang <abner.chang@amd.com>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
---
 .../RedfishDiscoverDxe/RedfishDiscoverDxe.c     | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c
index 1022ab090df8..238039b57717 100644
--- a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c
+++ b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c
@@ -759,6 +759,7 @@ FreeInformationData (
   The function initializes particular strings into the structure instance.
 
   @param[in]  Information           EFI_REDFISH_DISCOVERED_INFORMATION
+  @param[in]  IsIpv6                Flag indicating IP version 6 protocol is used
   @param[in]  RedfishVersion        Redfish version.
   @param[in]  RedfishLocation       Redfish location.
   @param[in]  Uuid                  Service UUID string.
@@ -772,6 +773,7 @@ STATIC
 VOID
 InitInformationData (
   IN EFI_REDFISH_DISCOVERED_INFORMATION  *Information,
+  IN BOOLEAN                             IsIpv6,
   IN UINTN                               *RedfishVersion OPTIONAL,
   IN CONST CHAR8                         *RedfishLocation OPTIONAL,
   IN CONST CHAR8                         *Uuid OPTIONAL,
@@ -789,10 +791,20 @@ InitInformationData (
   }
 
   if (RedfishLocation != NULL) {
-    AllocationSize        = AsciiStrSize (RedfishLocation) * sizeof (CHAR16);
+    AllocationSize = AsciiStrSize (RedfishLocation) * sizeof (CHAR16);
+
+    if (IsIpv6) {
+      AllocationSize += 2 * sizeof (CHAR16); // take into account '[' and ']'
+    }
+
     Information->Location = AllocatePool (AllocationSize);
     if (Information->Location != NULL) {
-      AsciiStrToUnicodeStrS (RedfishLocation, Information->Location, AllocationSize);
+      if (IsIpv6) {
+        UnicodeSPrintAsciiFormat (Information->Location, AllocationSize, "[%a]", RedfishLocation);
+      } else {
+        AsciiStrToUnicodeStrS (RedfishLocation, Information->Location, AllocationSize);
+      }
+
       DEBUG ((DEBUG_MANAGEABILITY, "Redfish service location: %s.\n", Information->Location));
     } else {
       DEBUG ((
@@ -1038,6 +1050,7 @@ AddAndSignalNewRedfishService (
 
     InitInformationData (
       &DiscoveredInstance->Information,
+      CheckIsIpVersion6 (NetworkInterface),
       RedfishVersion,
       RedfishLocation,
       Uuid,
-- 
2.32.0 (Apple Git-132)



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#112875): https://edk2.groups.io/g/devel/message/112875
Mute This Topic: https://groups.io/mt/103354135/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



  parent reply	other threads:[~2023-12-24 22:59 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-24 22:59 [edk2-devel] [PATCH v3 0/16] Redfish related fixes and improvements Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 01/16] RedfishPkg: fix RedfishPlatformHostInterfaceLib library class name typo Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 02/16] RedfishPkg: fix RedfishPlatformCredentialLib " Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 03/16] RedfishPkg: get rid of unused definitions from RedfishCrtLib.h Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 04/16] RedfishPkg: RedfishPlatformConfigDxe: reduce memory allocations Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 05/16] RedfishPkg: RedfishDiscoverDxe: fix memory leak on error path Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 06/16] RedfishPkg: add Component Name protocols to RedfishConfigHandler driver Mike Maslenkin
2023-12-26  1:12   ` Chang, Abner via groups.io
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 07/16] RedfishPkg: add proper initialization of IPMI request Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 08/16] EmulatorPkg: fix typo. PcdRedfishServie -> PcdRedfishService Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 09/16] EmulatorPkg: RedfishPlatformHostInterfaceLib: get rid of unused variable Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 10/16] RedfishDiscoverDxe: introduce InitInformationData helper function Mike Maslenkin
2023-12-26  1:14   ` Chang, Abner via groups.io
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 11/16] RedfishDiscoverDxe: refine InitInformationData(), remove unnecessary casts Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 12/16] RedfishDiscoverDxe: refine InitInformationData() function Mike Maslenkin
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 13/16] RedfishDiscoverDxe: add a helper function deallocating string resources Mike Maslenkin
2023-12-26  1:17   ` Chang, Abner via groups.io
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 14/16] RedfishDiscoverDxe: release resources when refreshing information data Mike Maslenkin
2023-12-26  1:20   ` Chang, Abner via groups.io
2023-12-24 22:59 ` [edk2-devel] [PATCH v3 15/16] RedfishDiscoverDxe: handle memory allocation error conditions Mike Maslenkin
2023-12-26  1:22   ` Chang, Abner via groups.io
2023-12-24 22:59 ` Mike Maslenkin [this message]
2023-12-26  1:39   ` [edk2-devel] [PATCH v3 16/16] RedfishPkg: RedfishDiscoverDxe: add [] brackets to URI for IPv6 addresses Chang, Abner via groups.io
2023-12-26  1:40 ` [edk2-devel] [PATCH v3 0/16] Redfish related fixes and improvements Chang, Abner via groups.io
2023-12-26 16:10   ` Mike Maslenkin
2023-12-27  2:54     ` Chang, Abner via groups.io

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231224225927.9119-17-mike.maslenkin@gmail.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox