0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088 GENL_struct(DRBD_NLA_CFG_REPLY, 1, drbd_cfg_reply,
0089
0090 __str_field(1, DRBD_GENLA_F_MANDATORY, info_text, 0)
0091 )
0092
0093
0094
0095
0096
0097
0098 GENL_struct(DRBD_NLA_CFG_CONTEXT, 2, drbd_cfg_context,
0099 __u32_field(1, DRBD_GENLA_F_MANDATORY, ctx_volume)
0100 __str_field(2, DRBD_GENLA_F_MANDATORY, ctx_resource_name, 128)
0101 __bin_field(3, DRBD_GENLA_F_MANDATORY, ctx_my_addr, 128)
0102 __bin_field(4, DRBD_GENLA_F_MANDATORY, ctx_peer_addr, 128)
0103 )
0104
0105 GENL_struct(DRBD_NLA_DISK_CONF, 3, disk_conf,
0106 __str_field(1, DRBD_F_REQUIRED | DRBD_F_INVARIANT, backing_dev, 128)
0107 __str_field(2, DRBD_F_REQUIRED | DRBD_F_INVARIANT, meta_dev, 128)
0108 __s32_field(3, DRBD_F_REQUIRED | DRBD_F_INVARIANT, meta_dev_idx)
0109
0110
0111 __u64_field(4, DRBD_GENLA_F_MANDATORY | DRBD_F_INVARIANT, disk_size)
0112
0113
0114 __u32_field(5, DRBD_GENLA_F_MANDATORY | DRBD_F_INVARIANT, max_bio_bvecs)
0115
0116 __u32_field_def(6, DRBD_GENLA_F_MANDATORY, on_io_error, DRBD_ON_IO_ERROR_DEF)
0117 __u32_field_def(7, DRBD_GENLA_F_MANDATORY, fencing, DRBD_FENCING_DEF)
0118
0119 __u32_field_def(8, DRBD_GENLA_F_MANDATORY, resync_rate, DRBD_RESYNC_RATE_DEF)
0120 __s32_field_def(9, DRBD_GENLA_F_MANDATORY, resync_after, DRBD_MINOR_NUMBER_DEF)
0121 __u32_field_def(10, DRBD_GENLA_F_MANDATORY, al_extents, DRBD_AL_EXTENTS_DEF)
0122 __u32_field_def(11, DRBD_GENLA_F_MANDATORY, c_plan_ahead, DRBD_C_PLAN_AHEAD_DEF)
0123 __u32_field_def(12, DRBD_GENLA_F_MANDATORY, c_delay_target, DRBD_C_DELAY_TARGET_DEF)
0124 __u32_field_def(13, DRBD_GENLA_F_MANDATORY, c_fill_target, DRBD_C_FILL_TARGET_DEF)
0125 __u32_field_def(14, DRBD_GENLA_F_MANDATORY, c_max_rate, DRBD_C_MAX_RATE_DEF)
0126 __u32_field_def(15, DRBD_GENLA_F_MANDATORY, c_min_rate, DRBD_C_MIN_RATE_DEF)
0127 __u32_field_def(20, DRBD_GENLA_F_MANDATORY, disk_timeout, DRBD_DISK_TIMEOUT_DEF)
0128 __u32_field_def(21, 0 , read_balancing, DRBD_READ_BALANCING_DEF)
0129 __u32_field_def(25, 0 , rs_discard_granularity, DRBD_RS_DISCARD_GRANULARITY_DEF)
0130
0131 __flg_field_def(16, DRBD_GENLA_F_MANDATORY, disk_barrier, DRBD_DISK_BARRIER_DEF)
0132 __flg_field_def(17, DRBD_GENLA_F_MANDATORY, disk_flushes, DRBD_DISK_FLUSHES_DEF)
0133 __flg_field_def(18, DRBD_GENLA_F_MANDATORY, disk_drain, DRBD_DISK_DRAIN_DEF)
0134 __flg_field_def(19, DRBD_GENLA_F_MANDATORY, md_flushes, DRBD_MD_FLUSHES_DEF)
0135 __flg_field_def(23, 0 , al_updates, DRBD_AL_UPDATES_DEF)
0136 __flg_field_def(24, 0 , discard_zeroes_if_aligned, DRBD_DISCARD_ZEROES_IF_ALIGNED_DEF)
0137 __flg_field_def(26, 0 , disable_write_same, DRBD_DISABLE_WRITE_SAME_DEF)
0138 )
0139
0140 GENL_struct(DRBD_NLA_RESOURCE_OPTS, 4, res_opts,
0141 __str_field_def(1, DRBD_GENLA_F_MANDATORY, cpu_mask, DRBD_CPU_MASK_SIZE)
0142 __u32_field_def(2, DRBD_GENLA_F_MANDATORY, on_no_data, DRBD_ON_NO_DATA_DEF)
0143 )
0144
0145 GENL_struct(DRBD_NLA_NET_CONF, 5, net_conf,
0146 __str_field_def(1, DRBD_GENLA_F_MANDATORY | DRBD_F_SENSITIVE,
0147 shared_secret, SHARED_SECRET_MAX)
0148 __str_field_def(2, DRBD_GENLA_F_MANDATORY, cram_hmac_alg, SHARED_SECRET_MAX)
0149 __str_field_def(3, DRBD_GENLA_F_MANDATORY, integrity_alg, SHARED_SECRET_MAX)
0150 __str_field_def(4, DRBD_GENLA_F_MANDATORY, verify_alg, SHARED_SECRET_MAX)
0151 __str_field_def(5, DRBD_GENLA_F_MANDATORY, csums_alg, SHARED_SECRET_MAX)
0152 __u32_field_def(6, DRBD_GENLA_F_MANDATORY, wire_protocol, DRBD_PROTOCOL_DEF)
0153 __u32_field_def(7, DRBD_GENLA_F_MANDATORY, connect_int, DRBD_CONNECT_INT_DEF)
0154 __u32_field_def(8, DRBD_GENLA_F_MANDATORY, timeout, DRBD_TIMEOUT_DEF)
0155 __u32_field_def(9, DRBD_GENLA_F_MANDATORY, ping_int, DRBD_PING_INT_DEF)
0156 __u32_field_def(10, DRBD_GENLA_F_MANDATORY, ping_timeo, DRBD_PING_TIMEO_DEF)
0157 __u32_field_def(11, DRBD_GENLA_F_MANDATORY, sndbuf_size, DRBD_SNDBUF_SIZE_DEF)
0158 __u32_field_def(12, DRBD_GENLA_F_MANDATORY, rcvbuf_size, DRBD_RCVBUF_SIZE_DEF)
0159 __u32_field_def(13, DRBD_GENLA_F_MANDATORY, ko_count, DRBD_KO_COUNT_DEF)
0160 __u32_field_def(14, DRBD_GENLA_F_MANDATORY, max_buffers, DRBD_MAX_BUFFERS_DEF)
0161 __u32_field_def(15, DRBD_GENLA_F_MANDATORY, max_epoch_size, DRBD_MAX_EPOCH_SIZE_DEF)
0162 __u32_field_def(16, DRBD_GENLA_F_MANDATORY, unplug_watermark, DRBD_UNPLUG_WATERMARK_DEF)
0163 __u32_field_def(17, DRBD_GENLA_F_MANDATORY, after_sb_0p, DRBD_AFTER_SB_0P_DEF)
0164 __u32_field_def(18, DRBD_GENLA_F_MANDATORY, after_sb_1p, DRBD_AFTER_SB_1P_DEF)
0165 __u32_field_def(19, DRBD_GENLA_F_MANDATORY, after_sb_2p, DRBD_AFTER_SB_2P_DEF)
0166 __u32_field_def(20, DRBD_GENLA_F_MANDATORY, rr_conflict, DRBD_RR_CONFLICT_DEF)
0167 __u32_field_def(21, DRBD_GENLA_F_MANDATORY, on_congestion, DRBD_ON_CONGESTION_DEF)
0168 __u32_field_def(22, DRBD_GENLA_F_MANDATORY, cong_fill, DRBD_CONG_FILL_DEF)
0169 __u32_field_def(23, DRBD_GENLA_F_MANDATORY, cong_extents, DRBD_CONG_EXTENTS_DEF)
0170 __flg_field_def(24, DRBD_GENLA_F_MANDATORY, two_primaries, DRBD_ALLOW_TWO_PRIMARIES_DEF)
0171 __flg_field(25, DRBD_GENLA_F_MANDATORY | DRBD_F_INVARIANT, discard_my_data)
0172 __flg_field_def(26, DRBD_GENLA_F_MANDATORY, tcp_cork, DRBD_TCP_CORK_DEF)
0173 __flg_field_def(27, DRBD_GENLA_F_MANDATORY, always_asbp, DRBD_ALWAYS_ASBP_DEF)
0174 __flg_field(28, DRBD_GENLA_F_MANDATORY | DRBD_F_INVARIANT, tentative)
0175 __flg_field_def(29, DRBD_GENLA_F_MANDATORY, use_rle, DRBD_USE_RLE_DEF)
0176
0177
0178
0179 __flg_field_def(33, 0 , csums_after_crash_only, DRBD_CSUMS_AFTER_CRASH_ONLY_DEF)
0180 __u32_field_def(34, 0 , sock_check_timeo, DRBD_SOCKET_CHECK_TIMEO_DEF)
0181 )
0182
0183 GENL_struct(DRBD_NLA_SET_ROLE_PARMS, 6, set_role_parms,
0184 __flg_field(1, DRBD_GENLA_F_MANDATORY, assume_uptodate)
0185 )
0186
0187 GENL_struct(DRBD_NLA_RESIZE_PARMS, 7, resize_parms,
0188 __u64_field(1, DRBD_GENLA_F_MANDATORY, resize_size)
0189 __flg_field(2, DRBD_GENLA_F_MANDATORY, resize_force)
0190 __flg_field(3, DRBD_GENLA_F_MANDATORY, no_resync)
0191 __u32_field_def(4, 0 , al_stripes, DRBD_AL_STRIPES_DEF)
0192 __u32_field_def(5, 0 , al_stripe_size, DRBD_AL_STRIPE_SIZE_DEF)
0193 )
0194
0195 GENL_struct(DRBD_NLA_STATE_INFO, 8, state_info,
0196
0197
0198 __u32_field(1, DRBD_GENLA_F_MANDATORY, sib_reason)
0199 __u32_field(2, DRBD_F_REQUIRED, current_state)
0200 __u64_field(3, DRBD_GENLA_F_MANDATORY, capacity)
0201 __u64_field(4, DRBD_GENLA_F_MANDATORY, ed_uuid)
0202
0203
0204
0205
0206
0207
0208 __u32_field(5, DRBD_GENLA_F_MANDATORY, prev_state)
0209 __u32_field(6, DRBD_GENLA_F_MANDATORY, new_state)
0210
0211
0212 __bin_field(7, DRBD_GENLA_F_MANDATORY, uuids, (UI_SIZE*sizeof(__u64)))
0213 __u32_field(8, DRBD_GENLA_F_MANDATORY, disk_flags)
0214 __u64_field(9, DRBD_GENLA_F_MANDATORY, bits_total)
0215 __u64_field(10, DRBD_GENLA_F_MANDATORY, bits_oos)
0216
0217 __u64_field(11, DRBD_GENLA_F_MANDATORY, bits_rs_total)
0218 __u64_field(12, DRBD_GENLA_F_MANDATORY, bits_rs_failed)
0219
0220
0221 __str_field(13, DRBD_GENLA_F_MANDATORY, helper, 32)
0222 __u32_field(14, DRBD_GENLA_F_MANDATORY, helper_exit_code)
0223
0224 __u64_field(15, 0, send_cnt)
0225 __u64_field(16, 0, recv_cnt)
0226 __u64_field(17, 0, read_cnt)
0227 __u64_field(18, 0, writ_cnt)
0228 __u64_field(19, 0, al_writ_cnt)
0229 __u64_field(20, 0, bm_writ_cnt)
0230 __u32_field(21, 0, ap_bio_cnt)
0231 __u32_field(22, 0, ap_pending_cnt)
0232 __u32_field(23, 0, rs_pending_cnt)
0233 )
0234
0235 GENL_struct(DRBD_NLA_START_OV_PARMS, 9, start_ov_parms,
0236 __u64_field(1, DRBD_GENLA_F_MANDATORY, ov_start_sector)
0237 __u64_field(2, DRBD_GENLA_F_MANDATORY, ov_stop_sector)
0238 )
0239
0240 GENL_struct(DRBD_NLA_NEW_C_UUID_PARMS, 10, new_c_uuid_parms,
0241 __flg_field(1, DRBD_GENLA_F_MANDATORY, clear_bm)
0242 )
0243
0244 GENL_struct(DRBD_NLA_TIMEOUT_PARMS, 11, timeout_parms,
0245 __u32_field(1, DRBD_F_REQUIRED, timeout_type)
0246 )
0247
0248 GENL_struct(DRBD_NLA_DISCONNECT_PARMS, 12, disconnect_parms,
0249 __flg_field(1, DRBD_GENLA_F_MANDATORY, force_disconnect)
0250 )
0251
0252 GENL_struct(DRBD_NLA_DETACH_PARMS, 13, detach_parms,
0253 __flg_field(1, DRBD_GENLA_F_MANDATORY, force_detach)
0254 )
0255
0256 GENL_struct(DRBD_NLA_RESOURCE_INFO, 15, resource_info,
0257 __u32_field(1, 0, res_role)
0258 __flg_field(2, 0, res_susp)
0259 __flg_field(3, 0, res_susp_nod)
0260 __flg_field(4, 0, res_susp_fen)
0261
0262 )
0263
0264 GENL_struct(DRBD_NLA_DEVICE_INFO, 16, device_info,
0265 __u32_field(1, 0, dev_disk_state)
0266 )
0267
0268 GENL_struct(DRBD_NLA_CONNECTION_INFO, 17, connection_info,
0269 __u32_field(1, 0, conn_connection_state)
0270 __u32_field(2, 0, conn_role)
0271 )
0272
0273 GENL_struct(DRBD_NLA_PEER_DEVICE_INFO, 18, peer_device_info,
0274 __u32_field(1, 0, peer_repl_state)
0275 __u32_field(2, 0, peer_disk_state)
0276 __u32_field(3, 0, peer_resync_susp_user)
0277 __u32_field(4, 0, peer_resync_susp_peer)
0278 __u32_field(5, 0, peer_resync_susp_dependency)
0279 )
0280
0281 GENL_struct(DRBD_NLA_RESOURCE_STATISTICS, 19, resource_statistics,
0282 __u32_field(1, 0, res_stat_write_ordering)
0283 )
0284
0285 GENL_struct(DRBD_NLA_DEVICE_STATISTICS, 20, device_statistics,
0286 __u64_field(1, 0, dev_size)
0287 __u64_field(2, 0, dev_read)
0288 __u64_field(3, 0, dev_write)
0289 __u64_field(4, 0, dev_al_writes)
0290 __u64_field(5, 0, dev_bm_writes)
0291 __u32_field(6, 0, dev_upper_pending)
0292 __u32_field(7, 0, dev_lower_pending)
0293 __flg_field(8, 0, dev_upper_blocked)
0294 __flg_field(9, 0, dev_lower_blocked)
0295 __flg_field(10, 0, dev_al_suspended)
0296 __u64_field(11, 0, dev_exposed_data_uuid)
0297 __u64_field(12, 0, dev_current_uuid)
0298 __u32_field(13, 0, dev_disk_flags)
0299 __bin_field(14, 0, history_uuids, HISTORY_UUIDS * sizeof(__u64))
0300 )
0301
0302 GENL_struct(DRBD_NLA_CONNECTION_STATISTICS, 21, connection_statistics,
0303 __flg_field(1, 0, conn_congested)
0304 )
0305
0306 GENL_struct(DRBD_NLA_PEER_DEVICE_STATISTICS, 22, peer_device_statistics,
0307 __u64_field(1, 0, peer_dev_received)
0308 __u64_field(2, 0, peer_dev_sent)
0309 __u32_field(3, 0, peer_dev_pending)
0310 __u32_field(4, 0, peer_dev_unacked)
0311 __u64_field(5, 0, peer_dev_out_of_sync)
0312 __u64_field(6, 0, peer_dev_resync_failed)
0313 __u64_field(7, 0, peer_dev_bitmap_uuid)
0314 __u32_field(9, 0, peer_dev_flags)
0315 )
0316
0317 GENL_struct(DRBD_NLA_NOTIFICATION_HEADER, 23, drbd_notification_header,
0318 __u32_field(1, DRBD_GENLA_F_MANDATORY, nh_type)
0319 )
0320
0321 GENL_struct(DRBD_NLA_HELPER, 24, drbd_helper_info,
0322 __str_field(1, DRBD_GENLA_F_MANDATORY, helper_name, 32)
0323 __u32_field(2, DRBD_GENLA_F_MANDATORY, helper_status)
0324 )
0325
0326
0327
0328
0329 GENL_mc_group(events)
0330
0331
0332 GENL_notification(
0333 DRBD_EVENT, 1, events,
0334 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0335 GENL_tla_expected(DRBD_NLA_STATE_INFO, DRBD_F_REQUIRED)
0336 GENL_tla_expected(DRBD_NLA_NET_CONF, DRBD_GENLA_F_MANDATORY)
0337 GENL_tla_expected(DRBD_NLA_DISK_CONF, DRBD_GENLA_F_MANDATORY)
0338 GENL_tla_expected(DRBD_NLA_SYNCER_CONF, DRBD_GENLA_F_MANDATORY)
0339 )
0340
0341
0342 GENL_op(
0343 DRBD_ADM_GET_STATUS, 2,
0344 GENL_op_init(
0345 .doit = drbd_adm_get_status,
0346 .dumpit = drbd_adm_get_status_all,
0347
0348
0349 ),
0350
0351
0352 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_GENLA_F_MANDATORY)
0353 )
0354
0355
0356 GENL_op(DRBD_ADM_NEW_MINOR, 5, GENL_doit(drbd_adm_new_minor),
0357 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0358 GENL_op(DRBD_ADM_DEL_MINOR, 6, GENL_doit(drbd_adm_del_minor),
0359 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0360
0361
0362 GENL_op(DRBD_ADM_NEW_RESOURCE, 7, GENL_doit(drbd_adm_new_resource),
0363 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0364 GENL_op(DRBD_ADM_DEL_RESOURCE, 8, GENL_doit(drbd_adm_del_resource),
0365 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0366
0367 GENL_op(DRBD_ADM_RESOURCE_OPTS, 9,
0368 GENL_doit(drbd_adm_resource_opts),
0369 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0370 GENL_tla_expected(DRBD_NLA_RESOURCE_OPTS, DRBD_GENLA_F_MANDATORY)
0371 )
0372
0373 GENL_op(
0374 DRBD_ADM_CONNECT, 10,
0375 GENL_doit(drbd_adm_connect),
0376 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0377 GENL_tla_expected(DRBD_NLA_NET_CONF, DRBD_F_REQUIRED)
0378 )
0379
0380 GENL_op(
0381 DRBD_ADM_CHG_NET_OPTS, 29,
0382 GENL_doit(drbd_adm_net_opts),
0383 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0384 GENL_tla_expected(DRBD_NLA_NET_CONF, DRBD_F_REQUIRED)
0385 )
0386
0387 GENL_op(DRBD_ADM_DISCONNECT, 11, GENL_doit(drbd_adm_disconnect),
0388 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0389
0390 GENL_op(DRBD_ADM_ATTACH, 12,
0391 GENL_doit(drbd_adm_attach),
0392 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0393 GENL_tla_expected(DRBD_NLA_DISK_CONF, DRBD_F_REQUIRED)
0394 )
0395
0396 GENL_op(DRBD_ADM_CHG_DISK_OPTS, 28,
0397 GENL_doit(drbd_adm_disk_opts),
0398 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0399 GENL_tla_expected(DRBD_NLA_DISK_OPTS, DRBD_F_REQUIRED)
0400 )
0401
0402 GENL_op(
0403 DRBD_ADM_RESIZE, 13,
0404 GENL_doit(drbd_adm_resize),
0405 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0406 GENL_tla_expected(DRBD_NLA_RESIZE_PARMS, DRBD_GENLA_F_MANDATORY)
0407 )
0408
0409 GENL_op(
0410 DRBD_ADM_PRIMARY, 14,
0411 GENL_doit(drbd_adm_set_role),
0412 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0413 GENL_tla_expected(DRBD_NLA_SET_ROLE_PARMS, DRBD_F_REQUIRED)
0414 )
0415
0416 GENL_op(
0417 DRBD_ADM_SECONDARY, 15,
0418 GENL_doit(drbd_adm_set_role),
0419 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0420 GENL_tla_expected(DRBD_NLA_SET_ROLE_PARMS, DRBD_F_REQUIRED)
0421 )
0422
0423 GENL_op(
0424 DRBD_ADM_NEW_C_UUID, 16,
0425 GENL_doit(drbd_adm_new_c_uuid),
0426 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0427 GENL_tla_expected(DRBD_NLA_NEW_C_UUID_PARMS, DRBD_GENLA_F_MANDATORY)
0428 )
0429
0430 GENL_op(
0431 DRBD_ADM_START_OV, 17,
0432 GENL_doit(drbd_adm_start_ov),
0433 GENL_tla_expected(DRBD_NLA_START_OV_PARMS, DRBD_GENLA_F_MANDATORY)
0434 )
0435
0436 GENL_op(DRBD_ADM_DETACH, 18, GENL_doit(drbd_adm_detach),
0437 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0438 GENL_tla_expected(DRBD_NLA_DETACH_PARMS, DRBD_GENLA_F_MANDATORY))
0439
0440 GENL_op(DRBD_ADM_INVALIDATE, 19, GENL_doit(drbd_adm_invalidate),
0441 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0442 GENL_op(DRBD_ADM_INVAL_PEER, 20, GENL_doit(drbd_adm_invalidate_peer),
0443 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0444 GENL_op(DRBD_ADM_PAUSE_SYNC, 21, GENL_doit(drbd_adm_pause_sync),
0445 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0446 GENL_op(DRBD_ADM_RESUME_SYNC, 22, GENL_doit(drbd_adm_resume_sync),
0447 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0448 GENL_op(DRBD_ADM_SUSPEND_IO, 23, GENL_doit(drbd_adm_suspend_io),
0449 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0450 GENL_op(DRBD_ADM_RESUME_IO, 24, GENL_doit(drbd_adm_resume_io),
0451 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0452 GENL_op(DRBD_ADM_OUTDATE, 25, GENL_doit(drbd_adm_outdate),
0453 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0454 GENL_op(DRBD_ADM_GET_TIMEOUT_TYPE, 26, GENL_doit(drbd_adm_get_timeout_type),
0455 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0456 GENL_op(DRBD_ADM_DOWN, 27, GENL_doit(drbd_adm_down),
0457 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
0458
0459 GENL_op(DRBD_ADM_GET_RESOURCES, 30,
0460 GENL_op_init(
0461 .dumpit = drbd_adm_dump_resources,
0462 ),
0463 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_GENLA_F_MANDATORY)
0464 GENL_tla_expected(DRBD_NLA_RESOURCE_INFO, DRBD_GENLA_F_MANDATORY)
0465 GENL_tla_expected(DRBD_NLA_RESOURCE_STATISTICS, DRBD_GENLA_F_MANDATORY))
0466
0467 GENL_op(DRBD_ADM_GET_DEVICES, 31,
0468 GENL_op_init(
0469 .dumpit = drbd_adm_dump_devices,
0470 .done = drbd_adm_dump_devices_done,
0471 ),
0472 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_GENLA_F_MANDATORY)
0473 GENL_tla_expected(DRBD_NLA_DEVICE_INFO, DRBD_GENLA_F_MANDATORY)
0474 GENL_tla_expected(DRBD_NLA_DEVICE_STATISTICS, DRBD_GENLA_F_MANDATORY))
0475
0476 GENL_op(DRBD_ADM_GET_CONNECTIONS, 32,
0477 GENL_op_init(
0478 .dumpit = drbd_adm_dump_connections,
0479 .done = drbd_adm_dump_connections_done,
0480 ),
0481 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_GENLA_F_MANDATORY)
0482 GENL_tla_expected(DRBD_NLA_CONNECTION_INFO, DRBD_GENLA_F_MANDATORY)
0483 GENL_tla_expected(DRBD_NLA_CONNECTION_STATISTICS, DRBD_GENLA_F_MANDATORY))
0484
0485 GENL_op(DRBD_ADM_GET_PEER_DEVICES, 33,
0486 GENL_op_init(
0487 .dumpit = drbd_adm_dump_peer_devices,
0488 .done = drbd_adm_dump_peer_devices_done,
0489 ),
0490 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_GENLA_F_MANDATORY)
0491 GENL_tla_expected(DRBD_NLA_PEER_DEVICE_INFO, DRBD_GENLA_F_MANDATORY)
0492 GENL_tla_expected(DRBD_NLA_PEER_DEVICE_STATISTICS, DRBD_GENLA_F_MANDATORY))
0493
0494 GENL_notification(
0495 DRBD_RESOURCE_STATE, 34, events,
0496 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0497 GENL_tla_expected(DRBD_NLA_NOTIFICATION_HEADER, DRBD_F_REQUIRED)
0498 GENL_tla_expected(DRBD_NLA_RESOURCE_INFO, DRBD_F_REQUIRED)
0499 GENL_tla_expected(DRBD_NLA_RESOURCE_STATISTICS, DRBD_F_REQUIRED))
0500
0501 GENL_notification(
0502 DRBD_DEVICE_STATE, 35, events,
0503 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0504 GENL_tla_expected(DRBD_NLA_NOTIFICATION_HEADER, DRBD_F_REQUIRED)
0505 GENL_tla_expected(DRBD_NLA_DEVICE_INFO, DRBD_F_REQUIRED)
0506 GENL_tla_expected(DRBD_NLA_DEVICE_STATISTICS, DRBD_F_REQUIRED))
0507
0508 GENL_notification(
0509 DRBD_CONNECTION_STATE, 36, events,
0510 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0511 GENL_tla_expected(DRBD_NLA_NOTIFICATION_HEADER, DRBD_F_REQUIRED)
0512 GENL_tla_expected(DRBD_NLA_CONNECTION_INFO, DRBD_F_REQUIRED)
0513 GENL_tla_expected(DRBD_NLA_CONNECTION_STATISTICS, DRBD_F_REQUIRED))
0514
0515 GENL_notification(
0516 DRBD_PEER_DEVICE_STATE, 37, events,
0517 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0518 GENL_tla_expected(DRBD_NLA_NOTIFICATION_HEADER, DRBD_F_REQUIRED)
0519 GENL_tla_expected(DRBD_NLA_PEER_DEVICE_INFO, DRBD_F_REQUIRED)
0520 GENL_tla_expected(DRBD_NLA_PEER_DEVICE_STATISTICS, DRBD_F_REQUIRED))
0521
0522 GENL_op(
0523 DRBD_ADM_GET_INITIAL_STATE, 38,
0524 GENL_op_init(
0525 .dumpit = drbd_adm_get_initial_state,
0526 ),
0527 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_GENLA_F_MANDATORY))
0528
0529 GENL_notification(
0530 DRBD_HELPER, 40, events,
0531 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
0532 GENL_tla_expected(DRBD_NLA_HELPER, DRBD_F_REQUIRED))
0533
0534 GENL_notification(
0535 DRBD_INITIAL_STATE_DONE, 41, events,
0536 GENL_tla_expected(DRBD_NLA_NOTIFICATION_HEADER, DRBD_F_REQUIRED))