UEFI Manageability and REST Services

Similar documents
PreBoot Provisioning Solutions with UEFI

Building Better Firmware Experience An OEM Perspective

System Prep Applications A Powerful New Feature in UEFI 2.5

Firmware in the datacenter: Goodbye PXE and IPMI. Welcome HTTP Boot and Redfish!

Hardware Prototyping Using a Windows-Hosted UEFI environment

Lessons Learned from Implementing a Wi-Fi and BT Stack

UEFI What is it? Spring 2017 UEFI Seminar and Plugfest March 27-31, 2017 Presented by Dong Wei (ARM) presented by. Updated

UEFI in Arm Platform Architecture

UEFI Forum Update. UEFI Spring Plugfest March 29-31, 2016 Presented by Dong Wei (The UEFI Forum)

ARM Trusted Firmware ARM UEFI SCT update

Manufacturing Tools in the UEFI Secure Boot Environment

Using the UEFI Shell. October 2010 UEFI Taipei Plugfest Insyde Software

Standardized Firmware for ARMv8 based Volume Servers

UEFI Plugfest March

"Last Mile" Barriers to Removing Legacy BIOS

Firmware Test Suite - Uses, Development, Contribution and GPL

Implementing Advanced USB Interrupt Transfers

System Firmware and Device Firmware Updates using Unified Extensible Firmware Interface (UEFI) Capsules

Tailoring TrustZone as SMM Equivalent

QL45xxx UEFI HII BIOS. 5/4/2016 Karl Erickson

Implementing MicroPython as a UEFI Test Framework

Implementing Secure Boot: A Refresher on Key & Database Configuration

Strengthening the Chain of Trust. Kevin Lane HP Jeff Bobzin Insyde Software

Intel Transparent Computing

Mohan J. Kumar Intel Fellow Intel Corporation

Firmware Implementation Techniques to Achieve Windows 8 Fast Boot

Creating Advanced Graphics Libraries on top of GOP

Enabling Advanced NVMe Features Through UEFI

UEFI State of the Union Ecosystem enabling update

YANG Device Profile for Redfish Network Management. Joe White, David Black, John Leung Distributed Management Task Force

Lesson 14 SOA with REST (Part I)

UEFI updates, Secure firmware and Secure Services on Arm

Scalable Platform Management Forum. Forum Status 10/30/2014

ARM Server s Firmware Security

UEFI Plugfest Dupont, WA

Develop Mobile Front Ends Using Mobile Application Framework A - 2

End-to-End Interoperable Management: The Standards Requirement for Modern IT

Windows To Go and USB Boot

Microsoft UEFI Certification Authority

Reactive Microservices Architecture on AWS

OVERVIEW OF ETSI M2M RELEASE 1 STAGE 3 API AND RESOURCE USAGE

UEFI and IoT: Best Practices in Developing IoT Firmware Solutions

COURSE 20487B: DEVELOPING WINDOWS AZURE AND WEB SERVICES

Fall 2017 UEFI Plugfest Agenda

Looking for a Swiss knife for storage ecosystem management? A comparative study of SMI-S, Redfish and Swordfish

Engineering UEFI Firmware for Windows: Best Practices and Pitfalls to Avoid

UEFI and the Security Development Lifecycle

Boot Mode Considerations: BIOS vs. UEFI

Developing Windows Azure and Web Services

Debugging under Unified Extensible Firmware Interface (UEFI): Addressing DXE Driver Challenges

Using Ansible and Redfish to automate systems management. Jose Delarosa May 9, 2018

General Firmware Overview of Recommendations for Window OS

Please give me your feedback

Comparison on BIOS between UEFI and Legacy

Redfish: The next generation of server management automation

Choosing an Interface

Determine the DN of an Object Within the APIC GUI

The TPM 2.0 specs are here, now what?

CS 498RK FALL RESTFUL APIs

Intel. Rack Scale Design: A Deeper Perspective on Software Manageability for the Open Compute Project Community. Mohan J. Kumar Intel Fellow

