xref: /aosp_15_r20/external/iproute2/include/uapi/rdma/rdma_netlink.h (revision de1e4e894b0c224df933550f0afdecc354b238c4)
1*de1e4e89SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*de1e4e89SAndroid Build Coastguard Worker #ifndef _RDMA_NETLINK_H
3*de1e4e89SAndroid Build Coastguard Worker #define _RDMA_NETLINK_H
4*de1e4e89SAndroid Build Coastguard Worker 
5*de1e4e89SAndroid Build Coastguard Worker #include <linux/types.h>
6*de1e4e89SAndroid Build Coastguard Worker 
7*de1e4e89SAndroid Build Coastguard Worker enum {
8*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_RDMA_CM = 1,
9*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_IWCM,
10*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_RSVD,
11*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_LS,	/* RDMA Local Services */
12*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_NLDEV,	/* RDMA device interface */
13*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_NUM_CLIENTS
14*de1e4e89SAndroid Build Coastguard Worker };
15*de1e4e89SAndroid Build Coastguard Worker 
16*de1e4e89SAndroid Build Coastguard Worker enum {
17*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_GROUP_CM = 1,
18*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_GROUP_IWPM,
19*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_GROUP_LS,
20*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_NUM_GROUPS
21*de1e4e89SAndroid Build Coastguard Worker };
22*de1e4e89SAndroid Build Coastguard Worker 
23*de1e4e89SAndroid Build Coastguard Worker #define RDMA_NL_GET_CLIENT(type) ((type & (((1 << 6) - 1) << 10)) >> 10)
24*de1e4e89SAndroid Build Coastguard Worker #define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))
25*de1e4e89SAndroid Build Coastguard Worker #define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op)
26*de1e4e89SAndroid Build Coastguard Worker 
27*de1e4e89SAndroid Build Coastguard Worker enum {
28*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_RDMA_CM_ID_STATS = 0,
29*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_RDMA_CM_NUM_OPS
30*de1e4e89SAndroid Build Coastguard Worker };
31*de1e4e89SAndroid Build Coastguard Worker 
32*de1e4e89SAndroid Build Coastguard Worker enum {
33*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,
34*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_RDMA_CM_ATTR_DST_ADDR,
35*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_RDMA_CM_NUM_ATTR,
36*de1e4e89SAndroid Build Coastguard Worker };
37*de1e4e89SAndroid Build Coastguard Worker 
38*de1e4e89SAndroid Build Coastguard Worker /* iwarp port mapper op-codes */
39*de1e4e89SAndroid Build Coastguard Worker enum {
40*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_IWPM_REG_PID = 0,
41*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_IWPM_ADD_MAPPING,
42*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_IWPM_QUERY_MAPPING,
43*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_IWPM_REMOVE_MAPPING,
44*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_IWPM_REMOTE_INFO,
45*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_IWPM_HANDLE_ERR,
46*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_IWPM_MAPINFO,
47*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_IWPM_MAPINFO_NUM,
48*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_IWPM_NUM_OPS
49*de1e4e89SAndroid Build Coastguard Worker };
50*de1e4e89SAndroid Build Coastguard Worker 
51*de1e4e89SAndroid Build Coastguard Worker struct rdma_cm_id_stats {
52*de1e4e89SAndroid Build Coastguard Worker 	__u32	qp_num;
53*de1e4e89SAndroid Build Coastguard Worker 	__u32	bound_dev_if;
54*de1e4e89SAndroid Build Coastguard Worker 	__u32	port_space;
55*de1e4e89SAndroid Build Coastguard Worker 	__s32	pid;
56*de1e4e89SAndroid Build Coastguard Worker 	__u8	cm_state;
57*de1e4e89SAndroid Build Coastguard Worker 	__u8	node_type;
58*de1e4e89SAndroid Build Coastguard Worker 	__u8	port_num;
59*de1e4e89SAndroid Build Coastguard Worker 	__u8	qp_type;
60*de1e4e89SAndroid Build Coastguard Worker };
61*de1e4e89SAndroid Build Coastguard Worker 
62*de1e4e89SAndroid Build Coastguard Worker enum {
63*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_REG_PID_UNSPEC = 0,
64*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_REG_PID_SEQ,
65*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_REG_IF_NAME,
66*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_REG_IBDEV_NAME,
67*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_REG_ULIB_NAME,
68*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_REG_PID_MAX
69*de1e4e89SAndroid Build Coastguard Worker };
70*de1e4e89SAndroid Build Coastguard Worker 
71*de1e4e89SAndroid Build Coastguard Worker enum {
72*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RREG_PID_UNSPEC = 0,
73*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RREG_PID_SEQ,
74*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RREG_IBDEV_NAME,
75*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RREG_ULIB_NAME,
76*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RREG_ULIB_VER,
77*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RREG_PID_ERR,
78*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RREG_PID_MAX
79*de1e4e89SAndroid Build Coastguard Worker 
80*de1e4e89SAndroid Build Coastguard Worker };
81*de1e4e89SAndroid Build Coastguard Worker 
82*de1e4e89SAndroid Build Coastguard Worker enum {
83*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,
84*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MANAGE_MAPPING_SEQ,
85*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MANAGE_ADDR,
86*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MANAGE_MAPPED_LOC_ADDR,
87*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RMANAGE_MAPPING_ERR,
88*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RMANAGE_MAPPING_MAX
89*de1e4e89SAndroid Build Coastguard Worker };
90*de1e4e89SAndroid Build Coastguard Worker 
91*de1e4e89SAndroid Build Coastguard Worker #define IWPM_NLA_MANAGE_MAPPING_MAX 3
92*de1e4e89SAndroid Build Coastguard Worker #define IWPM_NLA_QUERY_MAPPING_MAX  4
93*de1e4e89SAndroid Build Coastguard Worker #define IWPM_NLA_MAPINFO_SEND_MAX   3
94*de1e4e89SAndroid Build Coastguard Worker 
95*de1e4e89SAndroid Build Coastguard Worker enum {
96*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,
97*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_QUERY_MAPPING_SEQ,
98*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_QUERY_LOCAL_ADDR,
99*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_QUERY_REMOTE_ADDR,
100*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,
101*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RQUERY_MAPPED_REM_ADDR,
102*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RQUERY_MAPPING_ERR,
103*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_RQUERY_MAPPING_MAX
104*de1e4e89SAndroid Build Coastguard Worker };
105*de1e4e89SAndroid Build Coastguard Worker 
106*de1e4e89SAndroid Build Coastguard Worker enum {
107*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_REQ_UNSPEC = 0,
108*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_ULIB_NAME,
109*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_ULIB_VER,
110*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_REQ_MAX
111*de1e4e89SAndroid Build Coastguard Worker };
112*de1e4e89SAndroid Build Coastguard Worker 
113*de1e4e89SAndroid Build Coastguard Worker enum {
114*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_UNSPEC = 0,
115*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_LOCAL_ADDR,
116*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_MAPPED_ADDR,
117*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_MAX
118*de1e4e89SAndroid Build Coastguard Worker };
119*de1e4e89SAndroid Build Coastguard Worker 
120*de1e4e89SAndroid Build Coastguard Worker enum {
121*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_NUM_UNSPEC = 0,
122*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_SEQ,
123*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_SEND_NUM,
124*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_ACK_NUM,
125*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_MAPINFO_NUM_MAX
126*de1e4e89SAndroid Build Coastguard Worker };
127*de1e4e89SAndroid Build Coastguard Worker 
128*de1e4e89SAndroid Build Coastguard Worker enum {
129*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_ERR_UNSPEC = 0,
130*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_ERR_SEQ,
131*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_ERR_CODE,
132*de1e4e89SAndroid Build Coastguard Worker 	IWPM_NLA_ERR_MAX
133*de1e4e89SAndroid Build Coastguard Worker };
134*de1e4e89SAndroid Build Coastguard Worker 
135*de1e4e89SAndroid Build Coastguard Worker /*
136*de1e4e89SAndroid Build Coastguard Worker  * Local service operations:
137*de1e4e89SAndroid Build Coastguard Worker  *   RESOLVE - The client requests the local service to resolve a path.
138*de1e4e89SAndroid Build Coastguard Worker  *   SET_TIMEOUT - The local service requests the client to set the timeout.
139*de1e4e89SAndroid Build Coastguard Worker  *   IP_RESOLVE - The client requests the local service to resolve an IP to GID.
140*de1e4e89SAndroid Build Coastguard Worker  */
141*de1e4e89SAndroid Build Coastguard Worker enum {
142*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_LS_OP_RESOLVE = 0,
143*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_LS_OP_SET_TIMEOUT,
144*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_LS_OP_IP_RESOLVE,
145*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NL_LS_NUM_OPS
146*de1e4e89SAndroid Build Coastguard Worker };
147*de1e4e89SAndroid Build Coastguard Worker 
148*de1e4e89SAndroid Build Coastguard Worker /* Local service netlink message flags */
149*de1e4e89SAndroid Build Coastguard Worker #define RDMA_NL_LS_F_ERR	0x0100	/* Failed response */
150*de1e4e89SAndroid Build Coastguard Worker 
151*de1e4e89SAndroid Build Coastguard Worker /*
152*de1e4e89SAndroid Build Coastguard Worker  * Local service resolve operation family header.
153*de1e4e89SAndroid Build Coastguard Worker  * The layout for the resolve operation:
154*de1e4e89SAndroid Build Coastguard Worker  *    nlmsg header
155*de1e4e89SAndroid Build Coastguard Worker  *    family header
156*de1e4e89SAndroid Build Coastguard Worker  *    attributes
157*de1e4e89SAndroid Build Coastguard Worker  */
158*de1e4e89SAndroid Build Coastguard Worker 
159*de1e4e89SAndroid Build Coastguard Worker /*
160*de1e4e89SAndroid Build Coastguard Worker  * Local service path use:
161*de1e4e89SAndroid Build Coastguard Worker  * Specify how the path(s) will be used.
162*de1e4e89SAndroid Build Coastguard Worker  *   ALL - For connected CM operation (6 pathrecords)
163*de1e4e89SAndroid Build Coastguard Worker  *   UNIDIRECTIONAL - For unidirectional UD (1 pathrecord)
164*de1e4e89SAndroid Build Coastguard Worker  *   GMP - For miscellaneous GMP like operation (at least 1 reversible
165*de1e4e89SAndroid Build Coastguard Worker  *         pathrecord)
166*de1e4e89SAndroid Build Coastguard Worker  */
167*de1e4e89SAndroid Build Coastguard Worker enum {
168*de1e4e89SAndroid Build Coastguard Worker 	LS_RESOLVE_PATH_USE_ALL = 0,
169*de1e4e89SAndroid Build Coastguard Worker 	LS_RESOLVE_PATH_USE_UNIDIRECTIONAL,
170*de1e4e89SAndroid Build Coastguard Worker 	LS_RESOLVE_PATH_USE_GMP,
171*de1e4e89SAndroid Build Coastguard Worker 	LS_RESOLVE_PATH_USE_MAX
172*de1e4e89SAndroid Build Coastguard Worker };
173*de1e4e89SAndroid Build Coastguard Worker 
174*de1e4e89SAndroid Build Coastguard Worker #define LS_DEVICE_NAME_MAX 64
175*de1e4e89SAndroid Build Coastguard Worker 
176*de1e4e89SAndroid Build Coastguard Worker struct rdma_ls_resolve_header {
177*de1e4e89SAndroid Build Coastguard Worker 	__u8 device_name[LS_DEVICE_NAME_MAX];
178*de1e4e89SAndroid Build Coastguard Worker 	__u8 port_num;
179*de1e4e89SAndroid Build Coastguard Worker 	__u8 path_use;
180*de1e4e89SAndroid Build Coastguard Worker };
181*de1e4e89SAndroid Build Coastguard Worker 
182*de1e4e89SAndroid Build Coastguard Worker struct rdma_ls_ip_resolve_header {
183*de1e4e89SAndroid Build Coastguard Worker 	__u32 ifindex;
184*de1e4e89SAndroid Build Coastguard Worker };
185*de1e4e89SAndroid Build Coastguard Worker 
186*de1e4e89SAndroid Build Coastguard Worker /* Local service attribute type */
187*de1e4e89SAndroid Build Coastguard Worker #define RDMA_NLA_F_MANDATORY	(1 << 13)
188*de1e4e89SAndroid Build Coastguard Worker #define RDMA_NLA_TYPE_MASK	(~(NLA_F_NESTED | NLA_F_NET_BYTEORDER | \
189*de1e4e89SAndroid Build Coastguard Worker 				  RDMA_NLA_F_MANDATORY))
190*de1e4e89SAndroid Build Coastguard Worker 
191*de1e4e89SAndroid Build Coastguard Worker /*
192*de1e4e89SAndroid Build Coastguard Worker  * Local service attributes:
193*de1e4e89SAndroid Build Coastguard Worker  *   Attr Name       Size                       Byte order
194*de1e4e89SAndroid Build Coastguard Worker  *   -----------------------------------------------------
195*de1e4e89SAndroid Build Coastguard Worker  *   PATH_RECORD     struct ib_path_rec_data
196*de1e4e89SAndroid Build Coastguard Worker  *   TIMEOUT         u32                        cpu
197*de1e4e89SAndroid Build Coastguard Worker  *   SERVICE_ID      u64                        cpu
198*de1e4e89SAndroid Build Coastguard Worker  *   DGID            u8[16]                     BE
199*de1e4e89SAndroid Build Coastguard Worker  *   SGID            u8[16]                     BE
200*de1e4e89SAndroid Build Coastguard Worker  *   TCLASS          u8
201*de1e4e89SAndroid Build Coastguard Worker  *   PKEY            u16                        cpu
202*de1e4e89SAndroid Build Coastguard Worker  *   QOS_CLASS       u16                        cpu
203*de1e4e89SAndroid Build Coastguard Worker  *   IPV4            u32                        BE
204*de1e4e89SAndroid Build Coastguard Worker  *   IPV6            u8[16]                     BE
205*de1e4e89SAndroid Build Coastguard Worker  */
206*de1e4e89SAndroid Build Coastguard Worker enum {
207*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_UNSPEC = 0,
208*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_PATH_RECORD,
209*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_TIMEOUT,
210*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_SERVICE_ID,
211*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_DGID,
212*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_SGID,
213*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_TCLASS,
214*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_PKEY,
215*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_QOS_CLASS,
216*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_IPV4,
217*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_IPV6,
218*de1e4e89SAndroid Build Coastguard Worker 	LS_NLA_TYPE_MAX
219*de1e4e89SAndroid Build Coastguard Worker };
220*de1e4e89SAndroid Build Coastguard Worker 
221*de1e4e89SAndroid Build Coastguard Worker /* Local service DGID/SGID attribute: big endian */
222*de1e4e89SAndroid Build Coastguard Worker struct rdma_nla_ls_gid {
223*de1e4e89SAndroid Build Coastguard Worker 	__u8		gid[16];
224*de1e4e89SAndroid Build Coastguard Worker };
225*de1e4e89SAndroid Build Coastguard Worker 
226*de1e4e89SAndroid Build Coastguard Worker enum rdma_nldev_command {
227*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_CMD_UNSPEC,
228*de1e4e89SAndroid Build Coastguard Worker 
229*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_CMD_GET, /* can dump */
230*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_CMD_SET,
231*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_CMD_NEW,
232*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_CMD_DEL,
233*de1e4e89SAndroid Build Coastguard Worker 
234*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_CMD_PORT_GET, /* can dump */
235*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_CMD_PORT_SET,
236*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_CMD_PORT_NEW,
237*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_CMD_PORT_DEL,
238*de1e4e89SAndroid Build Coastguard Worker 
239*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_NUM_OPS
240*de1e4e89SAndroid Build Coastguard Worker };
241*de1e4e89SAndroid Build Coastguard Worker 
242*de1e4e89SAndroid Build Coastguard Worker enum rdma_nldev_attr {
243*de1e4e89SAndroid Build Coastguard Worker 	/* don't change the order or add anything between, this is ABI! */
244*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_UNSPEC,
245*de1e4e89SAndroid Build Coastguard Worker 
246*de1e4e89SAndroid Build Coastguard Worker 	/* Identifier for ib_device */
247*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_DEV_INDEX,		/* u32 */
248*de1e4e89SAndroid Build Coastguard Worker 
249*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_DEV_NAME,		/* string */
250*de1e4e89SAndroid Build Coastguard Worker 	/*
251*de1e4e89SAndroid Build Coastguard Worker 	 * Device index together with port index are identifiers
252*de1e4e89SAndroid Build Coastguard Worker 	 * for port/link properties.
253*de1e4e89SAndroid Build Coastguard Worker 	 *
254*de1e4e89SAndroid Build Coastguard Worker 	 * For RDMA_NLDEV_CMD_GET commamnd, port index will return number
255*de1e4e89SAndroid Build Coastguard Worker 	 * of available ports in ib_device, while for port specific operations,
256*de1e4e89SAndroid Build Coastguard Worker 	 * it will be real port index as it appears in sysfs. Port index follows
257*de1e4e89SAndroid Build Coastguard Worker 	 * sysfs notation and starts from 1 for the first port.
258*de1e4e89SAndroid Build Coastguard Worker 	 */
259*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_PORT_INDEX,		/* u32 */
260*de1e4e89SAndroid Build Coastguard Worker 
261*de1e4e89SAndroid Build Coastguard Worker 	/*
262*de1e4e89SAndroid Build Coastguard Worker 	 * Device and port capabilities
263*de1e4e89SAndroid Build Coastguard Worker 	 */
264*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_CAP_FLAGS,		/* u64 */
265*de1e4e89SAndroid Build Coastguard Worker 
266*de1e4e89SAndroid Build Coastguard Worker 	/*
267*de1e4e89SAndroid Build Coastguard Worker 	 * FW version
268*de1e4e89SAndroid Build Coastguard Worker 	 */
269*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_FW_VERSION,		/* string */
270*de1e4e89SAndroid Build Coastguard Worker 
271*de1e4e89SAndroid Build Coastguard Worker 	/*
272*de1e4e89SAndroid Build Coastguard Worker 	 * Node GUID (in host byte order) associated with the RDMA device.
273*de1e4e89SAndroid Build Coastguard Worker 	 */
274*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_NODE_GUID,			/* u64 */
275*de1e4e89SAndroid Build Coastguard Worker 
276*de1e4e89SAndroid Build Coastguard Worker 	/*
277*de1e4e89SAndroid Build Coastguard Worker 	 * System image GUID (in host byte order) associated with
278*de1e4e89SAndroid Build Coastguard Worker 	 * this RDMA device and other devices which are part of a
279*de1e4e89SAndroid Build Coastguard Worker 	 * single system.
280*de1e4e89SAndroid Build Coastguard Worker 	 */
281*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_SYS_IMAGE_GUID,		/* u64 */
282*de1e4e89SAndroid Build Coastguard Worker 
283*de1e4e89SAndroid Build Coastguard Worker 	/*
284*de1e4e89SAndroid Build Coastguard Worker 	 * Subnet prefix (in host byte order)
285*de1e4e89SAndroid Build Coastguard Worker 	 */
286*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_SUBNET_PREFIX,		/* u64 */
287*de1e4e89SAndroid Build Coastguard Worker 
288*de1e4e89SAndroid Build Coastguard Worker 	/*
289*de1e4e89SAndroid Build Coastguard Worker 	 * Local Identifier (LID),
290*de1e4e89SAndroid Build Coastguard Worker 	 * According to IB specification, It is 16-bit address assigned
291*de1e4e89SAndroid Build Coastguard Worker 	 * by the Subnet Manager. Extended to be 32-bit for OmniPath users.
292*de1e4e89SAndroid Build Coastguard Worker 	 */
293*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_LID,			/* u32 */
294*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_SM_LID,			/* u32 */
295*de1e4e89SAndroid Build Coastguard Worker 
296*de1e4e89SAndroid Build Coastguard Worker 	/*
297*de1e4e89SAndroid Build Coastguard Worker 	 * LID mask control (LMC)
298*de1e4e89SAndroid Build Coastguard Worker 	 */
299*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_LMC,			/* u8 */
300*de1e4e89SAndroid Build Coastguard Worker 
301*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_PORT_STATE,		/* u8 */
302*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_PORT_PHYS_STATE,	/* u8 */
303*de1e4e89SAndroid Build Coastguard Worker 
304*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_DEV_NODE_TYPE,		/* u8 */
305*de1e4e89SAndroid Build Coastguard Worker 
306*de1e4e89SAndroid Build Coastguard Worker 	RDMA_NLDEV_ATTR_MAX
307*de1e4e89SAndroid Build Coastguard Worker };
308*de1e4e89SAndroid Build Coastguard Worker #endif /* _RDMA_NETLINK_H */
309