From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [52.100.173.231]) by mx.groups.io with SMTP id smtpd.web10.8086.1678285037604579423 for ; Wed, 08 Mar 2023 06:17:17 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=VWskZIO8; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 52.100.173.231, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lhbePEC/siKnpLA+r996FldtyAFq9aGpNyQP8CfuJpCTwXjK6mUqHMHH0SAw4yzDWvHm9Dc9lyhh0B+uibAWJ0OAiQiXzxFjeOHMdPzcJja5pOz6tNjh7vrDb6cuqPcS5ee7DK4p2fqpZUy4DHFV1viPtVjWf6W54t9x1ejHMs4voE38cNtcppzoeVOU7PuMb1N97a79rGuNZkVMTjPyyEpVKwIdNx/yNQ5ApPr1rbkqa+wJYZuSJJEl9kns78Nl26Ljk8tvadsO2GX9ouJEVErujVuPl9xGGEdUHYw3QSmrTYTg52tm/sELE0pmdbJGS35ZzsHB9wOXE2/1UdIFRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6ol7Oufcq9Cbz5mdr15Oo5IQaXoeTSuf0+5uo6+2u3A=; b=Nah/s2xxA+4g1gXhxH9QcEKb8q2JNKqWHfp9ZPe4cYZPVuqK164AKJ8fZlNknrrJEqCfci/yDtuSCV73iX2UUJiBg8kpyRz7Z18P/Ua6fiaaesGhzd1696vNjCSCfZ1SVOMH4x6Z67pL8FoqM05ZavIfR9ZMQGAwBqlY0XgXfaKurxPJzSX6KKHowdWAEql5D273hoE3MpVquOlt5S2uE+IYcAmc4reljfJnmGEycx5Zjl1eTkk29j5acWXz7hq/zTAVpJxzFiSIjlm31MX6tJ8YP3n0UshWsom+AZtJQnhnU+O4VtkrtRPifxPMtOIKbnRFt4n7wqKMrQu8fegB1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6ol7Oufcq9Cbz5mdr15Oo5IQaXoeTSuf0+5uo6+2u3A=; b=VWskZIO8G5XTn/BMCASF42Q3JB5apYI1NkihS7AjlC5KnqlTxtN8ZW+P63oyHZhW+sXL6dqPXqRqtVr6BAg9SmR0J85wT72sC7COBDDhcLCVozK6juTZbz4c4RBR5laGKXNEKqtH/NjLc9Wti/2rAYw7uvy7KS4EwSdi8fw+MAA= Received: from CY5PR03CA0003.namprd03.prod.outlook.com (2603:10b6:930:8::11) by IA1PR12MB7759.namprd12.prod.outlook.com (2603:10b6:208:420::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.18; Wed, 8 Mar 2023 14:17:12 +0000 Received: from CY4PEPF0000C982.namprd02.prod.outlook.com (2603:10b6:930:8:cafe::f1) by CY5PR03CA0003.outlook.office365.com (2603:10b6:930:8::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.17 via Frontend Transport; Wed, 8 Mar 2023 14:17:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000C982.mail.protection.outlook.com (10.167.241.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6178.13 via Frontend Transport; Wed, 8 Mar 2023 14:17:11 +0000 Received: from TPE-L1-ABNCHANG.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Wed, 8 Mar 2023 08:17:05 -0600 From: "Chang, Abner" To: CC: Liming Gao , Isaac Oram , Nate DeSimone , Nickle Wang , Igor Kulchytskyy , "Abdul Lateef Attar" , Abdul Lateef Attar Subject: [edk2-platforms][PATCH V2 1/8] ManageabilityPkg: Add Readme file Date: Wed, 8 Mar 2023 22:16:40 +0800 Message-ID: <20230308141647.1318-2-abner.chang@amd.com> X-Mailer: git-send-email 2.37.1.windows.1 In-Reply-To: <20230308141647.1318-1-abner.chang@amd.com> References: <20230308141647.1318-1-abner.chang@amd.com> MIME-Version: 1.0 Return-Path: Abner.Chang@amd.com X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000C982:EE_|IA1PR12MB7759:EE_ X-MS-Office365-Filtering-Correlation-Id: ad03d03b-f779-40c9-782d-08db1fdfcf26 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eUxhb1hzVlEranFSaXZHOTlQaWljNTE0aU1zaU90NXpnRkRkZzY5RGwyMlk3?= =?utf-8?B?RGdXamYvYkMrSmY0Q3NwZWl2UjFuRlYrNGt3SFBiUjViT2dOTmNGUHFFeld1?= =?utf-8?B?RDdaOWlZSUU3bU03dlJuUWNwZmxuU0pOK1lwbEdaSHFGb05LQnVRN3ZVbnVV?= =?utf-8?B?QnFVb25sazlEVDBUTHl4K0xmVDNBTFVPQk5heVgyZFNNb0Q2a2l5T2xoL0di?= =?utf-8?B?SThmMFVObStHZzM5QlBMK0ZEV3VGWXUxU3ZpaDhjdE9rTnhFYXd5ckdSODZF?= =?utf-8?B?RTRFUzJydWtLVXd1ZHBqQTVlRFNkMXJ5RTQwTlpkYzg1bVhHRWtnbGxMcjl3?= =?utf-8?B?Q3VRaGwyeXlsYWRTaFljWGpuL1dRU1J2NUx1RGVCZ2p2Tm56VzFBOWZXc2hQ?= =?utf-8?B?UGFFa1FoTWNkdUJRRXRxenVKQmRGdldwNnB2VmRiL3g4MzJZVlZ2Ty84ZWs0?= =?utf-8?B?NUV3cEcvdFdrRGs2S2FabkNET1ZTeWhhaEdSNXVDYUVoeVh6UjJ2UC9VRk5o?= =?utf-8?B?T2NIamN5ZEFHSE00WlFjaUM2UHR4V2JCYXZPaFdBSHkyOUdGSWZDNjc5UGhH?= =?utf-8?B?U3pMd3lUbnhBeVZnKzdmT2lwRGpNQkt6REFuSEZXeDl3YXhZTDBRMEdDOCt6?= =?utf-8?B?OUdxYmxsdmZyeHlHdEY2RnJhMXJqMnZPVWh2SnQ4bTl4Y3diMnRMaXZFN3pO?= =?utf-8?B?c1FKYUZGY1YxNXpNZTl4alhWL3Y0cGZvVDdUMDQwdDdVRm4wVFhSbUd5ZERs?= =?utf-8?B?ZzZROFl2amtMWmxiaEJOM0dvdlJySllyeHAvbDdEQVFhVlBzdlV0MzhYUVhM?= =?utf-8?B?UXNZWlBjdmYwN1VLbktXTk9BbU1Ud29ubFhCQWFzR2MxNVE1VkhmcUVtQVZX?= =?utf-8?B?dkd3RmVhTDBVOTI4ajdNRlBjS2ZTanBmbWY0OFRzcGZYYjJDYlNpWUVFWTdz?= =?utf-8?B?eEYrcVhKNzVxTGdrN21kMnlGcVAwU0MxY3JmN1JZbjFwZ2Z1RVZTVXlSZGpp?= =?utf-8?B?WndDZHB4MS8zd2RKMEt0dE5mM3lnVkhxMWg4SUhraUMwNTIzdllIalljcVE4?= =?utf-8?B?eG9OanVtNTJmdHUxYVFzL0E2U2dLOFhYS01kSGJ5MldYY00wNXRpdGJkamg0?= =?utf-8?B?bTR1VEhDeHlML2VhMStJcDY4R0l4MDNrZXE2eEtWTjIwa28zYVVzUVlXTjN5?= =?utf-8?B?LzhSSGxzLzRxUnlFc3V1T0FibTVHZTNQUU9QRE80eXphY05yT1lJUE43SFN5?= =?utf-8?B?b1NkZzVnRW5RZ1JueU00OHdVaWlwcmJnVERoallhSGVsOUtRMlcvTE1ubThN?= =?utf-8?B?d2NIMTJJVXZmR1BJSWtSTnRaWFoxTVVSMmpxSEJiUVFLa0xBVldnOUlqOFVZ?= =?utf-8?B?ME5rYnZiZUxNS0M4OHBoUzV5Z3M4Ti9GM1gyK1JKRDRCOHI3ZDlrRVN2Q2xw?= =?utf-8?B?aVJMeXVEVWtEVTNHV0JlWkN6TXNqbFVzbWJNaGNUSzZqQng2R3FjMGhaclpv?= =?utf-8?B?ZlNUK3ZOR3NpZk9wRDRnOUo2YU1qTFRxZWpKZVMyNE5WdjhYQzRrWUd4VGF5?= =?utf-8?B?UUlNQlV5QUtDNFZMTkd4LzV0UDhtdHJmNVVSSmdzSmZObVBHZTZUUTFTNm1n?= =?utf-8?B?T3VpbjBWa2ZwT1lOMEpUcXlxekN0bmc9PQ==?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:5;SRV:;IPV:CAL;SFV:SPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:OSPM;SFS:(13230025)(4636009)(136003)(346002)(39860400002)(396003)(376002)(451199018)(36840700001)(46966006)(40470700004)(36756003)(40140700001)(83380400001)(426003)(47076005)(82740400003)(6666004)(36860700001)(1076003)(26005)(16526019)(186003)(7696005)(336012)(2616005)(40460700003)(70206006)(70586007)(8936002)(86362001)(8676002)(2876002)(2906002)(40480700001)(4326008)(6916009)(41300700001)(5660300002)(19273905006)(30864003)(356005)(81166007)(316002)(478600001)(54906003)(82310400005)(89820200002)(334744004)(36900700001);DIR:OUT;SFP:1501; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2023 14:17:11.5537 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ad03d03b-f779-40c9-782d-08db1fdfcf26 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000C982.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7759 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable From: Abner Chang Add Readme file of edk2 platform ManageabilityPkg. Signed-off-by: Abner Chang Cc: Liming Gao Cc: Isaac Oram Cc: Nate DeSimone Cc: Nickle Wang Cc: Igor Kulchytskyy Cc: Abdul Lateef Attar Reviewed-by: Abdul Lateef Attar --- Features/ManageabilityPkg/Readme.md | 177 +++++ .../Media/ManageabilityDriverStack.svg | 752 ++++++++++++++++++ 2 files changed, 929 insertions(+) create mode 100644 Features/ManageabilityPkg/Readme.md create mode 100644 Features/ManageabilityPkg/Documents/Media/Manageability= DriverStack.svg diff --git a/Features/ManageabilityPkg/Readme.md b/Features/ManageabilityPk= g/Readme.md new file mode 100644 index 0000000000..b56ffb8a86 --- /dev/null +++ b/Features/ManageabilityPkg/Readme.md @@ -0,0 +1,177 @@ +# EDK2 Manageability Package + +edk2 ManageabilityPkg is introduced to provide edk2 drivers and +libraries for industry platform management standards, such as PLDM (Platfo= rm +Level Data Model), MCTP (Management Component Transfer Protocol), IPMI +(Intelligent Platform Management Interface) and others. The framework of +ManageabilityPkg is designed to flexibly support the transport interfaces = for above +industry standards, the transport interfaces such as KCS or I2C for IPMI, = PCI VDM +(Vendor Defined Message), I2C or KCS for MCTP, or the OEM proprietary tran= sports. + +Below figure shows the driver stacks which are abstracted to support dispa= rate +transports for specifications of platform management. +![Manageability Package Driver Stack](https://github.com/tianocore/edk2-pl= atforms/blob/master/Features/ManageabilityPkg/Documents/Media/Manageability= DriverStack.svg) + +## Manageability Transport edk2 Driver Stack +edk2 manageability transport library is designed to incorporated with disp= arate +manageability protocols. In order to flexibly facilitating the transport +functionalities, below functions must be provided by manageability transpo= rt +library to compliant with the framework of ManageabilityPkg design. + +* ### ***AcquireTransportSession()*** + edk2 manageability protocol driver invokes this function to acquire th= e + transport session to transmit manageability packet. The implementation + could reset the transport interface, initial the transport interface + internal structure and the [Manageability Transport Function Structure= ](#manageability-transport-function-structure). + The [Transport Token](#transfer-token) is returned to the caller for f= urther manageability packet + transmit and receive. + + +* ### ***GetTransportCapability()*** + edk2 Manageability protocol driver invokes this function to get the ca= pabilities + of transport interface. The implementation of manageability transport = library + can optionally support advanced features such as multi-sessions on tra= nsport + interface or asynchronous transfer. + +* ### ***ReleaseTransportSession()*** + edk2 manageability protocol driver invokes this function to release th= e transport + session. + + ### **Manageability Transport Function Structure** + + Below is the function structure initiated by the manageability transport= library and + returned in the transport token when caller invokes [AcquireTransportSes= sion](#acquiretransportsession) + function. + + + ***MANAGEABILITY_TRANSPORT_FUNCTION*** is declared as an union to acco= mmodate + different versions of transport function set. This allows the function= added to + support the new functionalities in the future and also keep the backwa= rd compatibility. + Developers can not modify the previous version of function structure, = instead + developers can create a new function structure with the increased vers= ion number + that includes the previous version of function set and new added funct= ions. + +``` + typedef union { + MANAGEABILITY_TRANSPORT_FUNCTION_V1_0 *Version1_0; + } MANAGEABILITY_TRANSPORT_FUNCTION; + + struct _MANAGEABILITY_TRANSPORT_FUNCTION_V1_0 { + MANAGEABILITY_TRANSPORT_INIT TransportInit; + MANAGEABILITY_TRANSPORT_STATUS TransportStatus; + MANAGEABILITY_TRANSPORT_RESET TransportReset; + MANAGEABILITY_TRANSPORT_TRANSMIT_RECEIVE TransportTransmitReceive; + }; +``` +* ***TransportInit()*** + + Manageability protocol driver invokes this function to initial the tra= nsport + interface with the optional hardware configuration of the transport in= terface. + Whether the transport interface requires initialization or not depends= on the + transport interface characteristics. The hardware information is optio= nal passed to + this function if the manageability protocol driver would like to use t= he different + hardware configuration of transport interface. For example, the differ= ent I/O + address of KCS interface, or the memory mapped I/O KCS interface. The = structure + format of hardware information is created according to the hardware de= sign of + transport interface. + +* ***TransportStatus()*** + + Manageability protocol driver invokes this function to get the status = of transport + interface. How does this function report the status depends on the tra= nsport + interface characteristics and the implementation of this function. + +* ***TransportReset()*** + + Manageability protocol driver can invoke this function to reset and re= cover the + transport interface in case the error status is reported by the transp= ort + interface. Whether the transport interface can be reset or not depends= on the + transport interface characteristics and the implementation of this fun= ction. + +* ***TransportTransmitReceive()*** + Manageability protocol driver invokes this function to transmit and/or= receive the + packet. Caller has to setup the [Transfer Token](#transfer-token) when= invoke to + this function. + + ### **Transfer Token** + +``` + struct _MANAGEABILITY_TRANSFER_TOKEN { + EFI_EVENT ReceiveEvent; + MANAGEABILITY_TRANSPORT_HEADER TransmitHeader; + MANAGEABILITY_TRANSPORT_TRAILER TransmitTrailer; + MANAGEABILITY_TRANSMIT_PACKAGE TransmitPackage; + MANAGEABILITY_RECEIVE_PACKAGE ReceivePackage; + EFI_STATUS TransferStatus; + MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS TransportAdditionalStatus= ; +}; +``` + +* ***ReceiveEvent*** + + The optional EFI event is created to wait for the signal of response d= ata + readiness. The parameter is valid only if the transport interface supp= orts + asynchronous transfer. MANAGEABILITY_TRANSPORT_CAPABILITY_ASYNCHRONOUS= _TRANSFER bit + must be set in the returned *TransportCapability* parameter in + [GetTransportCapability()](#gettransportcapability) to indicate the + transport interface is capable for asynchronous transfer. + +* ***TransmitHeader*** + + The transmit header is different according to the disparate transport = interfaces + for the manageability protocol. For example, the transmit header is di= fferent when + MCTP packet is transmitted over I2C and KCS. Having this header abstra= cted from + manageability transport library to make the transport implementation a= gnostic to the + manageability protocol specification. + +* ***TransmitTrailer*** + + The transmit trailer may be different according to the disparate trans= port + interface for the manageability protocol. Having this header abstracte= d from + manageability transport library to make the transport implementation a= gnostic to the + manageability protocol specification. + +* ***TransmitPackage*** + + The buffer of packet to transmit, this could be a value of NULL if the= manageability + protocol is going to harvest the datagram sent by the management entit= y. + +* ***ReceivePackage*** + + The receive buffer, this could be a value of NULL if the manageability + protocol is going to send the request to management endpoint which has= no response + required. + +* ***TransferStatus*** + + In order to support both synchronous and asynchronous transfer with a = unified + function, ***TransportTransmitReceive()*** is designed as a + non return value function. Instead, the status of transmit/receive is = returned + in the transfer token. When the asynchronous transfer, manageability t= ransport + library has to set the status in transfer token before signal ***Recei= veEvent***. + +* ***TransportAdditionalStatus*** + + The additional transport status after the transfer. + +## Industry Standard Manageability Protocol edk2 Driver Stack +The edk2 implementation of industry manageability standards such as IpmiPr= otocol and +MctpProtocol abstract the command layer and provide the unified protocol i= nterface to +build up the manageability packet for subordinate specifications. edk2 man= ageability +protocol driver is linked with desired manageability transport library bas= e on the +platform design. + +## Transport Implementation + + The manageability transport library could have the implementation in li= brary or + invoke the existing edk2 protocol which is defined in UEFI or PI specif= ications. + This is the implementation decision made by the developer when introduc= e a new + manageability transport library. + +## Build the Manageability Package +In order to use the modules provided by ManageabilityPkg, **PACKAGES_PATH*= * must +contains the path to point to [edk2-platform Features](https://github.com/= tianocore/edk2-platforms/tree/master/Features): + +``` +$ export PACKAGES_PATH=3D$PWD/edk2:$PWD/edk2-platforms:$PWD/edk2-platforms= /Features +``` diff --git a/Features/ManageabilityPkg/Documents/Media/ManageabilityDriverS= tack.svg b/Features/ManageabilityPkg/Documents/Media/ManageabilityDriverSta= ck.svg new file mode 100644 index 0000000000..423dfaa34f --- /dev/null +++ b/Features/ManageabilityPkg/Documents/Media/ManageabilityDriverStack.sv= g @@ -0,0 +1,752 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KCS Manageability Transport = Library Insta= nce + + + + + + + + I2C Manageability Transport = Library Insta= nce + + + + + + + + I3C Manageability Transport Library I= nstance + + + + + + + + USB Manageability Transport Library I= nstance + + + + + + + + PCI VDM <= tspan class=3D"TextPosition" x=3D"17165" y=3D"11472">Manageability Transport = Libr= ary Instance + + + + + + + + Others: MMBI, Block transfer,= RMII= , etc. + + + + + + + + KCS Protocol Driver + + + + + + + + SMBus Protocol = Driver + + + + + + + + PCI Protocol Driver + + + + + + + + USB Protocol Driver + + + + + + + + I3C Protocol = Driver + + + + + + + + + + + + + + PLDM Protocol + + + + + + + + MCTP Protocol + + + + + + + Transport <= tspan class=3D"TextPosition" x=3D"9728" y=3D"10248">Library + + + + + + + + IPMI Protocol + + + + + + + Transport = Library + + + + + + + + PLDM BCC<= /text> + + + + + + + + PLDM SMBIOS + + + + + + + + PLDM FRU= + + + + + + + + PLDM PMC= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PLDM + + + + + + + + NVMe Management + + + + + + + + + + + + + + + + + + + + + + IPMI NetFn + + + + + + + + + + + + + + + Redfish HI NetFn + + + + + + + + + + + + + + + + + + + + + + CXL Device CCI + + + + + + + + + + + + + + + + + + + + + + Redfish Credential NetFn + + + + + + + + + + + + + + + + + + + + + + + + + Platform = Replaceable = Library + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The gray box is the optio= nal Implementation that supports:Multiple transfe= r tokens<= tspan id=3D"id83.bp" class=3D"BulletPlaceholder"/>Asynchronous Transfer= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KCS Manageability Transport = Protocol Driv= er + + + + + + + + I2C Manageability Transport = Protocol Driv= er + + + + + + + + PCI VDM <= tspan class=3D"TextPosition" x=3D"23343" y=3D"10670">Manageability Transport = Prot= ocol Driver + + + + + + + + USB Manageability Transport Protocol = Driver + + + + + + + + I3C Manageability Transport Protocol = Driver + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Implementation can call to= the protocol + + + + + + Implementation can call to= the protocol + + + + + + Implementation can call t= o the protocol + + + + + + Implementation can call t= o the protocol + + + + + + Implementation can call t= o the protocol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Industry Standard Manageabi= lity P= rotocol Driver Stack + + + + + + Manageability Transport Driver = Stack + + + + + + Transport = Implementation + + + + + + + + + + + + + + + --=20 2.37.1.windows.1