DMTF Standards for OCP Platforms Management

CS50 Quiz Review. November 13, 2017

StorageGRID Webscale NAS Bridge Management API Guide

NVM Express TM Management Interface

The Role UEFI Technologies Play in ARM Platform Architecture

AMD Security and Server innovation

Integration Services 2014

Attacking and Defending the Platform

UPnP Design by Example

Il Mainframe e il paradigma dell enterprise mobility. Carlo Ferrarini zsystems Hybrid Cloud

Leveraging Windows Update to Distribute Firmware Updates Model Based Servicing (MBS)

Introduction to RESTful Web Services. Presented by Steve Ives

SwordfIshJS - A SwordfIsh JS Library Vinod Eswaraprasad, Sowmya B Wipro Technologies

A Modern Interface for Managing Compute, Storage and Network 12 th International Conference on Network and Service Management - October 2016

AIM Enterprise Platform Software IBM z/transaction Processing Facility Enterprise Edition 1.1.0

Redfish Device Enablement Proposals Work-In-Progress

Application Acceleration Beyond Flash Storage

InfiniBand Linux Operating System Software Access Layer

Index LICENSED PRODUCT NOT FOR RESALE

New Standard for Remote Monitoring and Management of NVMe SSDs: NVMe-MI

Out-of-band (OOB) Management of Storage Software through Baseboard Management Controller Piotr Wysocki, Kapil Karkra Intel

Managing Persistent Memory Tiffany Kasanicky Intel

Please note: This is a working document and is subject to change. Please check back periodically to ensure you have the latest version of this spec.

Designing Interoperability into IA-64 Systems: DIG64 Guidelines

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

vsphere Installation and Setup Update 2 Modified on 10 JULY 2018 VMware vsphere 6.5 VMware ESXi 6.5 vcenter Server 6.5

Redfish Tasks. Jeff Hilland HPE

Specification 11/07/2017. Copyright 2017 FUJITSU LIMITED. Version 5.0

REST Easy with Infrared360

Looking for a Swiss knife for storage ecosystem management? A comparative study of SMI-S, Redfish and Swordfish

Cisco UCS Configuration Utility Quick Start Guide

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

Introduction to Service Availability Forum

OpenDCRE Next-Generation Data Center Management. Andrew Cencini & Steven White VP Engineering / Chief Architect Vapor IO

UEFI Security Response Team (USRT)

HTTP GET

OCP Ready. and OCP Checkbox Overview

A RESTful Approach to the Management of Cloud Infrastructure. Swit Phuvipadawat Murata Laboratory

MS-20487: Developing Windows Azure and Web Services

Transforming Management for Modern Scale-Out Infrastructure

Transcription:

presented by UEFI Manageability and REST Services Fall 2017 UEFI Seminar and Plugfest October 30 November 3, 2017 Presented by Abner Chang (HPE), Ting Ye (Intel) UEFI Plugfest October 2017 www.uefi.org 1

Agenda Introduction UEFI Manageability Real Use Case: UEFI iscsi REST in UEFI Insufficient Capabilities in and Proposals for Enhancement Summary & Call to Action UEFI Plugfest October 2017 www.uefi.org 2

Introduction UEFI Plugfest October 2017 www.uefi.org 3

Introduction Today s platforms have amazing capabilities, but they are complex to configure Firmware configuration model is still focused on Press <DEL> to Enter Setup Remote management isn t consistent UEFI has abundant firmware manageability interfaces, and is adopting REST/Redfish, but there are still gaps in the standard UEFI Plugfest October 2017 www.uefi.org 4

Goals Overview of UEFI manageability interfaces & Human Interface Infrastructure (HII) Examples of handling configuration data Overview of protocol Proposals to cover gaps in REST services Background of REST service provider and U Client UEFI Plugfest October 2017 www.uefi.org 5

UEFI Manageability UEFI Plugfest October 2017 www.uefi.org 6

UEFI Manageability Human Interface Infrastructure HII s x-uefi language Keyword Handler Configuration Namespace UEFI Plugfest October 2017 www.uefi.org 7

