mirror of https://github.com/acidanthera/audk.git
RedfishPkg/Include: Definitions of SMBIOS Redfish Host Interface
Add definitions of SMBIOS Type 42 Host Interface. Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com> Signed-off-by: Siyuan Fu <siyuan.fu@intel.com> Signed-off-by: Fan Wang <fan.wang@intel.com> Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Jiaxin Wu <jiaxin.wu@intel.com> Cc: Siyuan Fu <siyuan.fu@intel.com> Cc: Fan Wang <fan.wang@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Nickle Wang <nickle.wang@hpe.com> Reviewed-by: Nickle Wang <nickle.wang@hpe.com>
This commit is contained in:
parent
4f808c62a3
commit
dc7e206ac6
|
@ -0,0 +1,169 @@
|
|||
/** @file
|
||||
This file defines the Redfish Interface Specific Data.
|
||||
|
||||
Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
||||
(C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
|
||||
#ifndef REDFISH_HOST_INTERFACE_
|
||||
#define REDFISH_HOST_INTERFACE_
|
||||
|
||||
#include <IndustryStandard/SmBios.h>
|
||||
|
||||
#define REDFISH_HOST_INTERFACE_DEVICE_TYPE_USB 0x02 // We don't support this type of interface.
|
||||
// Use REDFISH_HOST_INTERFACE_DEVICE_TYPE_USB_V2 instead.
|
||||
#define REDFISH_HOST_INTERFACE_DEVICE_TYPE_PCI_PCIE 0x03 // We don't support this type of interface.
|
||||
// Use REDFISH_HOST_INTERFACE_DEVICE_TYPE_PCI_PCIE_V2 instead.
|
||||
#define REDFISH_HOST_INTERFACE_DEVICE_TYPE_USB_V2 0x04
|
||||
#define REDFISH_HOST_INTERFACE_DEVICE_TYPE_PCI_PCIE_V2 0x05
|
||||
|
||||
#define REDFISH_HOST_INTERFACE_HOST_IP_ASSIGNMENT_TYPE_UNKNOWN 0x00
|
||||
#define REDFISH_HOST_INTERFACE_HOST_IP_ASSIGNMENT_TYPE_STATIC 0x01
|
||||
#define REDFISH_HOST_INTERFACE_HOST_IP_ASSIGNMENT_TYPE_DHCP 0x02
|
||||
#define REDFISH_HOST_INTERFACE_HOST_IP_ASSIGNMENT_TYPE_AUTO_CONFIGURE 0x03
|
||||
#define REDFISH_HOST_INTERFACE_HOST_IP_ASSIGNMENT_TYPE_HOST_SELECTED 0x04
|
||||
|
||||
#define REDFISH_HOST_INTERFACE_HOST_IP_ADDRESS_FORMAT_UNKNOWN 0x00
|
||||
#define REDFISH_HOST_INTERFACE_HOST_IP_ADDRESS_FORMAT_IP4 0x01
|
||||
#define REDFISH_HOST_INTERFACE_HOST_IP_ADDRESS_FORMAT_IP6 0x02
|
||||
|
||||
#pragma pack(1)
|
||||
///
|
||||
/// Structure definitions of Host Interface device type 04h (USB Network Interface V2)
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 Length; ///< Length of the structure, including Device Type
|
||||
///< and Length fields.
|
||||
UINT16 IdVendor; ///< The Vendor ID of the device, as read from the
|
||||
///< idVendor field of the USB descriptor.
|
||||
UINT16 IdProduct; ///< The Product ID of the device, as read from the
|
||||
///< idProduct field of the USB descriptor.
|
||||
UINT8 SecialNumberStr; ///< The string number for the Serial Number of the
|
||||
///< device. The string data is read from the
|
||||
///< iSerialNumber.bDescriptorType field of the USB
|
||||
///< descriptor, and is converted from Unicode to ASCII
|
||||
///< and is NULL terminated.
|
||||
UINT8 MacAddress [6]; ///< The MAC address of the PCI/PCIe network device.
|
||||
} USB_INTERFACE_DEVICE_DESCRIPTOR_V2;
|
||||
|
||||
//
|
||||
// Structure definitions of Host Interface device type 05h (PCI/PCIE V2)
|
||||
//
|
||||
typedef struct {
|
||||
UINT8 Length; ///< Length of the structure, including Device Type and Length fields.
|
||||
UINT16 VendorId; ///< The Vendor ID of the PCI/PCIe device.
|
||||
UINT16 DeviceId; ///< The Device ID of the PCI/PCIe device.
|
||||
UINT16 SubsystemVendorId; ///< The Subsystem Vendor ID of the PCI/PCIe device.
|
||||
UINT16 SubsystemId; ///< The Subsystem ID of the PCI/PCIe device.
|
||||
UINT8 MacAddress [6]; ///< The MAC address of the PCI/PCIe network device.
|
||||
UINT16 SegmemtGroupNumber; ///< The Segment Group Number of the PCI/PCIe.
|
||||
UINT8 BusNumber; ///< The Bus Number of the PCI/PCIe device.
|
||||
UINT8 DeviceFunctionNumber; ///< The Device/Function Number of the PCI/PCIe.
|
||||
} PCI_OR_PCIE_INTERFACE_DEVICE_DESCRIPTOR_V2;
|
||||
|
||||
///
|
||||
/// Structure definitions of Host Interface device type 80-FFh (OEM)
|
||||
///
|
||||
typedef struct {
|
||||
UINT32 VendorIana; ///< The IANA code for the vendor (MSB first).
|
||||
UINT8 OemDefinedData[1]; ///< OEM defined data.
|
||||
} OEM_DEVICE_DESCRIPTOR;
|
||||
|
||||
///
|
||||
/// Define union for the Host Interface Device Descriptor
|
||||
///
|
||||
typedef union {
|
||||
USB_INTERFACE_DEVICE_DESCRIPTOR_V2 UsbDeviceV2; ///< Device type USB V2 device discriptor.
|
||||
PCI_OR_PCIE_INTERFACE_DEVICE_DESCRIPTOR_V2 PciPcieDeviceV2; ///< Device type PCI/PCIe V2 device discriptor.
|
||||
OEM_DEVICE_DESCRIPTOR OemDevice; ///< OEM type device discriptor.
|
||||
} DEVICE_DESCRITOR; /// Device descriptor data formated based on Device Type.
|
||||
|
||||
///
|
||||
/// Interface Specific Data starts at offset 06h of the SMBIOS Type 42 struct.
|
||||
/// This table defines the Interface Specific data for Interface Type 40h. There
|
||||
/// are 3 types of Device Descriptor3 defined , however only 1 may be used in
|
||||
/// specific Tape 42 table.
|
||||
///
|
||||
typedef struct {
|
||||
UINT8 DeviceType; ///< The Device Type of the interface.
|
||||
DEVICE_DESCRITOR DeviceDescriptor; ///< The Device descriptor.
|
||||
} REDFISH_INTERFACE_DATA;
|
||||
|
||||
//
|
||||
// the protocol-specific data for the "Redfish Over IP" protocol
|
||||
//
|
||||
typedef struct {
|
||||
EFI_GUID ServiceUuid; //same as Redfish Service UUID in Redfish Service Root resource
|
||||
|
||||
//
|
||||
// Unknown=00h,
|
||||
// Static=01h,
|
||||
// DHCP=02h,
|
||||
// AutoConfigure=03h,
|
||||
// HostSelected=04h,
|
||||
// other values reserved
|
||||
//
|
||||
UINT8 HostIpAssignmentType;
|
||||
|
||||
//
|
||||
// Unknown=00h,
|
||||
// Ipv4=01h,
|
||||
// Ipv6=02h,
|
||||
// other values reserved
|
||||
//
|
||||
UINT8 HostIpAddressFormat;
|
||||
|
||||
//
|
||||
// Used for Static and AutoConfigure.
|
||||
// For IPV4, use the first 4 Bytes and zero fill the remaining bytes.
|
||||
//
|
||||
UINT8 HostIpAddress[16];
|
||||
|
||||
//
|
||||
// Used for Static and AutoConfigure.
|
||||
// For IPV4, use the first 4 Bytes and zero fill the remaining bytes.
|
||||
//
|
||||
UINT8 HostIpMask[16];
|
||||
|
||||
//
|
||||
// Unknown=00h,
|
||||
// Static=01h,
|
||||
// DHCP=02h,
|
||||
// AutoConfigure=03h,
|
||||
// HostSelected=04h,
|
||||
// other values reserved
|
||||
//
|
||||
UINT8 RedfishServiceIpDiscoveryType;
|
||||
|
||||
//
|
||||
// Unknown=00h,
|
||||
// Ipv4=01h,
|
||||
// Ipv6=02h,
|
||||
// other values reserved
|
||||
//
|
||||
UINT8 RedfishServiceIpAddressFormat;
|
||||
|
||||
//
|
||||
// Used for Static and AutoConfigure.
|
||||
// For IPV4, use the first 4 Bytes and zero fill the remaining bytes.
|
||||
//
|
||||
UINT8 RedfishServiceIpAddress[16];
|
||||
|
||||
//
|
||||
// Used for Static and AutoConfigure.
|
||||
// For IPV4, use the first 4 Bytes and zero fill the remaining bytes.
|
||||
//
|
||||
UINT8 RedfishServiceIpMask[16];
|
||||
|
||||
UINT16 RedfishServiceIpPort; // Used for Static and AutoConfigure.
|
||||
UINT32 RedfishServiceVlanId; // Used for Static and AutoConfigure.
|
||||
UINT8 RedfishServiceHostnameLength; // length of the following hostname string
|
||||
UINT8 RedfishServiceHostname[1]; // hostname of Redfish Service
|
||||
} REDFISH_OVER_IP_PROTOCOL_DATA;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue