1/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2
3#ifndef _LINUX_DRBD_GENL_H
4#define _LINUX_DRBD_GENL_H
5
6#define DRBD_FAMILY_NAME "drbd"
7#define DRBD_FAMILY_VERSION 1
8
9enum {
10 DRBD_NLA_CFG_REPLY = 1,
11 DRBD_NLA_CFG_CONTEXT,
12 DRBD_NLA_DISK_CONF,
13 DRBD_NLA_RESOURCE_OPTS,
14 DRBD_NLA_NET_CONF,
15 DRBD_NLA_SET_ROLE_PARMS,
16 DRBD_NLA_RESIZE_PARMS,
17 DRBD_NLA_STATE_INFO,
18 DRBD_NLA_START_OV_PARMS,
19 DRBD_NLA_NEW_C_UUID_PARMS,
20 DRBD_NLA_TIMEOUT_PARMS,
21 DRBD_NLA_DISCONNECT_PARMS,
22 DRBD_NLA_DETACH_PARMS,
23 DRBD_NLA_RESOURCE_INFO = 15,
24 DRBD_NLA_DEVICE_INFO,
25 DRBD_NLA_CONNECTION_INFO,
26 DRBD_NLA_PEER_DEVICE_INFO,
27 DRBD_NLA_RESOURCE_STATISTICS,
28 DRBD_NLA_DEVICE_STATISTICS,
29 DRBD_NLA_CONNECTION_STATISTICS,
30 DRBD_NLA_PEER_DEVICE_STATISTICS,
31 DRBD_NLA_NOTIFICATION_HEADER,
32 DRBD_NLA_HELPER,
33
34 __DRBD_NLA_MAX,
35 DRBD_NLA_MAX = (__DRBD_NLA_MAX - 1)
36};
37
38enum {
39 DRBD_A_DRBD_CFG_REPLY_INFO_TEXT = 1,
40
41 __DRBD_A_DRBD_CFG_REPLY_MAX,
42 DRBD_A_DRBD_CFG_REPLY_MAX = (__DRBD_A_DRBD_CFG_REPLY_MAX - 1)
43};
44
45enum {
46 DRBD_A_DRBD_CFG_CONTEXT_CTX_VOLUME = 1,
47 DRBD_A_DRBD_CFG_CONTEXT_CTX_RESOURCE_NAME,
48 DRBD_A_DRBD_CFG_CONTEXT_CTX_MY_ADDR,
49 DRBD_A_DRBD_CFG_CONTEXT_CTX_PEER_ADDR,
50
51 __DRBD_A_DRBD_CFG_CONTEXT_MAX,
52 DRBD_A_DRBD_CFG_CONTEXT_MAX = (__DRBD_A_DRBD_CFG_CONTEXT_MAX - 1)
53};
54
55enum {
56 DRBD_A_DISK_CONF_BACKING_DEV = 1,
57 DRBD_A_DISK_CONF_META_DEV,
58 DRBD_A_DISK_CONF_META_DEV_IDX,
59 DRBD_A_DISK_CONF_DISK_SIZE,
60 DRBD_A_DISK_CONF_MAX_BIO_BVECS,
61 DRBD_A_DISK_CONF_ON_IO_ERROR,
62 DRBD_A_DISK_CONF_FENCING,
63 DRBD_A_DISK_CONF_RESYNC_RATE,
64 DRBD_A_DISK_CONF_RESYNC_AFTER,
65 DRBD_A_DISK_CONF_AL_EXTENTS,
66 DRBD_A_DISK_CONF_C_PLAN_AHEAD,
67 DRBD_A_DISK_CONF_C_DELAY_TARGET,
68 DRBD_A_DISK_CONF_C_FILL_TARGET,
69 DRBD_A_DISK_CONF_C_MAX_RATE,
70 DRBD_A_DISK_CONF_C_MIN_RATE,
71 DRBD_A_DISK_CONF_DISK_BARRIER,
72 DRBD_A_DISK_CONF_DISK_FLUSHES,
73 DRBD_A_DISK_CONF_DISK_DRAIN,
74 DRBD_A_DISK_CONF_MD_FLUSHES,
75 DRBD_A_DISK_CONF_DISK_TIMEOUT,
76 DRBD_A_DISK_CONF_READ_BALANCING,
77 DRBD_A_DISK_CONF_AL_UPDATES = 23,
78 DRBD_A_DISK_CONF_DISCARD_ZEROES_IF_ALIGNED,
79 DRBD_A_DISK_CONF_RS_DISCARD_GRANULARITY,
80 DRBD_A_DISK_CONF_DISABLE_WRITE_SAME,
81
82 __DRBD_A_DISK_CONF_MAX,
83 DRBD_A_DISK_CONF_MAX = (__DRBD_A_DISK_CONF_MAX - 1)
84};
85
86enum {
87 DRBD_A_RES_OPTS_CPU_MASK = 1,
88 DRBD_A_RES_OPTS_ON_NO_DATA,
89
90 __DRBD_A_RES_OPTS_MAX,
91 DRBD_A_RES_OPTS_MAX = (__DRBD_A_RES_OPTS_MAX - 1)
92};
93
94enum {
95 DRBD_A_NET_CONF_SHARED_SECRET = 1,
96 DRBD_A_NET_CONF_CRAM_HMAC_ALG,
97 DRBD_A_NET_CONF_INTEGRITY_ALG,
98 DRBD_A_NET_CONF_VERIFY_ALG,
99 DRBD_A_NET_CONF_CSUMS_ALG,
100 DRBD_A_NET_CONF_WIRE_PROTOCOL,
101 DRBD_A_NET_CONF_CONNECT_INT,
102 DRBD_A_NET_CONF_TIMEOUT,
103 DRBD_A_NET_CONF_PING_INT,
104 DRBD_A_NET_CONF_PING_TIMEO,
105 DRBD_A_NET_CONF_SNDBUF_SIZE,
106 DRBD_A_NET_CONF_RCVBUF_SIZE,
107 DRBD_A_NET_CONF_KO_COUNT,
108 DRBD_A_NET_CONF_MAX_BUFFERS,
109 DRBD_A_NET_CONF_MAX_EPOCH_SIZE,
110 DRBD_A_NET_CONF_UNPLUG_WATERMARK,
111 DRBD_A_NET_CONF_AFTER_SB_0P,
112 DRBD_A_NET_CONF_AFTER_SB_1P,
113 DRBD_A_NET_CONF_AFTER_SB_2P,
114 DRBD_A_NET_CONF_RR_CONFLICT,
115 DRBD_A_NET_CONF_ON_CONGESTION,
116 DRBD_A_NET_CONF_CONG_FILL,
117 DRBD_A_NET_CONF_CONG_EXTENTS,
118 DRBD_A_NET_CONF_TWO_PRIMARIES,
119 DRBD_A_NET_CONF_DISCARD_MY_DATA,
120 DRBD_A_NET_CONF_TCP_CORK,
121 DRBD_A_NET_CONF_ALWAYS_ASBP,
122 DRBD_A_NET_CONF_TENTATIVE,
123 DRBD_A_NET_CONF_USE_RLE,
124 DRBD_A_NET_CONF_CSUMS_AFTER_CRASH_ONLY = 33,
125 DRBD_A_NET_CONF_SOCK_CHECK_TIMEO,
126
127 __DRBD_A_NET_CONF_MAX,
128 DRBD_A_NET_CONF_MAX = (__DRBD_A_NET_CONF_MAX - 1)
129};
130
131enum {
132 DRBD_A_SET_ROLE_PARMS_ASSUME_UPTODATE = 1,
133
134 __DRBD_A_SET_ROLE_PARMS_MAX,
135 DRBD_A_SET_ROLE_PARMS_MAX = (__DRBD_A_SET_ROLE_PARMS_MAX - 1)
136};
137
138enum {
139 DRBD_A_RESIZE_PARMS_RESIZE_SIZE = 1,
140 DRBD_A_RESIZE_PARMS_RESIZE_FORCE,
141 DRBD_A_RESIZE_PARMS_NO_RESYNC,
142 DRBD_A_RESIZE_PARMS_AL_STRIPES,
143 DRBD_A_RESIZE_PARMS_AL_STRIPE_SIZE,
144
145 __DRBD_A_RESIZE_PARMS_MAX,
146 DRBD_A_RESIZE_PARMS_MAX = (__DRBD_A_RESIZE_PARMS_MAX - 1)
147};
148
149enum {
150 DRBD_A_STATE_INFO_SIB_REASON = 1,
151 DRBD_A_STATE_INFO_CURRENT_STATE,
152 DRBD_A_STATE_INFO_CAPACITY,
153 DRBD_A_STATE_INFO_ED_UUID,
154 DRBD_A_STATE_INFO_PREV_STATE,
155 DRBD_A_STATE_INFO_NEW_STATE,
156 DRBD_A_STATE_INFO_UUIDS,
157 DRBD_A_STATE_INFO_DISK_FLAGS,
158 DRBD_A_STATE_INFO_BITS_TOTAL,
159 DRBD_A_STATE_INFO_BITS_OOS,
160 DRBD_A_STATE_INFO_BITS_RS_TOTAL,
161 DRBD_A_STATE_INFO_BITS_RS_FAILED,
162 DRBD_A_STATE_INFO_HELPER,
163 DRBD_A_STATE_INFO_HELPER_EXIT_CODE,
164 DRBD_A_STATE_INFO_SEND_CNT,
165 DRBD_A_STATE_INFO_RECV_CNT,
166 DRBD_A_STATE_INFO_READ_CNT,
167 DRBD_A_STATE_INFO_WRIT_CNT,
168 DRBD_A_STATE_INFO_AL_WRIT_CNT,
169 DRBD_A_STATE_INFO_BM_WRIT_CNT,
170 DRBD_A_STATE_INFO_AP_BIO_CNT,
171 DRBD_A_STATE_INFO_AP_PENDING_CNT,
172 DRBD_A_STATE_INFO_RS_PENDING_CNT,
173
174 __DRBD_A_STATE_INFO_MAX,
175 DRBD_A_STATE_INFO_MAX = (__DRBD_A_STATE_INFO_MAX - 1)
176};
177
178enum {
179 DRBD_A_START_OV_PARMS_OV_START_SECTOR = 1,
180 DRBD_A_START_OV_PARMS_OV_STOP_SECTOR,
181
182 __DRBD_A_START_OV_PARMS_MAX,
183 DRBD_A_START_OV_PARMS_MAX = (__DRBD_A_START_OV_PARMS_MAX - 1)
184};
185
186enum {
187 DRBD_A_NEW_C_UUID_PARMS_CLEAR_BM = 1,
188
189 __DRBD_A_NEW_C_UUID_PARMS_MAX,
190 DRBD_A_NEW_C_UUID_PARMS_MAX = (__DRBD_A_NEW_C_UUID_PARMS_MAX - 1)
191};
192
193enum {
194 DRBD_A_TIMEOUT_PARMS_TIMEOUT_TYPE = 1,
195
196 __DRBD_A_TIMEOUT_PARMS_MAX,
197 DRBD_A_TIMEOUT_PARMS_MAX = (__DRBD_A_TIMEOUT_PARMS_MAX - 1)
198};
199
200enum {
201 DRBD_A_DISCONNECT_PARMS_FORCE_DISCONNECT = 1,
202
203 __DRBD_A_DISCONNECT_PARMS_MAX,
204 DRBD_A_DISCONNECT_PARMS_MAX = (__DRBD_A_DISCONNECT_PARMS_MAX - 1)
205};
206
207enum {
208 DRBD_A_DETACH_PARMS_FORCE_DETACH = 1,
209
210 __DRBD_A_DETACH_PARMS_MAX,
211 DRBD_A_DETACH_PARMS_MAX = (__DRBD_A_DETACH_PARMS_MAX - 1)
212};
213
214enum {
215 DRBD_A_RESOURCE_INFO_RES_ROLE = 1,
216 DRBD_A_RESOURCE_INFO_RES_SUSP,
217 DRBD_A_RESOURCE_INFO_RES_SUSP_NOD,
218 DRBD_A_RESOURCE_INFO_RES_SUSP_FEN,
219
220 __DRBD_A_RESOURCE_INFO_MAX,
221 DRBD_A_RESOURCE_INFO_MAX = (__DRBD_A_RESOURCE_INFO_MAX - 1)
222};
223
224enum {
225 DRBD_A_DEVICE_INFO_DEV_DISK_STATE = 1,
226
227 __DRBD_A_DEVICE_INFO_MAX,
228 DRBD_A_DEVICE_INFO_MAX = (__DRBD_A_DEVICE_INFO_MAX - 1)
229};
230
231enum {
232 DRBD_A_CONNECTION_INFO_CONN_CONNECTION_STATE = 1,
233 DRBD_A_CONNECTION_INFO_CONN_ROLE,
234
235 __DRBD_A_CONNECTION_INFO_MAX,
236 DRBD_A_CONNECTION_INFO_MAX = (__DRBD_A_CONNECTION_INFO_MAX - 1)
237};
238
239enum {
240 DRBD_A_PEER_DEVICE_INFO_PEER_REPL_STATE = 1,
241 DRBD_A_PEER_DEVICE_INFO_PEER_DISK_STATE,
242 DRBD_A_PEER_DEVICE_INFO_PEER_RESYNC_SUSP_USER,
243 DRBD_A_PEER_DEVICE_INFO_PEER_RESYNC_SUSP_PEER,
244 DRBD_A_PEER_DEVICE_INFO_PEER_RESYNC_SUSP_DEPENDENCY,
245
246 __DRBD_A_PEER_DEVICE_INFO_MAX,
247 DRBD_A_PEER_DEVICE_INFO_MAX = (__DRBD_A_PEER_DEVICE_INFO_MAX - 1)
248};
249
250enum {
251 DRBD_A_RESOURCE_STATISTICS_RES_STAT_WRITE_ORDERING = 1,
252
253 __DRBD_A_RESOURCE_STATISTICS_MAX,
254 DRBD_A_RESOURCE_STATISTICS_MAX = (__DRBD_A_RESOURCE_STATISTICS_MAX - 1)
255};
256
257enum {
258 DRBD_A_DEVICE_STATISTICS_DEV_SIZE = 1,
259 DRBD_A_DEVICE_STATISTICS_DEV_READ,
260 DRBD_A_DEVICE_STATISTICS_DEV_WRITE,
261 DRBD_A_DEVICE_STATISTICS_DEV_AL_WRITES,
262 DRBD_A_DEVICE_STATISTICS_DEV_BM_WRITES,
263 DRBD_A_DEVICE_STATISTICS_DEV_UPPER_PENDING,
264 DRBD_A_DEVICE_STATISTICS_DEV_LOWER_PENDING,
265 DRBD_A_DEVICE_STATISTICS_DEV_UPPER_BLOCKED,
266 DRBD_A_DEVICE_STATISTICS_DEV_LOWER_BLOCKED,
267 DRBD_A_DEVICE_STATISTICS_DEV_AL_SUSPENDED,
268 DRBD_A_DEVICE_STATISTICS_DEV_EXPOSED_DATA_UUID,
269 DRBD_A_DEVICE_STATISTICS_DEV_CURRENT_UUID,
270 DRBD_A_DEVICE_STATISTICS_DEV_DISK_FLAGS,
271 DRBD_A_DEVICE_STATISTICS_HISTORY_UUIDS,
272
273 __DRBD_A_DEVICE_STATISTICS_MAX,
274 DRBD_A_DEVICE_STATISTICS_MAX = (__DRBD_A_DEVICE_STATISTICS_MAX - 1)
275};
276
277enum {
278 DRBD_A_CONNECTION_STATISTICS_CONN_CONGESTED = 1,
279
280 __DRBD_A_CONNECTION_STATISTICS_MAX,
281 DRBD_A_CONNECTION_STATISTICS_MAX = (__DRBD_A_CONNECTION_STATISTICS_MAX - 1)
282};
283
284enum {
285 DRBD_A_PEER_DEVICE_STATISTICS_PEER_DEV_RECEIVED = 1,
286 DRBD_A_PEER_DEVICE_STATISTICS_PEER_DEV_SENT,
287 DRBD_A_PEER_DEVICE_STATISTICS_PEER_DEV_PENDING,
288 DRBD_A_PEER_DEVICE_STATISTICS_PEER_DEV_UNACKED,
289 DRBD_A_PEER_DEVICE_STATISTICS_PEER_DEV_OUT_OF_SYNC,
290 DRBD_A_PEER_DEVICE_STATISTICS_PEER_DEV_RESYNC_FAILED,
291 DRBD_A_PEER_DEVICE_STATISTICS_PEER_DEV_BITMAP_UUID,
292 DRBD_A_PEER_DEVICE_STATISTICS_PEER_DEV_FLAGS = 9,
293
294 __DRBD_A_PEER_DEVICE_STATISTICS_MAX,
295 DRBD_A_PEER_DEVICE_STATISTICS_MAX = (__DRBD_A_PEER_DEVICE_STATISTICS_MAX - 1)
296};
297
298enum {
299 DRBD_A_DRBD_NOTIFICATION_HEADER_NH_TYPE = 1,
300
301 __DRBD_A_DRBD_NOTIFICATION_HEADER_MAX,
302 DRBD_A_DRBD_NOTIFICATION_HEADER_MAX = (__DRBD_A_DRBD_NOTIFICATION_HEADER_MAX - 1)
303};
304
305enum {
306 DRBD_A_DRBD_HELPER_INFO_HELPER_NAME = 1,
307 DRBD_A_DRBD_HELPER_INFO_HELPER_STATUS,
308
309 __DRBD_A_DRBD_HELPER_INFO_MAX,
310 DRBD_A_DRBD_HELPER_INFO_MAX = (__DRBD_A_DRBD_HELPER_INFO_MAX - 1)
311};
312
313enum {
314 DRBD_ADM_EVENT = 1,
315 DRBD_ADM_GET_STATUS,
316 DRBD_ADM_NEW_MINOR = 5,
317 DRBD_ADM_DEL_MINOR,
318 DRBD_ADM_NEW_RESOURCE,
319 DRBD_ADM_DEL_RESOURCE,
320 DRBD_ADM_RESOURCE_OPTS,
321 DRBD_ADM_CONNECT,
322 DRBD_ADM_DISCONNECT,
323 DRBD_ADM_ATTACH,
324 DRBD_ADM_RESIZE,
325 DRBD_ADM_PRIMARY,
326 DRBD_ADM_SECONDARY,
327 DRBD_ADM_NEW_C_UUID,
328 DRBD_ADM_START_OV,
329 DRBD_ADM_DETACH,
330 DRBD_ADM_INVALIDATE,
331 DRBD_ADM_INVAL_PEER,
332 DRBD_ADM_PAUSE_SYNC,
333 DRBD_ADM_RESUME_SYNC,
334 DRBD_ADM_SUSPEND_IO,
335 DRBD_ADM_RESUME_IO,
336 DRBD_ADM_OUTDATE,
337 DRBD_ADM_GET_TIMEOUT_TYPE,
338 DRBD_ADM_DOWN,
339 DRBD_ADM_CHG_DISK_OPTS,
340 DRBD_ADM_CHG_NET_OPTS,
341 DRBD_ADM_GET_RESOURCES,
342 DRBD_ADM_GET_DEVICES,
343 DRBD_ADM_GET_CONNECTIONS,
344 DRBD_ADM_GET_PEER_DEVICES,
345 DRBD_ADM_RESOURCE_STATE,
346 DRBD_ADM_DEVICE_STATE,
347 DRBD_ADM_CONNECTION_STATE,
348 DRBD_ADM_PEER_DEVICE_STATE,
349 DRBD_ADM_GET_INITIAL_STATE,
350 DRBD_ADM_HELPER = 40,
351 DRBD_ADM_INITIAL_STATE_DONE,
352
353 __DRBD_ADM_MAX,
354 DRBD_ADM_MAX = (__DRBD_ADM_MAX - 1)
355};
356
357#define DRBD_MCGRP_EVENTS "events"
358
359#endif /* _LINUX_DRBD_GENL_H */