Human Interface Infrastructure HII Database Package containing forms + strings Package containing forms + strings Add-in Device UEFI Driver Export Data O/S Boot Forms Browser/Processor UEFI Plugfest October 2017 www.uefi.org 8

HII s Content Registration: HII Font, Font Ex, Font Glyph Generator HII Image, Image Ex Image Decoder HII String HII Database Browser : Config Access / Routing Form Browser HII Popup UEFI Plugfest October 2017 www.uefi.org 9

Multiple Language Support UEFI Plugfest October 2017 www.uefi.org 10

x-uefi: a UEFI Language machine-to-machine language String Pack Language Token #1 String Pack Language Token #1 String Pack Language Token #1 ENG BIOS Vendor SPA Vendedor de BIOS x-uefi BIOS_VENDOR_KEYWORD... String Pack Language NULL UEFI Plugfest October 2017 www.uefi.org 11

How To Use This Language Retrieve platform exported data Get String Token of x-uefi keyword Find op-code using the string token UEFI Plugfest October 2017 www.uefi.org 12

Real Use Case: UEFI iscsi UEFI Plugfest October 2017 www.uefi.org 13

Real Use Case: UEFI iscsi iscsi is a popular network boot target UEFI iscsi defines a number of dynamic HII forms UEFI Plugfest October 2017 www.uefi.org 14

UEFI Plugfest October 2017 www.uefi.org 15

iscsi x-uefi keywords Registered to http://uefi.org/confignamespace iscsiinitiatorname ReadWrite iscsimacaddr ReadWrite iscsiattemptname:# ReadOnly iscsiaddattempts ReadWrite iscsibootenable:# ReadWrite iscsideleteattempts ReadWrite iscsiconnectretry:# ReadWrite iscsidisplayattemptlist ReadOnly UEFI Plugfest October 2017 www.uefi.org 16

x-uefi Usage Example iscsiinitiatorname VFR file string varid = ISCSI_CONFIG_IFR_NVDATA.InitiatorName, prompt = STRING_TOKEN(STR_ISCSI_CONFIG_INIT_NAME), UNI file #string STR_ISCSI_CONFIG_INIT_NAME #string STR_ISCSI_CONFIG_INIT_NAME #language en-us "iscsi Initiator Name #language x-uefi "iscsiinitiatorname" Script file IScsiScript -i iqn.edkii.intel.com UEFI Plugfest October 2017 www.uefi.org 117

General Guidelines OEMs Get keywords definition from http://uefi.org/confignamespace Use KeywordHandler.GetData/ SetData Firmware vendors Get HII updates from the latest Intel UEFI Development Kit IHVs Define and register x-uefi keywords Support keyword setting in ConfigAccess.RouteConfig Application (e.g. Browser, Management App) EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL EFI_HII_CONFIG_ROUTING_PROTOCOL OEMs EFI_HII_CONFIG_ACCESS_PROTOCOL Device (e.g.motherboard, Add-in Card, etc.) 1 3 5 2 Firmware Vendors 4 IHVs UEFI Plugfest October 2017 www.uefi.org 18

REST in UEFI UEFI Plugfest October 2017 www.uefi.org 19

REST in UEFI REST = REpresentational State Transfer (architecture) Most common client/server REST interface is HTTP HTTP protocol Client HTTP verbs like PUT, GET, POST, PATCH, HEAD and DELETE URL XML, JSON and etc. HTTP request header and body. HTTP response header and body. UEFI Plugfest October 2017 www.uefi.org 20

How does REST Relate to UEFI? Setup Browser HII Forms HII Database Config Access / UEFI Variable Device UEFI Driver UEFI Plugfest October 2017 www.uefi.org 21

How does REST Relate to UEFI? #x-uefi Keyword "iscsiinitiatorname" Platform Management Driver Keyword Handler Setup Browser HII Forms HII Database Device UEFI Driver EFI_REST_PROTOCOL Config Access / UEFI Variable Internet Redfish s Configure Redfish BIOS property Remotely BIOS Redfish Attribute iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 22

