This file defines the EFI Redfish Discover Protocol interface.\r
\r
(C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>\r
+ Copyright (c) 2022, AMD Incorporated. All rights reserved.\r
\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
\r
#include <IndustryStandard/RedfishHostInterface.h>\r
\r
-#define REDFISH_DISCOVER_VERSION 0x00010000\r
-#define EFI_REDFISH_DISCOVER_NETWORK_INTERFACE_TPL TPL_NOTIFY\r
+#define REDFISH_DISCOVER_VERSION 0x00010000\r
+#define EFI_REDFISH_DISCOVER_NETWORK_INTERFACE_TPL TPL_NOTIFY\r
\r
//\r
-//GUID definitions\r
+// GUID definitions\r
//\r
\r
#define EFI_REDFISH_DISCOVER_TCP4_INSTANCE_GUID \\r
// the network interface.\r
//\r
typedef struct {\r
- EFI_GUID ProtocolGuid; ///< Network protocol GUID.\r
- EFI_GUID ProtocolServiceGuid; ///< Network protocol service GUID.\r
- UINT32 ProtocolDiscoverId; ///< The identifier installed on network protocol handle.\r
- EFI_HANDLE ProtocolControllerHandle; ///< The controller handle on network protocol.\r
- VOID *NetworkProtocolInterface; ///< The protocol interface of network protocol.\r
+ EFI_GUID ProtocolGuid; ///< Network protocol GUID.\r
+ EFI_GUID ProtocolServiceGuid; ///< Network protocol service GUID.\r
+ UINT32 ProtocolDiscoverId; ///< The identifier installed on network protocol handle.\r
+ EFI_HANDLE ProtocolControllerHandle; ///< The controller handle on network protocol.\r
+ VOID *NetworkProtocolInterface; ///< The protocol interface of network protocol.\r
} REDFISH_DISCOVER_NETWORK_INTERFACE_PROTOCOL;\r
\r
//\r
// interface properties.\r
//\r
typedef struct {\r
- LIST_ENTRY Entry; ///< Link list entry.\r
- EFI_HANDLE OpenDriverAgentHandle; ///< The agent to open network protocol.\r
- EFI_HANDLE OpenDriverControllerHandle; ///< The controller handle to open network protocol.\r
- UINTN HwAddressSize; ///< The size of network interface hardware address.\r
- EFI_MAC_ADDRESS MacAddress; ///< MAC address of network interface.\r
- CHAR16 *StrMacAddr; ///< String to MAC address of network interface.\r
- BOOLEAN GotSubnetInfo; ///< Indicates sub net information is retrieved.\r
- EFI_IP_ADDRESS SubnetAddr; ///< Subnet ID.\r
- EFI_IP_ADDRESS SubnetMask; ///< Subnet mask (IPv4 only)\r
- UINT8 SubnetPrefixLength; ///< Subnet prefix.\r
- UINT16 VlanId; ///< VLAN ID\r
- UINT32 SubnetAddrInfoIPv6Number; ///< IPv6 address info number.\r
- EFI_IP6_ADDRESS_INFO *SubnetAddrInfoIPv6; ///< IPv6 address info.\r
+ LIST_ENTRY Entry; ///< Link list entry.\r
+ EFI_HANDLE OpenDriverAgentHandle; ///< The agent to open network protocol.\r
+ EFI_HANDLE OpenDriverControllerHandle; ///< The controller handle to open network protocol.\r
+ UINTN HwAddressSize; ///< The size of network interface hardware address.\r
+ EFI_MAC_ADDRESS MacAddress; ///< MAC address of network interface.\r
+ CHAR16 *StrMacAddr; ///< String to MAC address of network interface.\r
+ BOOLEAN GotSubnetInfo; ///< Indicates sub net information is retrieved.\r
+ EFI_IP_ADDRESS SubnetAddr; ///< Subnet ID.\r
+ EFI_IP_ADDRESS SubnetMask; ///< Subnet mask (IPv4 only)\r
+ UINT8 SubnetPrefixLength; ///< Subnet prefix.\r
+ UINT16 VlanId; ///< VLAN ID\r
+ UINT32 SubnetAddrInfoIPv6Number; ///< IPv6 address info number.\r
+ EFI_IP6_ADDRESS_INFO *SubnetAddrInfoIPv6; ///< IPv6 address info.\r
//\r
// Network interface protocol and REST EX infor.\r
//\r
- UINT32 NetworkProtocolType; ///< Network protocol type. Refer to\r
- ///< NETWORK_INTERFACE_PROTOCOL_TYPE.\r
- REDFISH_DISCOVER_NETWORK_INTERFACE_PROTOCOL NetworkInterfaceProtocolInfo; ///< Network interface protocol information.\r
- EFI_HANDLE RestExHandle; ///< REST EX handle associated with this network interface.\r
+ UINT32 NetworkProtocolType; ///< Network protocol type. Refer to\r
+ ///< NETWORK_INTERFACE_PROTOCOL_TYPE.\r
+ REDFISH_DISCOVER_NETWORK_INTERFACE_PROTOCOL NetworkInterfaceProtocolInfo; ///< Network interface protocol information.\r
+ EFI_HANDLE RestExHandle; ///< REST EX handle associated with this network interface.\r
+ //\r
+ // EFI_REDFISH_DISCOVER_PROTOCOL instance installed\r
+ // on this network interface.\r
+ //\r
+ EFI_HANDLE EfiRedfishDiscoverProtocolHandle; ///< EFI_REDFISH_DISCOVER_PROTOTOCOL instance installed\r
+ ///< on this network interface.\r
} EFI_REDFISH_DISCOVER_NETWORK_INTERFACE_INTERNAL;\r
\r
//\r
// Internal structure used to maintain REST EX properties.\r
//\r
typedef struct {\r
- LIST_ENTRY Entry; ///< Link list entry.\r
- EFI_HANDLE OpenDriverAgentHandle; ///< The agent to open network protocol.\r
- EFI_HANDLE OpenDriverControllerHandle; ///< The controller handle to open network protocol.\r
- EFI_HANDLE RestExChildHandle; ///< The child handle created throught REST EX Service Protocol.\r
- EFI_HANDLE RestExControllerHandle; ///< The controller handle which provide REST EX protocol.\r
- EFI_REST_EX_PROTOCOL *RestExProtocolInterface; ///< Pointer to EFI_REST_EX_PROTOCOL.\r
- UINT32 RestExId; ///< The identifier installed on REST EX controller handle.\r
+ LIST_ENTRY Entry; ///< Link list entry.\r
+ EFI_HANDLE OpenDriverAgentHandle; ///< The agent to open network protocol.\r
+ EFI_HANDLE OpenDriverControllerHandle; ///< The controller handle to open network protocol.\r
+ EFI_HANDLE RestExChildHandle; ///< The child handle created throught REST EX Service Protocol.\r
+ EFI_HANDLE RestExControllerHandle; ///< The controller handle which provide REST EX protocol.\r
+ EFI_REST_EX_PROTOCOL *RestExProtocolInterface; ///< Pointer to EFI_REST_EX_PROTOCOL.\r
+ UINT32 RestExId; ///< The identifier installed on REST EX controller handle.\r
} EFI_REDFISH_DISCOVER_REST_EX_INSTANCE_INTERNAL;\r
\r
/**\r
(EFIAPI *EFI_REDFISH_DISCOVER_GET_SUBNET_INFO)(\r
IN EFI_HANDLE ImageHandle,\r
IN EFI_REDFISH_DISCOVER_NETWORK_INTERFACE_INTERNAL *Instance\r
-);\r
+ );\r
\r
//\r
// The require network protocol matrix.\r
//\r
typedef struct {\r
- UINT32 ProtocolType; ///< Network protocol type,\r
- ///< Refer to NETWORK_INTERFACE_PROTOCOL_TYPE.\r
- CHAR16 *ProtocolName; ///< Protocol name.\r
- EFI_GUID *RequiredProtocolGuid; ///< Network protocol interface GUID.\r
- EFI_GUID *RequiredServiceBindingProtocolGuid; ///< Network protocol service GUID.\r
- EFI_GUID *DiscoveredProtocolGuid; ///< Protocol interface GUID use to install identifier.\r
- EFI_REDFISH_DISCOVER_GET_SUBNET_INFO GetSubnetInfo; ///< Function of getting subnet information.\r
+ UINT32 ProtocolType; ///< Network protocol type,\r
+ ///< Refer to NETWORK_INTERFACE_PROTOCOL_TYPE.\r
+ CHAR16 *ProtocolName; ///< Protocol name.\r
+ EFI_GUID *RequiredProtocolGuid; ///< Network protocol interface GUID.\r
+ EFI_GUID *RequiredServiceBindingProtocolGuid; ///< Network protocol service GUID.\r
+ EFI_GUID *DiscoveredProtocolGuid; ///< Protocol interface GUID use to install identifier.\r
+ EFI_REDFISH_DISCOVER_GET_SUBNET_INFO GetSubnetInfo; ///< Function of getting subnet information.\r
} REDFISH_DISCOVER_REQUIRED_PROTOCOL;\r
\r
//\r
// Link list of Redfish discover instance.\r
//\r
typedef struct {\r
- LIST_ENTRY NextInstance; ///< Next list.\r
- EFI_REDFISH_DISCOVERED_INSTANCE *Instance; ///< Pointer to EFI_REDFISH_DISCOVERED_INSTANCE.\r
+ LIST_ENTRY NextInstance; ///< Next list.\r
+ EFI_REDFISH_DISCOVERED_INSTANCE *Instance; ///< Pointer to EFI_REDFISH_DISCOVERED_INSTANCE.\r
} EFI_REDFISH_DISCOVERED_INTERNAL_LIST;\r
\r
//\r
// Internal structure of Redfish discover instance.\r
//\r
typedef struct {\r
- LIST_ENTRY Entry; ///< Link list entry.\r
- EFI_HANDLE Owner; ///< The owner owns this Redfish service discovery.\r
- ///< It's the EFI image handle of driver uses\r
- ///< EFI Redfish Discover Protocol.\r
- EFI_REDFISH_DISCOVER_FLAG DiscoverFlags; ///< EFI_REDFISH_DISCOVER_FLAG\r
- EFI_REDFISH_DISCOVERED_TOKEN *DiscoverToken; ///< Token used to signal when Redfish service is discovered.\r
- EFI_REDFISH_DISCOVER_NETWORK_INTERFACE_INTERNAL *NetworkInterface; ///< EFI_REDFISH_DISCOVER_NETWORK_INTERFACE_INTERNAL\r
- ///< instance used to discover Redfish service.\r
+ LIST_ENTRY Entry; ///< Link list entry.\r
+ EFI_HANDLE Owner; ///< The owner owns this Redfish service discovery.\r
+ ///< It's the EFI image handle of driver uses\r
+ ///< EFI Redfish Discover Protocol.\r
+ EFI_REDFISH_DISCOVER_FLAG DiscoverFlags; ///< EFI_REDFISH_DISCOVER_FLAG\r
+ EFI_REDFISH_DISCOVERED_TOKEN *DiscoverToken; ///< Token used to signal when Redfish service is discovered.\r
+ EFI_REDFISH_DISCOVER_NETWORK_INTERFACE_INTERNAL *NetworkInterface; ///< EFI_REDFISH_DISCOVER_NETWORK_INTERFACE_INTERNAL\r
+ ///< instance used to discover Redfish service.\r
//\r
// Below for Host insterface discovery.\r
//\r
- BOOLEAN HostIntfValidation; ///< Indicates whether to validate Redfish Host interface.\r
- EFI_IP_ADDRESS TargetIpAddress; ///< Target IP address reported in Redfish Host interface.\r
+ BOOLEAN HostIntfValidation; ///< Indicates whether to validate Redfish Host interface.\r
+ EFI_IP_ADDRESS TargetIpAddress; ///< Target IP address reported in Redfish Host interface.\r
} EFI_REDFISH_DISCOVERED_INTERNAL_INSTANCE;\r
\r
/**\r
**/\r
EFI_STATUS\r
AddAndSignalNewRedfishService (\r
- IN EFI_REDFISH_DISCOVERED_INTERNAL_INSTANCE *Instance,\r
- IN UINTN *RedfishVersion OPTIONAL,\r
- IN CHAR8 *RedfishLocation OPTIONAL,\r
- IN CHAR8 *Uuid OPTIONAL,\r
- IN CHAR8 *Os OPTIONAL,\r
- IN CHAR8 *OsVer OPTIONAL,\r
- IN CHAR8 *Product OPTIONAL,\r
- IN CHAR8 *ProductVer OPTIONAL,\r
- IN BOOLEAN UseHttps\r
+ IN EFI_REDFISH_DISCOVERED_INTERNAL_INSTANCE *Instance,\r
+ IN UINTN *RedfishVersion OPTIONAL,\r
+ IN CHAR8 *RedfishLocation OPTIONAL,\r
+ IN CHAR8 *Uuid OPTIONAL,\r
+ IN CHAR8 *Os OPTIONAL,\r
+ IN CHAR8 *OsVer OPTIONAL,\r
+ IN CHAR8 *Product OPTIONAL,\r
+ IN CHAR8 *ProductVer OPTIONAL,\r
+ IN BOOLEAN UseHttps\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
RedfishGetHostInterfaceProtocolData (\r
- IN EFI_SMBIOS_PROTOCOL *Smbios,\r
- OUT REDFISH_INTERFACE_DATA **DeviceDescriptor,\r
- OUT REDFISH_OVER_IP_PROTOCOL_DATA **ProtocolData\r
+ IN EFI_SMBIOS_PROTOCOL *Smbios,\r
+ OUT REDFISH_INTERFACE_DATA **DeviceDescriptor,\r
+ OUT REDFISH_OVER_IP_PROTOCOL_DATA **ProtocolData\r
);\r
\r
-extern EFI_GUID gRedfishDiscoverTcp4Instance;\r
-extern EFI_GUID gRedfishDiscoverTcp6Instance;\r
-extern EFI_GUID gRedfishDiscoverRestEXInstance;\r
+extern EFI_GUID gRedfishDiscoverTcp4Instance;\r
+extern EFI_GUID gRedfishDiscoverTcp6Instance;\r
+extern EFI_GUID gRedfishDiscoverRestEXInstance;\r
#endif\r