/* 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;
};

#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 */