How does REST Relate to UEFI? #x-uefi Keyword "iscsiinitiatorname" Platform Management Driver Keyword Handler Setup Browser HII Forms HII Database Device UEFI Driver EFI_REST_PROTOCOL Config Access / UEFI Variable Internet Redfish s Configure Redfish BIOS property Remotely BIOS Redfish Attribute iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 23

How does REST Relate to UEFI? #x-uefi Keyword "iscsiinitiatorname" Platform Management Driver Keyword Handler HII Form HII Database Device UEFI Driver EFI_REST_PROTOCOL Config Access / UEFI Variable Internet Redfish s Configure Redfish BIOS property Remotely BIOS Redfish Attribute iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 24

How does REST Relate to UEFI? #x-uefi Keyword "iscsiinitiatorname" Platform Management Driver Keyword Handler Setup Browser HII Forms HII Database Device UEFI Driver EFI_REST_PROTOCOL Config Access / UEFI Variable Redfish s Configure Redfish BIOS property Remotely BMC BIOS Redfish Attribute iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 25

How does REST Relate to UEFI? #x-uefi Keyword "iscsiinitiatorname" Platform Management Driver Keyword Handler HII Form HII Database Device UEFI Driver EFI_REST_PROTOCOL Config Access / UEFI Variable Redfish s Configure Redfish BIOS property Remotely BMC BIOS Redfish Attribute iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 26

How does REST Relate to UEFI? #x-uefi Keyword "iscsiinitiatorname" Platform Management Driver Keyword Handler HII Form HII Database Device UEFI Driver EFI_REST_PROTOCOL Config Access / UEFI Variable Client Redfish s Configure Redfish BIOS property Remotely BMC BIOS Redfish Attribute iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 27

in UEFI Spec v2.5 use HTTP-like message as the format of REST service request and response typedef struct _EFI_REST_PROTOCOL { EFI_REST_SEND_RECEIVE SendReceive; EFI_REST_GET_TIME GetServiceTime; } EFI_REST_PROTOCOL; Client EFI_HTTP_MESSAGE EFI_HTTP_MESSAGE Response UEFI Plugfest October 2017 www.uefi.org 28

in UEFI Spec v2.5 driver instances may use different underlying protocol to communicate with REST server. #x-uefi Keyword "iscsiinitiatorname" Client BIOS Redfish Attribute iscsiinitiatorname" Driver Instance Driver Instance Through EFI Network stack Platform specific protocol to REST server provided by BMC UEFI Plugfest October 2017 www.uefi.org 29

Insufficient Capabilities in and Proposals for Enhancement UEFI Plugfest October 2017 www.uefi.org 30

Are Capabilities Sufficient? Are capabilities sufficient for UEFI Manageability? Are capabilities sufficient for the modern REST Services? UEFI Plugfest October 2017 www.uefi.org 31

Are Capabilities Sufficient? How can we support a variety of in-band/out of band UEFI management models as shown in this figure? Client Client client client Client client 1 OOB Redfish In-band OData EFI REST OOB Redfish In-band EFI REST Platform 1 Platform 2 In-band EFI REST OOB OData OOB Redfish iscsiinitiatorname" Redfish REST service Remote Redfish REST service owned by Platform 2 iscsiinitiatorname" Remote OData REST service owned by Platform 1 iscsiinitiatorname" Out of band REST driver instance In-band REST driver instance UEFI Plugfest October 2017 www.uefi.org 32

Are Capabilities Sufficient? How can we support On-platform/Off-Platform REST services for clients? On-platform REST Service (such as BMC or others) Off-platform REST service Client Driver Client iscsiinitiatorname" iscsiinitiatorname" Client (Platform Management, HII configuration) Client iscsiinitiatorname" Client Application Client Driver Instance UEFI Plugfest October 2017 www.uefi.org Reso urce Vendor-specific REST Service 33

