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 v2 14/14] RedfishPkg: RedfishDiscoverDxe: add [] brackets to URI for IPv6 addresses
Date: Fri, 15 Dec 2023 02:24:58 +0300 [thread overview]
Message-ID: <20231214232458.4636-15-mike.maslenkin@gmail.com> (raw)
In-Reply-To: <20231214232458.4636-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 | 21 ++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c
index 9d1678c3429e..38eaf4f6decc 100644
--- a/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c
+++ b/RedfishPkg/RedfishDiscoverDxe/RedfishDiscoverDxe.c
@@ -715,6 +715,7 @@ DiscoverRedfishHostInterface (
The function initalizes particular strings into EFI_REDFISH_DISCOVERED_INFORMATION structure
@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.
@@ -729,6 +730,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,
@@ -738,7 +740,8 @@ InitInformationData (
IN CONST CHAR8 *ProductVer OPTIONAL
)
{
- UINTN AllocationSize;
+ UINTN AllocationSize;
+ CONST CHAR8 *IpAddress;
if (RedfishVersion != NULL) {
Information->RedfishVersion = *RedfishVersion;
@@ -746,10 +749,21 @@ InitInformationData (
}
if (RedfishLocation != NULL) {
- AllocationSize = AsciiStrSize (RedfishLocation) * sizeof (CHAR16);
+ AllocationSize = AsciiStrSize (RedfishLocation) * sizeof (CHAR16);
+ IpAddress = RedfishLocation;
+
+ 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]", IpAddress);
+ } else {
+ AsciiStrToUnicodeStrS (RedfishLocation, Information->Location, AllocationSize);
+ }
+
DEBUG ((DEBUG_MANAGEABILITY, "Redfish service location: %s.\n", Information->Location));
} else {
DEBUG ((
@@ -991,6 +1005,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 (#112563): https://edk2.groups.io/g/devel/message/112563
Mute This Topic: https://groups.io/mt/103181051/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2023-12-14 23:25 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-14 23:24 [edk2-devel] [PATCH v2 0/14] Redfish related fixes and improvements Mike Maslenkin
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 01/14] RedfishPkg: fix RedfishPlatformHostInterfaceLib library class name typo Mike Maslenkin
2023-12-18 2:32 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 02/14] RedfishPkg: fix RedfishPlatformCredentialLib " Mike Maslenkin
2023-12-18 2:33 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 03/14] RedfishPkg: get rid of unused definitions from RedfishCrtLib.h Mike Maslenkin
2023-12-18 2:38 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 04/14] RedfishPkg: RedfishPlatformConfigDxe: reduce memory allocations Mike Maslenkin
2023-12-18 2:44 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 05/14] RedfishPkg: RedfishDiscoverDxe: fix memory leak on error path Mike Maslenkin
2023-12-18 2:48 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 06/14] RedfishPkg: add Component Name protocols to RedfishConfigHandler driver Mike Maslenkin
2023-12-18 2:58 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 07/14] RedfishPkg: add proper initialization of IPMI request Mike Maslenkin
2023-12-18 3:27 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 08/14] EmulatorPkg: fix typo. PcdRedfishServie -> PcdRedfishService Mike Maslenkin
2023-12-18 3:30 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 09/14] EmulatorPkg: RedfishPlatformHostInterfaceLib: get rid of unused variable Mike Maslenkin
2023-12-18 3:29 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 10/14] RedfishDiscoverDxe: introduce InitInformationData helper function Mike Maslenkin
2023-12-18 4:25 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 11/14] RedfishDiscoverDxe: refine InitInformationData(), remove unnecessary casts Mike Maslenkin
2023-12-18 4:27 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 12/14] RedfishDiscoverDxe: refine InitInformationData() function Mike Maslenkin
2023-12-18 4:32 ` Chang, Abner via groups.io
2023-12-14 23:24 ` [edk2-devel] [PATCH v2 13/14] RedfishDiscoverDxe: handle memory allocation error conditions Mike Maslenkin
2023-12-18 4:47 ` Chang, Abner via groups.io
2023-12-19 2:12 ` Mike Maslenkin
2023-12-19 4:03 ` Chang, Abner via groups.io
2023-12-14 23:24 ` Mike Maslenkin [this message]
2023-12-18 4:58 ` [edk2-devel] [PATCH v2 14/14] RedfishPkg: RedfishDiscoverDxe: add [] brackets to URI for IPv6 addresses Chang, Abner via groups.io
2023-12-19 2:51 ` Mike Maslenkin
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=20231214232458.4636-15-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