From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-002e3701.pphosted.com (mx0b-002e3701.pphosted.com [148.163.143.35]) by mx.groups.io with SMTP id smtpd.web10.4793.1602564764960523294 for ; Mon, 12 Oct 2020 21:52:45 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=Ciap+zqP; spf=pass (domain: hpe.com, ip: 148.163.143.35, mailfrom: prvs=055551424a=abner.chang@hpe.com) Received: from pps.filterd (m0134423.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 09D4nPLf007515; Tue, 13 Oct 2020 04:52:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=pps0720; bh=ll5RcEbX3OLzsxvkMBzqiwraJcaAYgGUnYZ/qGU06Vw=; b=Ciap+zqPBfF7beepztuFWRBQGTqJBEh3gFRM2fEvzx1p5BBh2AQQo292sdQhLgcVcyik C9xAiP/c/DKno0TNfcxCAYEsNYPOpOIQ4/brUMO1LBgIZYG6WuTEo7HWY3+C2I6zZKwe XbNrqnv6decgnuB51OVQbAhvKJ0lqdmCsSbQ28zrUSfa/n6MzJbvSUCjdVpa6fqRfyaj Wudt5gr3As7DDrwY+iOp2DekzkgZvdU6klEkF2wd7stbTpSsoziwoDDa8LSzEHgHebD1 o59zEF//qa1xBnHB71oNYv0yRtejPWO5TGHkKAdRXaWogg8qeZMj7L/A9+7aZt04g7tZ ew== Received: from g9t5009.houston.hpe.com (g9t5009.houston.hpe.com [15.241.48.73]) by mx0b-002e3701.pphosted.com with ESMTP id 343avatu7u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Oct 2020 04:52:44 +0000 Received: from g4t3433.houston.hpecorp.net (g4t3433.houston.hpecorp.net [16.208.49.245]) by g9t5009.houston.hpe.com (Postfix) with ESMTP id 8E73D55; Tue, 13 Oct 2020 04:52:43 +0000 (UTC) Received: from abner-virtual-machine.asiapacific.hpqcorp.net (abner-virtual-machine.asiapacific.hpqcorp.net [15.119.210.153]) by g4t3433.houston.hpecorp.net (Postfix) with ESMTP id 2CBEC46; Tue, 13 Oct 2020 04:52:42 +0000 (UTC) From: "Abner Chang" To: devel@edk2.groups.io Cc: Jiaxin Wu , Siyuan Fu , Fan Wang , Jiewen Yao , Nickle Wang Subject: [EFI Redfish Host Interface PATCH 1/5] RedfishPkg/Include: Definitions of SMBIOS Redfish Host Interface Date: Tue, 13 Oct 2020 12:08:01 +0800 Message-Id: <20201013040805.20523-2-abner.chang@hpe.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201013040805.20523-1-abner.chang@hpe.com> References: <20201013040805.20523-1-abner.chang@hpe.com> X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-10-13_01:2020-10-12,2020-10-13 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 mlxscore=0 suspectscore=1 mlxlogscore=999 spamscore=0 bulkscore=0 impostorscore=0 clxscore=1015 malwarescore=0 adultscore=0 priorityscore=1501 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2010130041 Add definitions of SMBIOS Type 42 Host Interface. Signed-off-by: Jiaxin Wu Signed-off-by: Siyuan Fu Signed-off-by: Fan Wang Signed-off-by: Abner Chang Cc: Jiaxin Wu Cc: Siyuan Fu Cc: Fan Wang Cc: Jiewen Yao Cc: Nickle Wang --- .../IndustryStandard/RedfishHostInterface.h | 165 ++++++++++++++++++ RedfishPkg/RedfishPkg.dec | 3 + 2 files changed, 168 insertions(+) create mode 100644 RedfishPkg/Include/IndustryStandard/RedfishHostInterface.h diff --git a/RedfishPkg/Include/IndustryStandard/RedfishHostInterface.h b/RedfishPkg/Include/IndustryStandard/RedfishHostInterface.h new file mode 100644 index 0000000000..981f8a0cfb --- /dev/null +++ b/RedfishPkg/Include/IndustryStandard/RedfishHostInterface.h @@ -0,0 +1,165 @@ +/** @file + This file defines the Redfish Interface Specific Data. + + Copyright (c) 2019, Intel Corporation. All rights reserved.
+ (C) Copyright 2020 Hewlett Packard Enterprise Development LP
+ + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef REDFISH_HOST_INTERFACE_ +#define REDFISH_HOST_INTERFACE_ + +#include + +#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; + +/// +/// 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. + 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. + } DeviceDescriptor; /// Device descriptor data formated based on Device Type. + +} 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 + diff --git a/RedfishPkg/RedfishPkg.dec b/RedfishPkg/RedfishPkg.dec index e95ec5fe10..de3611252e 100644 --- a/RedfishPkg/RedfishPkg.dec +++ b/RedfishPkg/RedfishPkg.dec @@ -13,6 +13,9 @@ PACKAGE_GUID = c432b76e-5232-11e7-9010-005056c00008 PACKAGE_VERSION = 1.0 +[Includes] + Include + [Guids] gEfiRedfishPkgTokenSpaceGuid = { 0x4fdbccb7, 0xe829, 0x4b4c, { 0x88, 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }} -- 2.17.1