Suggestions for Enhancements Multiple driver instances for different REST services The information of REST service The location of REST service Asynchronous request and response Address the events from REST service UEFI Plugfest October 2017 www.uefi.org 34

Suggestions for Enhancements Multiple driver instances for different REST services Multiple driver instances can be installed on system for communicating to different REST services. The client drivers and applications can use the specific protocol to access to REST service. iscsiinitiatorname" Keyword Handler Platform Management Driver iscsiinitiatorname" iscsiinitiatorname" Vendor-specific REST Service iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 35

Suggestions for Enhancements The information of REST service? Each driver instance has to provide the information about REST service it supports. This is OData REST service iscsiinitiatorname" Keyword Handler Platform Management Driver This is Redfish REST service iscsiinitiatorname" iscsiinitiatorname" This is vendorspecific REST service Vendor-specific REST Service iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 36

Suggestions for Enhancements The location of REST service? Each driver instance has to provide the information about the location of REST service. On-platform REST Keyword Handler iscsiinitiatorname" Platform Management Driver This is inband REST driver instance This is out of band REST driver instance EFI EX iscsiinitiatorname" iscsiinitiatorname" This is out of band REST driver instance Vendor-specific REST Service iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org Off-platform REST service 37

Suggestions for Enhancements Synchronous request and response leads to a downtime SendReceive() function provided in protocol is synchronous transfer. client has to wait for the response once it sends the request out. Platform Management Driver Execution Timeline Response SendReceive () Downtime wait for the response iscsiinitiatorname" www.uefi.org 38

Suggestions for Enhancements Asynchronous request and response Support asynchronous SendReceive() function to provide efficient REST request and response. Also provides the better user experience when users use client application Execution timeline Platform Management Driver Asynchronous Send and Receive EFI Timer Event Token Response iscsiinitiatorname" #x-uefi Keyword "iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 39

Suggestions for Enhancements Address the events from REST service Most of REST service support event capability to indicate the changes of resource. User can register the event for certain type resource change such as resource created, modified, deleted and etc. Platform Management Driver Execution Timeline Subscribe Event Event Service Subscribe Event Event notification Event Token iscsiinitiatorname" #x-uefi Keyword "iscsiinitiatorname" Configure BIOS setting Remotely UEFI Plugfest October 2017 www.uefi.org 40

Summary & Call to Action UEFI Plugfest October 2017 www.uefi.org 41

Summary UEFI provides interfaces for improved manageability (HII, x-uefi, Keyword handle protocol, EFI REST protocol) Improvements to REST are required for adoption of standardized manageability UEFI Plugfest October 2017 www.uefi.org 42

Call to Action Define and register more x-uefi keywords Enhance current for flexible, scalable and user friendly interfaces for Clients Asynchronous request/response in the enhanced EFI REST Event subscription for monitoring resource changes in enhanced Provide sufficient information for target REST service UEFI Plugfest October 2017 www.uefi.org 43

Thanks for attending the Fall 2017 UEFI Plugfest For more information on the UEFI Forum and UEFI Specifications, visit http://www.uefi.org presented by UEFI Plugfest October 2017 www.uefi.org 44

Backup UEFI Plugfest October 2017 www.uefi.org 45

What is REST? REpresentational State Transfer, which is a software architecture style. There are some constraints applied to this architecture. No client context stored in server. The necessary state is contained within request itself. *The request contains the unique identifier of resource and the request body contains the state (or state change) of that resource *The state after server processed the request is retuned in response body. Client Layered system SW, HW or middleware Uniform Interface Between client and server Nouns and Verbs Client and, separating the user interface from resource. Which improves portability and scalability. * Client don t have to concern the data storage * don t have to concern the user interface and user state. could be identified Separate resource from representation represented separately in certain formats manipulation through representations UEFI Plugfest October 2017 www.uefi.org 46

