1 /*
2    PAKET( name,
3 	  TYPE ( pn, pr, member )
4 	  ...
5    )
6 
7    You may never reissue one of the pn arguments
8 */
9 
10 #if !defined(NL_PACKET) || !defined(NL_STRING) || !defined(NL_INTEGER) || !defined(NL_BIT) || !defined(NL_INT64)
11 #error "The macros NL_PACKET, NL_STRING, NL_INTEGER, NL_INT64 and NL_BIT needs to be defined"
12 #endif
13 
14 NL_PACKET(primary, 1,
15        NL_BIT(		1,	T_MAY_IGNORE,	primary_force)
16 )
17 
18 NL_PACKET(secondary, 2, )
19 
20 NL_PACKET(disk_conf, 3,
21 	NL_INT64(	2,	T_MAY_IGNORE,	disk_size)
22 	NL_STRING(	3,	T_MANDATORY,	backing_dev,	128)
23 	NL_STRING(	4,	T_MANDATORY,	meta_dev,	128)
24 	NL_INTEGER(	5,	T_MANDATORY,	meta_dev_idx)
25 	NL_INTEGER(	6,	T_MAY_IGNORE,	on_io_error)
26 	NL_INTEGER(	7,	T_MAY_IGNORE,	fencing)
27 	NL_BIT(		37,	T_MAY_IGNORE,	use_bmbv)
28 	NL_BIT(		53,	T_MAY_IGNORE,	no_disk_flush)
29 	NL_BIT(		54,	T_MAY_IGNORE,	no_md_flush)
30 	  /*  55 max_bio_size was available in 8.2.6rc2 */
31 	NL_INTEGER(	56,	T_MAY_IGNORE,	max_bio_bvecs)
32 	NL_BIT(		57,	T_MAY_IGNORE,	no_disk_barrier)
33 	NL_BIT(		58,	T_MAY_IGNORE,	no_disk_drain)
34 )
35 
36 NL_PACKET(detach, 4, )
37 
38 NL_PACKET(net_conf, 5,
39 	NL_STRING(	8,	T_MANDATORY,	my_addr,	128)
40 	NL_STRING(	9,	T_MANDATORY,	peer_addr,	128)
41 	NL_STRING(	10,	T_MAY_IGNORE,	shared_secret,	SHARED_SECRET_MAX)
42 	NL_STRING(	11,	T_MAY_IGNORE,	cram_hmac_alg,	SHARED_SECRET_MAX)
43 	NL_STRING(	44,	T_MAY_IGNORE,	integrity_alg,	SHARED_SECRET_MAX)
44 	NL_INTEGER(	14,	T_MAY_IGNORE,	timeout)
45 	NL_INTEGER(	15,	T_MANDATORY,	wire_protocol)
46 	NL_INTEGER(	16,	T_MAY_IGNORE,	try_connect_int)
47 	NL_INTEGER(	17,	T_MAY_IGNORE,	ping_int)
48 	NL_INTEGER(	18,	T_MAY_IGNORE,	max_epoch_size)
49 	NL_INTEGER(	19,	T_MAY_IGNORE,	max_buffers)
50 	NL_INTEGER(	20,	T_MAY_IGNORE,	unplug_watermark)
51 	NL_INTEGER(	21,	T_MAY_IGNORE,	sndbuf_size)
52 	NL_INTEGER(	22,	T_MAY_IGNORE,	ko_count)
53 	NL_INTEGER(	24,	T_MAY_IGNORE,	after_sb_0p)
54 	NL_INTEGER(	25,	T_MAY_IGNORE,	after_sb_1p)
55 	NL_INTEGER(	26,	T_MAY_IGNORE,	after_sb_2p)
56 	NL_INTEGER(	39,	T_MAY_IGNORE,	rr_conflict)
57 	NL_INTEGER(	40,	T_MAY_IGNORE,	ping_timeo)
58 	NL_INTEGER(	67,	T_MAY_IGNORE,	rcvbuf_size)
59 	NL_INTEGER(	81,	T_MAY_IGNORE,	on_congestion)
60 	NL_INTEGER(	82,	T_MAY_IGNORE,	cong_fill)
61 	NL_INTEGER(	83,	T_MAY_IGNORE,	cong_extents)
62 	  /* 59 addr_family was available in GIT, never released */
63 	NL_BIT(		60,	T_MANDATORY,	mind_af)
64 	NL_BIT(		27,	T_MAY_IGNORE,	want_lose)
65 	NL_BIT(		28,	T_MAY_IGNORE,	two_primaries)
66 	NL_BIT(		41,	T_MAY_IGNORE,	always_asbp)
67 	NL_BIT(		61,	T_MAY_IGNORE,	no_cork)
68 	NL_BIT(		62,	T_MANDATORY,	auto_sndbuf_size)
69 	NL_BIT(		70,	T_MANDATORY,	dry_run)
70 )
71 
72 NL_PACKET(disconnect, 6,
73 	NL_BIT(		84,	T_MAY_IGNORE,	force)
74 )
75 
76 NL_PACKET(resize, 7,
77 	NL_INT64(		29,	T_MAY_IGNORE,	resize_size)
78 	NL_BIT(			68,	T_MAY_IGNORE,	resize_force)
79 	NL_BIT(			69,	T_MANDATORY,	no_resync)
80 )
81 
82 NL_PACKET(syncer_conf, 8,
83 	NL_INTEGER(	30,	T_MAY_IGNORE,	rate)
84 	NL_INTEGER(	31,	T_MAY_IGNORE,	after)
85 	NL_INTEGER(	32,	T_MAY_IGNORE,	al_extents)
86 /*	NL_INTEGER(     71,	T_MAY_IGNORE,	dp_volume)
87  *	NL_INTEGER(     72,	T_MAY_IGNORE,	dp_interval)
88  *	NL_INTEGER(     73,	T_MAY_IGNORE,	throttle_th)
89  *	NL_INTEGER(     74,	T_MAY_IGNORE,	hold_off_th)
90  * feature will be reimplemented differently with 8.3.9 */
91 	NL_STRING(      52,     T_MAY_IGNORE,   verify_alg,     SHARED_SECRET_MAX)
92 	NL_STRING(      51,     T_MAY_IGNORE,   cpu_mask,       32)
93 	NL_STRING(	64,	T_MAY_IGNORE,	csums_alg,	SHARED_SECRET_MAX)
94 	NL_BIT(         65,     T_MAY_IGNORE,   use_rle)
95 	NL_INTEGER(	75,	T_MAY_IGNORE,	on_no_data)
96 	NL_INTEGER(	76,	T_MAY_IGNORE,	c_plan_ahead)
97 	NL_INTEGER(     77,	T_MAY_IGNORE,	c_delay_target)
98 	NL_INTEGER(     78,	T_MAY_IGNORE,	c_fill_target)
99 	NL_INTEGER(     79,	T_MAY_IGNORE,	c_max_rate)
100 	NL_INTEGER(     80,	T_MAY_IGNORE,	c_min_rate)
101 )
102 
103 NL_PACKET(invalidate, 9, )
104 NL_PACKET(invalidate_peer, 10, )
105 NL_PACKET(pause_sync, 11, )
106 NL_PACKET(resume_sync, 12, )
107 NL_PACKET(suspend_io, 13, )
108 NL_PACKET(resume_io, 14, )
109 NL_PACKET(outdate, 15, )
110 NL_PACKET(get_config, 16, )
111 NL_PACKET(get_state, 17,
112 	NL_INTEGER(	33,	T_MAY_IGNORE,	state_i)
113 )
114 
115 NL_PACKET(get_uuids, 18,
116 	NL_STRING(	34,	T_MAY_IGNORE,	uuids,	(UI_SIZE*sizeof(__u64)))
117 	NL_INTEGER(	35,	T_MAY_IGNORE,	uuids_flags)
118 )
119 
120 NL_PACKET(get_timeout_flag, 19,
121 	NL_BIT(		36,	T_MAY_IGNORE,	use_degraded)
122 )
123 
124 NL_PACKET(call_helper, 20,
125 	NL_STRING(	38,	T_MAY_IGNORE,	helper,		32)
126 )
127 
128 /* Tag nr 42 already allocated in drbd-8.1 development. */
129 
130 NL_PACKET(sync_progress, 23,
131 	NL_INTEGER(	43,	T_MAY_IGNORE,	sync_progress)
132 )
133 
134 NL_PACKET(dump_ee, 24,
135 	NL_STRING(	45,	T_MAY_IGNORE,	dump_ee_reason, 32)
136 	NL_STRING(	46,	T_MAY_IGNORE,	seen_digest, SHARED_SECRET_MAX)
137 	NL_STRING(	47,	T_MAY_IGNORE,	calc_digest, SHARED_SECRET_MAX)
138 	NL_INT64(	48,	T_MAY_IGNORE,	ee_sector)
139 	NL_INT64(	49,	T_MAY_IGNORE,	ee_block_id)
140 	NL_STRING(	50,	T_MAY_IGNORE,	ee_data,	32 << 10)
141 )
142 
143 NL_PACKET(start_ov, 25,
144 	NL_INT64(	66,	T_MAY_IGNORE,	start_sector)
145 )
146 
147 NL_PACKET(new_c_uuid, 26,
148        NL_BIT(		63,	T_MANDATORY,	clear_bm)
149 )
150 
151 #ifdef NL_RESPONSE
152 NL_RESPONSE(return_code_only, 27)
153 #endif
154 
155 #undef NL_PACKET
156 #undef NL_INTEGER
157 #undef NL_INT64
158 #undef NL_BIT
159 #undef NL_STRING
160 #undef NL_RESPONSE
161