617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan/*******************************************************************************
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * Copyright (C) 2004-2008 Intel Corp. All rights reserved.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * Redistribution and use in source and binary forms, with or without
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * modification, are permitted provided that the following conditions are met:
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * - Redistributions of source code must retain the above copyright notice,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * this list of conditions and the following disclaimer.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * - Redistributions in binary form must reproduce the above copyright notice,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * this list of conditions and the following disclaimer in the documentation
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * and/or other materials provided with the distribution.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * - Neither the name of Intel Corp. nor the names of its
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * contributors may be used to endorse or promote products derived from this
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * software without specific prior written permission.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * ARE DISCLAIMED. IN NO EVENT SHALL Intel Corp. OR THE CONTRIBUTORS
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * POSSIBILITY OF SUCH DAMAGE.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan *******************************************************************************/
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// disable the "zero-sized array" warning in Visual C++
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef enum {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef enum {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef enum {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef enum {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef enum {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef enum {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * LMS_OPEN_CONNECTION_MESSAGE - open connection request
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MessageType: LMS_MESSAGE_TYPE_OPEN_CONNECTION
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @ConnectionId: 0 if sent from LMS, positive if sent from LME
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Protocol: One of LMS_PROTOCOL_TYPE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @OpenRequestId: Any number; used to match the request to the response
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @HostIPAddress: Source IP address of the initiating application, in network
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * order (Big Endian). If IPv4, only the first 4 bytes are used
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * and the rest must be 0.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @HostPort: Source port of the initiating application, in network order (Big
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MEPort: Destination port of the initiating application, in network order
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * (Big Endian).
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * LMS_OPEN_CONNECTION_REPLY_MESSAGE - open connection reply
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MessageType: LMS_MESSAGE_TYPE_OPEN_CONNECTION_REPLY
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @ConnectionId: Assigned by LME
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Status: One of LMS_CONNECTION_STATUS
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @OpenRequestId: The same as the OpenRequestID value in the open connection
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * request message.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * LMS_OPEN_CONNECTION_EX_MESSAGE - open connection request
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MessageType: LMS_MESSAGE_TYPE_OPEN_CONNECTION_EX
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @ConnectionId: Unique identifier
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Protocol: One of LMS_PROTOCOL_TYPE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Flags: If first bit is set then Host is an hostname, otherwise Host is an IP address.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * If second bit is set then connection is from remote console, otherwise
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * it is from local application. The other bits must be zero.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Reserved: Must be zero
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @OpenRequestId: Any number; used to match the request to the response
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Host: Source IP address of the initiating application, in network
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * order (Big Endian). If IPv4, only the first 4 bytes are used
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * and the rest must be 0.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @HostPort: Source port of the initiating application, in network order (Big
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MEPort: Destination port of the initiating application, in network order
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * (Big Endian).
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// * LMS_OPEN_CONNECTION_EX_REPLY_MESSAGE - open connection reply
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// * @MessageType: LMS_MESSAGE_TYPE_OPEN_CONNECTION_EX_REPLY
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// * @ConnectionId: Should match value in connection request
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// * @Status: One of LMS_CONNECTION_STATUS
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// * @OpenRequestId: The same as the OpenRequestID value in the open connection
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// * request message.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan//typedef struct {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// UINT8 MessageType;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// UINT8 ConnectionId;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// UINT8 Status;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// UINT8 OpenRequestId;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan//} LMS_OPEN_CONNECTION_EX_REPLY_MESSAGE;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * LMS_CLOSE_CONNECTION_MESSAGE - close connection request
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MessageType: LMS_MESSAGE_TYPE_CLOSE_CONNECTION
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @ConnectionId: The connection ID chosen by the LME when the connection
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * was established.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @ClosingReason: One of LMS_CLOSE_STATUS
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * LMS_SEND_DATA_MESSAGE - sends data betwen LMS and LME
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MessageType: LMS_MESSAGE_TYPE_SEND_DATA
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @ConnectionId: The connection ID chosen by the LME when the connection
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * was established.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @DataLength: Length of data field, in Big Endian.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Data: The data to transfer
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * LMS_IP_FQDN_REQUEST_MESSAGE - Requests IP/FQDN data
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MessageType: LMS_MESSAGE_TYPE_IP_FQDN_REQUEST
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @ConnectionId: Must be 0.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * LMS_IP_FQDN_MESSAGE - sends IP/FQDN info
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MessageType: LMS_MESSAGE_TYPE_IP_FQDN
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @ConnectionId: Must be 0.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @IPType: One of LMS_IP_ADDRESS_TYPE.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Reserved: Must be 0.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @AMTIPAddress: The Intel(R) AMT IP address, in network order (Big Endian).
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * If IPv4, then only the first 4 bytes are used and the rest
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * must be 0.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @FQDN: A NUL terminated string specifying the Fully Qualified Domain Name.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * LMS_PROTO_VERSION_MESSAGE - sends protocol version information
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MessageType: LMS_MESSAGE_TYPE_PROTO_VERSION
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @ConnectionId: Must be 0.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Protocol: Protocol version.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * LMS_PROTO_VERSION_REPLY_MESSAGE - sends protocol version information
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @MessageType: LMS_MESSAGE_TYPE_PROTO_VERSION_REPLY
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @ConnectionId: Must be 0.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Protocol: Protocol version.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * @Status: One of LMS_PROTOCOL_STATUS.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct {