aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/drbd_genl.h
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruen@linbit.com>2011-05-19 11:39:28 -0400
committerPhilipp Reisner <philipp.reisner@linbit.com>2012-11-08 10:55:55 -0500
commit5f9359201b5cf1d94fe0e0c47fcba38cfc921863 (patch)
tree3d2e41a9590bb0e77a50d4b0ea4b8ad4706f566e /include/linux/drbd_genl.h
parentbbbef2d5ad8203f67274196dac90754ae106a463 (diff)
drbd: Make drbd's use of netlink attribute flags less confusing
Make it more clear in the flag names which flags are internal to drbd, and which are not. The check for mandatory attributes is the only extension visible at the netlink layer. Attributes with this flag set would look like unknown attributes to some kernel versions. The netlink layer would ignore them and also skip consistency checks on the attribute type and legth. To avoid this, we check for mandatory attributes first, remove the mandatory flag, and then process the attributes normally. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'include/linux/drbd_genl.h')
-rw-r--r--include/linux/drbd_genl.h244
1 files changed, 122 insertions, 122 deletions
diff --git a/include/linux/drbd_genl.h b/include/linux/drbd_genl.h
index 7b174a093a8d..4ceecb9307d9 100644
--- a/include/linux/drbd_genl.h
+++ b/include/linux/drbd_genl.h
@@ -86,7 +86,7 @@
86 */ 86 */
87GENL_struct(DRBD_NLA_CFG_REPLY, 1, drbd_cfg_reply, 87GENL_struct(DRBD_NLA_CFG_REPLY, 1, drbd_cfg_reply,
88 /* "arbitrary" size strings, nla_policy.len = 0 */ 88 /* "arbitrary" size strings, nla_policy.len = 0 */
89 __str_field(1, GENLA_F_MANDATORY, info_text, 0) 89 __str_field(1, DRBD_GENLA_F_MANDATORY, info_text, 0)
90) 90)
91 91
92/* Configuration requests typically need a context to operate on. 92/* Configuration requests typically need a context to operate on.
@@ -95,133 +95,133 @@ GENL_struct(DRBD_NLA_CFG_REPLY, 1, drbd_cfg_reply,
95 * and/or the replication group (aka resource) name, 95 * and/or the replication group (aka resource) name,
96 * and the volume id within the resource. */ 96 * and the volume id within the resource. */
97GENL_struct(DRBD_NLA_CFG_CONTEXT, 2, drbd_cfg_context, 97GENL_struct(DRBD_NLA_CFG_CONTEXT, 2, drbd_cfg_context,
98 __u32_field(1, GENLA_F_MANDATORY, ctx_volume) 98 __u32_field(1, DRBD_GENLA_F_MANDATORY, ctx_volume)
99 __str_field(2, GENLA_F_MANDATORY, ctx_conn_name, 128) 99 __str_field(2, DRBD_GENLA_F_MANDATORY, ctx_conn_name, 128)
100) 100)
101 101
102GENL_struct(DRBD_NLA_DISK_CONF, 3, disk_conf, 102GENL_struct(DRBD_NLA_DISK_CONF, 3, disk_conf,
103 __str_field(1, GENLA_F_REQUIRED | GENLA_F_INVARIANT, backing_dev, 128) 103 __str_field(1, DRBD_F_REQUIRED | DRBD_F_INVARIANT, backing_dev, 128)
104 __str_field(2, GENLA_F_REQUIRED | GENLA_F_INVARIANT, meta_dev, 128) 104 __str_field(2, DRBD_F_REQUIRED | DRBD_F_INVARIANT, meta_dev, 128)
105 __s32_field(3, GENLA_F_REQUIRED | GENLA_F_INVARIANT, meta_dev_idx) 105 __s32_field(3, DRBD_F_REQUIRED | DRBD_F_INVARIANT, meta_dev_idx)
106 106
107 /* use the resize command to try and change the disk_size */ 107 /* use the resize command to try and change the disk_size */
108 __u64_field(4, GENLA_F_MANDATORY | GENLA_F_INVARIANT, disk_size) 108 __u64_field(4, DRBD_GENLA_F_MANDATORY | DRBD_F_INVARIANT, disk_size)
109 /* we could change the max_bio_bvecs, 109 /* we could change the max_bio_bvecs,
110 * but it won't propagate through the stack */ 110 * but it won't propagate through the stack */
111 __u32_field(5, GENLA_F_MANDATORY | GENLA_F_INVARIANT, max_bio_bvecs) 111 __u32_field(5, DRBD_GENLA_F_MANDATORY | DRBD_F_INVARIANT, max_bio_bvecs)
112 112
113 __u32_field_def(6, GENLA_F_MANDATORY, on_io_error, DRBD_ON_IO_ERROR_DEF) 113 __u32_field_def(6, DRBD_GENLA_F_MANDATORY, on_io_error, DRBD_ON_IO_ERROR_DEF)
114 __u32_field_def(7, GENLA_F_MANDATORY, fencing, DRBD_FENCING_DEF) 114 __u32_field_def(7, DRBD_GENLA_F_MANDATORY, fencing, DRBD_FENCING_DEF)
115 115
116 __u32_field_def(8, GENLA_F_MANDATORY, resync_rate, DRBD_RESYNC_RATE_DEF) 116 __u32_field_def(8, DRBD_GENLA_F_MANDATORY, resync_rate, DRBD_RESYNC_RATE_DEF)
117 __s32_field_def(9, GENLA_F_MANDATORY, resync_after, DRBD_RESYNC_AFTER_DEF) 117 __s32_field_def(9, DRBD_GENLA_F_MANDATORY, resync_after, DRBD_MINOR_NUMBER_DEF)
118 __u32_field_def(10, GENLA_F_MANDATORY, al_extents, DRBD_AL_EXTENTS_DEF) 118 __u32_field_def(10, DRBD_GENLA_F_MANDATORY, al_extents, DRBD_AL_EXTENTS_DEF)
119 __u32_field_def(11, GENLA_F_MANDATORY, c_plan_ahead, DRBD_C_PLAN_AHEAD_DEF) 119 __u32_field_def(11, DRBD_GENLA_F_MANDATORY, c_plan_ahead, DRBD_C_PLAN_AHEAD_DEF)
120 __u32_field_def(12, GENLA_F_MANDATORY, c_delay_target, DRBD_C_DELAY_TARGET_DEF) 120 __u32_field_def(12, DRBD_GENLA_F_MANDATORY, c_delay_target, DRBD_C_DELAY_TARGET_DEF)
121 __u32_field_def(13, GENLA_F_MANDATORY, c_fill_target, DRBD_C_FILL_TARGET_DEF) 121 __u32_field_def(13, DRBD_GENLA_F_MANDATORY, c_fill_target, DRBD_C_FILL_TARGET_DEF)
122 __u32_field_def(14, GENLA_F_MANDATORY, c_max_rate, DRBD_C_MAX_RATE_DEF) 122 __u32_field_def(14, DRBD_GENLA_F_MANDATORY, c_max_rate, DRBD_C_MAX_RATE_DEF)
123 __u32_field_def(15, GENLA_F_MANDATORY, c_min_rate, DRBD_C_MIN_RATE_DEF) 123 __u32_field_def(15, DRBD_GENLA_F_MANDATORY, c_min_rate, DRBD_C_MIN_RATE_DEF)
124 124
125 __flg_field_def(16, GENLA_F_MANDATORY, disk_barrier, DRBD_DISK_BARRIER_DEF) 125 __flg_field_def(16, DRBD_GENLA_F_MANDATORY, disk_barrier, DRBD_DISK_BARRIER_DEF)
126 __flg_field_def(17, GENLA_F_MANDATORY, disk_flushes, DRBD_DISK_FLUSHES_DEF) 126 __flg_field_def(17, DRBD_GENLA_F_MANDATORY, disk_flushes, DRBD_DISK_FLUSHES_DEF)
127 __flg_field_def(18, GENLA_F_MANDATORY, disk_drain, DRBD_DISK_DRAIN_DEF) 127 __flg_field_def(18, DRBD_GENLA_F_MANDATORY, disk_drain, DRBD_DISK_DRAIN_DEF)
128 __flg_field_def(19, GENLA_F_MANDATORY, md_flushes, DRBD_MD_FLUSHES_DEF) 128 __flg_field_def(19, DRBD_GENLA_F_MANDATORY, md_flushes, DRBD_MD_FLUSHES_DEF)
129) 129)
130 130
131GENL_struct(DRBD_NLA_RESOURCE_OPTS, 4, res_opts, 131GENL_struct(DRBD_NLA_RESOURCE_OPTS, 4, res_opts,
132 __str_field_def(1, GENLA_F_MANDATORY, cpu_mask, 32) 132 __str_field_def(1, DRBD_GENLA_F_MANDATORY, cpu_mask, 32)
133 __u32_field_def(2, GENLA_F_MANDATORY, on_no_data, DRBD_ON_NO_DATA_DEF) 133 __u32_field_def(2, DRBD_GENLA_F_MANDATORY, on_no_data, DRBD_ON_NO_DATA_DEF)
134) 134)
135 135
136GENL_struct(DRBD_NLA_NET_CONF, 5, net_conf, 136GENL_struct(DRBD_NLA_NET_CONF, 5, net_conf,
137 __bin_field(1, GENLA_F_REQUIRED | GENLA_F_INVARIANT, my_addr, 128) 137 __bin_field(1, DRBD_F_REQUIRED | DRBD_F_INVARIANT, my_addr, 128)
138 __bin_field(2, GENLA_F_REQUIRED | GENLA_F_INVARIANT, peer_addr, 128) 138 __bin_field(2, DRBD_F_REQUIRED | DRBD_F_INVARIANT, peer_addr, 128)
139 __str_field_def(3, GENLA_F_MANDATORY | GENLA_F_SENSITIVE, 139 __str_field_def(3, DRBD_GENLA_F_MANDATORY | DRBD_F_SENSITIVE,
140 shared_secret, SHARED_SECRET_MAX) 140 shared_secret, SHARED_SECRET_MAX)
141 __str_field_def(4, GENLA_F_MANDATORY, cram_hmac_alg, SHARED_SECRET_MAX) 141 __str_field_def(4, DRBD_GENLA_F_MANDATORY, cram_hmac_alg, SHARED_SECRET_MAX)
142 __str_field_def(5, GENLA_F_MANDATORY, integrity_alg, SHARED_SECRET_MAX) 142 __str_field_def(5, DRBD_GENLA_F_MANDATORY, integrity_alg, SHARED_SECRET_MAX)
143 __str_field_def(6, GENLA_F_MANDATORY, verify_alg, SHARED_SECRET_MAX) 143 __str_field_def(6, DRBD_GENLA_F_MANDATORY, verify_alg, SHARED_SECRET_MAX)
144 __str_field_def(7, GENLA_F_MANDATORY, csums_alg, SHARED_SECRET_MAX) 144 __str_field_def(7, DRBD_GENLA_F_MANDATORY, csums_alg, SHARED_SECRET_MAX)
145 __u32_field_def(8, GENLA_F_MANDATORY, wire_protocol, DRBD_PROTOCOL_DEF) 145 __u32_field_def(8, DRBD_GENLA_F_MANDATORY, wire_protocol, DRBD_PROTOCOL_DEF)
146 __u32_field_def(9, GENLA_F_MANDATORY, connect_int, DRBD_CONNECT_INT_DEF) 146 __u32_field_def(9, DRBD_GENLA_F_MANDATORY, connect_int, DRBD_CONNECT_INT_DEF)
147 __u32_field_def(10, GENLA_F_MANDATORY, timeout, DRBD_TIMEOUT_DEF) 147 __u32_field_def(10, DRBD_GENLA_F_MANDATORY, timeout, DRBD_TIMEOUT_DEF)
148 __u32_field_def(11, GENLA_F_MANDATORY, ping_int, DRBD_PING_INT_DEF) 148 __u32_field_def(11, DRBD_GENLA_F_MANDATORY, ping_int, DRBD_PING_INT_DEF)
149 __u32_field_def(12, GENLA_F_MANDATORY, ping_timeo, DRBD_PING_TIMEO_DEF) 149 __u32_field_def(12, DRBD_GENLA_F_MANDATORY, ping_timeo, DRBD_PING_TIMEO_DEF)
150 __u32_field_def(13, GENLA_F_MANDATORY, sndbuf_size, DRBD_SNDBUF_SIZE_DEF) 150 __u32_field_def(13, DRBD_GENLA_F_MANDATORY, sndbuf_size, DRBD_SNDBUF_SIZE_DEF)
151 __u32_field_def(14, GENLA_F_MANDATORY, rcvbuf_size, DRBD_RCVBUF_SIZE_DEF) 151 __u32_field_def(14, DRBD_GENLA_F_MANDATORY, rcvbuf_size, DRBD_RCVBUF_SIZE_DEF)
152 __u32_field_def(15, GENLA_F_MANDATORY, ko_count, DRBD_KO_COUNT_DEF) 152 __u32_field_def(15, DRBD_GENLA_F_MANDATORY, ko_count, DRBD_KO_COUNT_DEF)
153 __u32_field_def(16, GENLA_F_MANDATORY, max_buffers, DRBD_MAX_BUFFERS_DEF) 153 __u32_field_def(16, DRBD_GENLA_F_MANDATORY, max_buffers, DRBD_MAX_BUFFERS_DEF)
154 __u32_field_def(17, GENLA_F_MANDATORY, max_epoch_size, DRBD_MAX_EPOCH_SIZE_DEF) 154 __u32_field_def(17, DRBD_GENLA_F_MANDATORY, max_epoch_size, DRBD_MAX_EPOCH_SIZE_DEF)
155 __u32_field_def(18, GENLA_F_MANDATORY, unplug_watermark, DRBD_UNPLUG_WATERMARK_DEF) 155 __u32_field_def(18, DRBD_GENLA_F_MANDATORY, unplug_watermark, DRBD_UNPLUG_WATERMARK_DEF)
156 __u32_field_def(19, GENLA_F_MANDATORY, after_sb_0p, DRBD_AFTER_SB_0P_DEF) 156 __u32_field_def(19, DRBD_GENLA_F_MANDATORY, after_sb_0p, DRBD_AFTER_SB_0P_DEF)
157 __u32_field_def(20, GENLA_F_MANDATORY, after_sb_1p, DRBD_AFTER_SB_1P_DEF) 157 __u32_field_def(20, DRBD_GENLA_F_MANDATORY, after_sb_1p, DRBD_AFTER_SB_1P_DEF)
158 __u32_field_def(21, GENLA_F_MANDATORY, after_sb_2p, DRBD_AFTER_SB_2P_DEF) 158 __u32_field_def(21, DRBD_GENLA_F_MANDATORY, after_sb_2p, DRBD_AFTER_SB_2P_DEF)
159 __u32_field_def(22, GENLA_F_MANDATORY, rr_conflict, DRBD_RR_CONFLICT_DEF) 159 __u32_field_def(22, DRBD_GENLA_F_MANDATORY, rr_conflict, DRBD_RR_CONFLICT_DEF)
160 __u32_field_def(23, GENLA_F_MANDATORY, on_congestion, DRBD_ON_CONGESTION_DEF) 160 __u32_field_def(23, DRBD_GENLA_F_MANDATORY, on_congestion, DRBD_ON_CONGESTION_DEF)
161 __u32_field_def(24, GENLA_F_MANDATORY, cong_fill, DRBD_CONG_FILL_DEF) 161 __u32_field_def(24, DRBD_GENLA_F_MANDATORY, cong_fill, DRBD_CONG_FILL_DEF)
162 __u32_field_def(25, GENLA_F_MANDATORY, cong_extents, DRBD_CONG_EXTENTS_DEF) 162 __u32_field_def(25, DRBD_GENLA_F_MANDATORY, cong_extents, DRBD_CONG_EXTENTS_DEF)
163 __flg_field_def(26, GENLA_F_MANDATORY, two_primaries, DRBD_ALLOW_TWO_PRIMARIES_DEF) 163 __flg_field_def(26, DRBD_GENLA_F_MANDATORY, two_primaries, DRBD_ALLOW_TWO_PRIMARIES_DEF)
164 __flg_field(27, GENLA_F_MANDATORY | GENLA_F_INVARIANT, discard_my_data) 164 __flg_field(27, DRBD_GENLA_F_MANDATORY | DRBD_F_INVARIANT, discard_my_data)
165 __flg_field_def(28, GENLA_F_MANDATORY, tcp_cork, DRBD_TCP_CORK_DEF) 165 __flg_field_def(28, DRBD_GENLA_F_MANDATORY, tcp_cork, DRBD_TCP_CORK_DEF)
166 __flg_field_def(29, GENLA_F_MANDATORY, always_asbp, DRBD_ALWAYS_ASBP_DEF) 166 __flg_field_def(29, DRBD_GENLA_F_MANDATORY, always_asbp, DRBD_ALWAYS_ASBP_DEF)
167 __flg_field(30, GENLA_F_MANDATORY | GENLA_F_INVARIANT, dry_run) 167 __flg_field(30, DRBD_GENLA_F_MANDATORY | DRBD_F_INVARIANT, dry_run)
168 __flg_field_def(31, GENLA_F_MANDATORY, use_rle, DRBD_USE_RLE_DEF) 168 __flg_field_def(31, DRBD_GENLA_F_MANDATORY, use_rle, DRBD_USE_RLE_DEF)
169) 169)
170 170
171GENL_struct(DRBD_NLA_SET_ROLE_PARMS, 6, set_role_parms, 171GENL_struct(DRBD_NLA_SET_ROLE_PARMS, 6, set_role_parms,
172 __flg_field(1, GENLA_F_MANDATORY, assume_uptodate) 172 __flg_field(1, DRBD_GENLA_F_MANDATORY, assume_uptodate)
173) 173)
174 174
175GENL_struct(DRBD_NLA_RESIZE_PARMS, 7, resize_parms, 175GENL_struct(DRBD_NLA_RESIZE_PARMS, 7, resize_parms,
176 __u64_field(1, GENLA_F_MANDATORY, resize_size) 176 __u64_field(1, DRBD_GENLA_F_MANDATORY, resize_size)
177 __flg_field(2, GENLA_F_MANDATORY, resize_force) 177 __flg_field(2, DRBD_GENLA_F_MANDATORY, resize_force)
178 __flg_field(3, GENLA_F_MANDATORY, no_resync) 178 __flg_field(3, DRBD_GENLA_F_MANDATORY, no_resync)
179) 179)
180 180
181GENL_struct(DRBD_NLA_STATE_INFO, 8, state_info, 181GENL_struct(DRBD_NLA_STATE_INFO, 8, state_info,
182 /* the reason of the broadcast, 182 /* the reason of the broadcast,
183 * if this is an event triggered broadcast. */ 183 * if this is an event triggered broadcast. */
184 __u32_field(1, GENLA_F_MANDATORY, sib_reason) 184 __u32_field(1, DRBD_GENLA_F_MANDATORY, sib_reason)
185 __u32_field(2, GENLA_F_REQUIRED, current_state) 185 __u32_field(2, DRBD_F_REQUIRED, current_state)
186 __u64_field(3, GENLA_F_MANDATORY, capacity) 186 __u64_field(3, DRBD_GENLA_F_MANDATORY, capacity)
187 __u64_field(4, GENLA_F_MANDATORY, ed_uuid) 187 __u64_field(4, DRBD_GENLA_F_MANDATORY, ed_uuid)
188 188
189 /* These are for broadcast from after state change work. 189 /* These are for broadcast from after state change work.
190 * prev_state and new_state are from the moment the state change took 190 * prev_state and new_state are from the moment the state change took
191 * place, new_state is not neccessarily the same as current_state, 191 * place, new_state is not neccessarily the same as current_state,
192 * there may have been more state changes since. Which will be 192 * there may have been more state changes since. Which will be
193 * broadcasted soon, in their respective after state change work. */ 193 * broadcasted soon, in their respective after state change work. */
194 __u32_field(5, GENLA_F_MANDATORY, prev_state) 194 __u32_field(5, DRBD_GENLA_F_MANDATORY, prev_state)
195 __u32_field(6, GENLA_F_MANDATORY, new_state) 195 __u32_field(6, DRBD_GENLA_F_MANDATORY, new_state)
196 196
197 /* if we have a local disk: */ 197 /* if we have a local disk: */
198 __bin_field(7, GENLA_F_MANDATORY, uuids, (UI_SIZE*sizeof(__u64))) 198 __bin_field(7, DRBD_GENLA_F_MANDATORY, uuids, (UI_SIZE*sizeof(__u64)))
199 __u32_field(8, GENLA_F_MANDATORY, disk_flags) 199 __u32_field(8, DRBD_GENLA_F_MANDATORY, disk_flags)
200 __u64_field(9, GENLA_F_MANDATORY, bits_total) 200 __u64_field(9, DRBD_GENLA_F_MANDATORY, bits_total)
201 __u64_field(10, GENLA_F_MANDATORY, bits_oos) 201 __u64_field(10, DRBD_GENLA_F_MANDATORY, bits_oos)
202 /* and in case resync or online verify is active */ 202 /* and in case resync or online verify is active */
203 __u64_field(11, GENLA_F_MANDATORY, bits_rs_total) 203 __u64_field(11, DRBD_GENLA_F_MANDATORY, bits_rs_total)
204 __u64_field(12, GENLA_F_MANDATORY, bits_rs_failed) 204 __u64_field(12, DRBD_GENLA_F_MANDATORY, bits_rs_failed)
205 205
206 /* for pre and post notifications of helper execution */ 206 /* for pre and post notifications of helper execution */
207 __str_field(13, GENLA_F_MANDATORY, helper, 32) 207 __str_field(13, DRBD_GENLA_F_MANDATORY, helper, 32)
208 __u32_field(14, GENLA_F_MANDATORY, helper_exit_code) 208 __u32_field(14, DRBD_GENLA_F_MANDATORY, helper_exit_code)
209) 209)
210 210
211GENL_struct(DRBD_NLA_START_OV_PARMS, 9, start_ov_parms, 211GENL_struct(DRBD_NLA_START_OV_PARMS, 9, start_ov_parms,
212 __u64_field(1, GENLA_F_MANDATORY, ov_start_sector) 212 __u64_field(1, DRBD_GENLA_F_MANDATORY, ov_start_sector)
213) 213)
214 214
215GENL_struct(DRBD_NLA_NEW_C_UUID_PARMS, 10, new_c_uuid_parms, 215GENL_struct(DRBD_NLA_NEW_C_UUID_PARMS, 10, new_c_uuid_parms,
216 __flg_field(1, GENLA_F_MANDATORY, clear_bm) 216 __flg_field(1, DRBD_GENLA_F_MANDATORY, clear_bm)
217) 217)
218 218
219GENL_struct(DRBD_NLA_TIMEOUT_PARMS, 11, timeout_parms, 219GENL_struct(DRBD_NLA_TIMEOUT_PARMS, 11, timeout_parms,
220 __u32_field(1, GENLA_F_REQUIRED, timeout_type) 220 __u32_field(1, DRBD_F_REQUIRED, timeout_type)
221) 221)
222 222
223GENL_struct(DRBD_NLA_DISCONNECT_PARMS, 12, disconnect_parms, 223GENL_struct(DRBD_NLA_DISCONNECT_PARMS, 12, disconnect_parms,
224 __flg_field(1, GENLA_F_MANDATORY, force_disconnect) 224 __flg_field(1, DRBD_GENLA_F_MANDATORY, force_disconnect)
225) 225)
226 226
227/* 227/*
@@ -232,11 +232,11 @@ GENL_mc_group(events)
232 /* kernel -> userspace announcement of changes */ 232 /* kernel -> userspace announcement of changes */
233GENL_notification( 233GENL_notification(
234 DRBD_EVENT, 1, events, 234 DRBD_EVENT, 1, events,
235 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED) 235 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
236 GENL_tla_expected(DRBD_NLA_STATE_INFO, GENLA_F_REQUIRED) 236 GENL_tla_expected(DRBD_NLA_STATE_INFO, DRBD_F_REQUIRED)
237 GENL_tla_expected(DRBD_NLA_NET_CONF, GENLA_F_MANDATORY) 237 GENL_tla_expected(DRBD_NLA_NET_CONF, DRBD_GENLA_F_MANDATORY)
238 GENL_tla_expected(DRBD_NLA_DISK_CONF, GENLA_F_MANDATORY) 238 GENL_tla_expected(DRBD_NLA_DISK_CONF, DRBD_GENLA_F_MANDATORY)
239 GENL_tla_expected(DRBD_NLA_SYNCER_CONF, GENLA_F_MANDATORY) 239 GENL_tla_expected(DRBD_NLA_SYNCER_CONF, DRBD_GENLA_F_MANDATORY)
240) 240)
241 241
242 /* query kernel for specific or all info */ 242 /* query kernel for specific or all info */
@@ -250,116 +250,116 @@ GENL_op(
250 ), 250 ),
251 /* To select the object .doit. 251 /* To select the object .doit.
252 * Or a subset of objects in .dumpit. */ 252 * Or a subset of objects in .dumpit. */
253 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_MANDATORY) 253 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_GENLA_F_MANDATORY)
254) 254)
255 255
256#if 0 256#if 0
257 /* TO BE DONE */ 257 /* TO BE DONE */
258 /* create or destroy resources, aka replication groups */ 258 /* create or destroy resources, aka replication groups */
259GENL_op(DRBD_ADM_CREATE_RESOURCE, 3, GENL_doit(drbd_adm_create_resource), 259GENL_op(DRBD_ADM_CREATE_RESOURCE, 3, GENL_doit(drbd_adm_create_resource),
260 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 260 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
261GENL_op(DRBD_ADM_DELETE_RESOURCE, 4, GENL_doit(drbd_adm_delete_resource), 261GENL_op(DRBD_ADM_DELETE_RESOURCE, 4, GENL_doit(drbd_adm_delete_resource),
262 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 262 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
263#endif 263#endif
264 264
265 /* add DRBD minor devices as volumes to resources */ 265 /* add DRBD minor devices as volumes to resources */
266GENL_op(DRBD_ADM_ADD_MINOR, 5, GENL_doit(drbd_adm_add_minor), 266GENL_op(DRBD_ADM_ADD_MINOR, 5, GENL_doit(drbd_adm_add_minor),
267 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 267 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
268GENL_op(DRBD_ADM_DEL_MINOR, 6, GENL_doit(drbd_adm_delete_minor), 268GENL_op(DRBD_ADM_DEL_MINOR, 6, GENL_doit(drbd_adm_delete_minor),
269 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 269 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
270 270
271 /* add or delete replication links to resources */ 271 /* add or delete replication links to resources */
272GENL_op(DRBD_ADM_ADD_LINK, 7, GENL_doit(drbd_adm_create_connection), 272GENL_op(DRBD_ADM_ADD_LINK, 7, GENL_doit(drbd_adm_create_connection),
273 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 273 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
274GENL_op(DRBD_ADM_DEL_LINK, 8, GENL_doit(drbd_adm_delete_connection), 274GENL_op(DRBD_ADM_DEL_LINK, 8, GENL_doit(drbd_adm_delete_connection),
275 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 275 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
276 276
277GENL_op(DRBD_ADM_RESOURCE_OPTS, 9, 277GENL_op(DRBD_ADM_RESOURCE_OPTS, 9,
278 GENL_doit(drbd_adm_resource_opts), 278 GENL_doit(drbd_adm_resource_opts),
279 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED) 279 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
280 GENL_tla_expected(DRBD_NLA_RESOURCE_OPTS, GENLA_F_MANDATORY) 280 GENL_tla_expected(DRBD_NLA_RESOURCE_OPTS, DRBD_GENLA_F_MANDATORY)
281) 281)
282 282
283GENL_op( 283GENL_op(
284 DRBD_ADM_CONNECT, 10, 284 DRBD_ADM_CONNECT, 10,
285 GENL_doit(drbd_adm_connect), 285 GENL_doit(drbd_adm_connect),
286 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED) 286 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
287 GENL_tla_expected(DRBD_NLA_NET_CONF, GENLA_F_REQUIRED) 287 GENL_tla_expected(DRBD_NLA_NET_CONF, DRBD_F_REQUIRED)
288) 288)
289 289
290GENL_op( 290GENL_op(
291 DRBD_ADM_CHG_NET_OPTS, 29, 291 DRBD_ADM_CHG_NET_OPTS, 29,
292 GENL_doit(drbd_adm_net_opts), 292 GENL_doit(drbd_adm_net_opts),
293 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED) 293 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
294 GENL_tla_expected(DRBD_NLA_NET_CONF, GENLA_F_REQUIRED) 294 GENL_tla_expected(DRBD_NLA_NET_CONF, DRBD_F_REQUIRED)
295) 295)
296 296
297GENL_op(DRBD_ADM_DISCONNECT, 11, GENL_doit(drbd_adm_disconnect), 297GENL_op(DRBD_ADM_DISCONNECT, 11, GENL_doit(drbd_adm_disconnect),
298 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 298 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
299 299
300GENL_op(DRBD_ADM_ATTACH, 12, 300GENL_op(DRBD_ADM_ATTACH, 12,
301 GENL_doit(drbd_adm_attach), 301 GENL_doit(drbd_adm_attach),
302 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED) 302 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
303 GENL_tla_expected(DRBD_NLA_DISK_CONF, GENLA_F_REQUIRED) 303 GENL_tla_expected(DRBD_NLA_DISK_CONF, DRBD_F_REQUIRED)
304) 304)
305 305
306GENL_op(DRBD_ADM_CHG_DISK_OPTS, 28, 306GENL_op(DRBD_ADM_CHG_DISK_OPTS, 28,
307 GENL_doit(drbd_adm_disk_opts), 307 GENL_doit(drbd_adm_disk_opts),
308 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED) 308 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
309 GENL_tla_expected(DRBD_NLA_DISK_OPTS, GENLA_F_REQUIRED) 309 GENL_tla_expected(DRBD_NLA_DISK_OPTS, DRBD_F_REQUIRED)
310) 310)
311 311
312GENL_op( 312GENL_op(
313 DRBD_ADM_RESIZE, 13, 313 DRBD_ADM_RESIZE, 13,
314 GENL_doit(drbd_adm_resize), 314 GENL_doit(drbd_adm_resize),
315 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED) 315 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
316 GENL_tla_expected(DRBD_NLA_RESIZE_PARMS, GENLA_F_MANDATORY) 316 GENL_tla_expected(DRBD_NLA_RESIZE_PARMS, DRBD_GENLA_F_MANDATORY)
317) 317)
318 318
319GENL_op( 319GENL_op(
320 DRBD_ADM_PRIMARY, 14, 320 DRBD_ADM_PRIMARY, 14,
321 GENL_doit(drbd_adm_set_role), 321 GENL_doit(drbd_adm_set_role),
322 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED) 322 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
323 GENL_tla_expected(DRBD_NLA_SET_ROLE_PARMS, GENLA_F_REQUIRED) 323 GENL_tla_expected(DRBD_NLA_SET_ROLE_PARMS, DRBD_F_REQUIRED)
324) 324)
325 325
326GENL_op( 326GENL_op(
327 DRBD_ADM_SECONDARY, 15, 327 DRBD_ADM_SECONDARY, 15,
328 GENL_doit(drbd_adm_set_role), 328 GENL_doit(drbd_adm_set_role),
329 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED) 329 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
330 GENL_tla_expected(DRBD_NLA_SET_ROLE_PARMS, GENLA_F_REQUIRED) 330 GENL_tla_expected(DRBD_NLA_SET_ROLE_PARMS, DRBD_F_REQUIRED)
331) 331)
332 332
333GENL_op( 333GENL_op(
334 DRBD_ADM_NEW_C_UUID, 16, 334 DRBD_ADM_NEW_C_UUID, 16,
335 GENL_doit(drbd_adm_new_c_uuid), 335 GENL_doit(drbd_adm_new_c_uuid),
336 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED) 336 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED)
337 GENL_tla_expected(DRBD_NLA_NEW_C_UUID_PARMS, GENLA_F_MANDATORY) 337 GENL_tla_expected(DRBD_NLA_NEW_C_UUID_PARMS, DRBD_GENLA_F_MANDATORY)
338) 338)
339 339
340GENL_op( 340GENL_op(
341 DRBD_ADM_START_OV, 17, 341 DRBD_ADM_START_OV, 17,
342 GENL_doit(drbd_adm_start_ov), 342 GENL_doit(drbd_adm_start_ov),
343 GENL_tla_expected(DRBD_NLA_START_OV_PARMS, GENLA_F_MANDATORY) 343 GENL_tla_expected(DRBD_NLA_START_OV_PARMS, DRBD_GENLA_F_MANDATORY)
344) 344)
345 345
346GENL_op(DRBD_ADM_DETACH, 18, GENL_doit(drbd_adm_detach), 346GENL_op(DRBD_ADM_DETACH, 18, GENL_doit(drbd_adm_detach),
347 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 347 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
348GENL_op(DRBD_ADM_INVALIDATE, 19, GENL_doit(drbd_adm_invalidate), 348GENL_op(DRBD_ADM_INVALIDATE, 19, GENL_doit(drbd_adm_invalidate),
349 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 349 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
350GENL_op(DRBD_ADM_INVAL_PEER, 20, GENL_doit(drbd_adm_invalidate_peer), 350GENL_op(DRBD_ADM_INVAL_PEER, 20, GENL_doit(drbd_adm_invalidate_peer),
351 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 351 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
352GENL_op(DRBD_ADM_PAUSE_SYNC, 21, GENL_doit(drbd_adm_pause_sync), 352GENL_op(DRBD_ADM_PAUSE_SYNC, 21, GENL_doit(drbd_adm_pause_sync),
353 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 353 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
354GENL_op(DRBD_ADM_RESUME_SYNC, 22, GENL_doit(drbd_adm_resume_sync), 354GENL_op(DRBD_ADM_RESUME_SYNC, 22, GENL_doit(drbd_adm_resume_sync),
355 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 355 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
356GENL_op(DRBD_ADM_SUSPEND_IO, 23, GENL_doit(drbd_adm_suspend_io), 356GENL_op(DRBD_ADM_SUSPEND_IO, 23, GENL_doit(drbd_adm_suspend_io),
357 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 357 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
358GENL_op(DRBD_ADM_RESUME_IO, 24, GENL_doit(drbd_adm_resume_io), 358GENL_op(DRBD_ADM_RESUME_IO, 24, GENL_doit(drbd_adm_resume_io),
359 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 359 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
360GENL_op(DRBD_ADM_OUTDATE, 25, GENL_doit(drbd_adm_outdate), 360GENL_op(DRBD_ADM_OUTDATE, 25, GENL_doit(drbd_adm_outdate),
361 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 361 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
362GENL_op(DRBD_ADM_GET_TIMEOUT_TYPE, 26, GENL_doit(drbd_adm_get_timeout_type), 362GENL_op(DRBD_ADM_GET_TIMEOUT_TYPE, 26, GENL_doit(drbd_adm_get_timeout_type),
363 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 363 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))
364GENL_op(DRBD_ADM_DOWN, 27, GENL_doit(drbd_adm_down), 364GENL_op(DRBD_ADM_DOWN, 27, GENL_doit(drbd_adm_down),
365 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, GENLA_F_REQUIRED)) 365 GENL_tla_expected(DRBD_NLA_CFG_CONTEXT, DRBD_F_REQUIRED))