* Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved.
* ubs-engine is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
#ifndef UBSE_COM_OP_CODE_H
#define UBSE_COM_OP_CODE_H
* 本头文件中定义了UBSE通信系统的完整操作码体系
* 通信模块标识由模块与操作(Module, Op)决定,使用以下规则:
* 1. 新增模块功能时
* 1.1 首先在UbseModuleCode中定义新的模块标识
* 1.2 然后创建对应的XXXOpCode枚举,为模块定义操作码
* 2. 扩展现有模块功能时
* 2.1 查找已有的对应模块枚举
* 2.2 在对应模块的OpCode枚举中添加新操作码
* 模块与操作码采用分层设计,模块码标识功能域,操作码标识具体操作
*/
namespace ubse::com {
enum class UbseModuleCode
{
UBSE_MEM = 0x0001,
ELECTION = 0x0002,
STORAGE = 0x0003,
NODE_CONTROLLER = 0x0004,
UBSE_MEM_QUERY = 0x0005,
UBSE_MEM_BORROW = 0x0006,
UBSE_MEM_FAULT = 0x0007,
UBSE_MEM_RESP = 0x0008,
RAS = 0x0009,
VM = 0x000A,
UBSE_URMA = 0x000B,
};
enum class UbseMemOpCode
{
UBSE_MEM_FD_CREATE = 0x0001,
UBSE_MEM_FD_WITH_LEND_INFO = 0x0002,
UBSE_MEM_FD_CREATE_WITH_CANDIDATE = 0x0003,
UBSE_MEM_FD_PERMISSION = 0x0004,
UBSE_MEM_FD_GET = 0x0005,
UBSE_MEM_FD_LIST = 0x0006,
UBSE_MEM_FD_DELETE = 0x0007,
UBSE_MEM_FD_GET_MEM_ID_BY_IMPORT = 0x0008,
UBSE_MEM_NUMA_CREATE = 0x0010,
UBSE_MEM_NUMA_WITH_LEND_INFO = 0x0011,
UBSE_MEM_NUMA_CREATE_WITH_CANDIDATE = 0x0012,
UBSE_MEM_NUMA_GET = 0x0013,
UBSE_MEM_NUMA_LIST = 0x0014,
UBSE_MEM_NUMA_DELETE = 0x0015,
UBSE_MEM_NUMA_GET_MEM_ID_BY_IMPORT = 0x0016,
UBSE_MEM_SHM_CREATE = 0x0020,
UBSE_MEM_SHM_ATTACH = 0x0021,
UBSE_MEM_SHM_GET = 0x0022,
UBSE_MEM_SHM_LIST = 0x0023,
UBSE_MEM_SHM_DETACH = 0x0024,
UBSE_MEM_SHM_DELETE = 0x0025,
UBSE_MEM_SHM_MEMID_STATUS_GET = 0x0026,
UBSE_MEM_SHM_CREATE_WITH_AFFINITY = 0x0027,
UBSE_MEM_SHM_LIST_WITH_PREFIX = 0x0028,
UBSE_MEM_SHM_CREATE_WITH_LENDER = 0x0029,
UBSE_MEM_SHM_GET_MEM_ID_BY_IMPORT = 0x002A,
UBSE_MEM_CLI_NODE_BORROW = 0x0030,
UBSE_MEM_CLI_NODE_LEND = 0x0031,
UBSE_MEM_CLI_BORROW_DETAIL_DEBT_PARTIAL_FETCH = 0x0032,
UBSE_MEM_CLI_CHECK_STATUS = 0x0033,
UBSE_MEM_CLI_CONFIG = 0x0034,
UBSE_MEM_CLI_NUMA_STATUS = 0x0035,
UBSE_MEM_CLI_SPECIFY_LINK_BORROW = 0x0036,
UBSE_MEM_CLI_DELETE_MEMORY = 0x0037,
UBSE_MEM_CLI_NUMA_STATE_QUERY = 0x0038,
};
enum class UbseElectionOpCode
{
ELECTION_PKT = 0x0001,
};
enum class UbseStorageOpCode
{
STORAGE_REQ = 0x0001,
};
enum class UbseNodeControllerOpCode
{
NODE_CONTROLLER_COLLECT = 0x0001,
NODE_CONTROLLER_ALL_NODE = 0x0002,
NODE_CONTROLLER_LCNE_CHANGE_REPORT_TOPOLOGY = 0x0003,
NODE_CONTROLLER_GET_DEV_CONNECT = 0x0004,
NODE_CONTROLLER_REPORT = 0x0005,
NODE_CONTROLLER_NODE_CHANGE = 0x0006,
};
enum class UbseMemRespCtrlOpCode
{
UBSE_MEM_SHARE_BORROW_RESP = 0x0001,
UBSE_MEM_SHARE_ATTACH_RESP = 0x0002,
UBSE_MEM_SHARE_DETACH_RESP = 0x0003,
UBSE_MEM_COMMON_RETURN_RESP = 0x0004,
UBSE_MEM_FD_BORROW_RESP = 0x0005,
UBSE_MEM_NUMA_BORROW_RESP = 0x0006,
UBSE_MEM_FD_RETURN_RESP = 0x0007,
UBSE_MEM_NUMA_RETURN_RESP = 0x0008,
UBSE_MEM_FD_RETURN = 0x0009,
UBSE_MEM_NUMA_RETURN = 0x000A,
UBSE_MEM_SHARE_RETURN = 0x000B,
UBSE_MEM_ADDR_RETURN = 0x000C,
UBSE_MEM_LEDGER = 0x000D,
UBSE_MEM_FD_IMPORT = 0x000E,
UBSE_MEM_NUMA_IMPORT = 0x000F,
UBSE_MEM_ADDR_IMPORT = 0x0010,
UBSE_MEM_PRE_ONLINE_REQ = 0x0011,
UBSE_MEM_PRE_ONLINE_RESP = 0x0012,
UBSE_MEM_BORROW_RESULT_NOTIFY = 0x0013,
UBSE_MEM_FD_PERMISSION = 0x0014,
UBSE_MEM_FD_BORROW_IMPORT_OBJ_FOR_PERMISSION_CALLBACK = 0x0015,
UBSE_MEM_GET_OPT_RES = 0x0016,
UBSE_MEM_INVALIDATE_SINGLE_IMPORT_DEBT = 0x0017,
};
enum class UbseMemQueryOpCode
{
UBSE_MEM_DEBINFO_QUERY = 0x0001,
UBSE_MEM_DEBT_INFO_FD_GET = 0x0002,
UBSE_MEM_DEBT_INFO_FD_LIST = 0x0003,
UBSE_MEM_DEBT_INFO_NUMA_GET = 0x0004,
UBSE_MEM_DEBT_INFO_NUMA_LIST = 0x0005,
UBSE_MEM_DEBT_INFO_NUMA_GET_WITH_IMPORT_NODE = 0x0006,
UBSE_MEM_DEBT_INFO_SHM_GET = 0x0007,
UBSE_MEM_DEBT_INFO_SHM_LIST = 0x0008,
UBSE_MEM_DEBT_INFO_SHM_STATUS_GET = 0x0009,
UBSE_MEM_DEBT_INFO_ADDR_GET = 0x000A,
UBSE_MEM_DEBT_INFO_PARTIAL_FETCH = 0x000B,
UBSE_MEM_NODE_BORROW_INFO_QUERY = 0x000C,
UBSE_MEM_GET_NUMAINFO_BY_PID = 0x000D,
UBSE_MEM_QUERY_FD_EXPORT = 0x000E,
UBSE_MEM_QUERY_FD_IMPORT = 0x000F,
UBSE_MEM_QUERY_NUMA_EXPORT = 0x0010,
UBSE_MEM_QUERY_NUMA_IMPORT = 0x0011,
UBSE_MEM_QUERY_ADDR_EXPORT = 0x0012,
UBSE_MEM_QUERY_ADDR_IMPORT = 0x0013,
UBSE_MEM_QUERY_SHARE_EXPORT = 0x0014,
UBSE_MEM_QUERY_SHARE_IMPORT = 0x0015,
UBSE_MEM_ID_DEBINFO_QUERY = 0x00016,
UBSE_MEM_REMOTE_NUMA_STATUS = 0x0017,
};
enum class UbseMemBorrowCallbackOpCode
{
UBSE_MEM_FD_BORROW = 0x0001,
UBSE_MEM_NUMA_BORROW = 0x0002,
UBSE_MEM_ADDR_BORROW = 0x0003,
UBSE_MEM_SHARE_BORROW = 0x0004,
UBSE_MEM_SHARE_ATTACH = 0x0005,
UBSE_MEM_SHARE_DETACH = 0x0006,
UBSE_MEM_FD_BORROW_EXPORT_OBJ_CALLBACK = 0x0007,
UBSE_MEM_FD_BORROW_IMPORT_OBJ_CALLBACK = 0x0008,
UBSE_MEM_NUMA_BORROW_EXPORT_OBJ_CALLBACK = 0x0009,
UBSE_MEM_NUMA_BORROW_IMPORT_OBJ_CALLBACK = 0x000A,
UBSE_MEM_SHARE_BORROW_EXPORT_OBJ_CALLBACK = 0x000B,
UBSE_MEM_SHARE_BORROW_IMPORT_OBJ_CALLBACK = 0x000C,
UBSE_MEM_ADDR_BORROW_EXPORT_OBJ_CALLBACK = 0x000D,
UBSE_MEM_ADDR_BORROW_IMPORT_OBJ_CALLBACK = 0x000E,
UBSE_MEM_UPDATE_OBJ_STATE_CALLBACK = 0x000F,
};
enum class UbseMemFaultOpCode
{
UBSE_SHARE_MEM_FAULT_REPORT = 0x0001,
UBSE_SHARE_MEM_FAULT_REPORT_REPLY = 0x0002,
UBSE_SHARE_MEM_FAULT_NOTIFY = 0x0003,
UBSE_SHARE_MEM_FAULT_NOTIFY_REPLY = 0x0004,
UBSE_MEM_FAULT_BMC_AGENTS = 0x0005,
UBSE_SINGLE_IMPORT_DEBT_NOTIFY = 0x0006,
UBSE_PROCESS_MEM_NODE_FAULT_NOTIFY = 0x0007,
};
enum class UbseRasOpCode
{
UBSE_RAS_BMC_REBOOT = 0x0001,
UBSE_RAS_SWITCH_ROLE = 0x0002,
UBSE_RAS_OOM = 0x0003,
};
enum class UbseUrmaRpcOpCode
{
URMA_RPC_URMA_INFO_REPORT = 0x0001,
URMA_RPC_URMA_INFO_BROADCAST = 0x0002,
URMA_RPC_URMA_INFO_QUERY = 0x0003,
URMA_RPC_DEV_QUERY = 0x0004,
BUTT = 0x0006,
};
}
#endif