74 lines
2.2 KiB
C
74 lines
2.2 KiB
C
/* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
|
|
#ifndef _LIBMCTP_CMDS_H
|
|
#define _LIBMCTP_CMDS_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "libmctp.h"
|
|
|
|
/*
|
|
* Helper structs and functions for MCTP control messages.
|
|
* See DSP0236 v1.3.0 sec. 11 for reference.
|
|
*/
|
|
|
|
struct mctp_ctrl_msg_hdr {
|
|
uint8_t ic_msg_type;
|
|
uint8_t rq_dgram_inst;
|
|
uint8_t command_code;
|
|
uint8_t completion_code;
|
|
};
|
|
|
|
#define MCTP_CTRL_HDR_MSG_TYPE 0
|
|
#define MCTP_CTRL_HDR_FLAG_REQUEST (1 << 7)
|
|
#define MCTP_CTRL_HDR_FLAG_DGRAM (1 << 6)
|
|
#define MCTP_CTRL_HDR_INSTANCE_ID_MASK 0x1F
|
|
|
|
/*
|
|
* MCTP Control Command IDs
|
|
* See DSP0236 v1.3.0 Table 12.
|
|
*/
|
|
#define MCTP_CTRL_CMD_RESERVED 0x00
|
|
#define MCTP_CTRL_CMD_SET_ENDPOINT_ID 0x01
|
|
#define MCTP_CTRL_CMD_GET_ENDPOINT_ID 0x02
|
|
#define MCTP_CTRL_CMD_GET_ENDPOINT_UUID 0x03
|
|
#define MCTP_CTRL_CMD_GET_VERSION_SUPPORT 0x04
|
|
#define MCTP_CTRL_CMD_GET_MESSAGE_TYPE_SUPPORT 0x05
|
|
#define MCTP_CTRL_CMD_GET_VENDOR_MESSAGE_SUPPORT 0x06
|
|
#define MCTP_CTRL_CMD_RESOLVE_ENDPOINT_ID 0x07
|
|
#define MCTP_CTRL_CMD_ALLOCATE_ENDPOINT_IDS 0x08
|
|
#define MCTP_CTRL_CMD_ROUTING_INFO_UPDATE 0x09
|
|
#define MCTP_CTRL_CMD_GET_ROUTING_TABLE_ENTRIES 0x0A
|
|
#define MCTP_CTRL_CMD_PREPARE_ENDPOINT_DISCOVERY 0x0B
|
|
#define MCTP_CTRL_CMD_ENDPOINT_DISCOVERY 0x0C
|
|
#define MCTP_CTRL_CMD_DISCOVERY_NOTIFY 0x0D
|
|
#define MCTP_CTRL_CMD_GET_NETWORK_ID 0x0E
|
|
#define MCTP_CTRL_CMD_QUERY_HOP 0x0F
|
|
#define MCTP_CTRL_CMD_RESOLVE_UUID 0x10
|
|
#define MCTP_CTRL_CMD_QUERY_RATE_LIMIT 0x11
|
|
#define MCTP_CTRL_CMD_REQUEST_TX_RATE_LIMIT 0x12
|
|
#define MCTP_CTRL_CMD_UPDATE_RATE_LIMIT 0x13
|
|
#define MCTP_CTRL_CMD_QUERY_SUPPORTED_INTERFACES 0x14
|
|
#define MCTP_CTRL_CMD_MAX 0x15
|
|
/* 0xF0 - 0xFF are transport specific */
|
|
#define MCTP_CTRL_CMD_FIRST_TRANSPORT 0xF0
|
|
#define MCTP_CTRL_CMD_LAST_TRANSPORT 0xFF
|
|
|
|
/*
|
|
* MCTP Control Completion Codes
|
|
* See DSP0236 v1.3.0 Table 13.
|
|
*/
|
|
#define MCTP_CTRL_CC_SUCCESS 0x00
|
|
#define MCTP_CTRL_CC_ERROR 0x01
|
|
#define MCTP_CTRL_CC_ERROR_INVALID_DATA 0x02
|
|
#define MCTP_CTRL_CC_ERROR_INVALID_LENGTH 0x03
|
|
#define MCTP_CTRL_CC_ERROR_NOT_READY 0x04
|
|
#define MCTP_CTRL_CC_ERROR_UNSUPPORTED_CMD 0x05
|
|
/* 0x80 - 0xFF are command specific */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _LIBMCTP_CMDS_H */
|