1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 /* 3 * Shared Memory Communications over RDMA (SMC-R) and RoCE 4 * 5 * Definitions for generic netlink based configuration of an SMC-R PNET table 6 * 7 * Copyright IBM Corp. 2016 8 * 9 * Author(s): Thomas Richter <[email protected]> 10 */ 11 12 #ifndef _UAPI_LINUX_SMC_H_ 13 #define _UAPI_LINUX_SMC_H_ 14 15 /* Netlink SMC_PNETID attributes */ 16 enum { 17 SMC_PNETID_UNSPEC, 18 SMC_PNETID_NAME, 19 SMC_PNETID_ETHNAME, 20 SMC_PNETID_IBNAME, 21 SMC_PNETID_IBPORT, 22 __SMC_PNETID_MAX, 23 SMC_PNETID_MAX = __SMC_PNETID_MAX - 1 24 }; 25 26 enum { /* SMC PNET Table commands */ 27 SMC_PNETID_GET = 1, 28 SMC_PNETID_ADD, 29 SMC_PNETID_DEL, 30 SMC_PNETID_FLUSH 31 }; 32 33 #define SMCR_GENL_FAMILY_NAME "SMC_PNETID" 34 #define SMCR_GENL_FAMILY_VERSION 1 35 36 /* gennetlink interface to access non-socket information from SMC module */ 37 #define SMC_GENL_FAMILY_NAME "SMC_GEN_NETLINK" 38 #define SMC_GENL_FAMILY_VERSION 1 39 40 /* SMC_GENL_FAMILY commands */ 41 enum { 42 SMC_NETLINK_GET_SYS_INFO = 1, 43 SMC_NETLINK_GET_LGR_SMCR, 44 SMC_NETLINK_GET_LINK_SMCR, 45 SMC_NETLINK_GET_LGR_SMCD, 46 }; 47 48 /* SMC_GENL_FAMILY top level attributes */ 49 enum { 50 SMC_GEN_UNSPEC, 51 SMC_GEN_SYS_INFO, /* nest */ 52 SMC_GEN_LGR_SMCR, /* nest */ 53 SMC_GEN_LINK_SMCR, /* nest */ 54 SMC_GEN_LGR_SMCD, /* nest */ 55 __SMC_GEN_MAX, 56 SMC_GEN_MAX = __SMC_GEN_MAX - 1 57 }; 58 59 /* SMC_GEN_SYS_INFO attributes */ 60 enum { 61 SMC_NLA_SYS_UNSPEC, 62 SMC_NLA_SYS_VER, /* u8 */ 63 SMC_NLA_SYS_REL, /* u8 */ 64 SMC_NLA_SYS_IS_ISM_V2, /* u8 */ 65 SMC_NLA_SYS_LOCAL_HOST, /* string */ 66 SMC_NLA_SYS_SEID, /* string */ 67 __SMC_NLA_SYS_MAX, 68 SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1 69 }; 70 71 /* SMC_NLA_LGR_V2 nested attributes */ 72 enum { 73 SMC_NLA_LGR_V2_VER, /* u8 */ 74 SMC_NLA_LGR_V2_REL, /* u8 */ 75 SMC_NLA_LGR_V2_OS, /* u8 */ 76 SMC_NLA_LGR_V2_NEG_EID, /* string */ 77 SMC_NLA_LGR_V2_PEER_HOST, /* string */ 78 }; 79 80 /* SMC_GEN_LGR_SMCR attributes */ 81 enum { 82 SMC_NLA_LGR_R_UNSPEC, 83 SMC_NLA_LGR_R_ID, /* u32 */ 84 SMC_NLA_LGR_R_ROLE, /* u8 */ 85 SMC_NLA_LGR_R_TYPE, /* u8 */ 86 SMC_NLA_LGR_R_PNETID, /* string */ 87 SMC_NLA_LGR_R_VLAN_ID, /* u8 */ 88 SMC_NLA_LGR_R_CONNS_NUM, /* u32 */ 89 __SMC_NLA_LGR_R_MAX, 90 SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1 91 }; 92 93 /* SMC_GEN_LINK_SMCR attributes */ 94 enum { 95 SMC_NLA_LINK_UNSPEC, 96 SMC_NLA_LINK_ID, /* u8 */ 97 SMC_NLA_LINK_IB_DEV, /* string */ 98 SMC_NLA_LINK_IB_PORT, /* u8 */ 99 SMC_NLA_LINK_GID, /* string */ 100 SMC_NLA_LINK_PEER_GID, /* string */ 101 SMC_NLA_LINK_CONN_CNT, /* u32 */ 102 SMC_NLA_LINK_NET_DEV, /* u32 */ 103 SMC_NLA_LINK_UID, /* u32 */ 104 SMC_NLA_LINK_PEER_UID, /* u32 */ 105 SMC_NLA_LINK_STATE, /* u32 */ 106 __SMC_NLA_LINK_MAX, 107 SMC_NLA_LINK_MAX = __SMC_NLA_LINK_MAX - 1 108 }; 109 110 /* SMC_GEN_LGR_SMCD attributes */ 111 enum { 112 SMC_NLA_LGR_D_UNSPEC, 113 SMC_NLA_LGR_D_ID, /* u32 */ 114 SMC_NLA_LGR_D_GID, /* u64 */ 115 SMC_NLA_LGR_D_PEER_GID, /* u64 */ 116 SMC_NLA_LGR_D_VLAN_ID, /* u8 */ 117 SMC_NLA_LGR_D_CONNS_NUM, /* u32 */ 118 SMC_NLA_LGR_D_PNETID, /* string */ 119 SMC_NLA_LGR_D_CHID, /* u16 */ 120 SMC_NLA_LGR_D_PAD, /* flag */ 121 SMC_NLA_LGR_V2, /* nest */ 122 __SMC_NLA_LGR_D_MAX, 123 SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1 124 }; 125 #endif /* _UAPI_LINUX_SMC_H */ 126