Hi Abner, On Mon, Dec 18, 2023 at 7:58 AM Chang, Abner <abner.ch...@amd.com> wrote: > > [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?
I'll remove IpAddress variable. It was added into initial RFC as a minimal change reducing a number of type casts. It was also added as self-describing code to show we are supposed to be dealing with RedfishLocation in IP address string format and not anything else. > 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 (#112667): https://edk2.groups.io/g/devel/message/112667 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] -=-=-=-=-=-=-=-=-=-=-=-