REST in HTTP HTTP is not the only interface (protocol) for REST architecture. However, it s most commonly used in Web REST service. Any transport interface which is unified to REST service and have the well defined verb to manipulate resource could be the interface between REST server and REST client. HTTP protocol Client HTTP verbs like PUT, GET, POST, PATCH, HEAD and DELETE URL XML, JSON and etc. HTTP request header and body. HTTP response header and body. UEFI Plugfest October 2017 www.uefi.org 47

REST Client and REST Services UEFI Plugfest October 2017 www.uefi.org 48

REST Services There are many REST Services and Providers. Most of those services provide RESTful APIs which are Web service API adhere to REST constraints. Those are called RESTful services. openstack RESTful Service OData RESTful Service Client Redfish RESTful Service AWS RESTful Service Vendor-specific REST Service UEFI Plugfest October 2017 www.uefi.org 49

REST Service and Client Client Driver Client Client (Platform Management, HII configuration) Client #x-uefi Keyword "iscsiinitiatorname" iscsiinitiatorname" Client Application Client Driver Instance Vendor-specific REST Service UEFI Plugfest October 2017 www.uefi.org 50

Suggestions for Enhancements The location of REST service provided by specific driver instance Each driver instance has to provide the information about the location of REST service it supports. Out-of-band ) EFI Network Stack Client Application/Drivers In-band Underlying Interface to REST service On platform Off platform REST Service on another platform REST or web Service server on another in which platform REST the resource or web Service is owned server on another in by which platform the another resource or web platform is server owned in by which the another resource platform is owned by another platform www.uefi.org On Platform REST Service On Platform REST Service Manage platform in out of band Remote OS REST client UEFI Plugfest October 2017 www.uefi.org 51

Suggestions for Enhancements Asynchronous request and response Enhancement of SendReceive() function provided in protocol is synchronous transfer. EFI REST client has to wait for the response once it sends the request out. Client Execution timeline Asynchronous Send and Receive Usage example, Add Prefer: respond-async to HTTP message header Support asynchronous SendReceive() function to provide efficient REST request and response. Also provide the better user experience when users use client application EFI Timer Return HTTP 202 and URI for the status polling Check URI status for the response Event Token response Signal event token to indicate the response is ready. Return HTTP 200 to indicate the response is ready. iscsiinitiatorname" Return HTTP 202 to indicate the request is still in process. #x-uefi Keyword "iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 52

Suggestions for Enhancements Asynchronous request and response Enhancement of SendReceive() function provided in protocol is synchronous transfer. EFI REST client has to wait for the response once it sends the request out. Support asynchronous SendReceive() function to provide efficient REST request and response. Also provide the better user experience when users use client application The way how REST service returns final response to REST driver instance is REST service implementation-specific and transparent to REST client. Execution Usage example, timeline Add Prefer: respond-async The content of URI which pointed to HTTP by message HTTP header Location header is REST service implementation-specific and not AsynSendReceive () Client defined in REST specification. REST EX driver instance provider should have knowledge about EFI Timer how to poll the status of returning response resource from given HTTP Location header. Event Token Signal Event token to indicate the response is ready. Return HTTP 200 to indicate the response is ready. Return HTTP 202 and URI for the status polling Check URI status for the response Return HTTP 202 to indicate the request is still in process. UEFI Plugfest October 2017 www.uefi.org 53

Suggestions for Enhancements Address the events from REST service Enhancement of Most of REST service support event capability to indicate the changes of resource. The user can register the event for certain type resource change such as resource created, modified, deleted, etc. Client Event Service Subscribe Event Event sent to specific URI iscsiinitiatorname" #x-uefi Keyword "iscsiinitiatorname" UEFI Plugfest October 2017 www.uefi.org 54 Vendor-specific REST Service

Suggestions for Enhancements Multiple clients to access to different REST service Each child instance communicates to different REST services. Enhancement of Client Client Client Client Client UEFI Plugfest October 2017 www.uefi.org 55

Suggestions for Enhancements Multiple clients to access to one REST service Each child instance communicates to different REST services. Or multiple child instances access to the same REST service. Enhancement of Client Client Client Client Client UEFI Plugfest October 2017 www.uefi.org 56