[AMD Official Use Only - General] > -----Original Message----- > From: Mike Maslenkin <mike.maslen...@gmail.com> > Sent: Friday, December 15, 2023 7:25 AM > To: devel@edk2.groups.io > Cc: Chang, Abner <abner.ch...@amd.com>; nick...@nvidia.com; > ig...@ami.com; Mike Maslenkin <mike.maslen...@gmail.com> > Subject: [PATCH v2 14/14] RedfishPkg: RedfishDiscoverDxe: add [] brackets to > URI for IPv6 addresses > > Caution: This message originated from an External Source. Use proper caution > when opening attachments, clicking links, or responding. > > > 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.ch...@amd.com> > Cc: Nickle Wang <nick...@nvidia.com> > Cc: Igor Kulchytskyy <ig...@ami.com> > Signed-off-by: Mike Maslenkin <mike.maslen...@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; Not quite understand why do we need a copy of RedfishLocation in IpAddress? I think we can use RedfishLocation for UnicodeSPrintAsciiFormat later, right?
Thanks Abner > > + > > + 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 (#112632): https://edk2.groups.io/g/devel/message/112632 Mute This Topic: https://groups.io/mt/103181051/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-