MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RedfishDiscover.h File Reference

Data Structures

struct  EFI_REDFISH_DISCOVERED_INFORMATION
 
struct  EFI_REDFISH_DISCOVERED_INSTANCE
 
struct  EFI_REDFISH_DISCOVERED_LIST
 
struct  EFI_REDFISH_DISCOVER_NETWORK_INTERFACE
 
struct  EFI_REDFISH_DISCOVERED_TOKEN
 
struct  _EFI_REDFISH_DISCOVER_PROTOCOL
 

Macros

#define EFI_REDFISH_DISCOVER_PROTOCOL_GUID
 
#define REDFISH_DISCOVER_TOKEN_SIGNATURE   SIGNATURE_32 ('R', 'F', 'T', 'S')
 
#define EFI_REDFISH_DISCOVER_HOST_INTERFACE   0x00000001
 Discover Redfish server reported in SMBIOS 42h. More...
 
#define EFI_REDFISH_DISCOVER_SSDP   0x00000002
 Discover Redfish server using UPnP Http search method. More...
 
#define EFI_REDFISH_DISCOVER_SSDP_UDP6   0x00000004
 Use UDP version 6. More...
 
#define EFI_REDFISH_DISCOVER_KEEP_ALIVE   0x00000008
 EFI_REDFISH_DISCOVER_DURATION_MASK. More...
 
#define EFI_REDFISH_DISCOVER_RENEW   0x00000010
 
#define EFI_REDFISH_DISCOVER_VALIDATION   0x80000000
 Validate Redfish service for host interface instance. More...
 
#define EFI_REDFISH_DISCOVER_DURATION_MASK   0x0f000000
 

Typedefs

typedef UINT32 EFI_REDFISH_DISCOVER_FLAG
 
typedef struct
_EFI_REDFISH_DISCOVER_PROTOCOL 
EFI_REDFISH_DISCOVER_PROTOCOL
 
typedef EFI_STATUS(EFIAPIEFI_REDFISH_DISCOVER_NETWORK_LIST )(IN EFI_REDFISH_DISCOVER_PROTOCOL *This, IN EFI_HANDLE ImageHandle, OUT UINTN *NumberOfNetworkInterfaces, OUT EFI_REDFISH_DISCOVER_NETWORK_INTERFACE **NetworkInterfaces)
 
typedef EFI_STATUS(EFIAPIEFI_REDFISH_DISCOVER_ACQUIRE_SERVICE )(IN EFI_REDFISH_DISCOVER_PROTOCOL *This, IN EFI_HANDLE ImageHandle, IN EFI_REDFISH_DISCOVER_NETWORK_INTERFACE *TargetNetworkInterface, IN EFI_REDFISH_DISCOVER_FLAG Flags, IN EFI_REDFISH_DISCOVERED_TOKEN *Token)
 
typedef EFI_STATUS(EFIAPIEFI_REDFISH_DISCOVER_ABORT_ACQUIRE )(IN EFI_REDFISH_DISCOVER_PROTOCOL *This, IN EFI_REDFISH_DISCOVER_NETWORK_INTERFACE *TargetNetworkInterface)
 
typedef EFI_STATUS(EFIAPIEFI_REDFISH_DISCOVER_RELEASE_SERVICE )(IN EFI_REDFISH_DISCOVER_PROTOCOL *This, IN EFI_REDFISH_DISCOVERED_LIST *List)
 

Variables

EFI_GUID gEfiRedfishDiscoverProtocolGuid
 

Detailed Description

This file defines the EFI Redfish Discover Protocol interface.

(C) Copyright 2021 Hewlett Packard Enterprise Development LP

SPDX-License-Identifier: BSD-2-Clause-Patent

Revision Reference:
  • Some corrections and revises are added to UEFI Specification 2.9.
  • This Protocol is introduced in UEFI Specification 2.8.

Macro Definition Documentation

#define EFI_REDFISH_DISCOVER_DURATION_MASK   0x0f000000

2 to the Power of Duration. The valid value of duration is between 3 to 15. The corresponding duration is 8 to 2^15 seconds. Duration is only valid when EFI_REDFISH_DISCOVER_KEEP_ALIVE is set to 1.

#define EFI_REDFISH_DISCOVER_HOST_INTERFACE   0x00000001

Discover Redfish server reported in SMBIOS 42h.

#define EFI_REDFISH_DISCOVER_KEEP_ALIVE   0x00000008

EFI_REDFISH_DISCOVER_DURATION_MASK.

Keep to send UPnP Search in the duration indicated in

