From: "Nickle Wang via groups.io" <nicklew=nvidia.com@groups.io>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
Nickle Wang <nicklew@nvidia.com>,
Abner Chang <abner.chang@amd.com>,
Igor Kulchytskyy <igork@ami.com>
Subject: Re: [edk2-devel] [edk2-redfish-client][PATCH] RedfishClientPkg: update Readme.md
Date: Tue, 12 Sep 2023 15:11:20 +0000 [thread overview]
Message-ID: <MW4PR12MB703141D1C6D98B90EF7B889DD9F1A@MW4PR12MB7031.namprd12.prod.outlook.com> (raw)
In-Reply-To: <17842F54FF047469.5496@groups.io>
[-- Attachment #1: Type: text/plain, Size: 121573 bytes --]
Hi @Abner Chang<mailto:abner.chang@amd.com>, @Igor Kulchytskyy<mailto:igork@ami.com>,
I opened a pull request here for the ease of review: https://github.com/tianocore/edk2-redfish-client/pull/50
Thanks,
Nickle
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Nickle Wang
> via groups.io
> Sent: Tuesday, September 12, 2023 11:10 PM
> To: devel@edk2.groups.io
> Cc: Abner Chang <abner.chang@amd.com>; Igor Kulchytskyy <igork@ami.com>
> Subject: [edk2-devel] [edk2-redfish-client][PATCH] RedfishClientPkg: update
> Readme.md
>
> External email: Use caution opening links or attachments
>
>
> Update readme for below topics:
> - The call flow of BIOS Redfish provisioning scenario.
> - The call flow of BIOS Redfish pending settings scenario.
> - The call flow of Redfish feature driver dispatch.
> - Redfish foundation driver stack design.
> - The design of Redfish Platform Config Protocol.
> - The design of synchronization between BIOS and Redfish service.
>
> Signed-off-by: Nickle Wang <nicklew@nvidia.com<mailto:nicklew@nvidia.com>>
> Cc: Abner Chang <abner.chang@amd.com<mailto:abner.chang@amd.com>>
> Cc: Igor Kulchytskyy <igork@ami.com<mailto:igork@ami.com>>
> ---
> .../redfish-call-flow-pending-settings.svg | 58 ++++++
> .../Media/redfish-call-flow-provisioning.svg | 46 +++++
> .../redfish-feature-driver-call-flow.svg | 133 ++++++++++++++
> .../Media/redfish-foundation-driver-stack.svg | 75 ++++++++
> ...redfish-platform-config-protocol-stack.svg | 99 ++++++++++
> .../Media/redfish-synchronization-design.svg | 75 ++++++++
> RedfishClientPkg/Readme.md | 169 ++++++++++++++++--
> 7 files changed, 640 insertions(+), 15 deletions(-)
> create mode 100755 RedfishClientPkg/Documents/Media/redfish-call-flow-
> pending-settings.svg
> create mode 100755 RedfishClientPkg/Documents/Media/redfish-call-flow-
> provisioning.svg
> create mode 100755 RedfishClientPkg/Documents/Media/redfish-feature-
> driver-call-flow.svg
> create mode 100755 RedfishClientPkg/Documents/Media/redfish-foundation-
> driver-stack.svg
> create mode 100755 RedfishClientPkg/Documents/Media/redfish-platform-
> config-protocol-stack.svg
> create mode 100755 RedfishClientPkg/Documents/Media/redfish-
> synchronization-design.svg
>
> diff --git a/RedfishClientPkg/Documents/Media/redfish-call-flow-pending-
> settings.svg b/RedfishClientPkg/Documents/Media/redfish-call-flow-pending-
> settings.svg
> new file mode 100755
> index 00000000..155a5ab3
> --- /dev/null
> +++ b/RedfishClientPkg/Documents/Media/redfish-call-flow-pending-settings.svg
> @@ -0,0 +1,58 @@
> +<svg width="4414" height="1709" style="background-color:white"
> xmlns="http://www.w3.org/2000/svg"
> xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
> overflow="hidden">
> + <defs>
> + <clipPath id="clip0">
> + <rect x="12" y="509" width="4414" height="1709"/>
> + </clipPath>
> + </defs>
> + <g clip-path="url(#clip0)" transform="translate(-12 -509)">
> + <rect x="2057.5" y="676.5" width="557" height="128" stroke="#BCBCBC"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#FFFFFF"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 2143.23 758)">Feature
> Driver</text>
> + <rect x="600.5" y="676.5" width="557" height="128" stroke="#BCBCBC"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#FFFFFF"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 763.66 758)">EDK2
> HII</text>
> + <rect x="3408.5" y="676.5" width="587" height="128" stroke="#BCBCBC"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#FFFFFF"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 3499.14 758)">Redfish
> Service</text>
> + <path d="M2338.94 804.5 2338.94 2102.76 2332.06 2102.76 2332.06
> 804.5ZM2354.51 2076.99 2335.5 2109.58 2316.49 2076.99C2315.53 2075.35
> 2316.09 2073.25 2317.73 2072.29 2319.37 2071.34 2321.47 2071.89 2322.43
> 2073.53L2338.47 2101.03 2332.53 2101.03 2348.57 2073.53C2349.53 2071.89
> 2351.63 2071.34 2353.27 2072.29 2354.91 2073.25 2355.47 2075.35 2354.51
> 2076.99Z" fill="#8C8C8C"/>
> + <path d="M871.938 804.5 871.938 2127.85 865.063 2127.85 865.063
> 804.5ZM887.511 2102.08 868.501 2134.67 849.49 2102.08C848.533 2100.44
> 849.087 2098.34 850.727 2097.38 852.367 2096.43 854.471 2096.98 855.428
> 2098.62L871.47 2126.12 865.531 2126.12 881.573 2098.62C882.53 2096.98
> 884.634 2096.43 886.274 2097.38 887.914 2098.34 888.468 2100.44 887.511
> 2102.08Z" fill="#8C8C8C"/>
> + <path d="M3710.94 804.5 3710.94 2127.85 3704.06 2127.85 3704.06
> 804.5ZM3726.51 2102.08 3707.5 2134.67 3688.49 2102.08C3687.53 2100.44
> 3688.09 2098.34 3689.73 2097.38 3691.37 2096.43 3693.47 2096.98 3694.43
> 2098.62L3710.47 2126.12 3704.53 2126.12 3720.57 2098.62C3721.53 2096.98
> 3723.63 2096.43 3725.27 2097.38 3726.91 2098.34 3727.47 2100.44 3726.51
> 2102.08Z" fill="#8C8C8C"/>
> + <path d="M7.04493e-07-2.86458 1444.53-2.86423 1444.53 2.86494-
> 7.04493e-07 2.86458ZM1439.95-13.7496 1467.45 0.000360892 1439.95
> 13.7504Z" fill="#8C8C8C" transform="matrix(-1 0 0 1 2335.45 1342)"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 990.014
> 1568)">3</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 1016.37 1568)">. If
> </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 1098.29 1568)">HII
> question exists and pending value is changed</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 1051.89 1628)">Use
> HII protocol/library to submit new value</text>
> + <path d="M1444.91 1252 1719.91 1252 1719.91 1311 1444.91 1311Z"
> fill="#FFFF00" fill-rule="evenodd"/>
> + <path d="M1719.91 1252 1844.23 1252 1844.23 1311 1719.91 1311Z"
> fill="#FFFF00" fill-rule="evenodd"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 990.014 1239)">2.
> Check and see if there is HII question with lang:</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 1051.89
> 1299)">/</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 1078.24
> 1299)">bios/attributes/</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 1444.91
> 1299)">ATTRIBUTE_</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 1719.91
> 1299)">NAME</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2378.69 1805)">4.
> Update current settings to </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2440.56
> 1865)">/redfish/v1/systems/SYS/Bios </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 3138.38
> 1865)">(provisioning)</text>
> + <path d="M2335 1079.14 3678.02 1079.14 3678.02 1084.87 2335
> 1084.86ZM3673.43 1068.25 3700.93 1082 3673.43 1095.75Z" fill="#8C8C8C"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2393.47 968)">1.
> Use </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2549.88 968)">HTTP
> âEURoeGUTâEUR� to download pending settings from</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2455.35
> 1028)">/redfish</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2638.11
> 1028)">/v1/systems/SYS/Bios/Settings</text>
> + <path d="M2335 1901.14 3678.02 1901.14 3678.02 1906.86 2335
> 1906.86ZM3673.43 1890.25 3700.93 1904 3673.43 1917.75Z" fill="#8C8C8C"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2151.86 2175)">6.
> </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2212.01
> 2175)">System reboot</text>
> + <rect x="298.5" y="959.5" width="377" height="199" stroke="#CDCDCD"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#404040"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 347.29 1046)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 413.749 1105)">driver</text>
> + <rect x="353.5" y="1014.5" width="377" height="199" stroke="#CDCDCD"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#404040"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 402.29 1101)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 468.749 1160)">driver</text>
> + <rect x="408.5" y="1069.5" width="377" height="199" stroke="#CDCDCD"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#404040"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 457.29 1156)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 523.749 1215)">driver</text>
> + <rect x="463.5" y="1124.5" width="377" height="199" stroke="#CDCDCD"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#404040"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 512.29 1211)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 578.749 1270)">driver</text>
> + <path d="M7.04493e-07-2.86458 1444.53-2.86423 1444.53 2.86494-
> 7.04493e-07 2.86458ZM1439.95-13.7496 1467.45 0.000360892 1439.95
> 13.7504Z" fill="#8C8C8C" transform="matrix(-1 0 0 1 2341.45 1666)"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="83" transform="matrix(1 0 0 1 62.1854 611)">Consume
> pending </text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="83" transform="matrix(1 0 0 1 687.237
> 611)">settings:</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 62.1854 680)">BMC
> to BIOS</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 3715.21 1979)">5.
> BMC reset pending settings</text>
> + </g>
> +</svg>
> diff --git a/RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.svg
> b/RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.svg
> new file mode 100755
> index 00000000..70556152
> --- /dev/null
> +++ b/RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.svg
> @@ -0,0 +1,46 @@
> +<svg width="3803" height="1724" style="background-color:white"
> xmlns="http://www.w3.org/2000/svg"
> xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
> overflow="hidden">
> + <defs>
> + <clipPath id="clip0">
> + <rect x="239" y="507" width="3803" height="1724"/>
> + </clipPath>
> + </defs>
> + <g clip-path="url(#clip0)" transform="translate(-239 -507)">
> + <rect x="2101.5" y="726.5" width="557" height="127" stroke="#BCBCBC"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#FFFFFF"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 2187.7 807)">Feature
> Driver</text>
> + <rect x="644.5" y="726.5" width="557" height="127" stroke="#BCBCBC"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#FFFFFF"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 808.129 807)">EDK2
> HII</text>
> + <rect x="3452.5" y="726.5" width="587" height="127" stroke="#BCBCBC"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#FFFFFF"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 3543.6 807)">Redfish
> Service</text>
> + <path d="M2383.94 853.5 2383.94 2188.56 2377.06 2188.56 2377.06
> 853.5ZM2399.51 2162.79 2380.5 2195.38 2361.49 2162.79C2360.53 2161.15
> 2361.09 2159.04 2362.73 2158.08 2364.37 2157.13 2366.47 2157.68 2367.43
> 2159.32L2383.47 2186.82 2377.53 2186.82 2393.57 2159.32C2394.53 2157.68
> 2396.63 2157.13 2398.27 2158.08 2399.91 2159.04 2400.47 2161.15 2399.51
> 2162.79Z" fill="#8C8C8C"/>
> + <path d="M915.938 853.5 915.938 2188.56 909.063 2188.56 909.063
> 853.5ZM931.511 2162.79 912.501 2195.38 893.49 2162.79C892.533 2161.15
> 893.087 2159.04 894.727 2158.08 896.367 2157.13 898.471 2157.68 899.428
> 2159.32L915.47 2186.82 909.531 2186.82 925.573 2159.32C926.53 2157.68
> 928.634 2157.13 930.274 2158.08 931.914 2159.04 932.468 2161.15 931.511
> 2162.79Z" fill="#8C8C8C"/>
> + <path d="M3754.94 853.5 3754.94 2188.56 3748.06 2188.56 3748.06
> 853.5ZM3770.51 2162.79 3751.5 2195.38 3732.49 2162.79C3731.53 2161.15
> 3732.09 2159.04 3733.73 2158.08 3735.37 2157.13 3737.47 2157.68 3738.43
> 2159.32L3754.47 2186.82 3748.53 2186.82 3764.57 2159.32C3765.53 2157.68
> 3767.63 2157.13 3769.27 2158.08 3770.91 2159.04 3771.47 2161.15 3770.51
> 2162.79Z" fill="#8C8C8C"/>
> + <path d="M7.04493e-07-2.86458 1444.53-2.86423 1444.53 2.86494-
> 7.04493e-07 2.86458ZM1439.95-13.7496 1467.45 0.000360892 1439.95
> 13.7504Z" fill="#8C8C8C" transform="matrix(-1 0 0 1 2379.45 1003)"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 957.259 969)">1.
> Find all HII questions with </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 1620.12
> 969)">language: </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="50" transform="matrix(1 0 0 1 1854.45
> 969)">âEURoe/bios/attributes/*</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2292.73
> 969)">âEUR� </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 985.955 1526)">3.
> Get current value of each HII question and</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 1047.83
> 1586)">append value to attribute list</text>
> + <path d="M7.04493e-07-2.86458 1444.53-2.86423 1444.53 2.86494-
> 7.04493e-07 2.86458ZM1439.95-13.7496 1467.45 0.000360892 1439.95
> 13.7504Z" fill="#8C8C8C" transform="matrix(-1 0 0 1 2379.45 1391)"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2417.95 1202)">2.
> Follow Bios schema and </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2479.82
> 1262)">create attribute list</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2412.63 1795)">4.
> BIOS current settings is ready</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 2474.5 1855)">Issue
> HTTP âEURoePUTâEUR� to /redfish/v1/systems/SYS/Bios</text>
> + <path d="M2385 1906.14 3728.02 1906.14 3728.02 1911.86 2385
> 1911.86ZM3723.43 1895.25 3750.93 1909 3723.43 1922.75Z" fill="#8C8C8C"/>
> + <rect x="342.5" y="1008.5" width="377" height="199" stroke="#CDCDCD"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#404040"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 391.759 1095)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 458.217 1154)">driver</text>
> + <rect x="397.5" y="1063.5" width="377" height="199" stroke="#CDCDCD"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#404040"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 446.759 1150)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 513.217 1209)">driver</text>
> + <rect x="452.5" y="1118.5" width="377" height="199" stroke="#CDCDCD"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#404040"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 501.759 1205)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 568.217 1264)">driver</text>
> + <rect x="507.5" y="1173.5" width="377" height="199" stroke="#CDCDCD"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#404040"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 556.759 1260)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 623.217 1319)">driver</text>
> + <path d="M22.9158-2.86458 1467.45-2.86422 1467.45 2.86494 22.9158
> 2.86459ZM27.5 13.75 0 0 27.5-13.75Z" fill="#8C8C8C" transform="matrix(-1 0 0
> 1 2379.45 1453)"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="83" transform="matrix(1 0 0 1 289.433
> 610)">Provisioning:</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 289.433 679)">BIOS
> to BMC</text>
> + </g>
> +</svg>
> diff --git a/RedfishClientPkg/Documents/Media/redfish-feature-driver-call-
> flow.svg b/RedfishClientPkg/Documents/Media/redfish-feature-driver-call-
> flow.svg
> new file mode 100755
> index 00000000..acea6b44
> --- /dev/null
> +++ b/RedfishClientPkg/Documents/Media/redfish-feature-driver-call-flow.svg
> @@ -0,0 +1,133 @@
> +<svg width="4287" height="2303" style="background-color:white"
> xmlns="http://www.w3.org/2000/svg"
> xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
> overflow="hidden">
> + <defs>
> + <clipPath id="clip0">
> + <rect x="29" y="171" width="4287" height="2303"/>
> + </clipPath>
> + </defs>
> + <g clip-path="url(#clip0)" transform="translate(-29 -171)">
> + <rect x="33" y="171" width="1544" height="436" fill="#F2F2F2"/>
> + <path d="M3300 305.835C3300 231.368 3360.37 171 3434.84 171L3974.16
> 171C4048.63 171 4109 231.368 4109 305.835L4109 1758.16C4109 1832.63
> 4048.63 1893 3974.16 1893L3434.84 1893C3360.37 1893 3300 1832.63 3300
> 1758.16Z" fill="#E8E8E8" fill-rule="evenodd"/>
> + <path d="M616 846C616 827.222 631.223 812 650.001 812L1142
> 812C1160.78 812 1176 827.222 1176 846L1176 982C1176 1000.78 1160.78 1016
> 1142 1016L650.001 1016C631.223 1016 616 1000.78 616 982Z" fill="#76B900"
> fill-rule="evenodd"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 703.081 901)">Redfish Feature </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 756.935 960)">Core Driver</text>
> + <rect x="30.5001" y="635.5" width="797" height="144" stroke="#000000"
> stroke-width="3.4375" stroke-linejoin="round" stroke-miterlimit="10"
> fill="none"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="55" transform="matrix(1 0 0 1 63.3886 702)">Event
> driven</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="37" transform="matrix(1 0 0 1 63.3886
> 751)">PcdEdkIIRedfishFeatureDriverStartupEventGuid</text>
> + <path d="M0.11336-2.86234 6.42586-2.61234 12.9907-1.77865 19.4637-
> 0.428434 25.9229 1.43627 32.3153 3.81669 38.6329 6.70925 44.8331 9.96451
> 50.9302 13.6801 56.9417 17.8314 62.8126 22.3572 68.5498 27.2608 74.153
> 32.5411 84.7977 44.1253 94.8188 56.9226 104.013 70.7936 112.257 85.6759
> 119.538 101.424 125.742 117.799 130.688 134.762 134.365 152.159 135.732
> 164.561 130.036 165.182 128.76 153.341 125.187 136.363 120.383 119.826
> 114.337 103.826 107.243 88.4491 99.2365 73.9564 90.3062 60.4524 80.5773
> 47.9997 70.222 36.7089 64.8252 31.6142 59.3124 26.8928 53.6833 22.5436
> 47.9448 18.5699 42.1669 15.0355 36.2421 11.9158 30.3096 9.1833 24.3271
> 6.93873 18.2863 5.17843 12.2593 3.90365 6.19914 3.11234-0.11336
> 2.86234ZM146.247 159.259 134.621 187.722 118.826 161.343Z" fill="#8C8C8C"
> transform="matrix(1.83697e-16 1 1 -1.83697e-16 429 779)"/>
> + <rect x="33.4998" y="1065.5" width="727" height="177" stroke="#BCBCBC"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#FFFFFF"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="55" transform="matrix(1 0 0 1 65.7033
> 1129)">Ready</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="55" transform="matrix(1 0 0 1 206.641 1129)">-</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="55" transform="matrix(1 0 0 1 223.255
> 1129)">to</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="55" transform="matrix(1 0 0 1 271.953 1129)">-</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="55" transform="matrix(1 0 0 1 288.568 1129)">Provision
> Signal</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="37" transform="matrix(1 0 0 1 65.7033
> 1173)">gEfiRedfishClientFeatureReadyToProvisionin</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="37" transform="matrix(1 0 0 1 65.7033
> 1213)">gGuid</text>
> + <rect x="33.4998" y="2310.5" width="727" height="144" stroke="#BCBCBC"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#FFFFFF"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="55" transform="matrix(1 0 0 1 65.7037
> 2358)">After</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="55" transform="matrix(1 0 0 1 182.006 2358)">-</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="55" transform="matrix(1 0 0 1 198.62 2358)">Provision
> Signal</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="37" transform="matrix(1 0 0 1 65.7037
> 2402)">gEfiRedfishClientFeatureAfterProvisioningG</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="37" transform="matrix(1 0 0 1 65.7037
> 2442)">uid</text>
> + <path d="M898.61 1016 898.61 1153.86C898.61 1155.44 897.327 1156.72
> 895.745 1156.72L782.917 1156.72 782.917 1150.99 895.745 1150.99 892.881
> 1153.86 892.881 1016ZM787.5 1167.61 760 1153.86 787.5 1140.11Z"
> fill="#8C8C8C"/>
> + <path d="M898.61 1016 898.61 2382.49C898.61 2384.08 897.327 2385.36
> 895.745 2385.36L782.917 2385.36 782.917 2379.63 895.745 2379.63 892.881
> 2382.49 892.881 1016ZM787.5 2396.24 760 2382.49 787.5 2368.74Z"
> fill="#8C8C8C"/>
> + <path d="M1192.5 1194.67C1192.5 1181.32 1203.32 1170.5 1216.67
> 1170.5L1690.33 1170.5C1703.68 1170.5 1714.5 1181.32 1714.5 1194.67L1714.5
> 1291.33C1714.5 1304.68 1703.68 1315.5 1690.33 1315.5L1216.67
> 1315.5C1203.32 1315.5 1192.5 1304.68 1192.5 1291.33Z" stroke="#008564"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill-
> rule="evenodd"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1313.38
> 1258)">Service Root</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="48" transform="matrix(1 0 0 1 1192.27
> 1131)">/redfish/v1</text>
> + <path d="M0-2.86458 226.791-2.86458C228.373-2.86458 229.656-1.58207
> 229.656 0L229.656 273.147 223.927 273.147 223.927 0 226.791 2.86458 0
> 2.86458ZM240.541 268.564 226.791 296.064 213.041 268.564Z" fill="#8C8C8C"
> transform="matrix(1.83697e-16 1 1 -1.83697e-16 896 1016)"/>
> + <path d="M1629.5 1428.67C1629.5 1415.32 1640.32 1404.5 1653.67
> 1404.5L2126.33 1404.5C2139.68 1404.5 2150.5 1415.32 2150.5 1428.67L2150.5
> 1525.33C2150.5 1538.68 2139.68 1549.5 2126.33 1549.5L1653.67
> 1549.5C1640.32 1549.5 1629.5 1538.68 1629.5 1525.33Z" stroke="#008564"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill-
> rule="evenodd"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1681.69
> 1462)">ComputerSystemC</text>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1792.26
> 1521)">ollection</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="48" transform="matrix(1 0 0 1 1626.06
> 1376)">/redfish/v1/Systems</text>
> + <path d="M0-2.86458 460.879-2.86458C462.461-2.86458 463.743-1.58207
> 463.743 0L463.743 709.637 458.014 709.637 458.014 0 460.879 2.86458 0
> 2.86458ZM474.629 705.053 460.879 732.553 447.129 705.053Z" fill="#8C8C8C"
> transform="matrix(1.83697e-16 1 1 -1.83697e-16 896 1016)"/>
> + <path d="M2512.5 1427.5C2512.5 1414.25 2523.25 1403.5 2536.5
> 1403.5L3009.5 1403.5C3022.75 1403.5 3033.5 1414.25 3033.5 1427.5L3033.5
> 1523.5C3033.5 1536.75 3022.75 1547.5 3009.5 1547.5L2536.5 1547.5C2523.25
> 1547.5 2512.5 1536.75 2512.5 1523.5Z" stroke="#008564" stroke-
> width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill-
> rule="evenodd"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 2579.22
> 1490)">ComputerSystem</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="48" transform="matrix(1 0 0 1 2510.53
> 1371)">/redfish/v1/Systems/SYS</text>
> + <path d="M0.0107384-2.86456 338.69-1.59496 338.668 4.13417-0.0107384
> 2.86456ZM334.147-12.4975 361.595 1.35551 334.044 15.0023Z" fill="#8C8C8C"
> transform="matrix(1 0 0 -1 2150 1476.36)"/>
> + <path d="M1889.5 1748.67C1889.5 1735.32 1900.32 1724.5 1913.67
> 1724.5L2387.33 1724.5C2400.68 1724.5 2411.5 1735.32 2411.5 1748.67L2411.5
> 1845.33C2411.5 1858.68 2400.68 1869.5 2387.33 1869.5L1913.67
> 1869.5C1900.32 1869.5 1889.5 1858.68 1889.5 1845.33Z" stroke="#008564"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill-
> rule="evenodd"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 2103.34
> 1812)">Bios</text>
> + <path d="M0-2.86458 780.807-2.86458C782.389-2.86458 783.672-1.58207
> 783.672 0L783.672 970.304 777.943 970.304 777.943 0 780.807 2.86458 0
> 2.86458ZM794.557 965.718 780.807 993.218 767.057 965.718Z" fill="#8C8C8C"
> transform="matrix(1.83697e-16 1 1 -1.83697e-16 896 1016)"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="48" transform="matrix(1 0 0 1 1894.92
> 1693)">/redfish/v1/Systems/SYS/Bios</text>
> + <path d="M2053.5 2040.5C2053.5 2027.25 2064.25 2016.5 2077.5
> 2016.5L2551.5 2016.5C2564.75 2016.5 2575.5 2027.25 2575.5 2040.5L2575.5
> 2136.5C2575.5 2149.75 2564.75 2160.5 2551.5 2160.5L2077.5 2160.5C2064.25
> 2160.5 2053.5 2149.75 2053.5 2136.5Z" stroke="#008564" stroke-
> width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill-
> rule="evenodd"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 2106.47
> 2103)">MemoryCollection</text>
> + <path d="M0-2.86458 1072.19-2.86458C1073.77-2.86458 1075.05-1.58207
> 1075.05 0L1075.05 1134.13 1069.33 1134.13 1069.33 0 1072.19 2.86458 0
> 2.86458ZM1085.94 1129.55 1072.19 1157.05 1058.44 1129.55Z" fill="#8C8C8C"
> transform="matrix(1.83697e-16 1 1 -1.83697e-16 896 1016)"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="48" transform="matrix(1 0 0 1 2062.37
> 1981)">/redfish/v1/Systems/SYS/Memory</text>
> + <path d="M2920.5 2040.5C2920.5 2027.25 2931.25 2016.5 2944.5
> 2016.5L3418.5 2016.5C3431.75 2016.5 3442.5 2027.25 3442.5 2040.5L3442.5
> 2136.5C3442.5 2149.75 3431.75 2160.5 3418.5 2160.5L2944.5 2160.5C2931.25
> 2160.5 2920.5 2149.75 2920.5 2136.5Z" stroke="#008564" stroke-
> width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill-
> rule="evenodd"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 3085.32
> 2103)">Memory</text>
> + <path d="M2.98962e-06-2.86458 322.881-2.86425 322.881 2.86492-
> 2.98962e-06 2.86458ZM318.298-13.7497 345.798 0.000360892 318.298
> 13.7503Z" fill="#8C8C8C" transform="matrix(1 0 0 -1 2575 2088)"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="183" transform="matrix(1 0 0 1 2263.52
> 2245)">âEUR¦</text>
> + <path d="M3371.5 822.5C3371.5 809.245 3382.25 798.5 3395.5
> 798.5L4017.5 798.5C4030.75 798.5 4041.5 809.245 4041.5 822.5L4041.5
> 918.5C4041.5 931.755 4030.75 942.5 4017.5 942.5L3395.5 942.5C3382.25 942.5
> 3371.5 931.755 3371.5 918.5Z" stroke="#008564" stroke-width="9.16667"
> stroke-linejoin="round" stroke-miterlimit="10" fill-rule="evenodd"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 3657.66
> 885)">Bios</text>
> + <rect x="3371" y="601" width="670" height="144" fill="#008564"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 3486.36
> 688)">Redfish foundation</text>
> + <rect x="3371" y="218" width="670" height="145" fill="#5E5E5E"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 3474.33 306)">BMC
> Redfish service</text>
> + <path d="M2.86458-1.95531e-05 2.86479 29.9551-2.86438 29.9552-2.86458
> 1.95531e-05ZM13.7502 25.3717 0.000360892 52.8718-13.7498 25.3719Z"
> fill="#8C8C8C" transform="matrix(1 0 0 -1 3706 797.872)"/>
> + <path d="M2.86456-0.0103569 2.94628 22.59-2.78285 22.6107-2.86456
> 0.0103569ZM13.8151 17.9673 0.164567 45.5168-13.6848 18.0667Z"
> fill="#8C8C8C" transform="matrix(1 0 0 -1 3706 600.517)"/>
> + <rect x="3371" y="981" width="670" height="145" fill="#0071C5"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 3434.8
> 1069)">Redfish Platform Config</text>
> + <rect x="3374" y="1304" width="670" height="144" fill="#8C8C8C"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 3610.58
> 1391)">EDK2 HII</text>
> + <rect x="3377" y="1483" width="670" height="145" fill="#890C58"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 3552.42
> 1571)">Chipset driver</text>
> + <rect x="3377" y="1666" width="670" height="144" fill="#5D1682"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 3670.44
> 1753)">HW</text>
> + <path d="M3708.86 942 3708.86 958.191 3703.14 958.191 3703.14
> 942ZM3719.75 953.607 3706 981.107 3692.25 953.608Z" fill="#8C8C8C"/>
> + <path d="M3708.86 1125.94 3712.02 1280.79 3706.29 1280.9 3703.14
> 1126.06ZM3722.81 1275.98 3709.62 1303.76 3695.31 1276.54Z"
> fill="#8C8C8C"/>
> + <path d="M3711.86 1447.79 3712.77 1460.37 3707.05 1460.78 3706.14
> 1448.21ZM3723.29 1455.01 3711.57 1483.43 3695.87 1457Z" fill="#8C8C8C"/>
> + <path d="M3714.86 1628 3714.86 1643.16 3709.14 1643.16 3709.14
> 1628ZM3725.75 1638.57 3712 1666.07 3698.25 1638.57Z" fill="#8C8C8C"/>
> + <rect x="3371" y="411" width="670" height="144" fill="#0071C5" fill-
> opacity="0.501961"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 3606.27
> 498)">Network</text>
> + <path d="M3703.3 411.234 3703.21 385.926 3708.94 385.907 3709.03
> 411.215ZM3692.34 390.547 3706 363 3719.84 390.453Z" fill="#8C8C8C"/>
> + <path d="M0-2.86458 22.9167-2.86458 22.9167 2.86458 0
> 2.86458ZM40.1042-2.86458 63.0208-2.86458 63.0208 2.86458 40.1042
> 2.86458ZM80.2083-2.86458 103.125-2.86458 103.125 2.86458 80.2083
> 2.86458ZM120.312-2.86458 143.229-2.86458 143.229 2.86458 120.312
> 2.86458ZM160.417-2.86458 183.333-2.86458 183.333 2.86458 160.417
> 2.86458ZM200.521-2.86458 223.438-2.86458 223.438 2.86458 200.521
> 2.86458ZM240.625-2.86458 263.542-2.86458 263.542 2.86458 240.625
> 2.86458ZM280.729-2.86458 303.646-2.86458 303.646 2.86458 280.729
> 2.86458ZM320.833-2.86458 343.75-2.86458 343.75 2.86458 320.833
> 2.86458ZM360.938-2.86458 383.854-2.86458 383.854 2.86458 360.938
> 2.86458ZM401.042-2.86458 423.958-2.86458 423.958 2.86458 401.042
> 2.86458ZM441.146-2.86458 464.062-2.86458 464.062 2.86458 441.146
> 2.86458ZM481.25-2.86458 504.167-2.86458 504.167 2.86458 481.25
> 2.86458ZM521.354-2.86458 544.271-2.86458 544.271 2.86458 521.354
> 2.86458ZM561.458-2.86458
> + 584.375-2.86458 584.375 2.86458 561.458 2.86458ZM601.562-2.86458
> 624.479-2.86458 624.479 2.86458 601.562 2.86458ZM641.667-2.86458
> 664.583-2.86458 664.583 2.86458 641.667 2.86458ZM681.771-2.86458
> 704.688-2.86458 704.688 2.86458 681.771 2.86458ZM721.875-2.86458 744.52-
> 2.86458C746.102-2.86458 747.385-1.58207 747.385 0L747.385 0.271391
> 741.656 0.271391 741.656 0 744.52 2.86458 721.875 2.86458ZM747.385
> 17.4589 747.385 40.3756 741.656 40.3756 741.656 17.4589ZM747.385 57.5631
> 747.385 80.4797 741.656 80.4797 741.656 57.5631ZM747.385 97.6672 747.385
> 120.584 741.656 120.584 741.656 97.6672ZM747.385 137.771 747.385 160.688
> 741.656 160.688 741.656 137.771ZM747.385 177.876 747.385 200.792 741.656
> 200.792 741.656 177.876ZM747.385 217.98 747.385 240.896 741.656 240.896
> 741.656 217.98ZM747.385 258.084 747.385 281.001 741.656 281.001 741.656
> 258.084ZM747.385 298.188 747.385 321.105 741.656 321.105 741.656
> 298.188ZM747.385
> + 338.292 747.385 361.209 741.656 361.209 741.656 338.292ZM747.385
> 378.396 747.385 401.313 741.656 401.313 741.656 378.396ZM747.385 418.501
> 747.385 441.417 741.656 441.417 741.656 418.501ZM747.385 458.605 747.385
> 481.521 741.656 481.521 741.656 458.605ZM747.385 498.709 747.385 521.626
> 741.656 521.626 741.656 498.709ZM747.385 538.813 747.385 561.73 741.656
> 561.73 741.656 538.813ZM747.385 578.917 747.385 601.834 741.656 601.834
> 741.656 578.917ZM747.385 619.021 747.385 641.938 741.656 641.938 741.656
> 619.021ZM747.385 659.126 747.385 682.042 741.656 682.042 741.656
> 659.126ZM747.385 699.23 747.385 722.146 741.656 722.146 741.656
> 699.23ZM747.385 739.334 747.385 762.251 741.656 762.251 741.656
> 739.334ZM747.385 779.438 747.385 802.355 741.656 802.355 741.656
> 779.438ZM747.385 819.542 747.385 842.459 741.656 842.459 741.656
> 819.542ZM747.385 859.646 747.385 882.563 741.656 882.563 741.656
> 859.646ZM747.385 899.751 747.385
> + 922.667 741.656 922.667 741.656 899.751ZM758.063 923.447 780.98 923.447
> 780.98 929.176 758.063 929.176ZM798.168 923.447 821.084 923.447 821.084
> 929.176 798.168 929.176ZM838.272 923.447 861.188 923.447 861.188 929.176
> 838.272 929.176ZM878.376 923.447 901.293 923.447 901.293 929.176 878.376
> 929.176ZM918.48 923.447 937.198 923.447 937.198 929.176 918.48
> 929.176ZM932.615 912.562 960.115 926.312 932.615 940.062Z" fill="#008564"
> transform="matrix(1 0 0 -1 2411 1796.31)"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="50" transform="matrix(1 0 0 1 3733.97 1194)">x</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="50" transform="matrix(1 0 0 1 3755.74 1194)">-</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="50" transform="matrix(1 0 0 1 3771.21
> 1194)">uefi</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="50" transform="matrix(1 0 0 1 3849.7 1194)">-</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="50" transform="matrix(1 0 0 1 3865.17
> 1194)">redfish</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="50" transform="matrix(1 0 0 1 4007.25 1194)">-</text>
> + <text fill="#0071C5" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 4022.72
> 1194)">Bios.vA_B_C</text>
> + <text fill="#0071C5" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="50" transform="matrix(1 0 0 1 3733.97
> 1255)">/Bios/Attributes/XXX</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="700" font-size="41" transform="matrix(1 0 0 1 380.14
> 1659)">Redfish Feature Protocol</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="700" font-size="41" transform="matrix(1 0 0 1 2829.58
> 2249)">Redfish Resource Config Protocol</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="700" font-size="41" transform="matrix(1 0 0 1 2426.51
> 1602)">Redfish Resource Config Protocol</text>
> + <rect x="61.5" y="347.5" width="1093" height="111" stroke="#000000"
> stroke-width="3.4375" stroke-linejoin="round" stroke-miterlimit="10"
> fill="none"/>
> + <path d="M406.025 362.408 469.046 362.408 469.046 440.408 406.025
> 440.408Z" fill="#C0C0C0" fill-rule="evenodd"/>
> + <path d="M496.546 362.408 715.4 362.408 715.4 440.408 496.546
> 440.408Z" fill="#FFFF00" fill-rule="evenodd"/>
> + <path d="M742.9 362.408 836.858 362.408 836.858 440.408 742.9
> 440.408Z" fill="#00FF00" fill-rule="evenodd"/>
> + <path d="M864.358 362.408 976.65 362.408 976.65 440.408 864.358
> 440.408Z" fill="#FF00FF" fill-rule="evenodd"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 165.4
> 423)">/redfish/</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 406.025 423)">v1</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 469.046 423)">/</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 496.546
> 423)">Systems</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 715.4 423)">/</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 742.9 423)">SYS</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 836.858 423)">/</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 864.358
> 423)">Bios</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 976.65
> 423)">/âEUR¦</text>
> + <path d="M62.9999 316.844 1336.22 316.844 1336.22 327.157 62.9999
> 327.156ZM62.9999 337.469C54.4567 337.469 47.5311 330.543 47.5312 322
> 47.5312 313.457 54.4567 306.531 62.9999 306.531 71.5431 306.531 78.4687
> 313.457 78.4687 322 78.4687 330.543 71.5431 337.469 62.9999
> 337.469ZM1331.06 306.532 1362 322 1331.06 337.469Z" fill="#890857"/>
> + <rect x="462.5" y="483.5" width="285" height="87" fill="#CDCDCD"/>
> + <path d="M438.751 483.5 438.751 570.5Z" stroke="#000000" stroke-
> width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill="none" fill-
> rule="evenodd"/>
> + <path d="M438.751 499.813 414.999 499.813 399.811 442.936"
> stroke="#000000" stroke-width="9.16667" stroke-linejoin="round" stroke-
> miterlimit="10" fill="none" fill-rule="evenodd"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="41" transform="matrix(1 0 0 1 497.682 539)">Service
> Root</text>
> + <rect x="629.5" y="188.5" width="413" height="102" fill="#CDCDCD"/>
> + <path d="M595.085 188.5 595.085 290.5Z" stroke="#000000" stroke-
> width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill="none" fill-
> rule="evenodd"/>
> + <path d="M595.085 207.625 560.665 207.625 528.732 372.029"
> stroke="#000000" stroke-width="9.16667" stroke-linejoin="round" stroke-
> miterlimit="10" fill="none" fill-rule="evenodd"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="41" transform="matrix(1 0 0 1 682.83 228)">Computer
> System </text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="41" transform="matrix(1 0 0 1 749.861
> 272)">Collection</text>
> + <rect x="903.5" y="470.5" width="279" height="101" fill="#CDCDCD"/>
> + <path d="M880.251 470.5 880.251 571.5Z" stroke="#000000" stroke-
> width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill="none" fill-
> rule="evenodd"/>
> + <path d="M880.251 489.438 856.999 489.438 806.93 438.596"
> stroke="#000000" stroke-width="9.16667" stroke-linejoin="round" stroke-
> miterlimit="10" fill="none" fill-rule="evenodd"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="41" transform="matrix(1 0 0 1 956.072 510)">Computer
> </text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="41" transform="matrix(1 0 0 1 980.134
> 554)">System</text>
> + <rect x="1221.5" y="191.5" width="279" height="102" fill="#CDCDCD"/>
> + <path d="M1198.25 191.5 1198.25 293.5Z" stroke="#000000" stroke-
> width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill="none" fill-
> rule="evenodd"/>
> + <path d="M1198.25 210.625 1175 210.625 944.866 379.72"
> stroke="#000000" stroke-width="9.16667" stroke-linejoin="round" stroke-
> miterlimit="10" fill="none" fill-rule="evenodd"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="41" transform="matrix(1 0 0 1 1324.41
> 254)">Bios</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="55" transform="matrix(1 0 0 1 65.5579
> 241)">Register</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="48" transform="matrix(1 0 0 1 2943.32
> 1981)">/redfish/v1/Systems/SYS/</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="48" transform="matrix(1 0 0 1 3469.25
> 1981)">Memory/Dimm1</text>
> + <path d="M2390.33 1590.83 2383.15 1590.2C2383 1590.19 2382.85 1590.16
> 2382.71 1590.13L2375.59 1588.38 2372.75 1587.27 2374.89 1581.96 2376.95
> 1582.81 2384.08 1584.56 2383.64 1584.49 2390.83 1585.12ZM2367.15 1584.88
> 2361.06 1581.47 2354.16 1576.55 2352.39 1575 2356.21 1570.72 2357.5
> 1571.89 2363.85 1576.47 2369.95 1579.88ZM2348.12 1571.18 2347.61 1570.73
> 2341.43 1564.18 2336.44 1557.94 2340.93 1554.37 2345.6 1560.26 2351.42
> 1566.46 2351.93 1566.91ZM2333.04 1553.04 2330.39 1549.06 2325.59 1540.71
> 2324.23 1537.81 2329.42 1535.38 2330.57 1537.86 2335.15 1545.88 2337.8
> 1549.86ZM2321.8 1532.62 2321.42 1531.81 2317.85 1522.57 2315.92 1516.02
> 2321.41 1514.41 2323.19 1520.5 2326.61 1529.38 2326.99 1530.19ZM2314.56
> 1510.07 2313.97 1506.17 2319.64 1505.32 2320.22 1509.22ZM2303.72 1511.98
> 2314 1483 2331.02 1508.61Z" fill="#8C8C8C"/>
> + <path d="M2793.67 2238.69 2782.92 2237.94 2776.27 2236.64 2777.39
> 2231.02 2783.32 2232.22 2794.07 2232.97ZM2770.36 2235.29 2761.04 2232.24
> 2754.03 2229.05 2756.41 2223.84 2762.82 2226.8 2772.14 2229.85ZM2748.66
> 2226.39 2740.31 2221.56 2733.96 2216.95 2737.33 2212.32 2743.18 2216.6
> 2751.52 2221.43ZM2729.23 2213.33 2721.44 2206.63 2716.42 2201.54 2720.5
> 2197.52 2725.18 2202.29 2732.96 2208.99ZM2712.26 2197.23 2704.97 2188.34
> 2701.58 2183.51 2706.27 2180.22 2709.4 2184.7 2716.69 2193.6ZM2698.29
> 2178.81 2697.84 2178.16 2691.58 2167.39 2689.69 2163.39 2694.88 2160.95
> 2696.54 2164.52 2702.53 2174.88 2702.99 2175.53ZM2687.26 2158.2 2686.28
> 2156.11 2682 2144.51 2681.3 2141.43 2686.9 2140.21 2687.37 2142.53 2691.46
> 2153.68 2692.44 2155.77ZM2680.08 2135.83 2679.1 2131.34 2684.7 2130.12
> 2685.68 2134.61ZM2668.84 2137.02 2679 2108 2696.12 2133.54Z"
> fill="#8C8C8C"/>
> + <path d="M587.149 1603.19 587.587 1598.75C587.602 1598.6 587.63
> 1598.45 587.67 1598.3L588.858 1593.86C588.902 1593.69 588.961 1593.53
> 589.034 1593.38L591.096 1589 593.017 1585.91 597.868 1588.96 596.278
> 1591.44 594.216 1595.82 594.392 1595.34 593.205 1599.78 593.288 1599.32
> 592.851 1603.75ZM596.687 1581.05 597.791 1579.71 602.21 1575.21 607.242
> 1570.81 609.766 1568.92 613.187 1573.52 611.007 1575.13 606.29 1579.23
> 602.208 1583.36 601.104 1584.7ZM614.532 1565.49 619.348 1562.28 626.283
> 1558.14 629.459 1556.44 632.158 1561.49 629.217 1563.06 622.526 1567.04
> 617.71 1570.25ZM634.629 1553.72 641.876 1550.21 650.309 1546.46 652.635
> 1551.69 644.374 1555.36 637.126 1558.87ZM655.715 1544.27 659.492 1542.75
> 669.004 1539.22 671.966 1538.22 673.809 1543.64 670.996 1544.6 661.633
> 1548.07 657.855 1549.59ZM677.391 1536.38 679.016 1535.82 689.374 1532.5
> 693.921 1531.19 695.499 1536.7 691.126 1537.95 680.859 1541.25 679.234
> 1541.8ZM699.429
> + 1529.61 700.148 1529.41 716.155 1525.31 717.574 1530.87 701.726 1534.91
> 701.007 1535.12ZM721.706 1523.9 722.728 1523.64 738.621 1520.25 739.813
> 1525.86 724.147 1529.19 723.124 1529.45ZM744.225 1519.06 746.654 1518.55
> 761.26 1516.04 762.227 1521.69 747.846 1524.15 745.417 1524.67ZM766.907
> 1515.07 771.579 1514.27 784.02 1512.61 784.78 1518.29 772.546 1519.92
> 767.874 1520.72ZM789.698 1511.85 797.37 1510.82 806.874 1509.89 807.431
> 1515.59 798.13 1516.5 790.458 1517.53ZM812.576 1509.33 823.722 1508.25
> 829.83 1507.92 830.132 1513.64 824.278 1513.95 813.133 1515.04ZM835.551
> 1507.62 852.715 1506.71 853.017 1512.43 835.853 1513.34ZM849.88 1495.82
> 877.659 1509 850.449 1523.32Z" fill="#8C8C8C"/>
> + </g>
> +</svg>
> diff --git a/RedfishClientPkg/Documents/Media/redfish-foundation-driver-
> stack.svg b/RedfishClientPkg/Documents/Media/redfish-foundation-driver-
> stack.svg
> new file mode 100755
> index 00000000..79694335
> --- /dev/null
> +++ b/RedfishClientPkg/Documents/Media/redfish-foundation-driver-stack.svg
> @@ -0,0 +1,75 @@
> +<svg width="2492" height="1877" style="background-color:white"
> xmlns="http://www.w3.org/2000/svg"
> xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
> overflow="hidden">
> + <defs>
> + <clipPath id="clip0">
> + <rect x="278" y="517" width="2492" height="1877"/>
> + </clipPath>
> + <linearGradient x1="2572" y1="1054" x2="2572" y2="1294"
> gradientUnits="userSpaceOnUse" spreadMethod="reflect" id="fill1">
> + <stop offset="0" stop-color="#D2D2D2"/>
> + <stop offset="0.5" stop-color="#C8C8C8"/>
> + <stop offset="1" stop-color="#C0C0C0"/>
> + </linearGradient>
> + </defs>
> + <g clip-path="url(#clip0)" transform="translate(-278 -517)">
> + <rect x="278" y="958" width="2163" height="876" fill="#DAE3F3" fill-
> opacity="0.501961"/>
> + <path d="M1.19218-3.22415 20.5371 3.92891 18.1527 10.3772-1.19218
> 3.22415ZM26.9853 6.31326 46.3302 13.4663 43.9459 19.9146 24.601
> 12.7616ZM52.7785 15.8507 72.1234 23.0037 69.7391 29.452 50.3942
> 22.299ZM78.5717 25.3881 97.9166 32.5411 95.5322 38.9894 76.1873
> 31.8364ZM104.365 34.9255 123.71 42.0785 121.325 48.5268 101.981
> 41.3738ZM130.158 44.4629 149.503 51.6159 147.119 58.0642 127.774
> 50.9112ZM155.951 54.0003 175.296 61.1533 172.912 67.6016 153.567
> 60.4486ZM181.744 63.5377 201.089 70.6908 198.705 77.139 179.36
> 69.986ZM207.538 73.0751 226.882 80.2282 224.498 86.6765 205.153
> 79.5234ZM233.331 82.6125 252.676 89.7656 250.291 96.2139 230.946
> 89.0608ZM259.124 92.1499 278.469 99.303 276.084 105.751 256.74
> 98.5982ZM284.917 101.687 304.262 108.84 301.878 115.289 282.533
> 108.136ZM310.71 111.225 330.055 118.378 327.671 124.826 308.326
> 117.673ZM336.503 120.762 355.848 127.915 353.464 134.363 334.119
> 127.21ZM362.297 130.3 381.641 137.453 379.257
> + 143.901 359.912 136.748ZM388.09 139.837 407.435 146.99 405.05 153.438
> 385.705 146.285ZM413.883 149.374 433.228 156.527 430.843 162.976 411.499
> 155.823ZM439.676 158.912 459.021 166.065 456.637 172.513 437.292
> 165.36ZM465.469 168.449 484.814 175.602 482.43 182.05 463.085
> 174.897ZM491.262 177.987 510.607 185.14 508.223 191.588 488.878
> 184.435ZM517.056 187.524 536.4 194.677 534.016 201.125 514.671
> 193.972ZM542.849 197.061 562.194 204.214 559.809 210.663 540.464
> 203.51ZM568.642 206.599 587.987 213.752 585.602 220.2 566.258
> 213.047ZM594.435 216.136 613.78 223.289 611.396 229.738 592.051
> 222.584ZM620.228 225.674 639.573 232.827 637.189 239.275 617.844
> 232.122ZM646.021 235.211 665.366 242.364 662.982 248.812 643.637
> 241.659ZM671.815 244.748 691.16 251.901 688.775 258.35 669.43
> 251.197ZM697.608 254.286 716.953 261.439 714.568 267.887 695.224
> 260.734ZM723.401 263.823 742.746 270.976 740.362 277.425 721.017
> 270.271ZM744.812 260.745 765.836 283.179
> + 735.275 286.538Z" fill="#70AD47" transform="matrix(1 0 0 -1 594.5
> 1048.68)"/>
> + <rect x="392.5" y="1881.5" width="622" height="142" stroke="#41719C"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#5B9BD5"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 652.979
> 1972)">NIC</text>
> + <rect x="392.5" y="1515.5" width="622" height="251" stroke="#ED7D31"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#FBE5D6"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 450.739
> 1657)">UEFI Network Stack</text>
> + <rect x="1703.5" y="1515.5" width="622" height="251" stroke="#C55A11"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#FFC000"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 1773.26
> 1660)">In</text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 1828.84 1660)">-
> </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 1852.33
> 1660)">band channel</text>
> + <rect x="807.5" y="1049.5" width="207" height="287" stroke="#2F5597"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#ADB9CA"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1
> 855.72 1182)">REST </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1
> 882.074 1231)">EX</text>
> + <rect x="393.5" y="1194.5" width="400" height="138" stroke="#787878"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#A5A5A5"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="41" transform="matrix(1 0 0 1 433.577
> 1254)">Redfish Discover </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="41" transform="matrix(1 0 0 1 512.067
> 1299)">Protocol</text>
> + <path d="M396.5 2234C396.5 2216.6 410.603 2202.5 428 2202.5L2294
> 2202.5C2311.4 2202.5 2325.5 2216.6 2325.5 2234L2325.5 2360C2325.5 2377.4
> 2311.4 2391.5 2294 2391.5L428 2391.5C410.603 2391.5 396.5 2377.4 396.5
> 2360Z" stroke="#70AD47" stroke-width="4.58333" stroke-miterlimit="8"
> fill="#FFFFFF" fill-rule="evenodd"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 1158.18 2313)">Redfish
> Service</text>
> + <rect x="396.5" y="519.5" width="1929" height="120" stroke="#000000"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#767171"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 1100.89
> 596)">Redfish Application</text>
> + <rect x="394.5" y="1048.5" width="400" height="138" stroke="#385723"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#70AD47"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="46" transform="matrix(1 0 0 1 457.66 1105)">Redfish
> Config </text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="46" transform="matrix(1 0 0 1 535.851
> 1155)">Driver</text>
> + <path d="M2375 1054 2729 1054 2769 1094 2769 1294 2375 1294Z"
> stroke="#A5A5A5" stroke-width="2.29167" stroke-miterlimit="8" fill="url(#fill1)"
> fill-rule="evenodd"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 2474.57
> 1172)">SMBIOS </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 2465.7 1231)">Type
> 42</text>
> + <rect x="1710" y="1879" width="615" height="142" fill="#4472C4" fill-
> opacity="0.501961"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="73" transform="matrix(1 0 0 1 1959.59
> 1972)">HW</text>
> + <rect x="396.5" y="645.5" width="1929" height="120" stroke="#385723"
> stroke-width="3.4375" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#70AD47"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 994.903
> 720)">Redfish Config Handler Protocol</text>
> + <path d="M3.17204-1.3246 11.1196 17.7076 4.77555 20.3568-3.17204
> 1.3246ZM13.7688 24.0517 21.7164 43.084 15.3723 45.7332 7.42475
> 26.7009ZM24.3656 49.4281 32.3132 68.4603 25.9691 71.1095 18.0215
> 52.0773ZM34.9624 74.8044 42.91 93.8366 36.5659 96.4858 28.6183
> 77.4536ZM45.5592 100.181 53.5068 119.213 47.1627 121.862 39.2151
> 102.83ZM56.156 125.557 64.1036 144.589 57.7595 147.238 49.8119
> 128.206ZM66.7528 150.933 74.7004 169.966 68.3563 172.615 60.4087
> 153.583ZM77.3496 176.31 85.2972 195.342 78.9531 197.991 71.0055
> 178.959ZM87.9464 201.686 95.894 220.718 89.5499 223.367 81.6023
> 204.335ZM98.5432 227.062 106.491 246.095 100.147 248.744 92.1991
> 229.712ZM109.14 252.439 114.093 264.301 107.749 266.95 102.796
> 255.088ZM121.843 256.098 119.752 286.772 96.4671 266.694Z" fill="#70AD47"
> transform="matrix(1 0 0 -1 1240.5 1052.27)"/>
> + <path d="M1867.15 1057.88 1849.23 1047.68 1852.63 1041.7 1870.55
> 1051.91ZM1843.25 1044.28 1825.33 1034.07 1828.73 1028.1 1846.65
> 1038.3ZM1819.35 1030.67 1801.43 1020.47 1804.83 1014.49 1822.75
> 1024.7ZM1795.45 1017.07 1777.53 1006.86 1780.93 1000.89 1798.85
> 1011.09ZM1771.55 1003.46 1753.63 993.258 1757.03 987.284 1774.96
> 997.488ZM1747.66 989.857 1729.73 979.653 1733.13 973.679 1751.06
> 983.883ZM1723.76 976.252 1705.83 966.048 1709.23 960.073 1727.16
> 970.277ZM1699.86 962.647 1681.93 952.443 1685.34 946.468 1703.26
> 956.672ZM1675.96 949.042 1658.04 938.838 1661.44 932.863 1679.36
> 943.067ZM1652.06 935.437 1634.14 925.233 1637.54 919.258 1655.46
> 929.462ZM1628.16 921.831 1610.24 911.628 1613.64 905.653 1631.56
> 915.857ZM1604.26 908.226 1586.34 898.022 1589.74 892.048 1607.67
> 902.252ZM1580.37 894.621 1562.44 884.417 1565.84 878.443 1583.77
> 888.646ZM1556.47 881.016 1538.54 870.812 1541.94 864.837 1559.87
> 875.041ZM1532.57
> + 867.411 1514.64 857.207 1518.04 851.232 1535.97 861.436ZM1508.67
> 853.806 1490.74 843.602 1494.15 837.627 1512.07 847.831ZM1484.77 840.2
> 1466.85 829.997 1470.25 824.022 1488.17 834.226ZM1460.87 826.595 1442.95
> 816.391 1446.35 810.417 1464.27 820.621ZM1436.97 812.99 1419.05 802.786
> 1422.45 796.812 1440.37 807.015ZM1413.07 799.385 1395.15 789.181 1398.55
> 783.206 1416.48 793.41ZM1389.18 785.78 1378.72 779.825 1382.12 773.851
> 1392.58 779.805ZM1377.6 791.055 1360.5 765.5 1391.2 767.156Z"
> fill="#70AD47"/>
> + <path d="M0-2.29167 146.945-2.29167 146.945 186.106 144.653 183.814
> 266.39 183.814 266.39 188.397 142.362 188.397 142.362 0 144.653 2.29167 0
> 2.29167ZM261.806 172.356 289.306 186.106 261.806 199.856Z" fill="#FF0000"
> transform="matrix(1.83697e-16 1 1 -1.83697e-16 1360.5 765.5)"/>
> + <path d="M1571.77 1340.5 1571.77 1451.89 1362.5 1451.89 1364.79 1449.6
> 1364.79 1491.77 1360.21 1491.77 1360.21 1447.3 1569.48 1447.3 1567.19
> 1449.6 1567.19 1340.5ZM1376.25 1487.19 1362.5 1514.69 1348.75 1487.19Z"
> fill="#FF0000"/>
> + <path d="M1364.79 1766.5 1364.79 1858.57 1360.21 1858.57 1360.21
> 1766.5ZM1376.25 1853.99 1362.5 1881.49 1348.75 1853.99Z" fill="#FF0000"/>
> + <path d="M2573.09 1294 2573.09 1422.16 1901.85 1422.16 1901.85 1361.43
> 1904.15 1361.43 1904.15 1421.01 1903 1419.87 2571.94 1419.87 2570.8
> 1421.01 2570.8 1294ZM1889.25 1366.01 1903 1338.51 1916.75 1366.01Z"
> fill="#A5A5A5"/>
> + <path d="M2573.22 1294 2573.22 1421.96 1249.85 1421.96 1249.85 1359.03
> 1252.15 1359.03 1252.15 1420.81 1251 1419.67 2572.07 1419.67 2570.93
> 1420.81 2570.93 1294ZM1237.25 1363.61 1251 1336.11 1264.75 1363.61Z"
> fill="#A5A5A5"/>
> + <path d="M2573.26 1294 2573.26 1422.27 591.854 1422.27 591.854 1354.94
> 594.146 1354.94 594.146 1421.12 593 1419.98 2572.11 1419.98 2570.97
> 1421.12 2570.97 1294ZM579.25 1359.52 593 1332.02 606.75 1359.52Z"
> fill="#A5A5A5"/>
> + <rect x="1465.5" y="1053.5" width="207" height="287" stroke="#2F5597"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#ADB9CA"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1
> 1513.76 1186)">REST </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1
> 1540.11 1235)">EX</text>
> + <rect x="1051.5" y="1198.5" width="400" height="139" stroke="#787878"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#A5A5A5"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="41" transform="matrix(1 0 0 1 1091.62
> 1258)">Redfish Discover </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="41" transform="matrix(1 0 0 1 1170.11
> 1303)">Protocol</text>
> + <rect x="1052.5" y="1052.5" width="400" height="138" stroke="#385723"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#70AD47"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="46" transform="matrix(1 0 0 1 1099.08
> 1111)">Redfish Config </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="46" transform="matrix(1 0 0 1 1186.17
> 1160)">Driver</text>
> + <rect x="2117.5" y="1055.5" width="208" height="288" stroke="#2F5597"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#ADB9CA"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1
> 2165.89 1188)">REST </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1
> 2192.24 1237)">EX</text>
> + <rect x="1703.5" y="1201.5" width="400" height="138" stroke="#787878"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#A5A5A5"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="41" transform="matrix(1 0 0 1 1743.75
> 1260)">Redfish Discover </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="41" transform="matrix(1 0 0 1 1822.23
> 1305)">Protocol</text>
> + <rect x="1704.5" y="1055.5" width="401" height="138" stroke="#385723"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#70AD47"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="46" transform="matrix(1 0 0 1 1751.21
> 1113)">Redfish Config </text>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="46" transform="matrix(1 0 0 1 1838.3
> 1162)">Driver</text>
> + <rect x="1051.5" y="1515.5" width="621" height="251" stroke="#ED7D31"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#FBE5D6"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 1109.41
> 1657)">UEFI Network Stack</text>
> + <rect x="1051.5" y="1881.5" width="621" height="142" stroke="#41719C"
> stroke-width="4.58333" stroke-miterlimit="8" fill="#5B9BD5"/>
> + <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 1311.65
> 1972)">NIC</text>
> + <path d="M2.29157-0.020976 3.72062 156.099-0.862519 156.141-2.29157
> 0.020976ZM15.1365 151.411 1.63881 179.035-12.3623 151.662Z" fill="#FF0000"
> transform="matrix(-1 0 0 1 1362.14 2023.5)"/>
> + </g>
> +</svg>
> diff --git a/RedfishClientPkg/Documents/Media/redfish-platform-config-protocol-
> stack.svg b/RedfishClientPkg/Documents/Media/redfish-platform-config-
> protocol-stack.svg
> new file mode 100755
> index 00000000..670c29bf
> --- /dev/null
> +++ b/RedfishClientPkg/Documents/Media/redfish-platform-config-protocol-
> stack.svg
> @@ -0,0 +1,99 @@
> +<svg width="3433" height="1895" style="background-color:white"
> xmlns="http://www.w3.org/2000/svg"
> xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
> overflow="hidden">
> + <defs>
> + <filter id="fx0" x="-10%" y="-10%" width="120%" height="120%"
> filterUnits="userSpaceOnUse" primitiveUnits="userSpaceOnUse">
> + <feComponentTransfer color-interpolation-filters="sRGB">
> + <feFuncR type="discrete" tableValues="0 0"/>
> + <feFuncG type="discrete" tableValues="0 0"/>
> + <feFuncB type="discrete" tableValues="0 0"/>
> + <feFuncA type="linear" slope="0.380392" intercept="0"/>
> + </feComponentTransfer>
> + <feGaussianBlur stdDeviation="4.8119 4.8119"/>
> + </filter>
> + <clipPath id="clip1">
> + <rect x="572" y="465" width="3433" height="1895"/>
> + </clipPath>
> + <clipPath id="clip2">
> + <rect x="-5" y="13" width="863" height="130"/>
> + </clipPath>
> + <clipPath id="clip3">
> + <rect x="0" y="0" width="883" height="139"/>
> + </clipPath>
> + </defs>
> + <g clip-path="url(#clip1)" transform="translate(-572 -465)">
> + <rect x="572" y="1277" width="3256" height="1083" fill="#C0E4FF" fill-
> opacity="0.4"/>
> + <path d="M654.5 1778.17C654.5 1742.45 683.453 1713.5 719.168
> 1713.5L1793.83 1713.5C1829.55 1713.5 1858.5 1742.45 1858.5 1778.17L1858.5
> 2036.83C1858.5 2072.55 1829.55 2101.5 1793.83 2101.5L719.168
> 2101.5C683.453 2101.5 654.5 2072.55 654.5 2036.83Z" stroke="#A6A6A6"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" stroke-
> dasharray="36.6667 27.5" fill="none" fill-rule="evenodd"/>
> + <path d="M690 978.669C690 922.518 735.518 877 791.668 877L1586.33
> 877C1642.48 877 1688 922.518 1688 978.669L1688 1385.33C1688 1441.48
> 1642.48 1487 1586.33 1487L791.668 1487C735.518 1487 690 1441.48 690
> 1385.33Z" fill="#D9D9D9" fill-rule="evenodd"/>
> + <rect x="716" y="598" width="945" height="136" fill="#76B900"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 1026.14 683)">Setup
> Menu</text>
> + <rect x="716.5" y="1114.5" width="945" height="136" stroke="#0070C0"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#9E9E9E"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 916.711
> 1199)">EDK2 Setup Browser</text>
> + <rect x="716" y="952" width="945" height="136" fill="#9E9E9E"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 917.571
> 1038)">EDK2 Display Engine</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 1122.4
> 545)">User</text>
> + <rect x="716" y="1289" width="945" height="136" fill="#9E9E9E"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 941.92 1374)">EDK2
> HII Database</text>
> + <rect x="716.5" y="1757.5" width="377" height="199" stroke="#656565"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#8C8C8C"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 779.595
> 1842)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 838.88
> 1901)">driver</text>
> + <rect x="1124.5" y="1757.5" width="377" height="199" stroke="#656565"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#8C8C8C"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1188
> 1842)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1247.28
> 1901)">driver</text>
> + <rect x="882.5" y="1856.5" width="377" height="199" stroke="#656565"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#8C8C8C"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 945.765
> 1941)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1005.05
> 2000)">driver</text>
> + <rect x="1313.5" y="1856.5" width="377" height="199" stroke="#656565"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#8C8C8C"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1376.4
> 1941)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1435.69
> 2000)">driver</text>
> + <path d="M1191.86 756.917 1191.86 929.504 1186.14 929.504 1186.14
> 756.917ZM1175.25 761.5 1189 734 1202.75 761.5ZM1202.75 924.92 1189
> 952.42 1175.25 924.92Z" fill="#8C8C8C"/>
> + <path d="M1185.86 1517.92 1185.86 1690.5 1180.14 1690.5 1180.14
> 1517.92ZM1169.25 1522.5 1183 1495 1196.75 1522.5ZM1196.75 1685.92 1183
> 1713.42 1169.25 1685.92Z" fill="#8C8C8C"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1247.51
> 801)">Graphic protocols</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1247.51
> 867)">Console input protocols</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1232.43 1574)">EFI
> Config Access Protocol</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 1232.43 1640)">HII
> Database Protocol</text>
> + <rect x="657.5" y="2152.5" width="1204" height="145" stroke="#008564"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="73" transform="matrix(1 0 0 1 1203.49
> 2245)">HW</text>
> + <path d="M2422.5 1782C2422.5 1746.38 2451.38 1717.5 2487 1717.5L3562
> 1717.5C3597.62 1717.5 3626.5 1746.38 3626.5 1782L3626.5 2040C3626.5
> 2075.62 3597.62 2104.5 3562 2104.5L2487 2104.5C2451.38 2104.5 2422.5
> 2075.62 2422.5 2040Z" stroke="#A6A6A6" stroke-width="9.16667" stroke-
> linejoin="round" stroke-miterlimit="10" stroke-dasharray="36.6667 27.5"
> fill="none" fill-rule="evenodd"/>
> + <path d="M2457 970.169C2457 912.638 2503.64 866 2561.17 866L3350.83
> 866C3408.36 866 3455 912.638 3455 970.169L3455 1386.83C3455 1444.36
> 3408.36 1491 3350.83 1491L2561.17 1491C2503.64 1491 2457 1444.36 2457
> 1386.83Z" fill="#D9D9D9" fill-rule="evenodd"/>
> + <rect x="2483" y="602" width="945" height="135" fill="#76B900"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 2754.31
> 687)">Feature drivers</text>
> + <rect x="2483" y="956" width="945" height="302" fill="#0070C0"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 2652.04
> 1124)">EDK2 HII Utility Library</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 2724.81 549)">Redfish
> Interface</text>
> + <rect x="2483" y="1291" width="945" height="136" fill="#9E9E9E"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="64" transform="matrix(1 0 0 1 2709.33
> 1376)">EDK2 HII Database</text>
> + <rect x="2483.5" y="1760.5" width="377" height="199" stroke="#656565"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#8C8C8C"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 2532.97 1847)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 2599.43 1906)">driver</text>
> + <rect x="2892.5" y="1760.5" width="377" height="199" stroke="#656565"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#8C8C8C"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 2941.37 1847)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 3007.83 1906)">driver</text>
> + <rect x="2650.5" y="1860.5" width="376" height="199" stroke="#656565"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#8C8C8C"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 2699.14 1947)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 2765.6 2006)">driver</text>
> + <rect x="3080.5" y="1860.5" width="377" height="199" stroke="#656565"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"
> fill="#8C8C8C"/>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 3129.78 1947)">Chipset/HII </text>
> + <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet
> MS_MSFontService,sans-serif" font-weight="400" font-size="55"
> transform="matrix(1 0 0 1 3196.24 2006)">driver</text>
> + <path d="M2958.86 759.917 2958.86 932.542 2953.14 932.542 2953.14
> 759.917ZM2942.25 764.5 2956 737 2969.75 764.5ZM2969.75 927.959 2956
> 955.459 2942.25 927.959Z" fill="#8C8C8C"/>
> + <path d="M2953.86 1520.92 2953.86 1693.5 2948.14 1693.5 2948.14
> 1520.92ZM2937.25 1525.5 2951 1498 2964.75 1525.5ZM2964.75 1688.92 2951
> 1716.42 2937.25 1688.92Z" fill="#8C8C8C"/>
> + <text fill="#FF0000" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-style="italic" font-weight="700" font-size="55" transform="matrix(1 0 0 1
> 3007.22 833)">EDKII Redfish Platform Configure Protocol</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 3007.22 1592)">EFI
> Config Access Protocol</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic"
> font-weight="400" font-size="55" transform="matrix(1 0 0 1 3007.22 1658)">HII
> Database Protocol</text>
> + <rect x="2425.5" y="2155.5" width="1203" height="145" stroke="#008564"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="400" font-size="73" transform="matrix(1 0 0 1 2970.9
> 2248)">HW</text>
> + <g clip-path="url(#clip2)" filter="url(#fx0)" transform="translate(1645 1071)">
> + <g clip-path="url(#clip3)">
> + <path d="M0.406692-4.48158 800.047 68.0836 799.233 77.0468-0.406692
> 4.48158ZM796.32 58.4574 822.465 74.6365 793.835 85.8449Z" fill="#0071C5"
> transform="matrix(1 0 0 -1 16.4999 118.354)"/>
> + </g>
> + </g>
> + <path d="M0.414223-4.56458 800.054 68.0006 799.226 77.1298-0.414223
> 4.56458ZM796.32 58.4574 822.465 74.6365 793.835 85.8449Z" fill="#0071C5"
> transform="matrix(1 0 0 -1 1661.5 1182.14)"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="55" transform="matrix(1 0 0 1 1783.55 1054)">Move
> necessary functions </text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="55" transform="matrix(1 0 0 1 1783.55 1120)">to library
> </text>
> + <rect x="1721.5" y="1792.5" width="303" height="193" stroke="#890C58"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 1821 1874)">UEFI
> </text>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 1780.6
> 1933)">variable</text>
> + <rect x="3489.5" y="1768.5" width="303" height="194" stroke="#890C58"
> stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"/>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 3589.11
> 1851)">UEFI </text>
> + <text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-weight="700" font-size="55" transform="matrix(1 0 0 1 3548.71
> 1910)">variable</text>
> + <path d="M2145.64 1853.11 2293.36 1853.11 2293.36 1890.46 2145.64
> 1890.46ZM2145.64 1918.54 2293.36 1918.54 2293.36 1955.89 2145.64
> 1955.89Z" fill="#C0E4FF" fill-rule="evenodd"/>
> + </g>
> +</svg>
> diff --git a/RedfishClientPkg/Documents/Media/redfish-synchronization-
> design.svg b/RedfishClientPkg/Documents/Media/redfish-synchronization-
> design.svg
> new file mode 100755
> index 00000000..2dd1fb61
> --- /dev/null
> +++ b/RedfishClientPkg/Documents/Media/redfish-synchronization-design.svg
> @@ -0,0 +1,75 @@
> +<svg width="4191" height="2178" style="background-color:white"
> xmlns="http://www.w3.org/2000/svg"
> xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
> overflow="hidden">
> + <defs>
> + <clipPath id="clip0">
> + <rect x="66" y="210" width="4191" height="2178"/>
> + </clipPath>
> + </defs>
> + <g clip-path="url(#clip0)" transform="translate(-66 -210)">
> + <path d="M487.5 379.5C487.5 364.588 498.469 352.5 512 352.5 525.531
> 352.5 536.5 364.588 536.5 379.5 536.5 394.412 525.531 406.5 512 406.5
> 498.469 406.5 487.5 394.412 487.5 379.5Z" stroke="#006047" stroke-
> width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill="#008564"
> fill-rule="evenodd"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 104.76
> 290)">REDFISH_FEATURE_CALLBACK()</text>
> + <rect x="609.5" y="522.5" width="709" height="133" stroke="#000000"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="none"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 839.622
> 610)">Identify()</text>
> + <rect x="1178.5" y="767.5" width="709" height="133" stroke="#000000"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="none"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 1433.4
> 855)">Check()</text>
> + <rect x="1759.5" y="1046.5" width="709" height="134" stroke="#000000"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="none"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 1928.64
> 1134)">Provisioning()</text>
> + <rect x="1597.5" y="1422.5" width="709" height="133" stroke="#000000"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="none"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 1808.4
> 1510)">Consume()</text>
> + <rect x="2140.5" y="1730.5" width="709" height="133" stroke="#000000"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="none"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 2376.59
> 1818)">Update()</text>
> + <path d="M0-2.29167 182.65-2.29167C183.915-2.29167 184.941-1.26565
> 184.941 0L184.941 74.3695 180.358 74.3695 180.358 0 182.65 2.29167 0
> 2.29167ZM196.4 69.7861 182.65 97.2861 168.9 69.7861Z" fill="#008563"
> transform="matrix(1.83697e-16 1 1 -1.83697e-16 511.5 406.5)"/>
> + <path d="M988.5 831.208 1083.64 831.208C1084.91 831.208 1085.93
> 832.234 1085.93 833.5L1085.93 833.591 1083.64 831.299 1155.86 831.299
> 1155.86 835.882 1083.64 835.882C1082.37 835.882 1081.35 834.856 1081.35
> 833.591L1081.35 833.5 1083.64 835.792 988.5 835.792ZM1151.28 819.841
> 1178.78 833.591 1151.28 847.341Z" fill="#008563"/>
> + <path d="M0-2.29167 101.164-2.29167C102.43-2.29167 103.456-1.26565
> 103.456 0L103.456 0.633366 101.164-1.6583 179.411-1.6583 179.411 2.92503
> 101.164 2.92503C99.8983 2.92503 98.8722 1.89902 98.8722 0.633366L98.8722
> 0 101.164 2.29167 0 2.29167ZM174.827-13.1166 202.327 0.633366 174.827
> 14.3834Z" fill="#008563" transform="matrix(1 0 0 -1 1557.5 1114.13)"/>
> + <path d="M0-2.29167 348.186-2.29167C349.452-2.29167 350.478-1.26565
> 350.478 0L350.478 42.4958 345.894 42.4958 345.894 0 348.186 2.29167 0
> 2.29167ZM361.936 37.9125 348.186 65.4125 334.436 37.9125Z" fill="#008563"
> transform="matrix(1.83697e-16 1 1 -1.83697e-16 1532.5 1141.5)"/>
> + <path d="M0-2.29167 241.064-2.29167C242.329-2.29167 243.356-1.26565
> 243.356 0L243.356 165.488 238.772 165.488 238.772 0 241.064 2.29167 0
> 2.29167ZM254.814 160.904 241.064 188.404 227.314 160.904Z" fill="#008563"
> transform="matrix(1.83697e-16 1 1 -1.83697e-16 1952.5 1555.5)"/>
> + <path d="M511.5 2311.5C511.5 2296.59 522.469 2284.5 536 2284.5 549.531
> 2284.5 560.5 2296.59 560.5 2311.5 560.5 2326.41 549.531 2338.5 536 2338.5
> 522.469 2338.5 511.5 2326.41 511.5 2311.5Z" stroke="#006047" stroke-
> width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill="#008564"
> fill-rule="evenodd"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="64" transform="matrix(1 0 0 1 316.965 2332)">Done
> </text>
> + <path d="M965.584 860.5 965.584 1572.52C965.584 1573.79 964.558
> 1574.82 963.292 1574.82L535.5 1574.82 537.792 1572.52 537.792 2261.63
> 533.209 2261.63 533.209 1572.52C533.209 1571.26 534.235 1570.23 535.5
> 1570.23L963.292 1570.23 961.001 1572.52 961.001 860.5ZM549.25 2257.05
> 535.5 2284.55 521.75 2257.05Z" fill="#008563"/>
> + <path d="M2497.82 1863.5 2497.82 2311.4C2497.82 2312.67 2496.79
> 2313.7 2495.53 2313.7L583.418 2313.7 583.418 2309.11 2495.53 2309.11
> 2493.23 2311.4 2493.23 1863.5ZM588 2325.15 560.5 2311.4 588 2297.65Z"
> fill="#008563"/>
> + <path d="M2728 1074.17C2728 1059.72 2739.72 1048 2754.17
> 1048L3410.83 1048C3425.28 1048 3437 1059.72 3437 1074.17L3437
> 1178.83C3437 1193.28 3425.28 1205 3410.83 1205L2754.17 1205C2739.72
> 1205 2728 1193.28 2728 1178.83Z" fill="#0071C5" fill-rule="evenodd" fill-
> opacity="0.501961"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 2869.23 1148)">HTTP
> </text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 3021.62
> 1148)">POST/PUT</text>
> + <path d="M3112 2034.33C3112 2015.37 3127.37 2000 3146.33
> 2000L3786.67 2000C3805.63 2000 3821 2015.37 3821 2034.33L3821
> 2171.67C3821 2190.63 3805.63 2206 3786.67 2206L3146.33 2206C3127.37
> 2206 3112 2190.63 3112 2171.67Z" fill="#0071C5" fill-rule="evenodd" fill-
> opacity="0.501961"/>
> + <text font-family="Arial,Arial_MSFontService,sans-serif" font-weight="400"
> font-size="64" transform="matrix(1 0 0 1 3191.74 2127)">HTTP </text>
> + <text fill="#FF0000" font-family="Arial,Arial_MSFontService,sans-serif" font-
> weight="400" font-size="64" transform="matrix(1 0 0 1 3376.79
> 2127)">PATCH/PUT</text>
> + <rect x="1572" y="418" width="896" height="130" fill="#008564"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 1655.98
> 505)">RedfishResourceIdentifyLib</text>
> + <path d="M0.0452146-1.71815 11.9202-1.40565 23.8145-0.526554 35.5234
> 0.919242 46.906 2.80438 57.9272 5.19539 68.5072 8.02728 78.5249 11.2384
> 87.9266 14.8322 96.5836 18.7466 104.375 22.923 111.238 27.3016 117.131
> 31.9661 121.965 36.7847C122.036 36.8551 122.1 36.9316 122.157
> 37.0131L125.532 41.8256C125.598 41.9198 125.655 42.0203 125.701
> 42.1257L127.826 47.0007C127.885 47.1376 127.927 47.2817 127.949
> 47.4294L128.699 52.3669 129.449 57.3044 129.326 56.8757 131.451 61.7507
> 131.282 61.4506 134.657 66.2631 134.465 66.0347 139.153 70.7222 144.756
> 75.1536 151.363 79.3641 158.938 83.423 167.396 87.2466 176.555 90.7711
> 186.4 93.9259 196.82 96.7148 207.677 99.0704 218.967 100.929 231.233
> 102.16 230.889 105.58 218.408 104.321 206.948 102.43 195.93 100.035 185.35
> 97.1991 175.32 93.9789 165.979 90.3784 157.312 86.452 149.512 82.2609
> 142.619 77.8464 136.722 73.1528 132.035 68.4653C131.964 68.3949 131.9
> 68.3184 131.843
> + 68.2369L128.468 63.4244C128.402 63.3302 128.345 63.2297 128.299
> 63.1243L126.174 58.2493C126.115 58.1124 126.073 57.9683 126.051
> 57.8206L125.301 52.8831 124.551 47.9456 124.674 48.3743 122.549 43.4993
> 122.718 43.7994 119.343 38.9869 119.535 39.2153 114.994 34.6589 109.387
> 30.1984 102.75 25.952 95.1664 21.8784 86.6984 18.0428 77.475 14.5116
> 67.6178 11.3477 57.1978 8.55461 46.344 6.19562 35.1016 4.33076 23.5605
> 2.90155 11.8298 2.03065-0.0452146 1.71815ZM227.312 89.8694 253.937
> 105.246 225.66 117.32Z" fill="#008563" transform="matrix(1 0 0 -1 1318.5
> 588.746)"/>
> + <rect x="2687" y="738" width="425" height="102" fill="#5D1682" fill-
> opacity="0.501961"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="50" transform="matrix(1 0 0 1 2797.23
> 806)">GetData</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="50" transform="matrix(1 0 0 1 2970.82 806)">()</text>
> + <text fill="#890C58" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1
> 2696.04 693)">EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL</text>
> + <path d="M0.0837419-1.71671 5.20874-1.46671 10.4785-0.765991 15.7435
> 0.383721 21.0012 1.98096 26.1383 4.02918 31.2374 6.44749 36.2738 9.24844
> 41.2531 12.499 50.8027 19.8914 59.9974 28.63 68.7284 38.5528 76.822 49.544
> 84.2726 61.5307 91.0188 74.258 96.9486 87.7463 101.933 101.866 105.969
> 116.416 108.997 131.282 110.831 146.482 111.467 161.742 112.092 176.867
> 113.894 191.795 116.872 206.407 120.844 220.729 125.746 234.616 131.574
> 247.871 138.147 260.389 145.458 272.09 153.443 282.851 161.92 292.557
> 170.872 301.067 180.183 308.333 184.928 311.366 189.774 314.061 189.495
> 313.937 197.654 316.733 196.54 319.985 188.38 317.188C188.284 317.155
> 188.19 317.114 188.101 317.064L183.072 314.259 178.067 311.042 168.503
> 303.557 159.33 294.818 150.682 284.899 142.542 273.91 135.103 261.986
> 128.426 249.254 122.504 235.759 117.531 221.646 113.503 207.093 110.481
> 192.205 108.658 177.008 108.033 161.883 107.419 146.893
> + 105.628 131.968 102.656 117.334 98.6916 103.009 93.8014 89.1287 87.9812
> 75.867 81.3524 63.3443 74.053 51.581 66.1466 40.8222 57.6276 31.12 48.6973
> 22.6086 39.3719 15.376 34.6012 12.2516 29.7626 9.55251 24.8617 7.22082
> 19.9988 5.26904 15.0065 3.74128 10.0215 2.64099 5.04126 1.96671-0.0837419
> 1.71671ZM195.756 303.927 219.415 323.564 189.51 330.709Z" fill="#890857"
> transform="matrix(1 0 0 -1 2468.5 1113.06)"/>
> + <rect x="2690" y="863" width="422" height="102" fill="#5D1682" fill-
> opacity="0.501961"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="50" transform="matrix(1 0 0 1 2757.16
> 931)">GeOemData</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="50" transform="matrix(1 0 0 1 3013.82 931)">()</text>
> + <path d="M0.092493-1.71626 10.53-1.15376 21.0276 0.553809 31.3759
> 3.27561 41.4048 6.94903 51.1654 11.5055 60.4854 16.8871 69.2961 23.028
> 77.5298 29.798 85.1321 37.1392 91.9881 45.0638 98.02 53.4335 103.109
> 62.1333 107.25 71.1596 110.32 80.4632 112.247 89.9086 112.902 99.4474
> 113.527 108.76 115.372 117.784 118.32 126.713 122.313 135.41 127.292
> 143.813 133.088 151.941 139.734 159.559 147.137 166.769 155.155 173.36
> 163.727 179.273 172.798 184.512 182.29 188.943 192.089 192.51 191.834
> 192.439 199.996 194.058 199.327 197.43 191.165 195.811C191.079 195.794
> 190.994 195.77 190.911 195.74L180.835 192.057 171.077 187.488 161.773
> 182.102 152.97 176.015 144.738 169.231 137.141 161.816 130.287 153.934
> 124.333 145.562 119.187 136.84 115.055 127.787 112.003 118.466 110.098
> 108.99 109.473 99.6776 108.878 90.5914 107.055 81.5368 104.125 72.5904
> 100.141 63.8667 95.23 55.4415 89.3869 47.3112 82.7429 39.6108 75.3452
> 32.452
> + 67.3289 25.847 58.7646 19.8629 49.7096 14.6195 40.2202 10.176 30.4991
> 6.59939 20.4724 3.94619 10.345 2.27876-0.092493 1.71626ZM197.096 181.479
> 222.341 199.029 193.154 208.695Z" fill="#890857" transform="matrix(1 0 0 -1
> 2468.5 1113.53)"/>
> + <path d="M0.0142748-1.71869 37.6393-1.40619 56.1033-0.968266 74.1162-
> 0.405411 91.5677 0.282584 108.209 1.0958 124.032 1.97138 138.811 3.03569
> 152.384 4.099 164.666 5.28927 170.254 5.917 175.456 6.54359 180.246
> 7.23647 184.618 7.86102 188.55 8.55768 192.081 9.25098 195.079 9.95147
> 197.643 10.6553 199.7 11.3802 201.269 12.1502C201.394 12.2131 201.512
> 12.2911 201.619 12.3825L202.494 13.1325C202.684 13.2956 202.836 13.4982
> 202.94 13.7263L203.252 14.4138 203.565 15.1013 203.119 14.5075 203.994
> 15.2575 203.644 15.0252 205.019 15.7127 206.762 16.3177 209.143 16.9678
> 212.017 17.639 215.456 18.3135 219.3 18.9952 223.618 19.611 228.371 20.299
> 233.518 20.9186 239.067 21.542 251.291 22.7268 264.822 23.7865 279.561
> 24.8482 295.283 25.7214 311.959 26.5333 329.318 27.2201 347.304 27.7821
> 365.722 28.1566 380.37 28.2979 380.337 31.7352 365.653 31.5934 347.196
> 31.2179 329.182 30.6549 311.791 29.9667 295.092 29.1536 279.314
> + 28.2768 264.553 27.2135 250.959 26.1482 238.683 24.958 233.107 24.3314
> 227.879 23.701 223.132 23.014 218.7 22.3798 214.794 21.6865 211.233 20.986
> 208.232 20.2822 205.613 19.5573 203.481 18.7873 202.106 18.0998C201.981
> 18.0369 201.863 17.9589 201.756 17.8675L200.881 17.1175C200.691 16.9544
> 200.539 16.7518 200.435 16.5237L200.123 15.8362 199.81 15.1487 200.256
> 15.7425 199.381 14.9925 199.731 15.2248 198.55 14.6198 196.732 13.9697
> 194.296 13.2985 191.419 12.624 187.95 11.9423 184.132 11.264 179.754
> 10.6385 175.044 9.95641 169.871 9.333 164.334 8.71073 152.116 7.526
> 138.564 6.46431 123.843 5.40363 108.041 4.5292 91.4323 3.71742 74.0088
> 3.03041 56.0217 2.46827 37.6107 2.03119-0.0142748 1.71869ZM375.903
> 16.223 403.269 30.2377 375.637 43.7217Z" fill="#890857" transform="matrix(1
> 0 0 -1 2849.5 1796.74)"/>
> + <path d="M2849.52 1794.78 2868.52 1795.03 2887.45 1795.85 2906.05
> 1797.1 2924.23 1798.85 2941.83 1800.98 2958.63 1803.49 2974.62 1806.37
> 2989.49 1809.57 3003.23 1813.02 3015.62 1816.73 3021.31 1818.69 3026.61
> 1820.71 3031.47 1822.73 3035.92 1824.82 3039.92 1826.91 3043.47 1829.1
> 3046.57 1831.36 3049.18 1833.57 3051.29 1835.92C3051.34 1835.98 3051.39
> 1836.05 3051.44 1836.12L3052.87 1838.31C3052.94 1838.41 3053 1838.51
> 3053.04 1838.63L3053.91 1840.88C3053.96 1841 3054 1841.13 3054.01
> 1841.26L3054.33 1843.44 3054.64 1845.63 3054.54 1845.25 3055.41 1847.5
> 3055.25 1847.18 3056.69 1849.37 3056.54 1849.17 3058.47 1851.36 3060.8
> 1853.32 3063.7 1855.42 3067.01 1857.4 3070.88 1859.49 3075.17 1861.51
> 3079.91 1863.48 3085.09 1865.39 3090.68 1867.31 3102.93 1870.98 3116.54
> 1874.4 3131.3 1877.57 3147.12 1880.43 3163.88 1882.92 3181.33 1885.04
> 3199.42 1886.79 3217.99 1888.04 3232.84 1888.55 3232.72 1891.99 3217.76
> 1891.46
> + 3199.08 1890.21 3180.92 1888.46 3163.37 1886.32 3146.51 1883.82 3130.58
> 1880.93 3115.71 1877.73 3101.94 1874.27 3089.56 1870.56 3083.9 1868.61
> 3078.59 1866.65 3073.7 1864.62 3069.25 1862.51 3065.24 1860.35 3061.67
> 1858.2 3058.57 1855.93 3055.9 1853.64 3053.96 1851.45C3053.91 1851.39
> 3053.86 1851.32 3053.81 1851.26L3052.38 1849.07C3052.31 1848.97 3052.25
> 1848.86 3052.21 1848.75L3051.34 1846.5C3051.29 1846.38 3051.25 1846.25
> 3051.24 1846.12L3050.92 1843.93 3050.61 1841.74 3050.71 1842.12 3049.84
> 1839.87 3050 1840.19 3048.56 1838.01 3048.71 1838.2 3046.95 1836.18
> 3044.55 1834.14 3041.66 1832.02 3038.33 1829.96 3034.45 1827.93 3030.15
> 1825.9 3025.39 1823.92 3020.19 1821.94 3014.63 1820.02 3002.39 1816.35
> 2988.76 1812.93 2974.01 1809.75 2958.12 1806.89 2941.42 1804.39 2923.9
> 1802.27 2905.82 1800.53 2887.3 1799.28 2868.48 1798.47 2849.48
> 1798.22ZM3228.52 1876.42 3255.7 1890.8 3227.88 1903.91Z" fill="#890857"/>
> + <path d="M2578 1103.75 2638.5 1103.75 2638.5 1080 2686 1127.5 2638.5
> 1175 2638.5 1151.25 2578 1151.25Z" fill="#0071C5" fill-rule="evenodd" fill-
> opacity="0.501961"/>
> + <path d="M2956.92 1877.31 3000.36 1919.95 3016.93 1903.07 3017.55
> 1969.96 2950.65 1970.59 2967.22 1953.71 2923.79 1911.07Z" fill="#0071C5"
> fill-rule="evenodd" fill-opacity="0.501961"/>
> + <path d="M939.5 833.5C939.5 818.588 950.469 806.5 964 806.5 977.531
> 806.5 988.5 818.588 988.5 833.5 988.5 848.412 977.531 860.5 964 860.5
> 950.469 860.5 939.5 848.412 939.5 833.5Z" stroke="#006047" stroke-
> width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" fill="#008564"
> fill-rule="evenodd"/>
> + <path d="M965.792 655.5 965.792 730.981C965.792 732.247 964.766
> 733.273 963.501 733.273L963.5 733.273 965.792 730.981 965.792 783.546
> 961.208 783.546 961.208 730.981C961.208 729.716 962.235 728.69 963.5
> 728.69L963.501 728.69 961.209 730.981 961.209 655.5ZM977.25 778.963 963.5
> 806.463 949.75 778.963Z" fill="#008563"/>
> + <text font-family="Arial,Arial_MSFontService,sans-serif" font-weight="400"
> font-size="55" transform="matrix(1 0 0 1 815.508 946)">false</text>
> + <text font-family="Arial,Arial_MSFontService,sans-serif" font-weight="400"
> font-size="55" transform="matrix(1 0 0 1 1029.08 808)">true</text>
> + <path d="M1507.5 1114.5C1507.5 1099.59 1518.69 1087.5 1532.5 1087.5
> 1546.31 1087.5 1557.5 1099.59 1557.5 1114.5 1557.5 1129.41 1546.31 1141.5
> 1532.5 1141.5 1518.69 1141.5 1507.5 1129.41 1507.5 1114.5Z"
> stroke="#006047" stroke-width="9.16667" stroke-linejoin="round" stroke-
> miterlimit="10" fill="#008564" fill-rule="evenodd"/>
> + <path d="M1535.38 900.5 1535.38 993.849C1535.38 995.114 1534.35
> 996.14 1533.09 996.14L1532.5 996.14 1534.79 993.849 1534.79 1064.28
> 1530.21 1064.28 1530.21 993.849C1530.21 992.583 1531.23 991.557 1532.5
> 991.557L1533.09 991.557 1530.8 993.849 1530.8 900.5ZM1546.25 1059.7
> 1532.5 1087.2 1518.75 1059.7Z" fill="#008563"/>
> + <text font-family="Arial,Arial_MSFontService,sans-serif" font-weight="400"
> font-size="55" transform="matrix(1 0 0 1 1405.87 1282)">true</text>
> + <text font-family="Arial,Arial_MSFontService,sans-serif" font-weight="400"
> font-size="55" transform="matrix(1 0 0 1 1590.37 1071)">false</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="400" font-size="64" transform="matrix(1 0 0 1 328.764
> 396)">Start</text>
> + <path d="M0 0 177.266 0 177.266 2109.2 354.533 2109.2" stroke="#008563"
> stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10"
> fill="none" fill-rule="evenodd" transform="matrix(1.83697e-16 1 1 -1.83697e-16
> 2113.5 1180.5)"/>
> + <path d="M4225.53 1612.5 4225.53 2311.62C4225.53 2312.89 4224.5
> 2313.91 4223.23 2313.91L583.414 2313.91 583.414 2309.33 4223.23 2309.33
> 4220.94 2311.62 4220.94 1612.5ZM588 2325.37 560.5 2311.62 588 2297.87Z"
> fill="#008563"/>
> + <path d="M4223.5 1536.5 4223.5 1612.57" stroke="#008563" stroke-
> width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" fill="none" fill-
> rule="evenodd"/>
> + <path d="M2464 1438.17C2464 1423.72 2475.72 1412 2490.17
> 1412L3146.83 1412C3161.28 1412 3173 1423.72 3173 1438.17L3173
> 1542.83C3173 1557.28 3161.28 1569 3146.83 1569L2490.17 1569C2475.72
> 1569 2464 1557.28 2464 1542.83Z" fill="#0071C5" fill-rule="evenodd" fill-
> opacity="0.501961"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 2601 1512)">HTTP
> </text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="64" transform="matrix(1 0 0 1 2753.4
> 1512)">HEAD/GET</text>
> + <path d="M2337 1468.5 2398 1468.5 2398 1445 2445 1492 2398 1539 2398
> 1515.5 2337 1515.5Z" fill="#0071C5" fill-rule="evenodd" fill-
> opacity="0.501961"/>
> + <rect x="3253" y="1715" width="424" height="102" fill="#5D1682" fill-
> opacity="0.501961"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="50" transform="matrix(1 0 0 1 3362.57
> 1783)">GetData</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="50" transform="matrix(1 0 0 1 3536.17 1783)">()</text>
> + <text fill="#890C58" font-family="Calibri,Calibri_MSFontService,sans-serif"
> font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1
> 3195.85 1686)">EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL</text>
> + <rect x="3256" y="1840" width="421" height="102" fill="#5D1682" fill-
> opacity="0.501961"/>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="50" transform="matrix(1 0 0 1 3322.5
> 1908)">GeOemData</text>
> + <text font-family="Calibri,Calibri_MSFontService,sans-serif" font-
> weight="700" font-size="50" transform="matrix(1 0 0 1 3579.17 1908)">()</text>
> + </g>
> +</svg>
> diff --git a/RedfishClientPkg/Readme.md b/RedfishClientPkg/Readme.md
> index 0aec0580..69dc33d3 100644
> --- a/RedfishClientPkg/Readme.md
> +++ b/RedfishClientPkg/Readme.md
> @@ -31,13 +31,13 @@ Redfish property with HII option.
>
> The current design of UEFI Redfish Client EDK2 Implementation can already
> support the provisioning of firmware-owned platform Redfish resource, however,
> -this requires addtional support on edk2 HII. Therefore, provisioning of
> +this requires additional support on edk2 HII. Therefore, provisioning of
> firmware managed platform Redfish resource would be the second stage.
>
> Below are the block diagrams of UEFI Redfish Client EDK2 Implementation.
>
> ## <a name="[0]">EDK2 Redfish Client Implementation Diagrams</a>
> -![UEFI Redfish Client Implementation](https://github.com/changab/edk2-
> staging/blob/edk2-redfish-
> client/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg?raw=tru
> e)
> +![UEFI Redfish Client Implementation](https://github.com/tianocore/edk2-
> redfish-
> client/blob/main/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.s
> vg?raw=true)
>
> ## EFI EDK2 Redfish Client Framework
> The functionality of each block in the diagrams are described in below sections,
> @@ -89,7 +89,7 @@ Redfish service to platform configurations, or vice versa to
> update platform
> configurations to Redfish service. Both EDK2 Redfish Non-Collection and
> Collection Feature drivers are script auto-generated base on Redfish schema
> naming. The EDK2 Redfish Non-Collection feature driver manages the resource of
> -specific Resdifsh resource type, while the EDK2 Redfish Collection feature
> +specific Redfish resource type, while the EDK2 Redfish Collection feature
> driver manages the members which have the same resource type in collection
> resource (e.g the ComputerSystem resource and ComputerSystemCollection
> resource)
> .
> @@ -100,18 +100,30 @@ platform configuration format and storage from EDK2
> Redfish Feature driver.
> This protocol provides the interfaces to get and set platform configuration with
> the format and configuration storage agnostic to the Redfish feature driver.
> The platform can provide its own EDKII Redfish Platform Config driver instance
> -to access platform-specific configuration format and storage. On EDK2 open
> -source, EDKII Redfish Platform Config Protocol accesses the platform
> -configuration in EDK2 HII defined format.
> +to access platform-specific configuration format and storage.
> +
> +On EDK2 open source, EDKII Redfish Platform Config Protocol accesses the
> +platform configuration in EDK2 HII defined format. Below is driver stack diagram
> +which implements EDKII Redfish Platform Config Protocol. The protocol driver
> +leverages the HII interface to get or set the HII configuration on platform. By
> +following the x-uefi-redfish Configure Language defined in UNI file, protocol
> +driver can find corresponding HII question for given Redfish attribute. In this
> +way, protocol driver creates the mapping between HII questions and Redfish
> +attributes.
> +
> +![platform config](https://github.com/nicklela/edk2-redfish-client/blob/update-
> readme/RedfishClientPkg/Documents/Media/redfish-platform-config-protocol-
> stack.svg?raw=true)
>
> Below is the prototype of **EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL**,
>
> ```C
> struct _EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL {
> - EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE GetValue;
> - EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE SetValue;
> - EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG
> GetConfigureLang;
> - EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA
> GetSupportedSchema;
> + UINT64 Revision;
> + EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE GetValue;
> + EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE SetValue;
> + EDKII_REDFISH_PLATFORM_CONFIG_GET_DEFAULT_VALUE
> GetDefaultValue;
> + EDKII_REDFISH_PLATFORM_CONFIG_GET_ATTRIBUTE GetAttribute;
> + EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG
> GetConfigureLang;
> + EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA
> GetSupportedSchema;
> };
> ```
>
> @@ -181,11 +193,10 @@ x-uefi-redfish-Processor.v1_0_0
> ```
> #### x-uefi-redfish Configure Language format:
> - The string declared with x-uefi-redfish configure language is a path to the
> property
> -in Redfish resource
> +in Redfish schema.
> - The root of path is the Redfish resource type indicated in x-uefi-redfish
> configure
> language
> -- The path is relative to root of Redfish resource type, not related to Redfish
> service
> -- root.
> +- The path is relative to root of [Redfish
> schema](https://redfish.dmtf.org/redfish/schema_index) defined by DMTF, not
> related to Redfish service root.
>
> #### Examples,
> ```C
> @@ -215,7 +226,135 @@ EDK2 Build is responsible to pull the necessary EDK2
> Redfish JSON Schema to C
> Structure Convertors and EDK2 Redfish Feature drivers into edk2 build process
> according to the x-uefi-Redfish config language used in the HII VFR forms.
>
> +## EDK2 Redfish client feature driver
> +![foundation driver stack](https://github.com/nicklela/edk2-redfish-
> client/blob/update-readme/RedfishClientPkg/Documents/Media/redfish-
> foundation-driver-stack.svg?raw=true)
> +
> +Above diagram shows the way how Redfish application (Redfish feature driver)
> works with Redfish foundation
> +drivers and communicate with Redfish service. Redfish feature driver relies on
> Redfish Config driver to
> +provide the information of desired Rest Ex instance. To achieve this, Redfish
> feature driver has to provide
> +EDKII Redfish Config Handler Protocol and Redfish Config driver will use this
> protocol to deliver Redfish
> +service information.
> +
> +```C
> +struct _EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL {
> + EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL_INIT Init;
> + EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL_STOP Stop;
> +};
> +```
> +
> +![feature driver call flow](https://github.com/nicklela/edk2-redfish-
> client/blob/update-readme/RedfishClientPkg/Documents/Media/redfish-feature-
> driver-call-flow.svg?raw=true)
> +
> +Above diagram shows the details of how Redfish feature core driver invokes
> Redfish feature drivers. To be called
> +by Redfish feature core driver, Redfish feature driver has to register the managed
> URI to Redfish feature core
> +driver. Then Redfish feature core driver learns the dependency of each different
> feature drivers.
> +
> +#### Dispatch Redfish feature drivers
> +When given event is signaled, Redfish feature core driver starts the operation of
> invoking Redfish feature drivers
> +by following the order from left to right in Redfish URI list. In the diagram, the
> feature driver which manages
> +service root will be invoked first. And feature driver which manages computer
> system collection will be invoked
> +at second position. Once Redfish feature core driver walks through entire Redfish
> URI, the operation is stopped.
> +
> +### Interface between collection feature driver and non-collection feature driver
> +Redfish collection resource is a set of Redfish non-collection resource. Redfish
> collection feature driver works
> +with non-collection feature driver to manage them. For example, boot option
> collection feature driver work with
> +boot option feature driver to manage boot options in Redfish service. Computer
> system collection feature driver
> +work with computer system feature driver to manage computer system
> resource.
> +
> +The interface between collection feature driver and non-collection feature driver
> is EDKII Redfish resource config
> +protocol.
> +
> +```C
> +struct _EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL {
> + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_PROVISIONING
> Provisioning;
> + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_CONSUME Consume;
> + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_UPDATE Update;
> + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_CHECK Check;
> + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_IDENTIFY Identify;
> + EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_GET_INFO GetInfo;
> +};
> +```
> +
> +### Feature driver event
> +Two events are defined for feature driver to perform necessary operation at
> given time.
> +- Ready-to-Provisioning event
> + - Feature driver which requires to do operation before Redfish feature driver
> starts the synchronization can listen to
> + this event. For example, boot option feature driver may want to refresh boot
> order variable and get latest boot order
> + information before provisioning the boot options to boot options resource.
> +- After-Provisioning event
> + - Feature driver which wants to do operation after Redfish feature driver finish
> the synchronization job can listen to
> + this event.
> +
> +### Reboot required
> +When Redfish feature drivers apply user request to platform, a system reboot is
> usually required. PCD
> `gEfiRedfishClientPkgTokenSpaceGuid.PcdRedfishSystemRebootRequired` is
> introduced for this purpose. After Redfish feature
> +core driver is done with synchronization job, Redfish feature core driver checks
> this PCD and perform system reboot when
> +PCD is set to `TRUE`.
> +
> +### Synchronization design between Redfish service and BIOS
> +The purpose of Redfish feature driver is to do the synchronization job between
> Redfish service and BIOS. The operation of synchronization can be simply divided
> into two types:
> +
> +#### Provisioning resource
> +Below is the flow diagram of provisioning platform configuration to Redfish
> service at Bios resource. With the x-uefi-redfish
> +configure language described in above section, Redfish feature driver collect all
> BIOS attributes from HII database and populated
> +them to Redfish service.
> +![provisioning](https://github.com/nicklela/edk2-redfish-client/blob/update-
> readme/RedfishClientPkg/Documents/Media/redfish-call-flow-
> provisioning.svg?raw=true)
> +
> +#### Consume resource
> +Below is the flow diagram of consuming user request from Redfish service to
> platform configuration. Redfish feature driver finds
> +corresponding HII question and apply user desired value to platform.
> +![pending settings](https://github.com/nicklela/edk2-redfish-
> client/blob/update-readme/RedfishClientPkg/Documents/Media/redfish-call-
> flow-pending-settings.svg?raw=true)
> +
> +Below diagram shows the call flow of EDKII Resource Config Protocol and how to
> use this protocol to handle synchronization
> +job.
> +![synchronization](https://github.com/nicklela/edk2-redfish-client/blob/update-
> readme/RedfishClientPkg/Documents/Media/redfish-synchronization-
> design.svg?raw=true)
> +
> +Several interfaces defined in EDKII Redfish Resource Config Protocol work
> together to support Redfish synchronization:
> +- Identify()
> + - This function is used to check and see if given Redfish resource is the one
> feature driver wants to manage. A platform
> + library `RedfishReesourceIdentifyLib` is introduced for platform to implement
> its own policy to identify Redfish resource.
> +- Check()
> + - This function is used to check the attribute status on Redfish service. If all
> attributes that feature driver managed
> + are presented in Redfish service, feature driver must provision them already.
> Otherwise, Provisioning() will be called
> + to perform resource provisioning job.
> +- Provisioning()
> + - When this function is called, feature driver will provision all attributes that it
> managed to Redfish service. This
> + operation usually create new resource at Redfish service and require different
> operation that Redfish service specified.
> +- Consume()
> + - When there is pending settings in Redfish service, this function is called for
> feature driver to consume pending settings
> + requested by user.
> +- Update()
> + - When platform configuration is updated, this function is called to update
> configuration changes to Redfish service and
> + Redfish service can show the latest settings on platform.
> +
> +The EDKII Redfish Resource Addendum Protocol is introduced to provide
> platform addendum data that Redfish service requires.
> +This protocol will be called at Provisioning() and Update() functions so platform
> can add OEM attribute or any other attribute
> +that Redfish service specified.
> +
> +```C
> +struct _EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL {
> + UINT64 Revision; ///< Protocol revision
> + EDKII_REDFISH_RESOURCE_ADDENDUM_OEM GetOemData; ///< Get
> OEM data
> + EDKII_REDFISH_RESOURCE_ADDENDUM_DATA GetData; ///< Get
> addendum data
> +};
> +```
> +
> +#### Redfish service implementation
> +The idea of Redfish synchronization design is to manage Redfish resource
> directly by platform firmware. To do this, Redfish
> +synchronization functions have to work with Redfish service implementation in
> BMC firmware. This is because the interface
> +between platform firmware and BMC firmware is not defined in any
> specification.
> +Several prerequisites must be satisfied:
> +- Platform firmware has permission to manage Redfish resource. BMC has ability
> to tell the difference between platform request
> + and out-of-band user. This can normally be done by identifying the bootstrap
> account in HTTP request. The bootstrap account is
> + described in Host Interface specification 1.3.0 section 9.
> +- The ability to tell if there is user changes to Redfish resource or not. Redfish
> feature drivers can only be executed at POST
> + time. So the modification to BIOS managed resource is asynchronous
> operation. Thus, we need below supports in Redfish service:
> + - ETAG support in HTTP header.
> + - Setting resource support (defined in Redfish specification 1.18 section 9.10).
> + - Redfish Task support to POST and DELETE operation made by user in Redfish
> collection resource and Redfish actions.
> +
> +### Redfish Task design
> +TBD.
> +
> ## The Contributors
> -Chang, Abner <abner.chang@hpe.com>\
> -Wang, Nickle <nickle.wang@hpe.com>\
> +Chang, Abner <abner.chang@amd.com>\
> +Wang, Nickle <nicklew@nvidia.com>\
> Chen, Aaron <aaron.chen@hpe.com>
> --
> 2.17.1
>
>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#108543): https://edk2.groups.io/g/devel/message/108543
Mute This Topic: https://groups.io/mt/101316997/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 220173 bytes --]
next parent reply other threads:[~2023-09-12 15:11 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <17842F54FF047469.5496@groups.io>
2023-09-12 15:11 ` Nickle Wang via groups.io [this message]
2023-09-12 15:09 [edk2-devel] [edk2-redfish-client][PATCH] RedfishClientPkg: update Readme.md Nickle Wang via groups.io
2023-09-14 4:48 ` Chang, Abner via groups.io
2023-10-03 12:03 ` Nickle Wang 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=MW4PR12MB703141D1C6D98B90EF7B889DD9F1A@MW4PR12MB7031.namprd12.prod.outlook.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