#define EFI_REDFISH_DISCOVER_PROTOCOL_GUID
Value:
{ \
0x5db12509, 0x4550, 0x4347, { 0x96, 0xb3, 0x73, 0xc0, 0xff, 0x6e, 0x86, 0x9f } \
}
#define EFI_REDFISH_DISCOVER_RENEW   0x00000010

Set this bit to indicate this function to notify the caller a list of all Redfish servers it found. Otherwise, this fucntion just notify the caller new found Redfish servers.

#define EFI_REDFISH_DISCOVER_SSDP   0x00000002

Discover Redfish server using UPnP Http search method.

#define EFI_REDFISH_DISCOVER_SSDP_UDP6   0x00000004

Use UDP version 6.

#define EFI_REDFISH_DISCOVER_VALIDATION   0x80000000

Validate Redfish service for host interface instance.

#define REDFISH_DISCOVER_TOKEN_SIGNATURE   SIGNATURE_32 ('R', 'F', 'T', 'S')

Typedef Documentation

typedef EFI_STATUS(EFIAPI * EFI_REDFISH_DISCOVER_ABORT_ACQUIRE)(IN EFI_REDFISH_DISCOVER_PROTOCOL *This, IN EFI_REDFISH_DISCOVER_NETWORK_INTERFACE *TargetNetworkInterface)

This function aborts Redfish service discovery on the given network interface.

Parameters
[in]ThisEFI_REDFISH_DISCOVER_PROTOCOL instance.
[in]TargetNetworkInterfaceTarget NIC to do the discovery.
Return values
EFI_SUCCESSREST EX instance of discovered Redfish services are returned.
OthersFail to abort Redfish service discovery.

This function acquires Redfish services by discovering static Redfish setting according to Redfish Host Interface or through SSDP. Returns a list of EFI handles in EFI_REDFISH_DISCOVERED_LIST. Each of EFI handle has cooresponding EFI REST EX instance installed on it. Each REST EX isntance is a child instance which created through EFI REST EX serivce protoocl for communicating with specific Redfish service.

Parameters
[in]ThisEFI_REDFISH_DISCOVER_PROTOCOL instance.
[in]ImageHandleEFI image owns these Redfish service instances.
[in]TargetNetworkInterfaceTarget NIC to do the discovery. NULL means discover Redfish service on all NICs on platform.
[in]FlagsRedfish service discover flags.
[in]TokenEFI_REDFISH_DISCOVERED_TOKEN instance. The memory of EFI_REDFISH_DISCOVERED_LIST and the strings in EFI_REDFISH_DISCOVERED_INFORMATION are all allocated by Acquire() and must be freed when caller invoke Release().
Return values
EFI_SUCCESSREST EX instance of discovered Redfish services are returned.
EFI_INVALID_PARAMETERSImageHandle == NULL, Flags == 0, Token == NULL, Token->Timeout > 5, or Token->Event == NULL.
OthersFail acquire Redfish services.
typedef EFI_STATUS(EFIAPI * EFI_REDFISH_DISCOVER_NETWORK_LIST)(IN EFI_REDFISH_DISCOVER_PROTOCOL *This, IN EFI_HANDLE ImageHandle, OUT UINTN *NumberOfNetworkInterfaces, OUT EFI_REDFISH_DISCOVER_NETWORK_INTERFACE **NetworkInterfaces)

This function gets the NIC list which Redfish discover protocol can discover Redfish service on it.

Parameters
[in]ThisEFI_REDFISH_DISCOVER_PROTOCOL instance.
[in]ImageHandleEFI Image handle request the NIC list,
[out]NumberOfNetworkInterfacesNumber of NICs can do Redfish service discovery.
[out]NetworkInterfacesNIC instances. It's an array of instance. The number of entries in array is indicated by NumberOfNetworkInterfaces. Caller has to release the memory allocated by Redfish discover protocol.
Return values
EFI_SUCCESSREST EX instances of discovered Redfish are released.
OthersFail to remove the entry
typedef EFI_STATUS(EFIAPI * EFI_REDFISH_DISCOVER_RELEASE_SERVICE)(IN EFI_REDFISH_DISCOVER_PROTOCOL *This, IN EFI_REDFISH_DISCOVERED_LIST *List)

This function releases Redfish services found by RedfishServiceAcquire().

Parameters
[in]ThisEFI_REDFISH_DISCOVER_PROTOCOL instance.
[in]ListThe Redfish service to release.
Return values
EFI_SUCCESSREST EX instances of discovered Redfish are released.
OthersFail to remove the entry

Variable Documentation

EFI_GUID gEfiRedfishDiscoverProtocolGuid