Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
[linux-2.6] / net / llc / llc_c_st.c
1 /*
2  * llc_c_st.c - This module contains state transition of connection component.
3  *
4  * Description of event functions and actions there is in 802.2 LLC standard,
5  * or in "llc_c_ac.c" and "llc_c_ev.c" modules.
6  *
7  * Copyright (c) 1997 by Procom Technology, Inc.
8  *               2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
9  *
10  * This program can be redistributed or modified under the terms of the
11  * GNU General Public License as published by the Free Software Foundation.
12  * This program is distributed without any warranty or implied warranty
13  * of merchantability or fitness for a particular purpose.
14  *
15  * See the GNU General Public License for more details.
16  */
17 #include <linux/types.h>
18 #include <net/llc_if.h>
19 #include <net/llc_sap.h>
20 #include <net/llc_c_ev.h>
21 #include <net/llc_c_ac.h>
22 #include <net/llc_c_st.h>
23
24 #define NONE NULL
25
26 /* COMMON CONNECTION STATE transitions
27  * Common transitions for
28  * LLC_CONN_STATE_NORMAL,
29  * LLC_CONN_STATE_BUSY,
30  * LLC_CONN_STATE_REJ,
31  * LLC_CONN_STATE_AWAIT,
32  * LLC_CONN_STATE_AWAIT_BUSY and
33  * LLC_CONN_STATE_AWAIT_REJ states
34  */
35 /* State transitions for LLC_CONN_EV_DISC_REQ event */
36 static llc_conn_action_t llc_common_actions_1[] = {
37         [0] = llc_conn_ac_send_disc_cmd_p_set_x,
38         [1] = llc_conn_ac_start_ack_timer,
39         [2] = llc_conn_ac_stop_other_timers,
40         [3] = llc_conn_ac_set_retry_cnt_0,
41         [4] = llc_conn_ac_set_cause_flag_1,
42         [5] = NULL,
43 };
44
45 static struct llc_conn_state_trans llc_common_state_trans_1 = {
46         .ev            = llc_conn_ev_disc_req,
47         .next_state    = LLC_CONN_STATE_D_CONN,
48         .ev_qualifiers = NONE,
49         .ev_actions    = llc_common_actions_1,
50 };
51
52 /* State transitions for LLC_CONN_EV_RESET_REQ event */
53 static llc_conn_action_t llc_common_actions_2[] = {
54         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
55         [1] = llc_conn_ac_start_ack_timer,
56         [2] = llc_conn_ac_stop_other_timers,
57         [3] = llc_conn_ac_set_retry_cnt_0,
58         [4] = llc_conn_ac_set_cause_flag_1,
59         [5] = NULL,
60 };
61
62 static struct llc_conn_state_trans llc_common_state_trans_2 = {
63         .ev            = llc_conn_ev_rst_req,
64         .next_state    = LLC_CONN_STATE_RESET,
65         .ev_qualifiers = NONE,
66         .ev_actions    = llc_common_actions_2,
67 };
68
69 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
70 static llc_conn_action_t llc_common_actions_3[] = {
71         [0] = llc_conn_ac_stop_all_timers,
72         [1] = llc_conn_ac_set_vs_0,
73         [2] = llc_conn_ac_set_vr_0,
74         [3] = llc_conn_ac_send_ua_rsp_f_set_p,
75         [4] = llc_conn_ac_rst_ind,
76         [5] = llc_conn_ac_set_p_flag_0,
77         [6] = llc_conn_ac_set_remote_busy_0,
78         [7] = llc_conn_reset,
79         [8] = NULL,
80 };
81
82 static struct llc_conn_state_trans llc_common_state_trans_3 = {
83         .ev            = llc_conn_ev_rx_sabme_cmd_pbit_set_x,
84         .next_state    = LLC_CONN_STATE_NORMAL,
85         .ev_qualifiers = NONE,
86         .ev_actions    = llc_common_actions_3,
87 };
88
89 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event */
90 static llc_conn_action_t llc_common_actions_4[] = {
91         [0] = llc_conn_ac_stop_all_timers,
92         [1] = llc_conn_ac_send_ua_rsp_f_set_p,
93         [2] = llc_conn_ac_disc_ind,
94         [3] = llc_conn_disc,
95         [4] = NULL,
96 };
97
98 static struct llc_conn_state_trans llc_common_state_trans_4 = {
99         .ev            = llc_conn_ev_rx_disc_cmd_pbit_set_x,
100         .next_state    = LLC_CONN_STATE_ADM,
101         .ev_qualifiers = NONE,
102         .ev_actions    = llc_common_actions_4,
103 };
104
105 /* State transitions for LLC_CONN_EV_RX_FRMR_RSP_Fbit_SET_X event */
106 static llc_conn_action_t llc_common_actions_5[] = {
107         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
108         [1] = llc_conn_ac_start_ack_timer,
109         [2] = llc_conn_ac_stop_other_timers,
110         [3] = llc_conn_ac_set_retry_cnt_0,
111         [4] = llc_conn_ac_rst_ind,
112         [5] = llc_conn_ac_set_cause_flag_0,
113         [6] = llc_conn_reset,
114         [7] = NULL,
115 };
116
117 static struct llc_conn_state_trans llc_common_state_trans_5 = {
118         .ev            = llc_conn_ev_rx_frmr_rsp_fbit_set_x,
119         .next_state    = LLC_CONN_STATE_RESET,
120         .ev_qualifiers = NONE,
121         .ev_actions    = llc_common_actions_5,
122 };
123
124 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event */
125 static llc_conn_action_t llc_common_actions_6[] = {
126         [0] = llc_conn_ac_disc_ind,
127         [1] = llc_conn_ac_stop_all_timers,
128         [2] = llc_conn_disc,
129         [3] = NULL,
130 };
131
132 static struct llc_conn_state_trans llc_common_state_trans_6 = {
133         .ev            = llc_conn_ev_rx_dm_rsp_fbit_set_x,
134         .next_state    = LLC_CONN_STATE_ADM,
135         .ev_qualifiers = NONE,
136         .ev_actions    = llc_common_actions_6,
137 };
138
139 /* State transitions for LLC_CONN_EV_RX_ZZZ_CMD_Pbit_SET_X_INVAL_Nr event */
140 static llc_conn_action_t llc_common_actions_7a[] = {
141         [0] = llc_conn_ac_send_frmr_rsp_f_set_x,
142         [1] = llc_conn_ac_start_ack_timer,
143         [2] = llc_conn_ac_stop_other_timers,
144         [3] = llc_conn_ac_set_retry_cnt_0,
145         [4] = NULL,
146 };
147
148 static struct llc_conn_state_trans llc_common_state_trans_7a = {
149         .ev            = llc_conn_ev_rx_zzz_cmd_pbit_set_x_inval_nr,
150         .next_state    = LLC_CONN_STATE_ERROR,
151         .ev_qualifiers = NONE,
152         .ev_actions    = llc_common_actions_7a,
153 };
154
155 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_X_INVAL_Ns event */
156 static llc_conn_action_t llc_common_actions_7b[] = {
157         [0] = llc_conn_ac_send_frmr_rsp_f_set_x,
158         [1] = llc_conn_ac_start_ack_timer,
159         [2] = llc_conn_ac_stop_other_timers,
160         [3] = llc_conn_ac_set_retry_cnt_0,
161         [4] = NULL,
162 };
163
164 static struct llc_conn_state_trans llc_common_state_trans_7b = {
165         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_x_inval_ns,
166         .next_state    = LLC_CONN_STATE_ERROR,
167         .ev_qualifiers = NONE,
168         .ev_actions    = llc_common_actions_7b,
169 };
170
171 /* State transitions for LLC_CONN_EV_RX_ZZZ_RSP_Fbit_SET_X_INVAL_Nr event */
172 static llc_conn_action_t llc_common_actions_8a[] = {
173         [0] = llc_conn_ac_send_frmr_rsp_f_set_x,
174         [1] = llc_conn_ac_start_ack_timer,
175         [2] = llc_conn_ac_stop_other_timers,
176         [3] = llc_conn_ac_set_retry_cnt_0,
177         [4] = NULL,
178 };
179
180 static struct llc_conn_state_trans llc_common_state_trans_8a = {
181         .ev            = llc_conn_ev_rx_zzz_rsp_fbit_set_x_inval_nr,
182         .next_state    = LLC_CONN_STATE_ERROR,
183         .ev_qualifiers = NONE,
184         .ev_actions    = llc_common_actions_8a,
185 };
186
187 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_X_INVAL_Ns event */
188 static llc_conn_action_t llc_common_actions_8b[] = {
189         [0] = llc_conn_ac_send_frmr_rsp_f_set_x,
190         [1] = llc_conn_ac_start_ack_timer,
191         [2] = llc_conn_ac_stop_other_timers,
192         [3] = llc_conn_ac_set_retry_cnt_0,
193         [4] = NULL,
194 };
195
196 static struct llc_conn_state_trans llc_common_state_trans_8b = {
197         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_x_inval_ns,
198         .next_state    = LLC_CONN_STATE_ERROR,
199         .ev_qualifiers = NONE,
200         .ev_actions    = llc_common_actions_8b,
201 };
202
203 /* State transitions for LLC_CONN_EV_RX_BAD_PDU event */
204 static llc_conn_action_t llc_common_actions_8c[] = {
205         [0] = llc_conn_ac_send_frmr_rsp_f_set_x,
206         [1] = llc_conn_ac_start_ack_timer,
207         [2] = llc_conn_ac_stop_other_timers,
208         [3] = llc_conn_ac_set_retry_cnt_0,
209         [4] = NULL,
210 };
211
212 static struct llc_conn_state_trans llc_common_state_trans_8c = {
213         .ev            = llc_conn_ev_rx_bad_pdu,
214         .next_state    = LLC_CONN_STATE_ERROR,
215         .ev_qualifiers = NONE,
216         .ev_actions    = llc_common_actions_8c,
217 };
218
219 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event */
220 static llc_conn_action_t llc_common_actions_9[] = {
221         [0] = llc_conn_ac_send_frmr_rsp_f_set_x,
222         [1] = llc_conn_ac_start_ack_timer,
223         [2] = llc_conn_ac_stop_other_timers,
224         [3] = llc_conn_ac_set_retry_cnt_0,
225         [4] = NULL,
226 };
227
228 static struct llc_conn_state_trans llc_common_state_trans_9 = {
229         .ev            = llc_conn_ev_rx_ua_rsp_fbit_set_x,
230         .next_state    = LLC_CONN_STATE_ERROR,
231         .ev_qualifiers = NONE,
232         .ev_actions    = llc_common_actions_9,
233 };
234
235 /* State transitions for LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_1 event */
236 #if 0
237 static llc_conn_ev_qfyr_t llc_common_ev_qfyrs_10[] = {
238         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
239         [1] = NULL,
240 };
241
242 static llc_conn_action_t llc_common_actions_10[] = {
243         [0] = llc_conn_ac_send_frmr_rsp_f_set_x,
244         [1] = llc_conn_ac_start_ack_timer,
245         [2] = llc_conn_ac_stop_other_timers,
246         [3] = llc_conn_ac_set_retry_cnt_0,
247         [4] = NULL,
248 };
249
250 static struct llc_conn_state_trans llc_common_state_trans_10 = {
251         .ev            = llc_conn_ev_rx_xxx_rsp_fbit_set_1,
252         .next_state    = LLC_CONN_STATE_ERROR,
253         .ev_qualifiers = llc_common_ev_qfyrs_10,
254         .ev_actions    = llc_common_actions_10,
255 };
256 #endif
257
258 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
259 static llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11a[] = {
260         [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
261         [1] = NULL,
262 };
263
264 static llc_conn_action_t llc_common_actions_11a[] = {
265         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
266         [1] = llc_conn_ac_start_ack_timer,
267         [2] = llc_conn_ac_stop_other_timers,
268         [3] = llc_conn_ac_set_retry_cnt_0,
269         [4] = llc_conn_ac_set_cause_flag_0,
270         [5] = NULL,
271 };
272
273 static struct llc_conn_state_trans llc_common_state_trans_11a = {
274         .ev            = llc_conn_ev_p_tmr_exp,
275         .next_state    = LLC_CONN_STATE_RESET,
276         .ev_qualifiers = llc_common_ev_qfyrs_11a,
277         .ev_actions    = llc_common_actions_11a,
278 };
279
280 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
281 static llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11b[] = {
282         [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
283         [1] = NULL,
284 };
285
286 static llc_conn_action_t llc_common_actions_11b[] = {
287         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
288         [1] = llc_conn_ac_start_ack_timer,
289         [2] = llc_conn_ac_stop_other_timers,
290         [3] = llc_conn_ac_set_retry_cnt_0,
291         [4] = llc_conn_ac_set_cause_flag_0,
292         [5] = NULL,
293 };
294
295 static struct llc_conn_state_trans llc_common_state_trans_11b = {
296         .ev            = llc_conn_ev_ack_tmr_exp,
297         .next_state    = LLC_CONN_STATE_RESET,
298         .ev_qualifiers = llc_common_ev_qfyrs_11b,
299         .ev_actions    = llc_common_actions_11b,
300 };
301
302 /* State transitions for LLC_CONN_EV_REJ_TMR_EXP event */
303 static llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11c[] = {
304         [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
305         [1] = NULL,
306 };
307
308 static llc_conn_action_t llc_common_actions_11c[] = {
309         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
310         [1] = llc_conn_ac_start_ack_timer,
311         [2] = llc_conn_ac_stop_other_timers,
312         [3] = llc_conn_ac_set_retry_cnt_0,
313         [4] = llc_conn_ac_set_cause_flag_0,
314         [5] = NULL,
315 };
316
317 static struct llc_conn_state_trans llc_common_state_trans_11c = {
318         .ev            = llc_conn_ev_rej_tmr_exp,
319         .next_state    = LLC_CONN_STATE_RESET,
320         .ev_qualifiers = llc_common_ev_qfyrs_11c,
321         .ev_actions    = llc_common_actions_11c,
322 };
323
324 /* State transitions for LLC_CONN_EV_BUSY_TMR_EXP event */
325 static llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11d[] = {
326         [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
327         [1] = NULL,
328 };
329
330 static llc_conn_action_t llc_common_actions_11d[] = {
331         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
332         [1] = llc_conn_ac_start_ack_timer,
333         [2] = llc_conn_ac_stop_other_timers,
334         [3] = llc_conn_ac_set_retry_cnt_0,
335         [4] = llc_conn_ac_set_cause_flag_0,
336         [5] = NULL,
337 };
338
339 static struct llc_conn_state_trans llc_common_state_trans_11d = {
340         .ev            = llc_conn_ev_busy_tmr_exp,
341         .next_state    = LLC_CONN_STATE_RESET,
342         .ev_qualifiers = llc_common_ev_qfyrs_11d,
343         .ev_actions    = llc_common_actions_11d,
344 };
345
346 /*
347  * Common dummy state transition; must be last entry for all state
348  * transition groups - it'll be on .bss, so will be zeroed.
349  */
350 static struct llc_conn_state_trans llc_common_state_trans_end;
351
352 /* LLC_CONN_STATE_ADM transitions */
353 /* State transitions for LLC_CONN_EV_CONN_REQ event */
354 static llc_conn_action_t llc_adm_actions_1[] = {
355         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
356         [1] = llc_conn_ac_start_ack_timer,
357         [2] = llc_conn_ac_set_retry_cnt_0,
358         [3] = llc_conn_ac_set_s_flag_0,
359         [4] = NULL,
360 };
361
362 static struct llc_conn_state_trans llc_adm_state_trans_1 = {
363         .ev            = llc_conn_ev_conn_req,
364         .next_state    = LLC_CONN_STATE_SETUP,
365         .ev_qualifiers = NONE,
366         .ev_actions    = llc_adm_actions_1,
367 };
368
369 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
370 static llc_conn_action_t llc_adm_actions_2[] = {
371         [0] = llc_conn_ac_send_ua_rsp_f_set_p,
372         [1] = llc_conn_ac_set_vs_0,
373         [2] = llc_conn_ac_set_vr_0,
374         [3] = llc_conn_ac_set_retry_cnt_0,
375         [4] = llc_conn_ac_set_p_flag_0,
376         [5] = llc_conn_ac_set_remote_busy_0,
377         [6] = llc_conn_ac_conn_ind,
378         [7] = NULL,
379 };
380
381 static struct llc_conn_state_trans llc_adm_state_trans_2 = {
382         .ev            = llc_conn_ev_rx_sabme_cmd_pbit_set_x,
383         .next_state    = LLC_CONN_STATE_NORMAL,
384         .ev_qualifiers = NONE,
385         .ev_actions    = llc_adm_actions_2,
386 };
387
388 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event */
389 static llc_conn_action_t llc_adm_actions_3[] = {
390         [0] = llc_conn_ac_send_dm_rsp_f_set_p,
391         [1] = llc_conn_disc,
392         [2] = NULL,
393 };
394
395 static struct llc_conn_state_trans llc_adm_state_trans_3 = {
396         .ev            = llc_conn_ev_rx_disc_cmd_pbit_set_x,
397         .next_state    = LLC_CONN_STATE_ADM,
398         .ev_qualifiers = NONE,
399         .ev_actions    = llc_adm_actions_3,
400 };
401
402 /* State transitions for LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_1 event */
403 static llc_conn_action_t llc_adm_actions_4[] = {
404         [0] = llc_conn_ac_send_dm_rsp_f_set_1,
405         [1] = llc_conn_disc,
406         [2] = NULL,
407 };
408
409 static struct llc_conn_state_trans llc_adm_state_trans_4 = {
410         .ev            = llc_conn_ev_rx_xxx_cmd_pbit_set_1,
411         .next_state    = LLC_CONN_STATE_ADM,
412         .ev_qualifiers = NONE,
413         .ev_actions    = llc_adm_actions_4,
414 };
415
416 /* State transitions for LLC_CONN_EV_RX_XXX_YYY event */
417 static llc_conn_action_t llc_adm_actions_5[] = {
418         [0] = llc_conn_disc,
419         [1] = NULL,
420 };
421
422 static struct llc_conn_state_trans llc_adm_state_trans_5 = {
423         .ev            = llc_conn_ev_rx_any_frame,
424         .next_state    = LLC_CONN_OUT_OF_SVC,
425         .ev_qualifiers = NONE,
426         .ev_actions    = llc_adm_actions_5,
427 };
428
429 /*
430  * Array of pointers;
431  * one to each transition
432  */
433 static struct llc_conn_state_trans *llc_adm_state_transitions[] = {
434         [0] = &llc_adm_state_trans_1,           /* Request */
435         [1] = &llc_common_state_trans_end,
436         [2] = &llc_common_state_trans_end,      /* local_busy */
437         [3] = &llc_common_state_trans_end,      /* init_pf_cycle */
438         [4] = &llc_common_state_trans_end,      /* timer */
439         [5] = &llc_adm_state_trans_2,           /* Receive frame */
440         [6] = &llc_adm_state_trans_3,
441         [7] = &llc_adm_state_trans_4,
442         [8] = &llc_adm_state_trans_5,
443         [9] = &llc_common_state_trans_end,
444 };
445
446 /* LLC_CONN_STATE_SETUP transitions */
447 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
448 static llc_conn_action_t llc_setup_actions_1[] = {
449         [0] = llc_conn_ac_send_ua_rsp_f_set_p,
450         [1] = llc_conn_ac_set_vs_0,
451         [2] = llc_conn_ac_set_vr_0,
452         [3] = llc_conn_ac_set_s_flag_1,
453         [4] = NULL,
454 };
455
456 static struct llc_conn_state_trans llc_setup_state_trans_1 = {
457         .ev            = llc_conn_ev_rx_sabme_cmd_pbit_set_x,
458         .next_state    = LLC_CONN_STATE_SETUP,
459         .ev_qualifiers = NONE,
460         .ev_actions    = llc_setup_actions_1,
461 };
462
463 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event */
464 static llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_2[] = {
465         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
466         [1] = llc_conn_ev_qlfy_set_status_conn,
467         [2] = NULL,
468 };
469
470 static llc_conn_action_t llc_setup_actions_2[] = {
471         [0] = llc_conn_ac_stop_ack_timer,
472         [1] = llc_conn_ac_set_vs_0,
473         [2] = llc_conn_ac_set_vr_0,
474         [3] = llc_conn_ac_upd_p_flag,
475         [4] = llc_conn_ac_set_remote_busy_0,
476         [5] = llc_conn_ac_conn_confirm,
477         [6] = NULL,
478 };
479
480 static struct llc_conn_state_trans llc_setup_state_trans_2 = {
481         .ev            = llc_conn_ev_rx_ua_rsp_fbit_set_x,
482         .next_state    = LLC_CONN_STATE_NORMAL,
483         .ev_qualifiers = llc_setup_ev_qfyrs_2,
484         .ev_actions    = llc_setup_actions_2,
485 };
486
487 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
488 static llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_3[] = {
489         [0] = llc_conn_ev_qlfy_s_flag_eq_1,
490         [1] = llc_conn_ev_qlfy_set_status_conn,
491         [2] = NULL,
492 };
493
494 static llc_conn_action_t llc_setup_actions_3[] = {
495         [0] = llc_conn_ac_set_p_flag_0,
496         [1] = llc_conn_ac_set_remote_busy_0,
497         [2] = llc_conn_ac_conn_confirm,
498         [3] = NULL,
499 };
500
501 static struct llc_conn_state_trans llc_setup_state_trans_3 = {
502         .ev            = llc_conn_ev_ack_tmr_exp,
503         .next_state    = LLC_CONN_STATE_NORMAL,
504         .ev_qualifiers = llc_setup_ev_qfyrs_3,
505         .ev_actions    = llc_setup_actions_3,
506 };
507
508 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event */
509 static llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_4[] = {
510         [0] = llc_conn_ev_qlfy_set_status_disc,
511         [1] = NULL,
512 };
513
514 static llc_conn_action_t llc_setup_actions_4[] = {
515         [0] = llc_conn_ac_send_dm_rsp_f_set_p,
516         [1] = llc_conn_ac_stop_ack_timer,
517         [2] = llc_conn_ac_conn_confirm,
518         [3] = llc_conn_disc,
519         [4] = NULL,
520 };
521
522 static struct llc_conn_state_trans llc_setup_state_trans_4 = {
523         .ev            = llc_conn_ev_rx_disc_cmd_pbit_set_x,
524         .next_state    = LLC_CONN_STATE_ADM,
525         .ev_qualifiers = llc_setup_ev_qfyrs_4,
526         .ev_actions    = llc_setup_actions_4,
527 };
528
529 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event */
530 static llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_5[] = {
531         [0] = llc_conn_ev_qlfy_set_status_disc,
532         [1] = NULL,
533 };
534
535 static llc_conn_action_t llc_setup_actions_5[] = {
536         [0] = llc_conn_ac_stop_ack_timer,
537         [1] = llc_conn_ac_conn_confirm,
538         [2] = llc_conn_disc,
539         [3] = NULL,
540 };
541
542 static struct llc_conn_state_trans llc_setup_state_trans_5 = {
543         .ev            = llc_conn_ev_rx_dm_rsp_fbit_set_x,
544         .next_state    = LLC_CONN_STATE_ADM,
545         .ev_qualifiers = llc_setup_ev_qfyrs_5,
546         .ev_actions    = llc_setup_actions_5,
547 };
548
549 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
550 static llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_7[] = {
551         [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
552         [1] = llc_conn_ev_qlfy_s_flag_eq_0,
553         [2] = NULL,
554 };
555
556 static llc_conn_action_t llc_setup_actions_7[] = {
557         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
558         [1] = llc_conn_ac_start_ack_timer,
559         [2] = llc_conn_ac_inc_retry_cnt_by_1,
560         [3] = NULL,
561 };
562
563 static struct llc_conn_state_trans llc_setup_state_trans_7 = {
564         .ev            = llc_conn_ev_ack_tmr_exp,
565         .next_state    = LLC_CONN_STATE_SETUP,
566         .ev_qualifiers = llc_setup_ev_qfyrs_7,
567         .ev_actions    = llc_setup_actions_7,
568 };
569
570 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
571 static llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_8[] = {
572         [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
573         [1] = llc_conn_ev_qlfy_s_flag_eq_0,
574         [2] = llc_conn_ev_qlfy_set_status_failed,
575         [3] = NULL,
576 };
577
578 static llc_conn_action_t llc_setup_actions_8[] = {
579         [0] = llc_conn_ac_conn_confirm,
580         [1] = llc_conn_disc,
581         [2] = NULL,
582 };
583
584 static struct llc_conn_state_trans llc_setup_state_trans_8 = {
585         .ev            = llc_conn_ev_ack_tmr_exp,
586         .next_state    = LLC_CONN_STATE_ADM,
587         .ev_qualifiers = llc_setup_ev_qfyrs_8,
588         .ev_actions    = llc_setup_actions_8,
589 };
590
591 /*
592  * Array of pointers;
593  * one to each transition
594  */
595 static struct llc_conn_state_trans *llc_setup_state_transitions[] = {
596          [0] = &llc_common_state_trans_end,     /* Request */
597          [1] = &llc_common_state_trans_end,     /* local busy */
598          [2] = &llc_common_state_trans_end,     /* init_pf_cycle */
599          [3] = &llc_setup_state_trans_3,        /* Timer */
600          [4] = &llc_setup_state_trans_7,
601          [5] = &llc_setup_state_trans_8,
602          [6] = &llc_common_state_trans_end,
603          [7] = &llc_setup_state_trans_1,        /* Receive frame */
604          [8] = &llc_setup_state_trans_2,
605          [9] = &llc_setup_state_trans_4,
606         [10] = &llc_setup_state_trans_5,
607         [11] = &llc_common_state_trans_end,
608 };
609
610 /* LLC_CONN_STATE_NORMAL transitions */
611 /* State transitions for LLC_CONN_EV_DATA_REQ event */
612 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_1[] = {
613         [0] = llc_conn_ev_qlfy_remote_busy_eq_0,
614         [1] = llc_conn_ev_qlfy_p_flag_eq_0,
615         [2] = llc_conn_ev_qlfy_last_frame_eq_0,
616         [3] = NULL,
617 };
618
619 static llc_conn_action_t llc_normal_actions_1[] = {
620         [0] = llc_conn_ac_send_i_as_ack,
621         [1] = llc_conn_ac_start_ack_tmr_if_not_running,
622         [2] = NULL,
623 };
624
625 static struct llc_conn_state_trans llc_normal_state_trans_1 = {
626         .ev            = llc_conn_ev_data_req,
627         .next_state    = LLC_CONN_STATE_NORMAL,
628         .ev_qualifiers = llc_normal_ev_qfyrs_1,
629         .ev_actions    = llc_normal_actions_1,
630 };
631
632 /* State transitions for LLC_CONN_EV_DATA_REQ event */
633 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_2[] = {
634         [0] = llc_conn_ev_qlfy_remote_busy_eq_0,
635         [1] = llc_conn_ev_qlfy_p_flag_eq_0,
636         [2] = llc_conn_ev_qlfy_last_frame_eq_1,
637         [3] = NULL,
638 };
639
640 static llc_conn_action_t llc_normal_actions_2[] = {
641         [0] = llc_conn_ac_send_i_cmd_p_set_1,
642         [1] = llc_conn_ac_start_p_timer,
643         [2] = NULL,
644 };
645
646 static struct llc_conn_state_trans llc_normal_state_trans_2 = {
647         .ev            = llc_conn_ev_data_req,
648         .next_state    = LLC_CONN_STATE_NORMAL,
649         .ev_qualifiers = llc_normal_ev_qfyrs_2,
650         .ev_actions    = llc_normal_actions_2,
651 };
652
653 /* State transitions for LLC_CONN_EV_DATA_REQ event */
654 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_2_1[] = {
655         [0] = llc_conn_ev_qlfy_remote_busy_eq_1,
656         [1] = llc_conn_ev_qlfy_set_status_remote_busy,
657         [2] = NULL,
658 };
659
660 /* just one member, NULL, .bss zeroes it */
661 static llc_conn_action_t llc_normal_actions_2_1[1];
662
663 static struct llc_conn_state_trans llc_normal_state_trans_2_1 = {
664         .ev            = llc_conn_ev_data_req,
665         .next_state    = LLC_CONN_STATE_NORMAL,
666         .ev_qualifiers = llc_normal_ev_qfyrs_2_1,
667         .ev_actions    = llc_normal_actions_2_1,
668 };
669
670 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
671 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_3[] = {
672         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
673         [1] = NULL,
674 };
675
676 static llc_conn_action_t llc_normal_actions_3[] = {
677         [0] = llc_conn_ac_rst_sendack_flag,
678         [1] = llc_conn_ac_send_rnr_xxx_x_set_0,
679         [2] = llc_conn_ac_set_data_flag_0,
680         [3] = NULL,
681 };
682
683 static struct llc_conn_state_trans llc_normal_state_trans_3 = {
684         .ev            = llc_conn_ev_local_busy_detected,
685         .next_state    = LLC_CONN_STATE_BUSY,
686         .ev_qualifiers = llc_normal_ev_qfyrs_3,
687         .ev_actions    = llc_normal_actions_3,
688 };
689
690 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
691 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_4[] = {
692         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
693         [1] = NULL,
694 };
695
696 static llc_conn_action_t llc_normal_actions_4[] = {
697         [0] = llc_conn_ac_rst_sendack_flag,
698         [1] = llc_conn_ac_send_rnr_xxx_x_set_0,
699         [2] = llc_conn_ac_set_data_flag_0,
700         [3] = NULL,
701 };
702
703 static struct llc_conn_state_trans llc_normal_state_trans_4 = {
704         .ev            = llc_conn_ev_local_busy_detected,
705         .next_state    = LLC_CONN_STATE_BUSY,
706         .ev_qualifiers = llc_normal_ev_qfyrs_4,
707         .ev_actions    = llc_normal_actions_4,
708 };
709
710 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
711 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_5a[] = {
712         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
713         [1] = NULL,
714 };
715
716 static llc_conn_action_t llc_normal_actions_5a[] = {
717         [0] = llc_conn_ac_rst_sendack_flag,
718         [1] = llc_conn_ac_send_rej_xxx_x_set_0,
719         [2] = llc_conn_ac_upd_nr_received,
720         [3] = llc_conn_ac_upd_p_flag,
721         [4] = llc_conn_ac_start_rej_timer,
722         [5] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
723         [6] = NULL,
724 };
725
726 static struct llc_conn_state_trans llc_normal_state_trans_5a = {
727         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns,
728         .next_state    = LLC_CONN_STATE_REJ,
729         .ev_qualifiers = llc_normal_ev_qfyrs_5a,
730         .ev_actions    = llc_normal_actions_5a,
731 };
732
733 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
734 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_5b[] = {
735         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
736         [1] = NULL,
737 };
738
739 static llc_conn_action_t llc_normal_actions_5b[] = {
740         [0] = llc_conn_ac_rst_sendack_flag,
741         [1] = llc_conn_ac_send_rej_xxx_x_set_0,
742         [2] = llc_conn_ac_upd_nr_received,
743         [3] = llc_conn_ac_upd_p_flag,
744         [4] = llc_conn_ac_start_rej_timer,
745         [5] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
746         [6] = NULL,
747 };
748
749 static struct llc_conn_state_trans llc_normal_state_trans_5b = {
750         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns,
751         .next_state    = LLC_CONN_STATE_REJ,
752         .ev_qualifiers = llc_normal_ev_qfyrs_5b,
753         .ev_actions    = llc_normal_actions_5b,
754 };
755
756 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns event */
757 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_5c[] = {
758         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
759         [1] = NULL,
760 };
761
762 static llc_conn_action_t llc_normal_actions_5c[] = {
763         [0] = llc_conn_ac_rst_sendack_flag,
764         [1] = llc_conn_ac_send_rej_xxx_x_set_0,
765         [2] = llc_conn_ac_upd_nr_received,
766         [3] = llc_conn_ac_upd_p_flag,
767         [4] = llc_conn_ac_start_rej_timer,
768         [5] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
769         [6] = NULL,
770 };
771
772 static struct llc_conn_state_trans llc_normal_state_trans_5c = {
773         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns,
774         .next_state    = LLC_CONN_STATE_REJ,
775         .ev_qualifiers = llc_normal_ev_qfyrs_5c,
776         .ev_actions    = llc_normal_actions_5c,
777 };
778
779 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
780 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_6a[] = {
781         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
782         [1] = NULL,
783 };
784
785 static llc_conn_action_t llc_normal_actions_6a[] = {
786         [0] = llc_conn_ac_rst_sendack_flag,
787         [1] = llc_conn_ac_send_rej_xxx_x_set_0,
788         [2] = llc_conn_ac_upd_nr_received,
789         [3] = llc_conn_ac_start_rej_timer,
790         [4] = NULL,
791 };
792
793 static struct llc_conn_state_trans llc_normal_state_trans_6a = {
794         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns,
795         .next_state    = LLC_CONN_STATE_REJ,
796         .ev_qualifiers = llc_normal_ev_qfyrs_6a,
797         .ev_actions    = llc_normal_actions_6a,
798 };
799
800 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
801 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_6b[] = {
802         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
803         [1] = NULL,
804 };
805
806 static llc_conn_action_t llc_normal_actions_6b[] = {
807         [0] = llc_conn_ac_rst_sendack_flag,
808         [1] = llc_conn_ac_send_rej_xxx_x_set_0,
809         [2] = llc_conn_ac_upd_nr_received,
810         [3] = llc_conn_ac_start_rej_timer,
811         [4] = NULL,
812 };
813
814 static struct llc_conn_state_trans llc_normal_state_trans_6b = {
815         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns,
816         .next_state    = LLC_CONN_STATE_REJ,
817         .ev_qualifiers = llc_normal_ev_qfyrs_6b,
818         .ev_actions    = llc_normal_actions_6b,
819 };
820
821 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
822 static llc_conn_action_t llc_normal_actions_7[] = {
823         [0] = llc_conn_ac_rst_sendack_flag,
824         [1] = llc_conn_ac_send_rej_rsp_f_set_1,
825         [2] = llc_conn_ac_upd_nr_received,
826         [3] = llc_conn_ac_start_rej_timer,
827         [4] = NULL,
828 };
829
830 static struct llc_conn_state_trans llc_normal_state_trans_7 = {
831         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns,
832         .next_state    = LLC_CONN_STATE_REJ,
833         .ev_qualifiers = NONE,
834         .ev_actions    = llc_normal_actions_7,
835 };
836
837 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_X event */
838 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_8a[] = {
839         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
840         [1] = NULL,
841 };
842
843 static llc_conn_action_t llc_normal_actions_8[] = {
844         [0] = llc_conn_ac_inc_vr_by_1,
845         [1] = llc_conn_ac_data_ind,
846         [2] = llc_conn_ac_upd_p_flag,
847         [3] = llc_conn_ac_upd_nr_received,
848         [4] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
849         [5] = llc_conn_ac_send_ack_if_needed,
850         [6] = NULL,
851 };
852
853 static struct llc_conn_state_trans llc_normal_state_trans_8a = {
854         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_x,
855         .next_state    = LLC_CONN_STATE_NORMAL,
856         .ev_qualifiers = llc_normal_ev_qfyrs_8a,
857         .ev_actions    = llc_normal_actions_8,
858 };
859
860 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
861 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_8b[] = {
862         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
863         [1] = NULL,
864 };
865
866 static struct llc_conn_state_trans llc_normal_state_trans_8b = {
867         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0,
868         .next_state    = LLC_CONN_STATE_NORMAL,
869         .ev_qualifiers = llc_normal_ev_qfyrs_8b,
870         .ev_actions    = llc_normal_actions_8,
871 };
872
873 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
874 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_9a[] = {
875         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
876         [1] = NULL,
877 };
878
879 static llc_conn_action_t llc_normal_actions_9a[] = {
880         [0] = llc_conn_ac_inc_vr_by_1,
881         [1] = llc_conn_ac_upd_nr_received,
882         [2] = llc_conn_ac_data_ind,
883         [3] = llc_conn_ac_send_ack_if_needed,
884         [4] = NULL,
885 };
886
887 static struct llc_conn_state_trans llc_normal_state_trans_9a = {
888         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0,
889         .next_state    = LLC_CONN_STATE_NORMAL,
890         .ev_qualifiers = llc_normal_ev_qfyrs_9a,
891         .ev_actions    = llc_normal_actions_9a,
892 };
893
894 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
895 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_9b[] = {
896         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
897         [1] = NULL,
898 };
899
900 static llc_conn_action_t llc_normal_actions_9b[] = {
901         [0] = llc_conn_ac_inc_vr_by_1,
902         [1] = llc_conn_ac_upd_nr_received,
903         [2] = llc_conn_ac_data_ind,
904         [3] = llc_conn_ac_send_ack_if_needed,
905         [4] = NULL,
906 };
907
908 static struct llc_conn_state_trans llc_normal_state_trans_9b = {
909         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0,
910         .next_state    = LLC_CONN_STATE_NORMAL,
911         .ev_qualifiers = llc_normal_ev_qfyrs_9b,
912         .ev_actions    = llc_normal_actions_9b,
913 };
914
915 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
916 static llc_conn_action_t llc_normal_actions_10[] = {
917         [0] = llc_conn_ac_inc_vr_by_1,
918         [1] = llc_conn_ac_send_ack_rsp_f_set_1,
919         [2] = llc_conn_ac_rst_sendack_flag,
920         [3] = llc_conn_ac_upd_nr_received,
921         [4] = llc_conn_ac_data_ind,
922         [5] = NULL,
923 };
924
925 static struct llc_conn_state_trans llc_normal_state_trans_10 = {
926         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1,
927         .next_state    = LLC_CONN_STATE_NORMAL,
928         .ev_qualifiers = NONE,
929         .ev_actions    = llc_normal_actions_10,
930 };
931
932 /* State transitions for * LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
933 static llc_conn_action_t llc_normal_actions_11a[] = {
934         [0] = llc_conn_ac_upd_p_flag,
935         [1] = llc_conn_ac_upd_nr_received,
936         [2] = llc_conn_ac_clear_remote_busy,
937         [3] = NULL,
938 };
939
940 static struct llc_conn_state_trans llc_normal_state_trans_11a = {
941         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_0,
942         .next_state    = LLC_CONN_STATE_NORMAL,
943         .ev_qualifiers = NONE,
944         .ev_actions    = llc_normal_actions_11a,
945 };
946
947 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
948 static llc_conn_action_t llc_normal_actions_11b[] = {
949         [0] = llc_conn_ac_upd_p_flag,
950         [1] = llc_conn_ac_upd_nr_received,
951         [2] = llc_conn_ac_clear_remote_busy,
952         [3] = NULL,
953 };
954
955 static struct llc_conn_state_trans llc_normal_state_trans_11b = {
956         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_0,
957         .next_state    = LLC_CONN_STATE_NORMAL,
958         .ev_qualifiers = NONE,
959         .ev_actions    = llc_normal_actions_11b,
960 };
961
962 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
963 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_11c[] = {
964         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
965         [1] = NULL,
966 };
967
968 static llc_conn_action_t llc_normal_actions_11c[] = {
969         [0] = llc_conn_ac_upd_p_flag,
970         [1] = llc_conn_ac_upd_nr_received,
971         [2] = llc_conn_ac_inc_tx_win_size,
972         [3] = llc_conn_ac_clear_remote_busy,
973         [4] = NULL,
974 };
975
976 static struct llc_conn_state_trans llc_normal_state_trans_11c = {
977         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_1,
978         .next_state    = LLC_CONN_STATE_NORMAL,
979         .ev_qualifiers = llc_normal_ev_qfyrs_11c,
980         .ev_actions    = llc_normal_actions_11c,
981 };
982
983 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
984 static llc_conn_action_t llc_normal_actions_12[] = {
985         [0] = llc_conn_ac_send_ack_rsp_f_set_1,
986         [1] = llc_conn_ac_upd_nr_received,
987         [2] = llc_conn_ac_adjust_npta_by_rr,
988         [3] = llc_conn_ac_rst_sendack_flag,
989         [4] = llc_conn_ac_clear_remote_busy,
990         [5] = NULL,
991 };
992
993 static struct llc_conn_state_trans llc_normal_state_trans_12 = {
994         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_1,
995         .next_state    = LLC_CONN_STATE_NORMAL,
996         .ev_qualifiers = NONE,
997         .ev_actions    = llc_normal_actions_12,
998 };
999
1000 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
1001 static llc_conn_action_t llc_normal_actions_13a[] = {
1002         [0] = llc_conn_ac_upd_p_flag,
1003         [1] = llc_conn_ac_upd_nr_received,
1004         [2] = llc_conn_ac_set_remote_busy,
1005         [3] = NULL,
1006 };
1007
1008 static struct llc_conn_state_trans llc_normal_state_trans_13a = {
1009         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_0,
1010         .next_state    = LLC_CONN_STATE_NORMAL,
1011         .ev_qualifiers = NONE,
1012         .ev_actions    = llc_normal_actions_13a,
1013 };
1014
1015 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
1016 static llc_conn_action_t llc_normal_actions_13b[] = {
1017         [0] = llc_conn_ac_upd_p_flag,
1018         [1] = llc_conn_ac_upd_nr_received,
1019         [2] = llc_conn_ac_set_remote_busy,
1020         [3] = NULL,
1021 };
1022
1023 static struct llc_conn_state_trans llc_normal_state_trans_13b = {
1024         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_0,
1025         .next_state    = LLC_CONN_STATE_NORMAL,
1026         .ev_qualifiers = NONE,
1027         .ev_actions    = llc_normal_actions_13b,
1028 };
1029
1030 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
1031 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_13c[] = {
1032         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1033         [1] = NULL,
1034 };
1035
1036 static llc_conn_action_t llc_normal_actions_13c[] = {
1037         [0] = llc_conn_ac_upd_p_flag,
1038         [1] = llc_conn_ac_upd_nr_received,
1039         [2] = llc_conn_ac_set_remote_busy,
1040         [3] = NULL,
1041 };
1042
1043 static struct llc_conn_state_trans llc_normal_state_trans_13c = {
1044         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_1,
1045         .next_state    = LLC_CONN_STATE_NORMAL,
1046         .ev_qualifiers = llc_normal_ev_qfyrs_13c,
1047         .ev_actions    = llc_normal_actions_13c,
1048 };
1049
1050 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
1051 static llc_conn_action_t llc_normal_actions_14[] = {
1052         [0] = llc_conn_ac_send_rr_rsp_f_set_1,
1053         [1] = llc_conn_ac_upd_nr_received,
1054         [2] = llc_conn_ac_adjust_npta_by_rnr,
1055         [3] = llc_conn_ac_rst_sendack_flag,
1056         [4] = llc_conn_ac_set_remote_busy,
1057         [5] = NULL,
1058 };
1059
1060 static struct llc_conn_state_trans llc_normal_state_trans_14 = {
1061         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_1,
1062         .next_state    = LLC_CONN_STATE_NORMAL,
1063         .ev_qualifiers = NONE,
1064         .ev_actions    = llc_normal_actions_14,
1065 };
1066
1067 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
1068 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_15a[] = {
1069         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
1070         [1] = NULL,
1071 };
1072
1073 static llc_conn_action_t llc_normal_actions_15a[] = {
1074         [0] = llc_conn_ac_set_vs_nr,
1075         [1] = llc_conn_ac_upd_nr_received,
1076         [2] = llc_conn_ac_upd_p_flag,
1077         [3] = llc_conn_ac_dec_tx_win_size,
1078         [4] = llc_conn_ac_resend_i_xxx_x_set_0,
1079         [5] = llc_conn_ac_clear_remote_busy,
1080         [6] = NULL,
1081 };
1082
1083 static struct llc_conn_state_trans llc_normal_state_trans_15a = {
1084         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_0,
1085         .next_state    = LLC_CONN_STATE_NORMAL,
1086         .ev_qualifiers = llc_normal_ev_qfyrs_15a,
1087         .ev_actions    = llc_normal_actions_15a,
1088 };
1089
1090 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_X event */
1091 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_15b[] = {
1092         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
1093         [1] = NULL,
1094 };
1095
1096 static llc_conn_action_t llc_normal_actions_15b[] = {
1097         [0] = llc_conn_ac_set_vs_nr,
1098         [1] = llc_conn_ac_upd_nr_received,
1099         [2] = llc_conn_ac_upd_p_flag,
1100         [3] = llc_conn_ac_dec_tx_win_size,
1101         [4] = llc_conn_ac_resend_i_xxx_x_set_0,
1102         [5] = llc_conn_ac_clear_remote_busy,
1103         [6] = NULL,
1104 };
1105
1106 static struct llc_conn_state_trans llc_normal_state_trans_15b = {
1107         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_x,
1108         .next_state    = LLC_CONN_STATE_NORMAL,
1109         .ev_qualifiers = llc_normal_ev_qfyrs_15b,
1110         .ev_actions    = llc_normal_actions_15b,
1111 };
1112
1113 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
1114 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_16a[] = {
1115         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1116         [1] = NULL,
1117 };
1118
1119 static llc_conn_action_t llc_normal_actions_16a[] = {
1120         [0] = llc_conn_ac_set_vs_nr,
1121         [1] = llc_conn_ac_upd_nr_received,
1122         [2] = llc_conn_ac_dec_tx_win_size,
1123         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
1124         [4] = llc_conn_ac_clear_remote_busy,
1125         [5] = NULL,
1126 };
1127
1128 static struct llc_conn_state_trans llc_normal_state_trans_16a = {
1129         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_0,
1130         .next_state    = LLC_CONN_STATE_NORMAL,
1131         .ev_qualifiers = llc_normal_ev_qfyrs_16a,
1132         .ev_actions    = llc_normal_actions_16a,
1133 };
1134
1135 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
1136 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_16b[] = {
1137         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1138         [1] = NULL,
1139 };
1140
1141 static llc_conn_action_t llc_normal_actions_16b[] = {
1142         [0] = llc_conn_ac_set_vs_nr,
1143         [1] = llc_conn_ac_upd_nr_received,
1144         [2] = llc_conn_ac_dec_tx_win_size,
1145         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
1146         [4] = llc_conn_ac_clear_remote_busy,
1147         [5] = NULL,
1148 };
1149
1150 static struct llc_conn_state_trans llc_normal_state_trans_16b = {
1151         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_0,
1152         .next_state    = LLC_CONN_STATE_NORMAL,
1153         .ev_qualifiers = llc_normal_ev_qfyrs_16b,
1154         .ev_actions    = llc_normal_actions_16b,
1155 };
1156
1157 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
1158 static llc_conn_action_t llc_normal_actions_17[] = {
1159         [0] = llc_conn_ac_set_vs_nr,
1160         [1] = llc_conn_ac_upd_nr_received,
1161         [2] = llc_conn_ac_dec_tx_win_size,
1162         [3] = llc_conn_ac_resend_i_rsp_f_set_1,
1163         [4] = llc_conn_ac_clear_remote_busy,
1164         [5] = NULL,
1165 };
1166
1167 static struct llc_conn_state_trans llc_normal_state_trans_17 = {
1168         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_1,
1169         .next_state    = LLC_CONN_STATE_NORMAL,
1170         .ev_qualifiers = NONE,
1171         .ev_actions    = llc_normal_actions_17,
1172 };
1173
1174 /* State transitions for LLC_CONN_EV_INIT_P_F_CYCLE event */
1175 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_18[] = {
1176         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
1177         [1] = NULL,
1178 };
1179
1180 static llc_conn_action_t llc_normal_actions_18[] = {
1181         [0] = llc_conn_ac_send_rr_cmd_p_set_1,
1182         [1] = llc_conn_ac_start_p_timer,
1183         [2] = NULL,
1184 };
1185
1186 static struct llc_conn_state_trans llc_normal_state_trans_18 = {
1187         .ev            = llc_conn_ev_init_p_f_cycle,
1188         .next_state    = LLC_CONN_STATE_NORMAL,
1189         .ev_qualifiers = llc_normal_ev_qfyrs_18,
1190         .ev_actions    = llc_normal_actions_18,
1191 };
1192
1193 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
1194 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_19[] = {
1195         [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
1196         [1] = NULL,
1197 };
1198
1199 static llc_conn_action_t llc_normal_actions_19[] = {
1200         [0] = llc_conn_ac_rst_sendack_flag,
1201         [1] = llc_conn_ac_send_rr_cmd_p_set_1,
1202         [2] = llc_conn_ac_rst_vs,
1203         [3] = llc_conn_ac_start_p_timer,
1204         [4] = llc_conn_ac_inc_retry_cnt_by_1,
1205         [5] = NULL,
1206 };
1207
1208 static struct llc_conn_state_trans llc_normal_state_trans_19 = {
1209         .ev            = llc_conn_ev_p_tmr_exp,
1210         .next_state    = LLC_CONN_STATE_AWAIT,
1211         .ev_qualifiers = llc_normal_ev_qfyrs_19,
1212         .ev_actions    = llc_normal_actions_19,
1213 };
1214
1215 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
1216 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_20a[] = {
1217         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
1218         [1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
1219         [2] = NULL,
1220 };
1221
1222 static llc_conn_action_t llc_normal_actions_20a[] = {
1223         [0] = llc_conn_ac_rst_sendack_flag,
1224         [1] = llc_conn_ac_send_rr_cmd_p_set_1,
1225         [2] = llc_conn_ac_rst_vs,
1226         [3] = llc_conn_ac_start_p_timer,
1227         [4] = llc_conn_ac_inc_retry_cnt_by_1,
1228         [5] = NULL,
1229 };
1230
1231 static struct llc_conn_state_trans llc_normal_state_trans_20a = {
1232         .ev            = llc_conn_ev_ack_tmr_exp,
1233         .next_state    = LLC_CONN_STATE_AWAIT,
1234         .ev_qualifiers = llc_normal_ev_qfyrs_20a,
1235         .ev_actions    = llc_normal_actions_20a,
1236 };
1237
1238 /* State transitions for LLC_CONN_EV_BUSY_TMR_EXP event */
1239 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_20b[] = {
1240         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
1241         [1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
1242         [2] = NULL,
1243 };
1244
1245 static llc_conn_action_t llc_normal_actions_20b[] = {
1246         [0] = llc_conn_ac_rst_sendack_flag,
1247         [1] = llc_conn_ac_send_rr_cmd_p_set_1,
1248         [2] = llc_conn_ac_rst_vs,
1249         [3] = llc_conn_ac_start_p_timer,
1250         [4] = llc_conn_ac_inc_retry_cnt_by_1,
1251         [5] = NULL,
1252 };
1253
1254 static struct llc_conn_state_trans llc_normal_state_trans_20b = {
1255         .ev            = llc_conn_ev_busy_tmr_exp,
1256         .next_state    = LLC_CONN_STATE_AWAIT,
1257         .ev_qualifiers = llc_normal_ev_qfyrs_20b,
1258         .ev_actions    = llc_normal_actions_20b,
1259 };
1260
1261 /* State transitions for LLC_CONN_EV_TX_BUFF_FULL event */
1262 static llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_21[] = {
1263         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
1264         [1] = NULL,
1265 };
1266
1267 static llc_conn_action_t llc_normal_actions_21[] = {
1268         [0] = llc_conn_ac_send_rr_cmd_p_set_1,
1269         [1] = llc_conn_ac_start_p_timer,
1270         [2] = NULL,
1271 };
1272
1273 static struct llc_conn_state_trans llc_normal_state_trans_21 = {
1274         .ev            = llc_conn_ev_tx_buffer_full,
1275         .next_state    = LLC_CONN_STATE_NORMAL,
1276         .ev_qualifiers = llc_normal_ev_qfyrs_21,
1277         .ev_actions    = llc_normal_actions_21,
1278 };
1279
1280 /*
1281  * Array of pointers;
1282  * one to each transition
1283  */
1284 static struct llc_conn_state_trans *llc_normal_state_transitions[] = {
1285          [0] = &llc_normal_state_trans_1,       /* Requests */
1286          [1] = &llc_normal_state_trans_2,
1287          [2] = &llc_normal_state_trans_2_1,
1288          [3] = &llc_common_state_trans_1,
1289          [4] = &llc_common_state_trans_2,
1290          [5] = &llc_common_state_trans_end,
1291          [6] = &llc_normal_state_trans_21,
1292          [7] = &llc_normal_state_trans_3,       /* Local busy */
1293          [8] = &llc_normal_state_trans_4,
1294          [9] = &llc_common_state_trans_end,
1295         [10] = &llc_normal_state_trans_18,      /* Init pf cycle */
1296         [11] = &llc_common_state_trans_end,
1297         [12] = &llc_common_state_trans_11a,     /* Timers */
1298         [13] = &llc_common_state_trans_11b,
1299         [14] = &llc_common_state_trans_11c,
1300         [15] = &llc_common_state_trans_11d,
1301         [16] = &llc_normal_state_trans_19,
1302         [17] = &llc_normal_state_trans_20a,
1303         [18] = &llc_normal_state_trans_20b,
1304         [19] = &llc_common_state_trans_end,
1305         [20] = &llc_normal_state_trans_8b,      /* Receive frames */
1306         [21] = &llc_normal_state_trans_9b,
1307         [22] = &llc_normal_state_trans_10,
1308         [23] = &llc_normal_state_trans_11b,
1309         [24] = &llc_normal_state_trans_11c,
1310         [25] = &llc_normal_state_trans_5a,
1311         [26] = &llc_normal_state_trans_5b,
1312         [27] = &llc_normal_state_trans_5c,
1313         [28] = &llc_normal_state_trans_6a,
1314         [29] = &llc_normal_state_trans_6b,
1315         [30] = &llc_normal_state_trans_7,
1316         [31] = &llc_normal_state_trans_8a,
1317         [32] = &llc_normal_state_trans_9a,
1318         [33] = &llc_normal_state_trans_11a,
1319         [34] = &llc_normal_state_trans_12,
1320         [35] = &llc_normal_state_trans_13a,
1321         [36] = &llc_normal_state_trans_13b,
1322         [37] = &llc_normal_state_trans_13c,
1323         [38] = &llc_normal_state_trans_14,
1324         [39] = &llc_normal_state_trans_15a,
1325         [40] = &llc_normal_state_trans_15b,
1326         [41] = &llc_normal_state_trans_16a,
1327         [42] = &llc_normal_state_trans_16b,
1328         [43] = &llc_normal_state_trans_17,
1329         [44] = &llc_common_state_trans_3,
1330         [45] = &llc_common_state_trans_4,
1331         [46] = &llc_common_state_trans_5,
1332         [47] = &llc_common_state_trans_6,
1333         [48] = &llc_common_state_trans_7a,
1334         [49] = &llc_common_state_trans_7b,
1335         [50] = &llc_common_state_trans_8a,
1336         [51] = &llc_common_state_trans_8b,
1337         [52] = &llc_common_state_trans_8c,
1338         [53] = &llc_common_state_trans_9,
1339         /* [54] = &llc_common_state_trans_10, */
1340         [54] = &llc_common_state_trans_end,
1341 };
1342
1343 /* LLC_CONN_STATE_BUSY transitions */
1344 /* State transitions for LLC_CONN_EV_DATA_REQ event */
1345 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_1[] = {
1346         [0] = llc_conn_ev_qlfy_remote_busy_eq_0,
1347         [1] = llc_conn_ev_qlfy_p_flag_eq_0,
1348         [2] = NULL,
1349 };
1350
1351 static llc_conn_action_t llc_busy_actions_1[] = {
1352         [0] = llc_conn_ac_send_i_xxx_x_set_0,
1353         [1] = llc_conn_ac_start_ack_tmr_if_not_running,
1354         [2] = NULL,
1355 };
1356
1357 static struct llc_conn_state_trans llc_busy_state_trans_1 = {
1358         .ev            = llc_conn_ev_data_req,
1359         .next_state    = LLC_CONN_STATE_BUSY,
1360         .ev_qualifiers = llc_busy_ev_qfyrs_1,
1361         .ev_actions    = llc_busy_actions_1,
1362 };
1363
1364 /* State transitions for LLC_CONN_EV_DATA_REQ event */
1365 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_2[] = {
1366         [0] = llc_conn_ev_qlfy_remote_busy_eq_0,
1367         [1] = llc_conn_ev_qlfy_p_flag_eq_1,
1368         [2] = NULL,
1369 };
1370
1371 static llc_conn_action_t llc_busy_actions_2[] = {
1372         [0] = llc_conn_ac_send_i_xxx_x_set_0,
1373         [1] = llc_conn_ac_start_ack_tmr_if_not_running,
1374         [2] = NULL,
1375 };
1376
1377 static struct llc_conn_state_trans llc_busy_state_trans_2 = {
1378         .ev            = llc_conn_ev_data_req,
1379         .next_state    = LLC_CONN_STATE_BUSY,
1380         .ev_qualifiers = llc_busy_ev_qfyrs_2,
1381         .ev_actions    = llc_busy_actions_2,
1382 };
1383
1384 /* State transitions for LLC_CONN_EV_DATA_REQ event */
1385 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_2_1[] = {
1386         [0] = llc_conn_ev_qlfy_remote_busy_eq_1,
1387         [1] = llc_conn_ev_qlfy_set_status_remote_busy,
1388         [2] = NULL,
1389 };
1390
1391 /* just one member, NULL, .bss zeroes it */
1392 static llc_conn_action_t llc_busy_actions_2_1[1];
1393
1394 static struct llc_conn_state_trans llc_busy_state_trans_2_1 = {
1395         .ev            = llc_conn_ev_data_req,
1396         .next_state    = LLC_CONN_STATE_BUSY,
1397         .ev_qualifiers = llc_busy_ev_qfyrs_2_1,
1398         .ev_actions    = llc_busy_actions_2_1,
1399 };
1400
1401 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1402 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_3[] = {
1403         [0] = llc_conn_ev_qlfy_data_flag_eq_1,
1404         [1] = llc_conn_ev_qlfy_p_flag_eq_0,
1405         [2] = NULL,
1406 };
1407
1408 static llc_conn_action_t llc_busy_actions_3[] = {
1409         [0] = llc_conn_ac_send_rej_xxx_x_set_0,
1410         [1] = llc_conn_ac_start_rej_timer,
1411         [2] = NULL,
1412 };
1413
1414 static struct llc_conn_state_trans llc_busy_state_trans_3 = {
1415         .ev            = llc_conn_ev_local_busy_cleared,
1416         .next_state    = LLC_CONN_STATE_REJ,
1417         .ev_qualifiers = llc_busy_ev_qfyrs_3,
1418         .ev_actions    = llc_busy_actions_3,
1419 };
1420
1421 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1422 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_4[] = {
1423         [0] = llc_conn_ev_qlfy_data_flag_eq_1,
1424         [1] = llc_conn_ev_qlfy_p_flag_eq_1,
1425         [2] = NULL,
1426 };
1427
1428 static llc_conn_action_t llc_busy_actions_4[] = {
1429         [0] = llc_conn_ac_send_rej_xxx_x_set_0,
1430         [1] = llc_conn_ac_start_rej_timer,
1431         [2] = NULL,
1432 };
1433
1434 static struct llc_conn_state_trans llc_busy_state_trans_4 = {
1435         .ev            = llc_conn_ev_local_busy_cleared,
1436         .next_state    = LLC_CONN_STATE_REJ,
1437         .ev_qualifiers = llc_busy_ev_qfyrs_4,
1438         .ev_actions    = llc_busy_actions_4,
1439 };
1440
1441 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1442 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_5[] = {
1443         [0] = llc_conn_ev_qlfy_data_flag_eq_0,
1444         [1] = llc_conn_ev_qlfy_p_flag_eq_0,
1445         [2] = NULL,
1446 };
1447
1448 static llc_conn_action_t llc_busy_actions_5[] = {
1449         [0] = llc_conn_ac_send_rr_xxx_x_set_0,
1450         [1] = NULL,
1451 };
1452
1453 static struct llc_conn_state_trans llc_busy_state_trans_5 = {
1454         .ev            = llc_conn_ev_local_busy_cleared,
1455         .next_state    = LLC_CONN_STATE_NORMAL,
1456         .ev_qualifiers = llc_busy_ev_qfyrs_5,
1457         .ev_actions    = llc_busy_actions_5,
1458 };
1459
1460 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1461 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_6[] = {
1462         [0] = llc_conn_ev_qlfy_data_flag_eq_0,
1463         [1] = llc_conn_ev_qlfy_p_flag_eq_1,
1464         [2] = NULL,
1465 };
1466
1467 static llc_conn_action_t llc_busy_actions_6[] = {
1468         [0] = llc_conn_ac_send_rr_xxx_x_set_0,
1469         [1] = NULL,
1470 };
1471
1472 static struct llc_conn_state_trans llc_busy_state_trans_6 = {
1473         .ev            = llc_conn_ev_local_busy_cleared,
1474         .next_state    = LLC_CONN_STATE_NORMAL,
1475         .ev_qualifiers = llc_busy_ev_qfyrs_6,
1476         .ev_actions    = llc_busy_actions_6,
1477 };
1478
1479 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1480 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_7[] = {
1481         [0] = llc_conn_ev_qlfy_data_flag_eq_2,
1482         [1] = llc_conn_ev_qlfy_p_flag_eq_0,
1483         [2] = NULL,
1484 };
1485
1486 static llc_conn_action_t llc_busy_actions_7[] = {
1487         [0] = llc_conn_ac_send_rr_xxx_x_set_0,
1488         [1] = NULL,
1489 };
1490
1491 static struct llc_conn_state_trans llc_busy_state_trans_7 = {
1492         .ev            = llc_conn_ev_local_busy_cleared,
1493         .next_state    = LLC_CONN_STATE_REJ,
1494         .ev_qualifiers = llc_busy_ev_qfyrs_7,
1495         .ev_actions    = llc_busy_actions_7,
1496 };
1497
1498 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1499 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_8[] = {
1500         [0] = llc_conn_ev_qlfy_data_flag_eq_2,
1501         [1] = llc_conn_ev_qlfy_p_flag_eq_1,
1502         [2] = NULL,
1503 };
1504
1505 static llc_conn_action_t llc_busy_actions_8[] = {
1506         [0] = llc_conn_ac_send_rr_xxx_x_set_0,
1507         [1] = NULL,
1508 };
1509
1510 static struct llc_conn_state_trans llc_busy_state_trans_8 = {
1511         .ev            = llc_conn_ev_local_busy_cleared,
1512         .next_state    = LLC_CONN_STATE_REJ,
1513         .ev_qualifiers = llc_busy_ev_qfyrs_8,
1514         .ev_actions    = llc_busy_actions_8,
1515 };
1516
1517 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_X_UNEXPD_Ns event */
1518 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_9a[] = {
1519         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
1520         [1] = NULL,
1521 };
1522
1523 static llc_conn_action_t llc_busy_actions_9a[] = {
1524         [0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1525         [1] = llc_conn_ac_upd_p_flag,
1526         [2] = llc_conn_ac_upd_nr_received,
1527         [3] = llc_conn_ac_set_data_flag_1_if_data_flag_eq_0,
1528         [4] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
1529         [5] = NULL,
1530 };
1531
1532 static struct llc_conn_state_trans llc_busy_state_trans_9a = {
1533         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_x_unexpd_ns,
1534         .next_state    = LLC_CONN_STATE_BUSY,
1535         .ev_qualifiers = llc_busy_ev_qfyrs_9a,
1536         .ev_actions    = llc_busy_actions_9a,
1537 };
1538
1539 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
1540 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_9b[] = {
1541         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
1542         [1] = NULL,
1543 };
1544
1545 static llc_conn_action_t llc_busy_actions_9b[] = {
1546         [0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1547         [1] = llc_conn_ac_upd_p_flag,
1548         [2] = llc_conn_ac_upd_nr_received,
1549         [3] = llc_conn_ac_set_data_flag_1_if_data_flag_eq_0,
1550         [4] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
1551         [5] = NULL,
1552 };
1553
1554 static struct llc_conn_state_trans llc_busy_state_trans_9b = {
1555         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns,
1556         .next_state    = LLC_CONN_STATE_BUSY,
1557         .ev_qualifiers = llc_busy_ev_qfyrs_9b,
1558         .ev_actions    = llc_busy_actions_9b,
1559 };
1560
1561 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
1562 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_10a[] = {
1563         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1564         [1] = NULL,
1565 };
1566
1567 static llc_conn_action_t llc_busy_actions_10a[] = {
1568         [0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1569         [1] = llc_conn_ac_upd_nr_received,
1570         [2] = llc_conn_ac_set_data_flag_1_if_data_flag_eq_0,
1571         [3] = NULL,
1572 };
1573
1574 static struct llc_conn_state_trans llc_busy_state_trans_10a = {
1575         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns,
1576         .next_state    = LLC_CONN_STATE_BUSY,
1577         .ev_qualifiers = llc_busy_ev_qfyrs_10a,
1578         .ev_actions    = llc_busy_actions_10a,
1579 };
1580
1581 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
1582 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_10b[] = {
1583         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1584         [1] = NULL,
1585 };
1586
1587 static llc_conn_action_t llc_busy_actions_10b[] = {
1588         [0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1589         [1] = llc_conn_ac_upd_nr_received,
1590         [2] = llc_conn_ac_set_data_flag_1_if_data_flag_eq_0,
1591         [3] = NULL,
1592 };
1593
1594 static struct llc_conn_state_trans llc_busy_state_trans_10b = {
1595         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns,
1596         .next_state    = LLC_CONN_STATE_BUSY,
1597         .ev_qualifiers = llc_busy_ev_qfyrs_10b,
1598         .ev_actions    = llc_busy_actions_10b,
1599 };
1600
1601 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
1602 static llc_conn_action_t llc_busy_actions_11[] = {
1603         [0] = llc_conn_ac_send_rnr_rsp_f_set_1,
1604         [1] = llc_conn_ac_upd_nr_received,
1605         [2] = llc_conn_ac_set_data_flag_1_if_data_flag_eq_0,
1606         [3] = NULL,
1607 };
1608
1609 static struct llc_conn_state_trans llc_busy_state_trans_11 = {
1610         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns,
1611         .next_state    = LLC_CONN_STATE_BUSY,
1612         .ev_qualifiers = NONE,
1613         .ev_actions    = llc_busy_actions_11,
1614 };
1615
1616 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
1617 static llc_conn_action_t llc_busy_actions_12[] = {
1618         [0] = llc_conn_ac_inc_vr_by_1,
1619         [1] = llc_conn_ac_data_ind,
1620         [2] = llc_conn_ac_send_rnr_rsp_f_set_1,
1621         [3] = llc_conn_ac_upd_nr_received,
1622         [4] = llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2,
1623         [5] = llc_conn_ac_set_data_flag_0,
1624         [6] = NULL,
1625 };
1626
1627 static struct llc_conn_state_trans llc_busy_state_trans_12 = {
1628         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1,
1629         .next_state    = LLC_CONN_STATE_BUSY,
1630         .ev_qualifiers = NONE,
1631         .ev_actions    = llc_busy_actions_12,
1632 };
1633
1634 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_X event */
1635 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_13a[] = {
1636         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
1637         [1] = NULL,
1638 };
1639
1640 static llc_conn_action_t llc_busy_actions_13a[] = {
1641         [0] = llc_conn_ac_inc_vr_by_1,
1642         [1] = llc_conn_ac_data_ind,
1643         [2] = llc_conn_ac_upd_p_flag,
1644         [3] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1645         [4] = llc_conn_ac_upd_nr_received,
1646         [5] = llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2,
1647         [6] = llc_conn_ac_set_data_flag_0,
1648         [7] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
1649         [8] = NULL,
1650 };
1651
1652 static struct llc_conn_state_trans llc_busy_state_trans_13a = {
1653         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_x,
1654         .next_state    = LLC_CONN_STATE_BUSY,
1655         .ev_qualifiers = llc_busy_ev_qfyrs_13a,
1656         .ev_actions    = llc_busy_actions_13a,
1657 };
1658
1659 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
1660 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_13b[] = {
1661         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
1662         [1] = NULL,
1663 };
1664
1665 static llc_conn_action_t llc_busy_actions_13b[] = {
1666         [0] = llc_conn_ac_inc_vr_by_1,
1667         [1] = llc_conn_ac_data_ind,
1668         [2] = llc_conn_ac_upd_p_flag,
1669         [3] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1670         [4] = llc_conn_ac_upd_nr_received,
1671         [5] = llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2,
1672         [6] = llc_conn_ac_set_data_flag_0,
1673         [7] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
1674         [8] = NULL,
1675 };
1676
1677 static struct llc_conn_state_trans llc_busy_state_trans_13b = {
1678         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0,
1679         .next_state    = LLC_CONN_STATE_BUSY,
1680         .ev_qualifiers = llc_busy_ev_qfyrs_13b,
1681         .ev_actions    = llc_busy_actions_13b,
1682 };
1683
1684 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
1685 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_14a[] = {
1686         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1687         [1] = NULL,
1688 };
1689
1690 static llc_conn_action_t llc_busy_actions_14a[] = {
1691         [0] = llc_conn_ac_inc_vr_by_1,
1692         [1] = llc_conn_ac_data_ind,
1693         [2] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1694         [3] = llc_conn_ac_upd_nr_received,
1695         [4] = llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2,
1696         [5] = llc_conn_ac_set_data_flag_0,
1697         [6] = NULL,
1698 };
1699
1700 static struct llc_conn_state_trans llc_busy_state_trans_14a = {
1701         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0,
1702         .next_state    = LLC_CONN_STATE_BUSY,
1703         .ev_qualifiers = llc_busy_ev_qfyrs_14a,
1704         .ev_actions    = llc_busy_actions_14a,
1705 };
1706
1707 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
1708 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_14b[] = {
1709         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1710         [1] = NULL,
1711 };
1712
1713 static llc_conn_action_t llc_busy_actions_14b[] = {
1714         [0] = llc_conn_ac_inc_vr_by_1,
1715         [1] = llc_conn_ac_data_ind,
1716         [2] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1717         [3] = llc_conn_ac_upd_nr_received,
1718         [4] = llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2,
1719         [5] = llc_conn_ac_set_data_flag_0,
1720         [6] = NULL,
1721 };
1722
1723 static struct llc_conn_state_trans llc_busy_state_trans_14b = {
1724         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0,
1725         .next_state    = LLC_CONN_STATE_BUSY,
1726         .ev_qualifiers = llc_busy_ev_qfyrs_14b,
1727         .ev_actions    = llc_busy_actions_14b,
1728 };
1729
1730 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
1731 static llc_conn_action_t llc_busy_actions_15a[] = {
1732         [0] = llc_conn_ac_upd_p_flag,
1733         [1] = llc_conn_ac_upd_nr_received,
1734         [2] = llc_conn_ac_clear_remote_busy,
1735         [3] = NULL,
1736 };
1737
1738 static struct llc_conn_state_trans llc_busy_state_trans_15a = {
1739         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_0,
1740         .next_state    = LLC_CONN_STATE_BUSY,
1741         .ev_qualifiers = NONE,
1742         .ev_actions    = llc_busy_actions_15a,
1743 };
1744
1745 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
1746 static llc_conn_action_t llc_busy_actions_15b[] = {
1747         [0] = llc_conn_ac_upd_p_flag,
1748         [1] = llc_conn_ac_upd_nr_received,
1749         [2] = llc_conn_ac_clear_remote_busy,
1750         [3] = NULL,
1751 };
1752
1753 static struct llc_conn_state_trans llc_busy_state_trans_15b = {
1754         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_0,
1755         .next_state    = LLC_CONN_STATE_BUSY,
1756         .ev_qualifiers = NONE,
1757         .ev_actions    = llc_busy_actions_15b,
1758 };
1759
1760 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
1761 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_15c[] = {
1762         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1763         [1] = NULL,
1764 };
1765
1766 static llc_conn_action_t llc_busy_actions_15c[] = {
1767         [0] = llc_conn_ac_upd_p_flag,
1768         [1] = llc_conn_ac_upd_nr_received,
1769         [2] = llc_conn_ac_clear_remote_busy,
1770         [3] = NULL,
1771 };
1772
1773 static struct llc_conn_state_trans llc_busy_state_trans_15c = {
1774         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_1,
1775         .next_state    = LLC_CONN_STATE_BUSY,
1776         .ev_qualifiers = llc_busy_ev_qfyrs_15c,
1777         .ev_actions    = llc_busy_actions_15c,
1778 };
1779
1780 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
1781 static llc_conn_action_t llc_busy_actions_16[] = {
1782         [0] = llc_conn_ac_send_rnr_rsp_f_set_1,
1783         [1] = llc_conn_ac_upd_nr_received,
1784         [2] = llc_conn_ac_clear_remote_busy,
1785         [3] = NULL,
1786 };
1787
1788 static struct llc_conn_state_trans llc_busy_state_trans_16 = {
1789         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_1,
1790         .next_state    = LLC_CONN_STATE_BUSY,
1791         .ev_qualifiers = NONE,
1792         .ev_actions    = llc_busy_actions_16,
1793 };
1794
1795 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
1796 static llc_conn_action_t llc_busy_actions_17a[] = {
1797         [0] = llc_conn_ac_upd_p_flag,
1798         [1] = llc_conn_ac_upd_nr_received,
1799         [2] = llc_conn_ac_set_remote_busy,
1800         [3] = NULL,
1801 };
1802
1803 static struct llc_conn_state_trans llc_busy_state_trans_17a = {
1804         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_0,
1805         .next_state    = LLC_CONN_STATE_BUSY,
1806         .ev_qualifiers = NONE,
1807         .ev_actions    = llc_busy_actions_17a,
1808 };
1809
1810 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
1811 static llc_conn_action_t llc_busy_actions_17b[] = {
1812         [0] = llc_conn_ac_upd_p_flag,
1813         [1] = llc_conn_ac_upd_nr_received,
1814         [2] = llc_conn_ac_set_remote_busy,
1815         [3] = NULL,
1816 };
1817
1818 static struct llc_conn_state_trans llc_busy_state_trans_17b = {
1819         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_0,
1820         .next_state    = LLC_CONN_STATE_BUSY,
1821         .ev_qualifiers = NONE,
1822         .ev_actions    = llc_busy_actions_17b,
1823 };
1824
1825 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
1826 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_17c[] = {
1827         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1828         [1] = NULL,
1829 };
1830
1831 static llc_conn_action_t llc_busy_actions_17c[] = {
1832         [0] = llc_conn_ac_upd_p_flag,
1833         [1] = llc_conn_ac_upd_nr_received,
1834         [2] = llc_conn_ac_set_remote_busy,
1835         [3] = NULL,
1836 };
1837
1838 static struct llc_conn_state_trans llc_busy_state_trans_17c = {
1839         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_1,
1840         .next_state    = LLC_CONN_STATE_BUSY,
1841         .ev_qualifiers = llc_busy_ev_qfyrs_17c,
1842         .ev_actions    = llc_busy_actions_17c,
1843 };
1844
1845 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
1846 static llc_conn_action_t llc_busy_actions_18[] = {
1847         [0] = llc_conn_ac_send_rnr_rsp_f_set_1,
1848         [1] = llc_conn_ac_upd_nr_received,
1849         [2] = llc_conn_ac_set_remote_busy,
1850         [3] = NULL,
1851 };
1852
1853 static struct llc_conn_state_trans llc_busy_state_trans_18 = {
1854         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_1,
1855         .next_state    = LLC_CONN_STATE_BUSY,
1856         .ev_qualifiers = NONE,
1857         .ev_actions    = llc_busy_actions_18,
1858 };
1859
1860 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
1861 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_19a[] = {
1862         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
1863         [1] = NULL,
1864 };
1865
1866 static llc_conn_action_t llc_busy_actions_19a[] = {
1867         [0] = llc_conn_ac_set_vs_nr,
1868         [1] = llc_conn_ac_upd_nr_received,
1869         [2] = llc_conn_ac_upd_p_flag,
1870         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
1871         [4] = llc_conn_ac_clear_remote_busy,
1872         [5] = NULL,
1873 };
1874
1875 static struct llc_conn_state_trans llc_busy_state_trans_19a = {
1876         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_0,
1877         .next_state    = LLC_CONN_STATE_BUSY,
1878         .ev_qualifiers = llc_busy_ev_qfyrs_19a,
1879         .ev_actions    = llc_busy_actions_19a,
1880 };
1881
1882 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_X event */
1883 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_19b[] = {
1884         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
1885         [1] = NULL,
1886 };
1887
1888 static llc_conn_action_t llc_busy_actions_19b[] = {
1889         [0] = llc_conn_ac_set_vs_nr,
1890         [1] = llc_conn_ac_upd_nr_received,
1891         [2] = llc_conn_ac_upd_p_flag,
1892         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
1893         [4] = llc_conn_ac_clear_remote_busy,
1894         [5] = NULL,
1895 };
1896
1897 static struct llc_conn_state_trans llc_busy_state_trans_19b = {
1898         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_x,
1899         .next_state    = LLC_CONN_STATE_BUSY,
1900         .ev_qualifiers = llc_busy_ev_qfyrs_19b,
1901         .ev_actions    = llc_busy_actions_19b,
1902 };
1903
1904 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
1905 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_20a[] = {
1906         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1907         [1] = NULL,
1908 };
1909
1910 static llc_conn_action_t llc_busy_actions_20a[] = {
1911         [0] = llc_conn_ac_set_vs_nr,
1912         [1] = llc_conn_ac_upd_nr_received,
1913         [2] = llc_conn_ac_resend_i_xxx_x_set_0,
1914         [3] = llc_conn_ac_clear_remote_busy,
1915         [4] = NULL,
1916 };
1917
1918 static struct llc_conn_state_trans llc_busy_state_trans_20a = {
1919         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_0,
1920         .next_state    = LLC_CONN_STATE_BUSY,
1921         .ev_qualifiers = llc_busy_ev_qfyrs_20a,
1922         .ev_actions    = llc_busy_actions_20a,
1923 };
1924
1925 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
1926 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_20b[] = {
1927         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
1928         [1] = NULL,
1929 };
1930
1931 static llc_conn_action_t llc_busy_actions_20b[] = {
1932         [0] = llc_conn_ac_set_vs_nr,
1933         [1] = llc_conn_ac_upd_nr_received,
1934         [2] = llc_conn_ac_resend_i_xxx_x_set_0,
1935         [3] = llc_conn_ac_clear_remote_busy,
1936         [4] = NULL,
1937 };
1938
1939 static struct llc_conn_state_trans llc_busy_state_trans_20b = {
1940         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_0,
1941         .next_state    = LLC_CONN_STATE_BUSY,
1942         .ev_qualifiers = llc_busy_ev_qfyrs_20b,
1943         .ev_actions    = llc_busy_actions_20b,
1944 };
1945
1946 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
1947 static llc_conn_action_t llc_busy_actions_21[] = {
1948         [0] = llc_conn_ac_set_vs_nr,
1949         [1] = llc_conn_ac_upd_nr_received,
1950         [2] = llc_conn_ac_send_rnr_rsp_f_set_1,
1951         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
1952         [4] = llc_conn_ac_clear_remote_busy,
1953         [5] = NULL,
1954 };
1955
1956 static struct llc_conn_state_trans llc_busy_state_trans_21 = {
1957         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_1,
1958         .next_state    = LLC_CONN_STATE_BUSY,
1959         .ev_qualifiers = NONE,
1960         .ev_actions    = llc_busy_actions_21,
1961 };
1962
1963 /* State transitions for LLC_CONN_EV_INIT_P_F_CYCLE event */
1964 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_22[] = {
1965         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
1966         [1] = NULL,
1967 };
1968
1969 static llc_conn_action_t llc_busy_actions_22[] = {
1970         [0] = llc_conn_ac_send_rnr_cmd_p_set_1,
1971         [1] = llc_conn_ac_start_p_timer,
1972         [2] = NULL,
1973 };
1974
1975 static struct llc_conn_state_trans llc_busy_state_trans_22 = {
1976         .ev            = llc_conn_ev_init_p_f_cycle,
1977         .next_state    = LLC_CONN_STATE_BUSY,
1978         .ev_qualifiers = llc_busy_ev_qfyrs_22,
1979         .ev_actions    = llc_busy_actions_22,
1980 };
1981
1982 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
1983 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_23[] = {
1984         [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
1985         [1] = NULL,
1986 };
1987
1988 static llc_conn_action_t llc_busy_actions_23[] = {
1989         [0] = llc_conn_ac_send_rnr_cmd_p_set_1,
1990         [1] = llc_conn_ac_rst_vs,
1991         [2] = llc_conn_ac_start_p_timer,
1992         [3] = llc_conn_ac_inc_retry_cnt_by_1,
1993         [4] = NULL,
1994 };
1995
1996 static struct llc_conn_state_trans llc_busy_state_trans_23 = {
1997         .ev            = llc_conn_ev_p_tmr_exp,
1998         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
1999         .ev_qualifiers = llc_busy_ev_qfyrs_23,
2000         .ev_actions    = llc_busy_actions_23,
2001 };
2002
2003 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
2004 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_24a[] = {
2005         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
2006         [1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2007         [2] = NULL,
2008 };
2009
2010 static llc_conn_action_t llc_busy_actions_24a[] = {
2011         [0] = llc_conn_ac_send_rnr_cmd_p_set_1,
2012         [1] = llc_conn_ac_start_p_timer,
2013         [2] = llc_conn_ac_inc_retry_cnt_by_1,
2014         [3] = llc_conn_ac_rst_vs,
2015         [4] = NULL,
2016 };
2017
2018 static struct llc_conn_state_trans llc_busy_state_trans_24a = {
2019         .ev            = llc_conn_ev_ack_tmr_exp,
2020         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
2021         .ev_qualifiers = llc_busy_ev_qfyrs_24a,
2022         .ev_actions    = llc_busy_actions_24a,
2023 };
2024
2025 /* State transitions for LLC_CONN_EV_BUSY_TMR_EXP event */
2026 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_24b[] = {
2027         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
2028         [1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2029         [2] = NULL,
2030 };
2031
2032 static llc_conn_action_t llc_busy_actions_24b[] = {
2033         [0] = llc_conn_ac_send_rnr_cmd_p_set_1,
2034         [1] = llc_conn_ac_start_p_timer,
2035         [2] = llc_conn_ac_inc_retry_cnt_by_1,
2036         [3] = llc_conn_ac_rst_vs,
2037         [4] = NULL,
2038 };
2039
2040 static struct llc_conn_state_trans llc_busy_state_trans_24b = {
2041         .ev            = llc_conn_ev_busy_tmr_exp,
2042         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
2043         .ev_qualifiers = llc_busy_ev_qfyrs_24b,
2044         .ev_actions    = llc_busy_actions_24b,
2045 };
2046
2047 /* State transitions for LLC_CONN_EV_REJ_TMR_EXP event */
2048 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_25[] = {
2049         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
2050         [1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2051         [2] = NULL,
2052 };
2053
2054 static llc_conn_action_t llc_busy_actions_25[] = {
2055         [0] = llc_conn_ac_send_rnr_cmd_p_set_1,
2056         [1] = llc_conn_ac_start_p_timer,
2057         [2] = llc_conn_ac_inc_retry_cnt_by_1,
2058         [3] = llc_conn_ac_rst_vs,
2059         [4] = llc_conn_ac_set_data_flag_1,
2060         [5] = NULL,
2061 };
2062
2063 static struct llc_conn_state_trans llc_busy_state_trans_25 = {
2064         .ev            = llc_conn_ev_rej_tmr_exp,
2065         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
2066         .ev_qualifiers = llc_busy_ev_qfyrs_25,
2067         .ev_actions    = llc_busy_actions_25,
2068 };
2069
2070 /* State transitions for LLC_CONN_EV_REJ_TMR_EXP event */
2071 static llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_26[] = {
2072         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
2073         [1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2074         [2] = NULL,
2075 };
2076
2077 static llc_conn_action_t llc_busy_actions_26[] = {
2078         [0] = llc_conn_ac_set_data_flag_1,
2079         [1] = NULL,
2080 };
2081
2082 static struct llc_conn_state_trans llc_busy_state_trans_26 = {
2083         .ev            = llc_conn_ev_rej_tmr_exp,
2084         .next_state    = LLC_CONN_STATE_BUSY,
2085         .ev_qualifiers = llc_busy_ev_qfyrs_26,
2086         .ev_actions    = llc_busy_actions_26,
2087 };
2088
2089 /*
2090  * Array of pointers;
2091  * one to each transition
2092  */
2093 static struct llc_conn_state_trans *llc_busy_state_transitions[] = {
2094          [0] = &llc_common_state_trans_1,       /* Request */
2095          [1] = &llc_common_state_trans_2,
2096          [2] = &llc_busy_state_trans_1,
2097          [3] = &llc_busy_state_trans_2,
2098          [4] = &llc_busy_state_trans_2_1,
2099          [5] = &llc_common_state_trans_end,
2100          [6] = &llc_busy_state_trans_3,         /* Local busy */
2101          [7] = &llc_busy_state_trans_4,
2102          [8] = &llc_busy_state_trans_5,
2103          [9] = &llc_busy_state_trans_6,
2104         [10] = &llc_busy_state_trans_7,
2105         [11] = &llc_busy_state_trans_8,
2106         [12] = &llc_common_state_trans_end,
2107         [13] = &llc_busy_state_trans_22,        /* Initiate PF cycle */
2108         [14] = &llc_common_state_trans_end,
2109         [15] = &llc_common_state_trans_11a,     /* Timer */
2110         [16] = &llc_common_state_trans_11b,
2111         [17] = &llc_common_state_trans_11c,
2112         [18] = &llc_common_state_trans_11d,
2113         [19] = &llc_busy_state_trans_23,
2114         [20] = &llc_busy_state_trans_24a,
2115         [21] = &llc_busy_state_trans_24b,
2116         [22] = &llc_busy_state_trans_25,
2117         [23] = &llc_busy_state_trans_26,
2118         [24] = &llc_common_state_trans_end,
2119         [25] = &llc_busy_state_trans_9a,        /* Receive frame */
2120         [26] = &llc_busy_state_trans_9b,
2121         [27] = &llc_busy_state_trans_10a,
2122         [28] = &llc_busy_state_trans_10b,
2123         [29] = &llc_busy_state_trans_11,
2124         [30] = &llc_busy_state_trans_12,
2125         [31] = &llc_busy_state_trans_13a,
2126         [32] = &llc_busy_state_trans_13b,
2127         [33] = &llc_busy_state_trans_14a,
2128         [34] = &llc_busy_state_trans_14b,
2129         [35] = &llc_busy_state_trans_15a,
2130         [36] = &llc_busy_state_trans_15b,
2131         [37] = &llc_busy_state_trans_15c,
2132         [38] = &llc_busy_state_trans_16,
2133         [39] = &llc_busy_state_trans_17a,
2134         [40] = &llc_busy_state_trans_17b,
2135         [41] = &llc_busy_state_trans_17c,
2136         [42] = &llc_busy_state_trans_18,
2137         [43] = &llc_busy_state_trans_19a,
2138         [44] = &llc_busy_state_trans_19b,
2139         [45] = &llc_busy_state_trans_20a,
2140         [46] = &llc_busy_state_trans_20b,
2141         [47] = &llc_busy_state_trans_21,
2142         [48] = &llc_common_state_trans_3,
2143         [49] = &llc_common_state_trans_4,
2144         [50] = &llc_common_state_trans_5,
2145         [51] = &llc_common_state_trans_6,
2146         [52] = &llc_common_state_trans_7a,
2147         [53] = &llc_common_state_trans_7b,
2148         [54] = &llc_common_state_trans_8a,
2149         [55] = &llc_common_state_trans_8b,
2150         [56] = &llc_common_state_trans_8c,
2151         [57] = &llc_common_state_trans_9,
2152         /* [58] = &llc_common_state_trans_10, */
2153         [58] = &llc_common_state_trans_end,
2154 };
2155
2156 /* LLC_CONN_STATE_REJ transitions */
2157 /* State transitions for LLC_CONN_EV_DATA_REQ event */
2158 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_1[] = {
2159         [0] = llc_conn_ev_qlfy_remote_busy_eq_0,
2160         [1] = llc_conn_ev_qlfy_p_flag_eq_0,
2161         [2] = NULL,
2162 };
2163
2164 static llc_conn_action_t llc_reject_actions_1[] = {
2165         [0] = llc_conn_ac_send_i_xxx_x_set_0,
2166         [1] = NULL,
2167 };
2168
2169 static struct llc_conn_state_trans llc_reject_state_trans_1 = {
2170         .ev            = llc_conn_ev_data_req,
2171         .next_state    = LLC_CONN_STATE_REJ,
2172         .ev_qualifiers = llc_reject_ev_qfyrs_1,
2173         .ev_actions    = llc_reject_actions_1,
2174 };
2175
2176 /* State transitions for LLC_CONN_EV_DATA_REQ event */
2177 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_2[] = {
2178         [0] = llc_conn_ev_qlfy_remote_busy_eq_0,
2179         [1] = llc_conn_ev_qlfy_p_flag_eq_1,
2180         [2] = NULL,
2181 };
2182
2183 static llc_conn_action_t llc_reject_actions_2[] = {
2184         [0] = llc_conn_ac_send_i_xxx_x_set_0,
2185         [1] = NULL,
2186 };
2187
2188 static struct llc_conn_state_trans llc_reject_state_trans_2 = {
2189         .ev            = llc_conn_ev_data_req,
2190         .next_state    = LLC_CONN_STATE_REJ,
2191         .ev_qualifiers = llc_reject_ev_qfyrs_2,
2192         .ev_actions    = llc_reject_actions_2,
2193 };
2194
2195 /* State transitions for LLC_CONN_EV_DATA_REQ event */
2196 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_2_1[] = {
2197         [0] = llc_conn_ev_qlfy_remote_busy_eq_1,
2198         [1] = llc_conn_ev_qlfy_set_status_remote_busy,
2199         [2] = NULL,
2200 };
2201
2202 /* just one member, NULL, .bss zeroes it */
2203 static llc_conn_action_t llc_reject_actions_2_1[1];
2204
2205 static struct llc_conn_state_trans llc_reject_state_trans_2_1 = {
2206         .ev            = llc_conn_ev_data_req,
2207         .next_state    = LLC_CONN_STATE_REJ,
2208         .ev_qualifiers = llc_reject_ev_qfyrs_2_1,
2209         .ev_actions    = llc_reject_actions_2_1,
2210 };
2211
2212
2213 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
2214 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_3[] = {
2215         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
2216         [1] = NULL,
2217 };
2218
2219 static llc_conn_action_t llc_reject_actions_3[] = {
2220         [0] = llc_conn_ac_send_rnr_xxx_x_set_0,
2221         [1] = llc_conn_ac_set_data_flag_2,
2222         [2] = NULL,
2223 };
2224
2225 static struct llc_conn_state_trans llc_reject_state_trans_3 = {
2226         .ev            = llc_conn_ev_local_busy_detected,
2227         .next_state    = LLC_CONN_STATE_BUSY,
2228         .ev_qualifiers = llc_reject_ev_qfyrs_3,
2229         .ev_actions    = llc_reject_actions_3,
2230 };
2231
2232 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
2233 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_4[] = {
2234         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
2235         [1] = NULL,
2236 };
2237
2238 static llc_conn_action_t llc_reject_actions_4[] = {
2239         [0] = llc_conn_ac_send_rnr_xxx_x_set_0,
2240         [1] = llc_conn_ac_set_data_flag_2,
2241         [2] = NULL,
2242 };
2243
2244 static struct llc_conn_state_trans llc_reject_state_trans_4 = {
2245         .ev            = llc_conn_ev_local_busy_detected,
2246         .next_state    = LLC_CONN_STATE_BUSY,
2247         .ev_qualifiers = llc_reject_ev_qfyrs_4,
2248         .ev_actions    = llc_reject_actions_4,
2249 };
2250
2251 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
2252 static llc_conn_action_t llc_reject_actions_5a[] = {
2253         [0] = llc_conn_ac_upd_nr_received,
2254         [1] = llc_conn_ac_upd_p_flag,
2255         [2] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
2256         [3] = NULL,
2257 };
2258
2259 static struct llc_conn_state_trans llc_reject_state_trans_5a = {
2260         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns,
2261         .next_state    = LLC_CONN_STATE_REJ,
2262         .ev_qualifiers = NONE,
2263         .ev_actions    = llc_reject_actions_5a,
2264 };
2265
2266 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
2267 static llc_conn_action_t llc_reject_actions_5b[] = {
2268         [0] = llc_conn_ac_upd_nr_received,
2269         [1] = llc_conn_ac_upd_p_flag,
2270         [2] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
2271         [3] = NULL,
2272 };
2273
2274 static struct llc_conn_state_trans llc_reject_state_trans_5b = {
2275         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns,
2276         .next_state    = LLC_CONN_STATE_REJ,
2277         .ev_qualifiers = NONE,
2278         .ev_actions    = llc_reject_actions_5b,
2279 };
2280
2281 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns event */
2282 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_5c[] = {
2283         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
2284         [1] = NULL,
2285 };
2286
2287 static llc_conn_action_t llc_reject_actions_5c[] = {
2288         [0] = llc_conn_ac_upd_nr_received,
2289         [1] = llc_conn_ac_upd_p_flag,
2290         [2] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
2291         [3] = NULL,
2292 };
2293
2294 static struct llc_conn_state_trans llc_reject_state_trans_5c = {
2295         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns,
2296         .next_state    = LLC_CONN_STATE_REJ,
2297         .ev_qualifiers = llc_reject_ev_qfyrs_5c,
2298         .ev_actions    = llc_reject_actions_5c,
2299 };
2300
2301 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
2302 static llc_conn_action_t llc_reject_actions_6[] = {
2303         [0] = llc_conn_ac_send_rr_rsp_f_set_1,
2304         [1] = llc_conn_ac_upd_nr_received,
2305         [2] = NULL,
2306 };
2307
2308 static struct llc_conn_state_trans llc_reject_state_trans_6 = {
2309         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns,
2310         .next_state    = LLC_CONN_STATE_REJ,
2311         .ev_qualifiers = NONE,
2312         .ev_actions    = llc_reject_actions_6,
2313 };
2314
2315 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_X event */
2316 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_7a[] = {
2317         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
2318         [1] = NULL,
2319 };
2320
2321 static llc_conn_action_t llc_reject_actions_7a[] = {
2322         [0] = llc_conn_ac_inc_vr_by_1,
2323         [1] = llc_conn_ac_data_ind,
2324         [2] = llc_conn_ac_upd_p_flag,
2325         [3] = llc_conn_ac_send_ack_xxx_x_set_0,
2326         [4] = llc_conn_ac_upd_nr_received,
2327         [5] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
2328         [6] = llc_conn_ac_stop_rej_timer,
2329         [7] = NULL,
2330
2331 };
2332
2333 static struct llc_conn_state_trans llc_reject_state_trans_7a = {
2334         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_x,
2335         .next_state    = LLC_CONN_STATE_NORMAL,
2336         .ev_qualifiers = llc_reject_ev_qfyrs_7a,
2337         .ev_actions    = llc_reject_actions_7a,
2338 };
2339
2340 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
2341 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_7b[] = {
2342         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
2343         [1] = NULL,
2344 };
2345
2346 static llc_conn_action_t llc_reject_actions_7b[] = {
2347         [0] = llc_conn_ac_inc_vr_by_1,
2348         [1] = llc_conn_ac_data_ind,
2349         [2] = llc_conn_ac_upd_p_flag,
2350         [3] = llc_conn_ac_send_ack_xxx_x_set_0,
2351         [4] = llc_conn_ac_upd_nr_received,
2352         [5] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
2353         [6] = llc_conn_ac_stop_rej_timer,
2354         [7] = NULL,
2355 };
2356
2357 static struct llc_conn_state_trans llc_reject_state_trans_7b = {
2358         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0,
2359         .next_state    = LLC_CONN_STATE_NORMAL,
2360         .ev_qualifiers = llc_reject_ev_qfyrs_7b,
2361         .ev_actions    = llc_reject_actions_7b,
2362 };
2363
2364 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
2365 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_8a[] = {
2366         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
2367         [1] = NULL,
2368 };
2369
2370 static llc_conn_action_t llc_reject_actions_8a[] = {
2371         [0] = llc_conn_ac_inc_vr_by_1,
2372         [1] = llc_conn_ac_data_ind,
2373         [2] = llc_conn_ac_send_ack_xxx_x_set_0,
2374         [3] = llc_conn_ac_upd_nr_received,
2375         [4] = llc_conn_ac_stop_rej_timer,
2376         [5] = NULL,
2377 };
2378
2379 static struct llc_conn_state_trans llc_reject_state_trans_8a = {
2380         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0,
2381         .next_state    = LLC_CONN_STATE_NORMAL,
2382         .ev_qualifiers = llc_reject_ev_qfyrs_8a,
2383         .ev_actions    = llc_reject_actions_8a,
2384 };
2385
2386 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
2387 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_8b[] = {
2388         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
2389         [1] = NULL,
2390 };
2391
2392 static llc_conn_action_t llc_reject_actions_8b[] = {
2393         [0] = llc_conn_ac_inc_vr_by_1,
2394         [1] = llc_conn_ac_data_ind,
2395         [2] = llc_conn_ac_send_ack_xxx_x_set_0,
2396         [3] = llc_conn_ac_upd_nr_received,
2397         [4] = llc_conn_ac_stop_rej_timer,
2398         [5] = NULL,
2399 };
2400
2401 static struct llc_conn_state_trans llc_reject_state_trans_8b = {
2402         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0,
2403         .next_state    = LLC_CONN_STATE_NORMAL,
2404         .ev_qualifiers = llc_reject_ev_qfyrs_8b,
2405         .ev_actions    = llc_reject_actions_8b,
2406 };
2407
2408 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
2409 static llc_conn_action_t llc_reject_actions_9[] = {
2410         [0] = llc_conn_ac_inc_vr_by_1,
2411         [1] = llc_conn_ac_data_ind,
2412         [2] = llc_conn_ac_send_ack_rsp_f_set_1,
2413         [3] = llc_conn_ac_upd_nr_received,
2414         [4] = llc_conn_ac_stop_rej_timer,
2415         [5] = NULL,
2416 };
2417
2418 static struct llc_conn_state_trans llc_reject_state_trans_9 = {
2419         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1,
2420         .next_state    = LLC_CONN_STATE_NORMAL,
2421         .ev_qualifiers = NONE,
2422         .ev_actions    = llc_reject_actions_9,
2423 };
2424
2425 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
2426 static llc_conn_action_t llc_reject_actions_10a[] = {
2427         [0] = llc_conn_ac_upd_p_flag,
2428         [1] = llc_conn_ac_upd_nr_received,
2429         [2] = llc_conn_ac_clear_remote_busy,
2430         [3] = NULL,
2431 };
2432
2433 static struct llc_conn_state_trans llc_reject_state_trans_10a = {
2434         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_0,
2435         .next_state    = LLC_CONN_STATE_REJ,
2436         .ev_qualifiers = NONE,
2437         .ev_actions    = llc_reject_actions_10a,
2438 };
2439
2440 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
2441 static llc_conn_action_t llc_reject_actions_10b[] = {
2442         [0] = llc_conn_ac_upd_p_flag,
2443         [1] = llc_conn_ac_upd_nr_received,
2444         [2] = llc_conn_ac_clear_remote_busy,
2445         [3] = NULL,
2446 };
2447
2448 static struct llc_conn_state_trans llc_reject_state_trans_10b = {
2449         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_0,
2450         .next_state    = LLC_CONN_STATE_REJ,
2451         .ev_qualifiers = NONE,
2452         .ev_actions    = llc_reject_actions_10b,
2453 };
2454
2455 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
2456 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_10c[] = {
2457         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
2458         [1] = NULL,
2459 };
2460
2461 static llc_conn_action_t llc_reject_actions_10c[] = {
2462         [0] = llc_conn_ac_upd_p_flag,
2463         [1] = llc_conn_ac_upd_nr_received,
2464         [2] = llc_conn_ac_clear_remote_busy,
2465         [3] = NULL,
2466 };
2467
2468 static struct llc_conn_state_trans llc_reject_state_trans_10c = {
2469         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_1,
2470         .next_state    = LLC_CONN_STATE_REJ,
2471         .ev_qualifiers = llc_reject_ev_qfyrs_10c,
2472         .ev_actions    = llc_reject_actions_10c,
2473 };
2474
2475 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
2476 static llc_conn_action_t llc_reject_actions_11[] = {
2477         [0] = llc_conn_ac_send_ack_rsp_f_set_1,
2478         [1] = llc_conn_ac_upd_nr_received,
2479         [2] = llc_conn_ac_clear_remote_busy,
2480         [3] = NULL,
2481 };
2482
2483 static struct llc_conn_state_trans llc_reject_state_trans_11 = {
2484         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_1,
2485         .next_state    = LLC_CONN_STATE_REJ,
2486         .ev_qualifiers = NONE,
2487         .ev_actions    = llc_reject_actions_11,
2488 };
2489
2490 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
2491 static llc_conn_action_t llc_reject_actions_12a[] = {
2492         [0] = llc_conn_ac_upd_p_flag,
2493         [1] = llc_conn_ac_upd_nr_received,
2494         [2] = llc_conn_ac_set_remote_busy,
2495         [3] = NULL,
2496 };
2497
2498 static struct llc_conn_state_trans llc_reject_state_trans_12a = {
2499         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_0,
2500         .next_state    = LLC_CONN_STATE_REJ,
2501         .ev_qualifiers = NONE,
2502         .ev_actions    = llc_reject_actions_12a,
2503 };
2504
2505 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
2506 static llc_conn_action_t llc_reject_actions_12b[] = {
2507         [0] = llc_conn_ac_upd_p_flag,
2508         [1] = llc_conn_ac_upd_nr_received,
2509         [2] = llc_conn_ac_set_remote_busy,
2510         [3] = NULL,
2511 };
2512
2513 static struct llc_conn_state_trans llc_reject_state_trans_12b = {
2514         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_0,
2515         .next_state    = LLC_CONN_STATE_REJ,
2516         .ev_qualifiers = NONE,
2517         .ev_actions    = llc_reject_actions_12b,
2518 };
2519
2520 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
2521 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_12c[] = {
2522         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
2523         [1] = NULL,
2524 };
2525
2526 static llc_conn_action_t llc_reject_actions_12c[] = {
2527         [0] = llc_conn_ac_upd_p_flag,
2528         [1] = llc_conn_ac_upd_nr_received,
2529         [2] = llc_conn_ac_set_remote_busy,
2530         [3] = NULL,
2531 };
2532
2533 static struct llc_conn_state_trans llc_reject_state_trans_12c = {
2534         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_1,
2535         .next_state    = LLC_CONN_STATE_REJ,
2536         .ev_qualifiers = llc_reject_ev_qfyrs_12c,
2537         .ev_actions    = llc_reject_actions_12c,
2538 };
2539
2540 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
2541 static llc_conn_action_t llc_reject_actions_13[] = {
2542         [0] = llc_conn_ac_send_rr_rsp_f_set_1,
2543         [1] = llc_conn_ac_upd_nr_received,
2544         [2] = llc_conn_ac_set_remote_busy,
2545         [3] = NULL,
2546 };
2547
2548 static struct llc_conn_state_trans llc_reject_state_trans_13 = {
2549         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_1,
2550         .next_state    = LLC_CONN_STATE_REJ,
2551         .ev_qualifiers = NONE,
2552         .ev_actions    = llc_reject_actions_13,
2553 };
2554
2555 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
2556 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_14a[] = {
2557         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
2558         [1] = NULL,
2559 };
2560
2561 static llc_conn_action_t llc_reject_actions_14a[] = {
2562         [0] = llc_conn_ac_set_vs_nr,
2563         [1] = llc_conn_ac_upd_nr_received,
2564         [2] = llc_conn_ac_upd_p_flag,
2565         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
2566         [4] = llc_conn_ac_clear_remote_busy,
2567         [5] = NULL,
2568 };
2569
2570 static struct llc_conn_state_trans llc_reject_state_trans_14a = {
2571         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_0,
2572         .next_state    = LLC_CONN_STATE_REJ,
2573         .ev_qualifiers = llc_reject_ev_qfyrs_14a,
2574         .ev_actions    = llc_reject_actions_14a,
2575 };
2576
2577 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_X event */
2578 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_14b[] = {
2579         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
2580         [1] = NULL,
2581 };
2582
2583 static llc_conn_action_t llc_reject_actions_14b[] = {
2584         [0] = llc_conn_ac_set_vs_nr,
2585         [1] = llc_conn_ac_upd_nr_received,
2586         [2] = llc_conn_ac_upd_p_flag,
2587         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
2588         [4] = llc_conn_ac_clear_remote_busy,
2589         [5] = NULL,
2590 };
2591
2592 static struct llc_conn_state_trans llc_reject_state_trans_14b = {
2593         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_x,
2594         .next_state    = LLC_CONN_STATE_REJ,
2595         .ev_qualifiers = llc_reject_ev_qfyrs_14b,
2596         .ev_actions    = llc_reject_actions_14b,
2597 };
2598
2599 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
2600 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_15a[] = {
2601         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
2602         [1] = NULL,
2603 };
2604
2605 static llc_conn_action_t llc_reject_actions_15a[] = {
2606         [0] = llc_conn_ac_set_vs_nr,
2607         [1] = llc_conn_ac_upd_nr_received,
2608         [2] = llc_conn_ac_resend_i_xxx_x_set_0,
2609         [3] = llc_conn_ac_clear_remote_busy,
2610         [4] = NULL,
2611 };
2612
2613 static struct llc_conn_state_trans llc_reject_state_trans_15a = {
2614         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_0,
2615         .next_state    = LLC_CONN_STATE_REJ,
2616         .ev_qualifiers = llc_reject_ev_qfyrs_15a,
2617         .ev_actions    = llc_reject_actions_15a,
2618 };
2619
2620 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
2621 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_15b[] = {
2622         [0] = llc_conn_ev_qlfy_p_flag_eq_1,
2623         [1] = NULL,
2624 };
2625
2626 static llc_conn_action_t llc_reject_actions_15b[] = {
2627         [0] = llc_conn_ac_set_vs_nr,
2628         [1] = llc_conn_ac_upd_nr_received,
2629         [2] = llc_conn_ac_resend_i_xxx_x_set_0,
2630         [3] = llc_conn_ac_clear_remote_busy,
2631         [4] = NULL,
2632 };
2633
2634 static struct llc_conn_state_trans llc_reject_state_trans_15b = {
2635         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_0,
2636         .next_state    = LLC_CONN_STATE_REJ,
2637         .ev_qualifiers = llc_reject_ev_qfyrs_15b,
2638         .ev_actions    = llc_reject_actions_15b,
2639 };
2640
2641 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
2642 static llc_conn_action_t llc_reject_actions_16[] = {
2643         [0] = llc_conn_ac_set_vs_nr,
2644         [1] = llc_conn_ac_upd_nr_received,
2645         [2] = llc_conn_ac_resend_i_rsp_f_set_1,
2646         [3] = llc_conn_ac_clear_remote_busy,
2647         [4] = NULL,
2648 };
2649
2650 static struct llc_conn_state_trans llc_reject_state_trans_16 = {
2651         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_1,
2652         .next_state    = LLC_CONN_STATE_REJ,
2653         .ev_qualifiers = NONE,
2654         .ev_actions    = llc_reject_actions_16,
2655 };
2656
2657 /* State transitions for LLC_CONN_EV_INIT_P_F_CYCLE event */
2658 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_17[] = {
2659         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
2660         [1] = NULL,
2661 };
2662
2663 static llc_conn_action_t llc_reject_actions_17[] = {
2664         [0] = llc_conn_ac_send_rr_cmd_p_set_1,
2665         [1] = llc_conn_ac_start_p_timer,
2666         [2] = NULL,
2667 };
2668
2669 static struct llc_conn_state_trans llc_reject_state_trans_17 = {
2670         .ev            = llc_conn_ev_init_p_f_cycle,
2671         .next_state    = LLC_CONN_STATE_REJ,
2672         .ev_qualifiers = llc_reject_ev_qfyrs_17,
2673         .ev_actions    = llc_reject_actions_17,
2674 };
2675
2676 /* State transitions for LLC_CONN_EV_REJ_TMR_EXP event */
2677 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_18[] = {
2678         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
2679         [1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2680         [2] = NULL,
2681 };
2682
2683 static llc_conn_action_t llc_reject_actions_18[] = {
2684         [0] = llc_conn_ac_send_rej_cmd_p_set_1,
2685         [1] = llc_conn_ac_start_p_timer,
2686         [2] = llc_conn_ac_start_rej_timer,
2687         [3] = llc_conn_ac_inc_retry_cnt_by_1,
2688         [4] = NULL,
2689 };
2690
2691 static struct llc_conn_state_trans llc_reject_state_trans_18 = {
2692         .ev            = llc_conn_ev_rej_tmr_exp,
2693         .next_state    = LLC_CONN_STATE_REJ,
2694         .ev_qualifiers = llc_reject_ev_qfyrs_18,
2695         .ev_actions    = llc_reject_actions_18,
2696 };
2697
2698 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
2699 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_19[] = {
2700         [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2701         [1] = NULL,
2702 };
2703
2704 static llc_conn_action_t llc_reject_actions_19[] = {
2705         [0] = llc_conn_ac_send_rr_cmd_p_set_1,
2706         [1] = llc_conn_ac_start_p_timer,
2707         [2] = llc_conn_ac_start_rej_timer,
2708         [3] = llc_conn_ac_inc_retry_cnt_by_1,
2709         [4] = llc_conn_ac_rst_vs,
2710         [5] = NULL,
2711 };
2712
2713 static struct llc_conn_state_trans llc_reject_state_trans_19 = {
2714         .ev            = llc_conn_ev_p_tmr_exp,
2715         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
2716         .ev_qualifiers = llc_reject_ev_qfyrs_19,
2717         .ev_actions    = llc_reject_actions_19,
2718 };
2719
2720 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
2721 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_20a[] = {
2722         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
2723         [1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2724         [2] = NULL,
2725 };
2726
2727 static llc_conn_action_t llc_reject_actions_20a[] = {
2728         [0] = llc_conn_ac_send_rr_cmd_p_set_1,
2729         [1] = llc_conn_ac_start_p_timer,
2730         [2] = llc_conn_ac_start_rej_timer,
2731         [3] = llc_conn_ac_inc_retry_cnt_by_1,
2732         [4] = llc_conn_ac_rst_vs,
2733         [5] = NULL,
2734 };
2735
2736 static struct llc_conn_state_trans llc_reject_state_trans_20a = {
2737         .ev            = llc_conn_ev_ack_tmr_exp,
2738         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
2739         .ev_qualifiers = llc_reject_ev_qfyrs_20a,
2740         .ev_actions    = llc_reject_actions_20a,
2741 };
2742
2743 /* State transitions for LLC_CONN_EV_BUSY_TMR_EXP event */
2744 static llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_20b[] = {
2745         [0] = llc_conn_ev_qlfy_p_flag_eq_0,
2746         [1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2747         [2] = NULL,
2748 };
2749
2750 static llc_conn_action_t llc_reject_actions_20b[] = {
2751         [0] = llc_conn_ac_send_rr_cmd_p_set_1,
2752         [1] = llc_conn_ac_start_p_timer,
2753         [2] = llc_conn_ac_start_rej_timer,
2754         [3] = llc_conn_ac_inc_retry_cnt_by_1,
2755         [4] = llc_conn_ac_rst_vs,
2756         [5] = NULL,
2757 };
2758
2759 static struct llc_conn_state_trans llc_reject_state_trans_20b = {
2760         .ev            = llc_conn_ev_busy_tmr_exp,
2761         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
2762         .ev_qualifiers = llc_reject_ev_qfyrs_20b,
2763         .ev_actions    = llc_reject_actions_20b,
2764 };
2765
2766 /*
2767  * Array of pointers;
2768  * one to each transition
2769  */
2770 static struct llc_conn_state_trans *llc_reject_state_transitions[] = {
2771          [0] = &llc_common_state_trans_1,       /* Request */
2772          [1] = &llc_common_state_trans_2,
2773          [2] = &llc_common_state_trans_end,
2774          [3] = &llc_reject_state_trans_1,
2775          [4] = &llc_reject_state_trans_2,
2776          [5] = &llc_reject_state_trans_2_1,
2777          [6] = &llc_reject_state_trans_3,       /* Local busy */
2778          [7] = &llc_reject_state_trans_4,
2779          [8] = &llc_common_state_trans_end,
2780          [9] = &llc_reject_state_trans_17,      /* Initiate PF cycle */
2781         [10] = &llc_common_state_trans_end,
2782         [11] = &llc_common_state_trans_11a,     /* Timer */
2783         [12] = &llc_common_state_trans_11b,
2784         [13] = &llc_common_state_trans_11c,
2785         [14] = &llc_common_state_trans_11d,
2786         [15] = &llc_reject_state_trans_18,
2787         [16] = &llc_reject_state_trans_19,
2788         [17] = &llc_reject_state_trans_20a,
2789         [18] = &llc_reject_state_trans_20b,
2790         [19] = &llc_common_state_trans_end,
2791         [20] = &llc_common_state_trans_3,       /* Receive frame */
2792         [21] = &llc_common_state_trans_4,
2793         [22] = &llc_common_state_trans_5,
2794         [23] = &llc_common_state_trans_6,
2795         [24] = &llc_common_state_trans_7a,
2796         [25] = &llc_common_state_trans_7b,
2797         [26] = &llc_common_state_trans_8a,
2798         [27] = &llc_common_state_trans_8b,
2799         [28] = &llc_common_state_trans_8c,
2800         [29] = &llc_common_state_trans_9,
2801         /* [30] = &llc_common_state_trans_10, */
2802         [30] = &llc_reject_state_trans_5a,
2803         [31] = &llc_reject_state_trans_5b,
2804         [32] = &llc_reject_state_trans_5c,
2805         [33] = &llc_reject_state_trans_6,
2806         [34] = &llc_reject_state_trans_7a,
2807         [35] = &llc_reject_state_trans_7b,
2808         [36] = &llc_reject_state_trans_8a,
2809         [37] = &llc_reject_state_trans_8b,
2810         [38] = &llc_reject_state_trans_9,
2811         [39] = &llc_reject_state_trans_10a,
2812         [40] = &llc_reject_state_trans_10b,
2813         [41] = &llc_reject_state_trans_10c,
2814         [42] = &llc_reject_state_trans_11,
2815         [43] = &llc_reject_state_trans_12a,
2816         [44] = &llc_reject_state_trans_12b,
2817         [45] = &llc_reject_state_trans_12c,
2818         [46] = &llc_reject_state_trans_13,
2819         [47] = &llc_reject_state_trans_14a,
2820         [48] = &llc_reject_state_trans_14b,
2821         [49] = &llc_reject_state_trans_15a,
2822         [50] = &llc_reject_state_trans_15b,
2823         [51] = &llc_reject_state_trans_16,
2824         [52] = &llc_common_state_trans_end,
2825 };
2826
2827 /* LLC_CONN_STATE_AWAIT transitions */
2828 /* State transitions for LLC_CONN_EV_DATA_REQ event */
2829 static llc_conn_ev_qfyr_t llc_await_ev_qfyrs_1_0[] = {
2830         [0] = llc_conn_ev_qlfy_set_status_refuse,
2831         [1] = NULL,
2832 };
2833
2834 /* just one member, NULL, .bss zeroes it */
2835 static llc_conn_action_t llc_await_actions_1_0[1];
2836
2837 static struct llc_conn_state_trans llc_await_state_trans_1_0 = {
2838         .ev            = llc_conn_ev_data_req,
2839         .next_state    = LLC_CONN_STATE_AWAIT,
2840         .ev_qualifiers = llc_await_ev_qfyrs_1_0,
2841         .ev_actions    = llc_await_actions_1_0,
2842 };
2843
2844 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
2845 static llc_conn_action_t llc_await_actions_1[] = {
2846         [0] = llc_conn_ac_send_rnr_xxx_x_set_0,
2847         [1] = llc_conn_ac_set_data_flag_0,
2848         [2] = NULL,
2849 };
2850
2851 static struct llc_conn_state_trans llc_await_state_trans_1 = {
2852         .ev            = llc_conn_ev_local_busy_detected,
2853         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
2854         .ev_qualifiers = NONE,
2855         .ev_actions    = llc_await_actions_1,
2856 };
2857
2858 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns event */
2859 static llc_conn_action_t llc_await_actions_2[] = {
2860         [0] = llc_conn_ac_send_rej_xxx_x_set_0,
2861         [1] = llc_conn_ac_upd_nr_received,
2862         [2] = llc_conn_ac_upd_vs,
2863         [3] = llc_conn_ac_stop_p_timer,
2864         [4] = llc_conn_ac_resend_i_xxx_x_set_0,
2865         [5] = llc_conn_ac_start_rej_timer,
2866         [6] = llc_conn_ac_clear_remote_busy,
2867         [7] = NULL,
2868 };
2869
2870 static struct llc_conn_state_trans llc_await_state_trans_2 = {
2871         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns,
2872         .next_state    = LLC_CONN_STATE_REJ,
2873         .ev_qualifiers = NONE,
2874         .ev_actions    = llc_await_actions_2,
2875 };
2876
2877 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
2878 static llc_conn_action_t llc_await_actions_3a[] = {
2879         [0] = llc_conn_ac_send_rej_xxx_x_set_0,
2880         [1] = llc_conn_ac_upd_nr_received,
2881         [2] = llc_conn_ac_upd_vs,
2882         [3] = llc_conn_ac_start_rej_timer,
2883         [4] = NULL,
2884 };
2885
2886 static struct llc_conn_state_trans llc_await_state_trans_3a = {
2887         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns,
2888         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
2889         .ev_qualifiers = NONE,
2890         .ev_actions    = llc_await_actions_3a,
2891 };
2892
2893 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
2894 static llc_conn_action_t llc_await_actions_3b[] = {
2895         [0] = llc_conn_ac_send_rej_xxx_x_set_0,
2896         [1] = llc_conn_ac_upd_nr_received,
2897         [2] = llc_conn_ac_upd_vs,
2898         [3] = llc_conn_ac_start_rej_timer,
2899         [4] = NULL,
2900 };
2901
2902 static struct llc_conn_state_trans llc_await_state_trans_3b = {
2903         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns,
2904         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
2905         .ev_qualifiers = NONE,
2906         .ev_actions    = llc_await_actions_3b,
2907 };
2908
2909 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
2910 static llc_conn_action_t llc_await_actions_4[] = {
2911         [0] = llc_conn_ac_send_rej_rsp_f_set_1,
2912         [1] = llc_conn_ac_upd_nr_received,
2913         [2] = llc_conn_ac_upd_vs,
2914         [3] = llc_conn_ac_start_rej_timer,
2915         [4] = llc_conn_ac_start_p_timer,
2916         [5] = NULL,
2917 };
2918
2919 static struct llc_conn_state_trans llc_await_state_trans_4 = {
2920         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns,
2921         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
2922         .ev_qualifiers = NONE,
2923         .ev_actions    = llc_await_actions_4,
2924 };
2925
2926 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1 event */
2927 static llc_conn_action_t llc_await_actions_5[] = {
2928         [0] = llc_conn_ac_inc_vr_by_1,
2929         [1] = llc_conn_ac_data_ind,
2930         [2] = llc_conn_ac_stop_p_timer,
2931         [3] = llc_conn_ac_upd_nr_received,
2932         [4] = llc_conn_ac_upd_vs,
2933         [5] = llc_conn_ac_resend_i_xxx_x_set_0_or_send_rr,
2934         [6] = llc_conn_ac_clear_remote_busy,
2935         [7] = NULL,
2936 };
2937
2938 static struct llc_conn_state_trans llc_await_state_trans_5 = {
2939         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_1,
2940         .next_state    = LLC_CONN_STATE_NORMAL,
2941         .ev_qualifiers = NONE,
2942         .ev_actions    = llc_await_actions_5,
2943 };
2944
2945 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
2946 static llc_conn_action_t llc_await_actions_6a[] = {
2947         [0] = llc_conn_ac_inc_vr_by_1,
2948         [1] = llc_conn_ac_data_ind,
2949         [2] = llc_conn_ac_send_rr_xxx_x_set_0,
2950         [3] = llc_conn_ac_upd_nr_received,
2951         [4] = llc_conn_ac_upd_vs,
2952         [5] = NULL,
2953 };
2954
2955 static struct llc_conn_state_trans llc_await_state_trans_6a = {
2956         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0,
2957         .next_state    = LLC_CONN_STATE_AWAIT,
2958         .ev_qualifiers = NONE,
2959         .ev_actions    = llc_await_actions_6a,
2960 };
2961
2962 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
2963 static llc_conn_action_t llc_await_actions_6b[] = {
2964         [0] = llc_conn_ac_inc_vr_by_1,
2965         [1] = llc_conn_ac_data_ind,
2966         [2] = llc_conn_ac_send_rr_xxx_x_set_0,
2967         [3] = llc_conn_ac_upd_nr_received,
2968         [4] = llc_conn_ac_upd_vs,
2969         [5] = NULL,
2970 };
2971
2972 static struct llc_conn_state_trans llc_await_state_trans_6b = {
2973         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0,
2974         .next_state    = LLC_CONN_STATE_AWAIT,
2975         .ev_qualifiers = NONE,
2976         .ev_actions    = llc_await_actions_6b,
2977 };
2978
2979 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
2980 static llc_conn_action_t llc_await_actions_7[] = {
2981         [0] = llc_conn_ac_inc_vr_by_1,
2982         [1] = llc_conn_ac_data_ind,
2983         [2] = llc_conn_ac_send_rr_rsp_f_set_1,
2984         [3] = llc_conn_ac_upd_nr_received,
2985         [4] = llc_conn_ac_upd_vs,
2986         [5] = NULL,
2987 };
2988
2989 static struct llc_conn_state_trans llc_await_state_trans_7 = {
2990         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1,
2991         .next_state    = LLC_CONN_STATE_AWAIT,
2992         .ev_qualifiers = NONE,
2993         .ev_actions    = llc_await_actions_7,
2994 };
2995
2996 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
2997 static llc_conn_action_t llc_await_actions_8a[] = {
2998         [0] = llc_conn_ac_upd_nr_received,
2999         [1] = llc_conn_ac_upd_vs,
3000         [2] = llc_conn_ac_stop_p_timer,
3001         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
3002         [4] = llc_conn_ac_clear_remote_busy,
3003         [5] = NULL,
3004 };
3005
3006 static struct llc_conn_state_trans llc_await_state_trans_8a = {
3007         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_1,
3008         .next_state    = LLC_CONN_STATE_NORMAL,
3009         .ev_qualifiers = NONE,
3010         .ev_actions    = llc_await_actions_8a,
3011 };
3012
3013 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_1 event */
3014 static llc_conn_action_t llc_await_actions_8b[] = {
3015         [0] = llc_conn_ac_upd_nr_received,
3016         [1] = llc_conn_ac_upd_vs,
3017         [2] = llc_conn_ac_stop_p_timer,
3018         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
3019         [4] = llc_conn_ac_clear_remote_busy,
3020         [5] = NULL,
3021 };
3022
3023 static struct llc_conn_state_trans llc_await_state_trans_8b = {
3024         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_1,
3025         .next_state    = LLC_CONN_STATE_NORMAL,
3026         .ev_qualifiers = NONE,
3027         .ev_actions    = llc_await_actions_8b,
3028 };
3029
3030 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
3031 static llc_conn_action_t llc_await_actions_9a[] = {
3032         [0] = llc_conn_ac_upd_nr_received,
3033         [1] = llc_conn_ac_upd_vs,
3034         [2] = llc_conn_ac_clear_remote_busy,
3035         [3] = NULL,
3036 };
3037
3038 static struct llc_conn_state_trans llc_await_state_trans_9a = {
3039         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_0,
3040         .next_state    = LLC_CONN_STATE_AWAIT,
3041         .ev_qualifiers = NONE,
3042         .ev_actions    = llc_await_actions_9a,
3043 };
3044
3045 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
3046 static llc_conn_action_t llc_await_actions_9b[] = {
3047         [0] = llc_conn_ac_upd_nr_received,
3048         [1] = llc_conn_ac_upd_vs,
3049         [2] = llc_conn_ac_clear_remote_busy,
3050         [3] = NULL,
3051 };
3052
3053 static struct llc_conn_state_trans llc_await_state_trans_9b = {
3054         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_0,
3055         .next_state    = LLC_CONN_STATE_AWAIT,
3056         .ev_qualifiers = NONE,
3057         .ev_actions    = llc_await_actions_9b,
3058 };
3059
3060 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
3061 static llc_conn_action_t llc_await_actions_9c[] = {
3062         [0] = llc_conn_ac_upd_nr_received,
3063         [1] = llc_conn_ac_upd_vs,
3064         [2] = llc_conn_ac_clear_remote_busy,
3065         [3] = NULL,
3066 };
3067
3068 static struct llc_conn_state_trans llc_await_state_trans_9c = {
3069         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_0,
3070         .next_state    = LLC_CONN_STATE_AWAIT,
3071         .ev_qualifiers = NONE,
3072         .ev_actions    = llc_await_actions_9c,
3073 };
3074
3075 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
3076 static llc_conn_action_t llc_await_actions_9d[] = {
3077         [0] = llc_conn_ac_upd_nr_received,
3078         [1] = llc_conn_ac_upd_vs,
3079         [2] = llc_conn_ac_clear_remote_busy,
3080         [3] = NULL,
3081 };
3082
3083 static struct llc_conn_state_trans llc_await_state_trans_9d = {
3084         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_0,
3085         .next_state    = LLC_CONN_STATE_AWAIT,
3086         .ev_qualifiers = NONE,
3087         .ev_actions    = llc_await_actions_9d,
3088 };
3089
3090 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
3091 static llc_conn_action_t llc_await_actions_10a[] = {
3092         [0] = llc_conn_ac_send_rr_rsp_f_set_1,
3093         [1] = llc_conn_ac_upd_nr_received,
3094         [2] = llc_conn_ac_upd_vs,
3095         [3] = llc_conn_ac_clear_remote_busy,
3096         [4] = NULL,
3097 };
3098
3099 static struct llc_conn_state_trans llc_await_state_trans_10a = {
3100         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_1,
3101         .next_state    = LLC_CONN_STATE_AWAIT,
3102         .ev_qualifiers = NONE,
3103         .ev_actions    = llc_await_actions_10a,
3104 };
3105
3106 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
3107 static llc_conn_action_t llc_await_actions_10b[] = {
3108         [0] = llc_conn_ac_send_rr_rsp_f_set_1,
3109         [1] = llc_conn_ac_upd_nr_received,
3110         [2] = llc_conn_ac_upd_vs,
3111         [3] = llc_conn_ac_clear_remote_busy,
3112         [4] = NULL,
3113 };
3114
3115 static struct llc_conn_state_trans llc_await_state_trans_10b = {
3116         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_1,
3117         .next_state    = LLC_CONN_STATE_AWAIT,
3118         .ev_qualifiers = NONE,
3119         .ev_actions    = llc_await_actions_10b,
3120 };
3121
3122 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
3123 static llc_conn_action_t llc_await_actions_11[] = {
3124         [0] = llc_conn_ac_upd_nr_received,
3125         [1] = llc_conn_ac_upd_vs,
3126         [2] = llc_conn_ac_stop_p_timer,
3127         [3] = llc_conn_ac_set_remote_busy,
3128         [4] = NULL,
3129 };
3130
3131 static struct llc_conn_state_trans llc_await_state_trans_11 = {
3132         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_1,
3133         .next_state    = LLC_CONN_STATE_NORMAL,
3134         .ev_qualifiers = NONE,
3135         .ev_actions    = llc_await_actions_11,
3136 };
3137
3138 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
3139 static llc_conn_action_t llc_await_actions_12a[] = {
3140         [0] = llc_conn_ac_upd_nr_received,
3141         [1] = llc_conn_ac_upd_vs,
3142         [2] = llc_conn_ac_set_remote_busy,
3143         [3] = NULL,
3144 };
3145
3146 static struct llc_conn_state_trans llc_await_state_trans_12a = {
3147         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_0,
3148         .next_state    = LLC_CONN_STATE_AWAIT,
3149         .ev_qualifiers = NONE,
3150         .ev_actions    = llc_await_actions_12a,
3151 };
3152
3153 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
3154 static llc_conn_action_t llc_await_actions_12b[] = {
3155         [0] = llc_conn_ac_upd_nr_received,
3156         [1] = llc_conn_ac_upd_vs,
3157         [2] = llc_conn_ac_set_remote_busy,
3158         [3] = NULL,
3159 };
3160
3161 static struct llc_conn_state_trans llc_await_state_trans_12b = {
3162         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_0,
3163         .next_state    = LLC_CONN_STATE_AWAIT,
3164         .ev_qualifiers = NONE,
3165         .ev_actions    = llc_await_actions_12b,
3166 };
3167
3168 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
3169 static llc_conn_action_t llc_await_actions_13[] = {
3170         [0] = llc_conn_ac_send_rr_rsp_f_set_1,
3171         [1] = llc_conn_ac_upd_nr_received,
3172         [2] = llc_conn_ac_upd_vs,
3173         [3] = llc_conn_ac_set_remote_busy,
3174         [4] = NULL,
3175 };
3176
3177 static struct llc_conn_state_trans llc_await_state_trans_13 = {
3178         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_1,
3179         .next_state    = LLC_CONN_STATE_AWAIT,
3180         .ev_qualifiers = NONE,
3181         .ev_actions    = llc_await_actions_13,
3182 };
3183
3184 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
3185 static llc_conn_ev_qfyr_t llc_await_ev_qfyrs_14[] = {
3186         [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
3187         [1] = NULL,
3188 };
3189
3190 static llc_conn_action_t llc_await_actions_14[] = {
3191         [0] = llc_conn_ac_send_rr_cmd_p_set_1,
3192         [1] = llc_conn_ac_start_p_timer,
3193         [2] = llc_conn_ac_inc_retry_cnt_by_1,
3194         [3] = NULL,
3195 };
3196
3197 static struct llc_conn_state_trans llc_await_state_trans_14 = {
3198         .ev            = llc_conn_ev_p_tmr_exp,
3199         .next_state    = LLC_CONN_STATE_AWAIT,
3200         .ev_qualifiers = llc_await_ev_qfyrs_14,
3201         .ev_actions    = llc_await_actions_14,
3202 };
3203
3204 /*
3205  * Array of pointers;
3206  * one to each transition
3207  */
3208 static struct llc_conn_state_trans *llc_await_state_transitions[] = {
3209          [0] = &llc_common_state_trans_1,       /* Request */
3210          [1] = &llc_common_state_trans_2,
3211          [2] = &llc_await_state_trans_1_0,
3212          [3] = &llc_common_state_trans_end,
3213          [4] = &llc_await_state_trans_1,        /* Local busy */
3214          [5] = &llc_common_state_trans_end,
3215          [6] = &llc_common_state_trans_end,     /* Initiate PF Cycle */
3216          [7] = &llc_common_state_trans_11a,     /* Timer */
3217          [8] = &llc_common_state_trans_11b,
3218          [9] = &llc_common_state_trans_11c,
3219         [10] = &llc_common_state_trans_11d,
3220         [11] = &llc_await_state_trans_14,
3221         [12] = &llc_common_state_trans_end,
3222         [13] = &llc_common_state_trans_3,       /* Receive frame */
3223         [14] = &llc_common_state_trans_4,
3224         [15] = &llc_common_state_trans_5,
3225         [16] = &llc_common_state_trans_6,
3226         [17] = &llc_common_state_trans_7a,
3227         [18] = &llc_common_state_trans_7b,
3228         [19] = &llc_common_state_trans_8a,
3229         [20] = &llc_common_state_trans_8b,
3230         [21] = &llc_common_state_trans_8c,
3231         [22] = &llc_common_state_trans_9,
3232         /* [23] = &llc_common_state_trans_10, */
3233         [23] = &llc_await_state_trans_2,
3234         [24] = &llc_await_state_trans_3a,
3235         [25] = &llc_await_state_trans_3b,
3236         [26] = &llc_await_state_trans_4,
3237         [27] = &llc_await_state_trans_5,
3238         [28] = &llc_await_state_trans_6a,
3239         [29] = &llc_await_state_trans_6b,
3240         [30] = &llc_await_state_trans_7,
3241         [31] = &llc_await_state_trans_8a,
3242         [32] = &llc_await_state_trans_8b,
3243         [33] = &llc_await_state_trans_9a,
3244         [34] = &llc_await_state_trans_9b,
3245         [35] = &llc_await_state_trans_9c,
3246         [36] = &llc_await_state_trans_9d,
3247         [37] = &llc_await_state_trans_10a,
3248         [38] = &llc_await_state_trans_10b,
3249         [39] = &llc_await_state_trans_11,
3250         [40] = &llc_await_state_trans_12a,
3251         [41] = &llc_await_state_trans_12b,
3252         [42] = &llc_await_state_trans_13,
3253         [43] = &llc_common_state_trans_end,
3254 };
3255
3256 /* LLC_CONN_STATE_AWAIT_BUSY transitions */
3257 /* State transitions for LLC_CONN_EV_DATA_CONN_REQ event */
3258 static llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_1_0[] = {
3259         [0] = llc_conn_ev_qlfy_set_status_refuse,
3260         [1] = NULL,
3261 };
3262
3263 /* just one member, NULL, .bss zeroes it */
3264 static llc_conn_action_t llc_await_busy_actions_1_0[1];
3265
3266 static struct llc_conn_state_trans llc_await_busy_state_trans_1_0 = {
3267         .ev            = llc_conn_ev_data_req,
3268         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3269         .ev_qualifiers = llc_await_busy_ev_qfyrs_1_0,
3270         .ev_actions    = llc_await_busy_actions_1_0,
3271 };
3272
3273 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
3274 static llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_1[] = {
3275         [0] = llc_conn_ev_qlfy_data_flag_eq_1,
3276         [1] = NULL,
3277 };
3278
3279 static llc_conn_action_t llc_await_busy_actions_1[] = {
3280         [0] = llc_conn_ac_send_rej_xxx_x_set_0,
3281         [1] = llc_conn_ac_start_rej_timer,
3282         [2] = NULL,
3283 };
3284
3285 static struct llc_conn_state_trans llc_await_busy_state_trans_1 = {
3286         .ev            = llc_conn_ev_local_busy_cleared,
3287         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
3288         .ev_qualifiers = llc_await_busy_ev_qfyrs_1,
3289         .ev_actions    = llc_await_busy_actions_1,
3290 };
3291
3292 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
3293 static llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_2[] = {
3294         [0] = llc_conn_ev_qlfy_data_flag_eq_0,
3295         [1] = NULL,
3296 };
3297
3298 static llc_conn_action_t llc_await_busy_actions_2[] = {
3299         [0] = llc_conn_ac_send_rr_xxx_x_set_0,
3300         [1] = NULL,
3301 };
3302
3303 static struct llc_conn_state_trans llc_await_busy_state_trans_2 = {
3304         .ev            = llc_conn_ev_local_busy_cleared,
3305         .next_state    = LLC_CONN_STATE_AWAIT,
3306         .ev_qualifiers = llc_await_busy_ev_qfyrs_2,
3307         .ev_actions    = llc_await_busy_actions_2,
3308 };
3309
3310 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
3311 static llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_3[] = {
3312         [0] = llc_conn_ev_qlfy_data_flag_eq_2,
3313         [1] = NULL,
3314 };
3315
3316 static llc_conn_action_t llc_await_busy_actions_3[] = {
3317         [0] = llc_conn_ac_send_rr_xxx_x_set_0,
3318         [1] = NULL,
3319 };
3320
3321 static struct llc_conn_state_trans llc_await_busy_state_trans_3 = {
3322         .ev            = llc_conn_ev_local_busy_cleared,
3323         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
3324         .ev_qualifiers = llc_await_busy_ev_qfyrs_3,
3325         .ev_actions    = llc_await_busy_actions_3,
3326 };
3327
3328 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns event */
3329 static llc_conn_action_t llc_await_busy_actions_4[] = {
3330         [0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3331         [1] = llc_conn_ac_upd_nr_received,
3332         [2] = llc_conn_ac_upd_vs,
3333         [3] = llc_conn_ac_stop_p_timer,
3334         [4] = llc_conn_ac_set_data_flag_1,
3335         [5] = llc_conn_ac_clear_remote_busy,
3336         [6] = llc_conn_ac_resend_i_xxx_x_set_0,
3337         [7] = NULL,
3338 };
3339
3340 static struct llc_conn_state_trans llc_await_busy_state_trans_4 = {
3341         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns,
3342         .next_state    = LLC_CONN_STATE_BUSY,
3343         .ev_qualifiers = NONE,
3344         .ev_actions    = llc_await_busy_actions_4,
3345 };
3346
3347 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
3348 static llc_conn_action_t llc_await_busy_actions_5a[] = {
3349         [0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3350         [1] = llc_conn_ac_upd_nr_received,
3351         [2] = llc_conn_ac_upd_vs,
3352         [3] = llc_conn_ac_set_data_flag_1,
3353         [4] = NULL,
3354 };
3355
3356 static struct llc_conn_state_trans llc_await_busy_state_trans_5a = {
3357         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns,
3358         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3359         .ev_qualifiers = NONE,
3360         .ev_actions    = llc_await_busy_actions_5a,
3361 };
3362
3363 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
3364 static llc_conn_action_t llc_await_busy_actions_5b[] = {
3365         [0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3366         [1] = llc_conn_ac_upd_nr_received,
3367         [2] = llc_conn_ac_upd_vs,
3368         [3] = llc_conn_ac_set_data_flag_1,
3369         [4] = NULL,
3370 };
3371
3372 static struct llc_conn_state_trans llc_await_busy_state_trans_5b = {
3373         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns,
3374         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3375         .ev_qualifiers = NONE,
3376         .ev_actions    = llc_await_busy_actions_5b,
3377 };
3378
3379 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
3380 static llc_conn_action_t llc_await_busy_actions_6[] = {
3381         [0] = llc_conn_ac_send_rnr_rsp_f_set_1,
3382         [1] = llc_conn_ac_upd_nr_received,
3383         [2] = llc_conn_ac_upd_vs,
3384         [3] = llc_conn_ac_set_data_flag_1,
3385         [4] = NULL,
3386 };
3387
3388 static struct llc_conn_state_trans llc_await_busy_state_trans_6 = {
3389         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns,
3390         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3391         .ev_qualifiers = NONE,
3392         .ev_actions    = llc_await_busy_actions_6,
3393 };
3394
3395 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1 event */
3396 static llc_conn_action_t llc_await_busy_actions_7[] = {
3397         [0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3398         [1] = llc_conn_ac_inc_vr_by_1,
3399         [2] = llc_conn_ac_data_ind,
3400         [3] = llc_conn_ac_stop_p_timer,
3401         [4] = llc_conn_ac_upd_nr_received,
3402         [5] = llc_conn_ac_upd_vs,
3403         [6] = llc_conn_ac_set_data_flag_0,
3404         [7] = llc_conn_ac_clear_remote_busy,
3405         [8] = llc_conn_ac_resend_i_xxx_x_set_0,
3406         [9] = NULL,
3407 };
3408
3409 static struct llc_conn_state_trans llc_await_busy_state_trans_7 = {
3410         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_1,
3411         .next_state    = LLC_CONN_STATE_BUSY,
3412         .ev_qualifiers = NONE,
3413         .ev_actions    = llc_await_busy_actions_7,
3414 };
3415
3416 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
3417 static llc_conn_action_t llc_await_busy_actions_8a[] = {
3418         [0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3419         [1] = llc_conn_ac_inc_vr_by_1,
3420         [2] = llc_conn_ac_data_ind,
3421         [3] = llc_conn_ac_upd_nr_received,
3422         [4] = llc_conn_ac_upd_vs,
3423         [5] = llc_conn_ac_set_data_flag_0,
3424         [6] = NULL,
3425 };
3426
3427 static struct llc_conn_state_trans llc_await_busy_state_trans_8a = {
3428         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0,
3429         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3430         .ev_qualifiers = NONE,
3431         .ev_actions    = llc_await_busy_actions_8a,
3432 };
3433
3434 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
3435 static llc_conn_action_t llc_await_busy_actions_8b[] = {
3436         [0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3437         [1] = llc_conn_ac_inc_vr_by_1,
3438         [2] = llc_conn_ac_data_ind,
3439         [3] = llc_conn_ac_upd_nr_received,
3440         [4] = llc_conn_ac_upd_vs,
3441         [5] = llc_conn_ac_set_data_flag_0,
3442         [6] = NULL,
3443 };
3444
3445 static struct llc_conn_state_trans llc_await_busy_state_trans_8b = {
3446         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0,
3447         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3448         .ev_qualifiers = NONE,
3449         .ev_actions    = llc_await_busy_actions_8b,
3450 };
3451
3452 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
3453 static llc_conn_action_t llc_await_busy_actions_9[] = {
3454         [0] = llc_conn_ac_send_rnr_rsp_f_set_1,
3455         [1] = llc_conn_ac_inc_vr_by_1,
3456         [2] = llc_conn_ac_data_ind,
3457         [3] = llc_conn_ac_upd_nr_received,
3458         [4] = llc_conn_ac_upd_vs,
3459         [5] = llc_conn_ac_set_data_flag_0,
3460         [6] = NULL,
3461 };
3462
3463 static struct llc_conn_state_trans llc_await_busy_state_trans_9 = {
3464         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1,
3465         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3466         .ev_qualifiers = NONE,
3467         .ev_actions    = llc_await_busy_actions_9,
3468 };
3469
3470 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
3471 static llc_conn_action_t llc_await_busy_actions_10a[] = {
3472         [0] = llc_conn_ac_upd_nr_received,
3473         [1] = llc_conn_ac_upd_vs,
3474         [2] = llc_conn_ac_stop_p_timer,
3475         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
3476         [4] = llc_conn_ac_clear_remote_busy,
3477         [5] = NULL,
3478 };
3479
3480 static struct llc_conn_state_trans llc_await_busy_state_trans_10a = {
3481         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_1,
3482         .next_state    = LLC_CONN_STATE_BUSY,
3483         .ev_qualifiers = NONE,
3484         .ev_actions    = llc_await_busy_actions_10a,
3485 };
3486
3487 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_1 event */
3488 static llc_conn_action_t llc_await_busy_actions_10b[] = {
3489         [0] = llc_conn_ac_upd_nr_received,
3490         [1] = llc_conn_ac_upd_vs,
3491         [2] = llc_conn_ac_stop_p_timer,
3492         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
3493         [4] = llc_conn_ac_clear_remote_busy,
3494         [5] = NULL,
3495 };
3496
3497 static struct llc_conn_state_trans llc_await_busy_state_trans_10b = {
3498         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_1,
3499         .next_state    = LLC_CONN_STATE_BUSY,
3500         .ev_qualifiers = NONE,
3501         .ev_actions    = llc_await_busy_actions_10b,
3502 };
3503
3504 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
3505 static llc_conn_action_t llc_await_busy_actions_11a[] = {
3506         [0] = llc_conn_ac_upd_nr_received,
3507         [1] = llc_conn_ac_upd_vs,
3508         [2] = llc_conn_ac_clear_remote_busy,
3509         [3] = NULL,
3510 };
3511
3512 static struct llc_conn_state_trans llc_await_busy_state_trans_11a = {
3513         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_0,
3514         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3515         .ev_qualifiers = NONE,
3516         .ev_actions    = llc_await_busy_actions_11a,
3517 };
3518
3519 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
3520 static llc_conn_action_t llc_await_busy_actions_11b[] = {
3521         [0] = llc_conn_ac_upd_nr_received,
3522         [1] = llc_conn_ac_upd_vs,
3523         [2] = llc_conn_ac_clear_remote_busy,
3524         [3] = NULL,
3525 };
3526
3527 static struct llc_conn_state_trans llc_await_busy_state_trans_11b = {
3528         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_0,
3529         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3530         .ev_qualifiers = NONE,
3531         .ev_actions    = llc_await_busy_actions_11b,
3532 };
3533
3534 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
3535 static llc_conn_action_t llc_await_busy_actions_11c[] = {
3536         [0] = llc_conn_ac_upd_nr_received,
3537         [1] = llc_conn_ac_upd_vs,
3538         [2] = llc_conn_ac_clear_remote_busy,
3539         [3] = NULL,
3540 };
3541
3542 static struct llc_conn_state_trans llc_await_busy_state_trans_11c = {
3543         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_0,
3544         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3545         .ev_qualifiers = NONE,
3546         .ev_actions    = llc_await_busy_actions_11c,
3547 };
3548
3549 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
3550 static llc_conn_action_t llc_await_busy_actions_11d[] = {
3551         [0] = llc_conn_ac_upd_nr_received,
3552         [1] = llc_conn_ac_upd_vs,
3553         [2] = llc_conn_ac_clear_remote_busy,
3554         [3] = NULL,
3555 };
3556
3557 static struct llc_conn_state_trans llc_await_busy_state_trans_11d = {
3558         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_0,
3559         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3560         .ev_qualifiers = NONE,
3561         .ev_actions    = llc_await_busy_actions_11d,
3562 };
3563
3564 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
3565 static llc_conn_action_t llc_await_busy_actions_12a[] = {
3566         [0] = llc_conn_ac_send_rnr_rsp_f_set_1,
3567         [1] = llc_conn_ac_upd_nr_received,
3568         [2] = llc_conn_ac_upd_vs,
3569         [3] = llc_conn_ac_clear_remote_busy,
3570         [4] = NULL,
3571 };
3572
3573 static struct llc_conn_state_trans llc_await_busy_state_trans_12a = {
3574         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_1,
3575         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3576         .ev_qualifiers = NONE,
3577         .ev_actions    = llc_await_busy_actions_12a,
3578 };
3579
3580 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
3581 static llc_conn_action_t llc_await_busy_actions_12b[] = {
3582         [0] = llc_conn_ac_send_rnr_rsp_f_set_1,
3583         [1] = llc_conn_ac_upd_nr_received,
3584         [2] = llc_conn_ac_upd_vs,
3585         [3] = llc_conn_ac_clear_remote_busy,
3586         [4] = NULL,
3587 };
3588
3589 static struct llc_conn_state_trans llc_await_busy_state_trans_12b = {
3590         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_1,
3591         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3592         .ev_qualifiers = NONE,
3593         .ev_actions    = llc_await_busy_actions_12b,
3594 };
3595
3596 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
3597 static llc_conn_action_t llc_await_busy_actions_13[] = {
3598         [0] = llc_conn_ac_upd_nr_received,
3599         [1] = llc_conn_ac_upd_vs,
3600         [2] = llc_conn_ac_stop_p_timer,
3601         [3] = llc_conn_ac_set_remote_busy,
3602         [4] = NULL,
3603 };
3604
3605 static struct llc_conn_state_trans llc_await_busy_state_trans_13 = {
3606         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_1,
3607         .next_state    = LLC_CONN_STATE_BUSY,
3608         .ev_qualifiers = NONE,
3609         .ev_actions    = llc_await_busy_actions_13,
3610 };
3611
3612 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
3613 static llc_conn_action_t llc_await_busy_actions_14a[] = {
3614         [0] = llc_conn_ac_upd_nr_received,
3615         [1] = llc_conn_ac_upd_vs,
3616         [2] = llc_conn_ac_set_remote_busy,
3617         [3] = NULL,
3618 };
3619
3620 static struct llc_conn_state_trans llc_await_busy_state_trans_14a = {
3621         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_0,
3622         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3623         .ev_qualifiers = NONE,
3624         .ev_actions    = llc_await_busy_actions_14a,
3625 };
3626
3627 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
3628 static llc_conn_action_t llc_await_busy_actions_14b[] = {
3629         [0] = llc_conn_ac_upd_nr_received,
3630         [1] = llc_conn_ac_upd_vs,
3631         [2] = llc_conn_ac_set_remote_busy,
3632         [3] = NULL,
3633 };
3634
3635 static struct llc_conn_state_trans llc_await_busy_state_trans_14b = {
3636         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_0,
3637         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3638         .ev_qualifiers = NONE,
3639         .ev_actions    = llc_await_busy_actions_14b,
3640 };
3641
3642 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
3643 static llc_conn_action_t llc_await_busy_actions_15[] = {
3644         [0] = llc_conn_ac_send_rnr_rsp_f_set_1,
3645         [1] = llc_conn_ac_upd_nr_received,
3646         [2] = llc_conn_ac_upd_vs,
3647         [3] = llc_conn_ac_set_remote_busy,
3648         [4] = NULL,
3649 };
3650
3651 static struct llc_conn_state_trans llc_await_busy_state_trans_15 = {
3652         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_1,
3653         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3654         .ev_qualifiers = NONE,
3655         .ev_actions    = llc_await_busy_actions_15,
3656 };
3657
3658 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
3659 static llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_16[] = {
3660         [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
3661         [1] = NULL,
3662 };
3663
3664 static llc_conn_action_t llc_await_busy_actions_16[] = {
3665         [0] = llc_conn_ac_send_rnr_cmd_p_set_1,
3666         [1] = llc_conn_ac_start_p_timer,
3667         [2] = llc_conn_ac_inc_retry_cnt_by_1,
3668         [3] = NULL,
3669 };
3670
3671 static struct llc_conn_state_trans llc_await_busy_state_trans_16 = {
3672         .ev            = llc_conn_ev_p_tmr_exp,
3673         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3674         .ev_qualifiers = llc_await_busy_ev_qfyrs_16,
3675         .ev_actions    = llc_await_busy_actions_16,
3676 };
3677
3678 /*
3679  * Array of pointers;
3680  * one to each transition
3681  */
3682 static struct llc_conn_state_trans *llc_await_busy_state_transitions[] = {
3683          [0] = &llc_common_state_trans_1,               /* Request */
3684          [1] = &llc_common_state_trans_2,
3685          [2] = &llc_await_busy_state_trans_1_0,
3686          [3] = &llc_common_state_trans_end,
3687          [4] = &llc_await_busy_state_trans_1,           /* Local busy */
3688          [5] = &llc_await_busy_state_trans_2,
3689          [6] = &llc_await_busy_state_trans_3,
3690          [7] = &llc_common_state_trans_end,
3691          [8] = &llc_common_state_trans_end,             /* Initiate PF cycle */
3692          [9] = &llc_common_state_trans_11a,             /* Timer */
3693         [10] = &llc_common_state_trans_11b,
3694         [11] = &llc_common_state_trans_11c,
3695         [12] = &llc_common_state_trans_11d,
3696         [13] = &llc_await_busy_state_trans_16,
3697         [14] = &llc_common_state_trans_end,
3698         [15] = &llc_await_busy_state_trans_4,           /* Receive frame */
3699         [16] = &llc_await_busy_state_trans_5a,
3700         [17] = &llc_await_busy_state_trans_5b,
3701         [18] = &llc_await_busy_state_trans_6,
3702         [19] = &llc_await_busy_state_trans_7,
3703         [20] = &llc_await_busy_state_trans_8a,
3704         [21] = &llc_await_busy_state_trans_8b,
3705         [22] = &llc_await_busy_state_trans_9,
3706         [23] = &llc_await_busy_state_trans_10a,
3707         [24] = &llc_await_busy_state_trans_10b,
3708         [25] = &llc_await_busy_state_trans_11a,
3709         [26] = &llc_await_busy_state_trans_11b,
3710         [27] = &llc_await_busy_state_trans_11c,
3711         [28] = &llc_await_busy_state_trans_11d,
3712         [29] = &llc_await_busy_state_trans_12a,
3713         [30] = &llc_await_busy_state_trans_12b,
3714         [31] = &llc_await_busy_state_trans_13,
3715         [32] = &llc_await_busy_state_trans_14a,
3716         [33] = &llc_await_busy_state_trans_14b,
3717         [34] = &llc_await_busy_state_trans_15,
3718         [35] = &llc_common_state_trans_3,
3719         [36] = &llc_common_state_trans_4,
3720         [37] = &llc_common_state_trans_5,
3721         [38] = &llc_common_state_trans_6,
3722         [39] = &llc_common_state_trans_7a,
3723         [40] = &llc_common_state_trans_7b,
3724         [41] = &llc_common_state_trans_8a,
3725         [42] = &llc_common_state_trans_8b,
3726         [43] = &llc_common_state_trans_8c,
3727         [44] = &llc_common_state_trans_9,
3728         /* [45] = &llc_common_state_trans_10, */
3729         [45] = &llc_common_state_trans_end,
3730 };
3731
3732 /* ----------------- LLC_CONN_STATE_AWAIT_REJ transitions --------------- */
3733 /* State transitions for LLC_CONN_EV_DATA_CONN_REQ event */
3734 static llc_conn_ev_qfyr_t llc_await_reject_ev_qfyrs_1_0[] = {
3735         [0] = llc_conn_ev_qlfy_set_status_refuse,
3736         [1] = NULL,
3737 };
3738
3739 /* just one member, NULL, .bss zeroes it */
3740 static llc_conn_action_t llc_await_reject_actions_1_0[1];
3741
3742 static struct llc_conn_state_trans llc_await_reject_state_trans_1_0 = {
3743         .ev            = llc_conn_ev_data_req,
3744         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
3745         .ev_qualifiers = llc_await_reject_ev_qfyrs_1_0,
3746         .ev_actions    = llc_await_reject_actions_1_0,
3747 };
3748
3749 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
3750 static llc_conn_action_t llc_await_rejct_actions_1[] = {
3751         [0] = llc_conn_ac_send_rnr_xxx_x_set_0,
3752         [1] = llc_conn_ac_set_data_flag_2,
3753         [2] = NULL
3754 };
3755
3756 static struct llc_conn_state_trans llc_await_rejct_state_trans_1 = {
3757         .ev            = llc_conn_ev_local_busy_detected,
3758         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3759         .ev_qualifiers = NONE,
3760         .ev_actions    = llc_await_rejct_actions_1,
3761 };
3762
3763 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
3764 static llc_conn_action_t llc_await_rejct_actions_2a[] = {
3765         [0] = llc_conn_ac_upd_nr_received,
3766         [1] = llc_conn_ac_upd_vs,
3767         [2] = NULL
3768 };
3769
3770 static struct llc_conn_state_trans llc_await_rejct_state_trans_2a = {
3771         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns,
3772         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
3773         .ev_qualifiers = NONE,
3774         .ev_actions    = llc_await_rejct_actions_2a,
3775 };
3776
3777 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
3778 static llc_conn_action_t llc_await_rejct_actions_2b[] = {
3779         [0] = llc_conn_ac_upd_nr_received,
3780         [1] = llc_conn_ac_upd_vs,
3781         [2] = NULL
3782 };
3783
3784 static struct llc_conn_state_trans llc_await_rejct_state_trans_2b = {
3785         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns,
3786         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
3787         .ev_qualifiers = NONE,
3788         .ev_actions    = llc_await_rejct_actions_2b,
3789 };
3790
3791 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
3792 static llc_conn_action_t llc_await_rejct_actions_3[] = {
3793         [0] = llc_conn_ac_send_rr_rsp_f_set_1,
3794         [1] = llc_conn_ac_upd_nr_received,
3795         [2] = llc_conn_ac_upd_vs,
3796         [3] = NULL
3797 };
3798
3799 static struct llc_conn_state_trans llc_await_rejct_state_trans_3 = {
3800         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns,
3801         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
3802         .ev_qualifiers = NONE,
3803         .ev_actions    = llc_await_rejct_actions_3,
3804 };
3805
3806 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1 event */
3807 static llc_conn_action_t llc_await_rejct_actions_4[] = {
3808         [0] = llc_conn_ac_inc_vr_by_1,
3809         [1] = llc_conn_ac_data_ind,
3810         [2] = llc_conn_ac_stop_p_timer,
3811         [3] = llc_conn_ac_stop_rej_timer,
3812         [4] = llc_conn_ac_upd_nr_received,
3813         [5] = llc_conn_ac_upd_vs,
3814         [6] = llc_conn_ac_resend_i_xxx_x_set_0_or_send_rr,
3815         [7] = llc_conn_ac_clear_remote_busy,
3816         [8] = NULL,
3817 };
3818
3819 static struct llc_conn_state_trans llc_await_rejct_state_trans_4 = {
3820         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_1,
3821         .next_state    = LLC_CONN_STATE_NORMAL,
3822         .ev_qualifiers = NONE,
3823         .ev_actions    = llc_await_rejct_actions_4,
3824 };
3825
3826 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
3827 static llc_conn_action_t llc_await_rejct_actions_5a[] = {
3828         [0] = llc_conn_ac_inc_vr_by_1,
3829         [1] = llc_conn_ac_data_ind,
3830         [2] = llc_conn_ac_send_rr_xxx_x_set_0,
3831         [3] = llc_conn_ac_stop_rej_timer,
3832         [4] = llc_conn_ac_upd_nr_received,
3833         [5] = llc_conn_ac_upd_vs,
3834         [6] = NULL,
3835 };
3836
3837 static struct llc_conn_state_trans llc_await_rejct_state_trans_5a = {
3838         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_0,
3839         .next_state    = LLC_CONN_STATE_AWAIT,
3840         .ev_qualifiers = NONE,
3841         .ev_actions    = llc_await_rejct_actions_5a,
3842 };
3843
3844 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
3845 static llc_conn_action_t llc_await_rejct_actions_5b[] = {
3846         [0] = llc_conn_ac_inc_vr_by_1,
3847         [1] = llc_conn_ac_data_ind,
3848         [2] = llc_conn_ac_send_rr_xxx_x_set_0,
3849         [3] = llc_conn_ac_stop_rej_timer,
3850         [4] = llc_conn_ac_upd_nr_received,
3851         [5] = llc_conn_ac_upd_vs,
3852         [6] = NULL,
3853 };
3854
3855 static struct llc_conn_state_trans llc_await_rejct_state_trans_5b = {
3856         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_0,
3857         .next_state    = LLC_CONN_STATE_AWAIT,
3858         .ev_qualifiers = NONE,
3859         .ev_actions    = llc_await_rejct_actions_5b,
3860 };
3861
3862 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
3863 static llc_conn_action_t llc_await_rejct_actions_6[] = {
3864         [0] = llc_conn_ac_inc_vr_by_1,
3865         [1] = llc_conn_ac_data_ind,
3866         [2] = llc_conn_ac_send_rr_rsp_f_set_1,
3867         [3] = llc_conn_ac_stop_rej_timer,
3868         [4] = llc_conn_ac_upd_nr_received,
3869         [5] = llc_conn_ac_upd_vs,
3870         [6] = NULL,
3871 };
3872
3873 static struct llc_conn_state_trans llc_await_rejct_state_trans_6 = {
3874         .ev            = llc_conn_ev_rx_i_cmd_pbit_set_1,
3875         .next_state    = LLC_CONN_STATE_AWAIT,
3876         .ev_qualifiers = NONE,
3877         .ev_actions    = llc_await_rejct_actions_6,
3878 };
3879
3880 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
3881 static llc_conn_action_t llc_await_rejct_actions_7a[] = {
3882         [0] = llc_conn_ac_upd_nr_received,
3883         [1] = llc_conn_ac_upd_vs,
3884         [2] = llc_conn_ac_stop_p_timer,
3885         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
3886         [4] = llc_conn_ac_clear_remote_busy,
3887         [5] = NULL,
3888 };
3889
3890 static struct llc_conn_state_trans llc_await_rejct_state_trans_7a = {
3891         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_1,
3892         .next_state    = LLC_CONN_STATE_REJ,
3893         .ev_qualifiers = NONE,
3894         .ev_actions    = llc_await_rejct_actions_7a,
3895 };
3896
3897 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_1 event */
3898 static llc_conn_action_t llc_await_rejct_actions_7b[] = {
3899         [0] = llc_conn_ac_upd_nr_received,
3900         [1] = llc_conn_ac_upd_vs,
3901         [2] = llc_conn_ac_stop_p_timer,
3902         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
3903         [4] = llc_conn_ac_clear_remote_busy,
3904         [5] = NULL,
3905 };
3906
3907 static struct llc_conn_state_trans llc_await_rejct_state_trans_7b = {
3908         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_1,
3909         .next_state    = LLC_CONN_STATE_REJ,
3910         .ev_qualifiers = NONE,
3911         .ev_actions    = llc_await_rejct_actions_7b,
3912 };
3913
3914 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns event */
3915 static llc_conn_action_t llc_await_rejct_actions_7c[] = {
3916         [0] = llc_conn_ac_upd_nr_received,
3917         [1] = llc_conn_ac_upd_vs,
3918         [2] = llc_conn_ac_stop_p_timer,
3919         [3] = llc_conn_ac_resend_i_xxx_x_set_0,
3920         [4] = llc_conn_ac_clear_remote_busy,
3921         [5] = NULL,
3922 };
3923
3924 static struct llc_conn_state_trans llc_await_rejct_state_trans_7c = {
3925         .ev            = llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns,
3926         .next_state    = LLC_CONN_STATE_REJ,
3927         .ev_qualifiers = NONE,
3928         .ev_actions    = llc_await_rejct_actions_7c,
3929 };
3930
3931 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
3932 static llc_conn_action_t llc_await_rejct_actions_8a[] = {
3933         [0] = llc_conn_ac_upd_nr_received,
3934         [1] = llc_conn_ac_upd_vs,
3935         [2] = llc_conn_ac_clear_remote_busy,
3936         [3] = NULL,
3937 };
3938
3939 static struct llc_conn_state_trans llc_await_rejct_state_trans_8a = {
3940         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_0,
3941         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
3942         .ev_qualifiers = NONE,
3943         .ev_actions    = llc_await_rejct_actions_8a,
3944 };
3945
3946 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
3947 static llc_conn_action_t llc_await_rejct_actions_8b[] = {
3948         [0] = llc_conn_ac_upd_nr_received,
3949         [1] = llc_conn_ac_upd_vs,
3950         [2] = llc_conn_ac_clear_remote_busy,
3951         [3] = NULL,
3952 };
3953
3954 static struct llc_conn_state_trans llc_await_rejct_state_trans_8b = {
3955         .ev            = llc_conn_ev_rx_rr_rsp_fbit_set_0,
3956         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
3957         .ev_qualifiers = NONE,
3958         .ev_actions    = llc_await_rejct_actions_8b,
3959 };
3960
3961 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
3962 static llc_conn_action_t llc_await_rejct_actions_8c[] = {
3963         [0] = llc_conn_ac_upd_nr_received,
3964         [1] = llc_conn_ac_upd_vs,
3965         [2] = llc_conn_ac_clear_remote_busy,
3966         [3] = NULL,
3967 };
3968
3969 static struct llc_conn_state_trans llc_await_rejct_state_trans_8c = {
3970         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_0,
3971         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
3972         .ev_qualifiers = NONE,
3973         .ev_actions    = llc_await_rejct_actions_8c,
3974 };
3975
3976 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
3977 static llc_conn_action_t llc_await_rejct_actions_8d[] = {
3978         [0] = llc_conn_ac_upd_nr_received,
3979         [1] = llc_conn_ac_upd_vs,
3980         [2] = llc_conn_ac_clear_remote_busy,
3981         [3] = NULL,
3982 };
3983
3984 static struct llc_conn_state_trans llc_await_rejct_state_trans_8d = {
3985         .ev            = llc_conn_ev_rx_rej_rsp_fbit_set_0,
3986         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
3987         .ev_qualifiers = NONE,
3988         .ev_actions    = llc_await_rejct_actions_8d,
3989 };
3990
3991 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
3992 static llc_conn_action_t llc_await_rejct_actions_9a[] = {
3993         [0] = llc_conn_ac_send_rr_rsp_f_set_1,
3994         [1] = llc_conn_ac_upd_nr_received,
3995         [2] = llc_conn_ac_upd_vs,
3996         [3] = llc_conn_ac_clear_remote_busy,
3997         [4] = NULL,
3998 };
3999
4000 static struct llc_conn_state_trans llc_await_rejct_state_trans_9a = {
4001         .ev            = llc_conn_ev_rx_rr_cmd_pbit_set_1,
4002         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
4003         .ev_qualifiers = NONE,
4004         .ev_actions    = llc_await_rejct_actions_9a,
4005 };
4006
4007 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
4008 static llc_conn_action_t llc_await_rejct_actions_9b[] = {
4009         [0] = llc_conn_ac_send_rr_rsp_f_set_1,
4010         [1] = llc_conn_ac_upd_nr_received,
4011         [2] = llc_conn_ac_upd_vs,
4012         [3] = llc_conn_ac_clear_remote_busy,
4013         [4] = NULL,
4014 };
4015
4016 static struct llc_conn_state_trans llc_await_rejct_state_trans_9b = {
4017         .ev            = llc_conn_ev_rx_rej_cmd_pbit_set_1,
4018         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
4019         .ev_qualifiers = NONE,
4020         .ev_actions    = llc_await_rejct_actions_9b,
4021 };
4022
4023 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
4024 static llc_conn_action_t llc_await_rejct_actions_10[] = {
4025         [0] = llc_conn_ac_upd_nr_received,
4026         [1] = llc_conn_ac_upd_vs,
4027         [2] = llc_conn_ac_stop_p_timer,
4028         [3] = llc_conn_ac_set_remote_busy,
4029         [4] = NULL,
4030 };
4031
4032 static struct llc_conn_state_trans llc_await_rejct_state_trans_10 = {
4033         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_1,
4034         .next_state    = LLC_CONN_STATE_REJ,
4035         .ev_qualifiers = NONE,
4036         .ev_actions    = llc_await_rejct_actions_10,
4037 };
4038
4039 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
4040 static llc_conn_action_t llc_await_rejct_actions_11a[] = {
4041         [0] = llc_conn_ac_upd_nr_received,
4042         [1] = llc_conn_ac_upd_vs,
4043         [2] = llc_conn_ac_set_remote_busy,
4044         [3] = NULL,
4045 };
4046
4047 static struct llc_conn_state_trans llc_await_rejct_state_trans_11a = {
4048         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_0,
4049         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
4050         .ev_qualifiers = NONE,
4051         .ev_actions    = llc_await_rejct_actions_11a,
4052 };
4053
4054 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
4055 static llc_conn_action_t llc_await_rejct_actions_11b[] = {
4056         [0] = llc_conn_ac_upd_nr_received,
4057         [1] = llc_conn_ac_upd_vs,
4058         [2] = llc_conn_ac_set_remote_busy,
4059         [3] = NULL,
4060 };
4061
4062 static struct llc_conn_state_trans llc_await_rejct_state_trans_11b = {
4063         .ev            = llc_conn_ev_rx_rnr_rsp_fbit_set_0,
4064         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
4065         .ev_qualifiers = NONE,
4066         .ev_actions    = llc_await_rejct_actions_11b,
4067 };
4068
4069 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
4070 static llc_conn_action_t llc_await_rejct_actions_12[] = {
4071         [0] = llc_conn_ac_send_rr_rsp_f_set_1,
4072         [1] = llc_conn_ac_upd_nr_received,
4073         [2] = llc_conn_ac_upd_vs,
4074         [3] = llc_conn_ac_set_remote_busy,
4075         [4] = NULL,
4076 };
4077
4078 static struct llc_conn_state_trans llc_await_rejct_state_trans_12 = {
4079         .ev            = llc_conn_ev_rx_rnr_cmd_pbit_set_1,
4080         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
4081         .ev_qualifiers = NONE,
4082         .ev_actions    = llc_await_rejct_actions_12,
4083 };
4084
4085 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
4086 static llc_conn_ev_qfyr_t llc_await_rejct_ev_qfyrs_13[] = {
4087         [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
4088         [1] = NULL,
4089 };
4090
4091 static llc_conn_action_t llc_await_rejct_actions_13[] = {
4092         [0] = llc_conn_ac_send_rej_cmd_p_set_1,
4093         [1] = llc_conn_ac_stop_p_timer,
4094         [2] = llc_conn_ac_inc_retry_cnt_by_1,
4095         [3] = NULL,
4096 };
4097
4098 static struct llc_conn_state_trans llc_await_rejct_state_trans_13 = {
4099         .ev            = llc_conn_ev_p_tmr_exp,
4100         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
4101         .ev_qualifiers = llc_await_rejct_ev_qfyrs_13,
4102         .ev_actions    = llc_await_rejct_actions_13,
4103 };
4104
4105 /*
4106  * Array of pointers;
4107  * one to each transition
4108  */
4109 static struct llc_conn_state_trans *llc_await_rejct_state_transitions[] = {
4110          [0] = &llc_await_reject_state_trans_1_0,
4111          [1] = &llc_common_state_trans_1,               /* requests */
4112          [2] = &llc_common_state_trans_2,
4113          [3] = &llc_common_state_trans_end,
4114          [4] = &llc_await_rejct_state_trans_1,          /* local busy */
4115          [5] = &llc_common_state_trans_end,
4116          [6] = &llc_common_state_trans_end,             /* Initiate PF cycle */
4117          [7] = &llc_await_rejct_state_trans_13, /* timers */
4118          [8] = &llc_common_state_trans_11a,
4119          [9] = &llc_common_state_trans_11b,
4120         [10] = &llc_common_state_trans_11c,
4121         [11] = &llc_common_state_trans_11d,
4122         [12] = &llc_common_state_trans_end,
4123         [13] = &llc_await_rejct_state_trans_2a, /* receive frames */
4124         [14] = &llc_await_rejct_state_trans_2b,
4125         [15] = &llc_await_rejct_state_trans_3,
4126         [16] = &llc_await_rejct_state_trans_4,
4127         [17] = &llc_await_rejct_state_trans_5a,
4128         [18] = &llc_await_rejct_state_trans_5b,
4129         [19] = &llc_await_rejct_state_trans_6,
4130         [20] = &llc_await_rejct_state_trans_7a,
4131         [21] = &llc_await_rejct_state_trans_7b,
4132         [22] = &llc_await_rejct_state_trans_7c,
4133         [23] = &llc_await_rejct_state_trans_8a,
4134         [24] = &llc_await_rejct_state_trans_8b,
4135         [25] = &llc_await_rejct_state_trans_8c,
4136         [26] = &llc_await_rejct_state_trans_8d,
4137         [27] = &llc_await_rejct_state_trans_9a,
4138         [28] = &llc_await_rejct_state_trans_9b,
4139         [29] = &llc_await_rejct_state_trans_10,
4140         [30] = &llc_await_rejct_state_trans_11a,
4141         [31] = &llc_await_rejct_state_trans_11b,
4142         [32] = &llc_await_rejct_state_trans_12,
4143         [33] = &llc_common_state_trans_3,
4144         [34] = &llc_common_state_trans_4,
4145         [35] = &llc_common_state_trans_5,
4146         [36] = &llc_common_state_trans_6,
4147         [37] = &llc_common_state_trans_7a,
4148         [38] = &llc_common_state_trans_7b,
4149         [39] = &llc_common_state_trans_8a,
4150         [40] = &llc_common_state_trans_8b,
4151         [41] = &llc_common_state_trans_8c,
4152         [42] = &llc_common_state_trans_9,
4153         /* [43] = &llc_common_state_trans_10, */
4154         [43] = &llc_common_state_trans_end,
4155 };
4156
4157 /* LLC_CONN_STATE_D_CONN transitions */
4158 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event,
4159  * cause_flag = 1 */
4160 static llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_1[] = {
4161         [0] = llc_conn_ev_qlfy_cause_flag_eq_1,
4162         [1] = llc_conn_ev_qlfy_set_status_conflict,
4163         [2] = NULL,
4164 };
4165
4166 static llc_conn_action_t llc_d_conn_actions_1[] = {
4167         [0] = llc_conn_ac_send_dm_rsp_f_set_p,
4168         [1] = llc_conn_ac_stop_ack_timer,
4169         [2] = llc_conn_ac_disc_confirm,
4170         [3] = llc_conn_disc,
4171         [4] = NULL,
4172 };
4173
4174 static struct llc_conn_state_trans llc_d_conn_state_trans_1 = {
4175         .ev            = llc_conn_ev_rx_sabme_cmd_pbit_set_x,
4176         .next_state    = LLC_CONN_STATE_ADM,
4177         .ev_qualifiers = llc_d_conn_ev_qfyrs_1,
4178         .ev_actions    = llc_d_conn_actions_1,
4179 };
4180
4181 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event,
4182  * cause_flag = 0
4183  */
4184 static llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_1_1[] = {
4185         [0] = llc_conn_ev_qlfy_cause_flag_eq_0,
4186         [1] = llc_conn_ev_qlfy_set_status_conflict,
4187         [2] = NULL,
4188 };
4189
4190 static llc_conn_action_t llc_d_conn_actions_1_1[] = {
4191         [0] = llc_conn_ac_send_dm_rsp_f_set_p,
4192         [1] = llc_conn_ac_stop_ack_timer,
4193         [2] = llc_conn_disc,
4194         [3] = NULL,
4195 };
4196
4197 static struct llc_conn_state_trans llc_d_conn_state_trans_1_1 = {
4198         .ev            = llc_conn_ev_rx_sabme_cmd_pbit_set_x,
4199         .next_state    = LLC_CONN_STATE_ADM,
4200         .ev_qualifiers = llc_d_conn_ev_qfyrs_1_1,
4201         .ev_actions    = llc_d_conn_actions_1_1,
4202 };
4203
4204 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event,
4205  * cause_flag = 1
4206  */
4207 static llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_2[] = {
4208         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
4209         [1] = llc_conn_ev_qlfy_cause_flag_eq_1,
4210         [2] = llc_conn_ev_qlfy_set_status_disc,
4211         [3] = NULL,
4212 };
4213
4214 static llc_conn_action_t llc_d_conn_actions_2[] = {
4215         [0] = llc_conn_ac_stop_ack_timer,
4216         [1] = llc_conn_ac_disc_confirm,
4217         [2] = llc_conn_disc,
4218         [3] = NULL,
4219 };
4220
4221 static struct llc_conn_state_trans llc_d_conn_state_trans_2 = {
4222         .ev            = llc_conn_ev_rx_ua_rsp_fbit_set_x,
4223         .next_state    = LLC_CONN_STATE_ADM,
4224         .ev_qualifiers = llc_d_conn_ev_qfyrs_2,
4225         .ev_actions    = llc_d_conn_actions_2,
4226 };
4227
4228 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event,
4229  * cause_flag = 0
4230  */
4231 static llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_2_1[] = {
4232         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
4233         [1] = llc_conn_ev_qlfy_cause_flag_eq_0,
4234         [2] = llc_conn_ev_qlfy_set_status_disc,
4235         [3] = NULL,
4236 };
4237
4238 static llc_conn_action_t llc_d_conn_actions_2_1[] = {
4239         [0] = llc_conn_ac_stop_ack_timer,
4240         [1] = llc_conn_disc,
4241         [2] = NULL,
4242 };
4243
4244 static struct llc_conn_state_trans llc_d_conn_state_trans_2_1 = {
4245         .ev            = llc_conn_ev_rx_ua_rsp_fbit_set_x,
4246         .next_state    = LLC_CONN_STATE_ADM,
4247         .ev_qualifiers = llc_d_conn_ev_qfyrs_2_1,
4248         .ev_actions    = llc_d_conn_actions_2_1,
4249 };
4250
4251 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event */
4252 static llc_conn_action_t llc_d_conn_actions_3[] = {
4253         [0] = llc_conn_ac_send_ua_rsp_f_set_p,
4254         [1] = NULL,
4255 };
4256
4257 static struct llc_conn_state_trans llc_d_conn_state_trans_3 = {
4258         .ev            = llc_conn_ev_rx_disc_cmd_pbit_set_x,
4259         .next_state    = LLC_CONN_STATE_D_CONN,
4260         .ev_qualifiers = NONE,
4261         .ev_actions    = llc_d_conn_actions_3,
4262 };
4263
4264 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event,
4265  * cause_flag = 1
4266  */
4267 static llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_4[] = {
4268         [0] = llc_conn_ev_qlfy_cause_flag_eq_1,
4269         [1] = llc_conn_ev_qlfy_set_status_disc,
4270         [2] = NULL,
4271 };
4272
4273 static llc_conn_action_t llc_d_conn_actions_4[] = {
4274         [0] = llc_conn_ac_stop_ack_timer,
4275         [1] = llc_conn_ac_disc_confirm,
4276         [2] = llc_conn_disc,
4277         [3] = NULL,
4278 };
4279
4280 static struct llc_conn_state_trans llc_d_conn_state_trans_4 = {
4281         .ev            = llc_conn_ev_rx_dm_rsp_fbit_set_x,
4282         .next_state    = LLC_CONN_STATE_ADM,
4283         .ev_qualifiers = llc_d_conn_ev_qfyrs_4,
4284         .ev_actions    = llc_d_conn_actions_4,
4285 };
4286
4287 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event,
4288  * cause_flag = 0
4289  */
4290 static llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_4_1[] = {
4291         [0] = llc_conn_ev_qlfy_cause_flag_eq_0,
4292         [1] = llc_conn_ev_qlfy_set_status_disc,
4293         [2] = NULL,
4294 };
4295
4296 static llc_conn_action_t llc_d_conn_actions_4_1[] = {
4297         [0] = llc_conn_ac_stop_ack_timer,
4298         [1] = llc_conn_disc,
4299         [2] = NULL,
4300 };
4301
4302 static struct llc_conn_state_trans llc_d_conn_state_trans_4_1 = {
4303         .ev            = llc_conn_ev_rx_dm_rsp_fbit_set_x,
4304         .next_state    = LLC_CONN_STATE_ADM,
4305         .ev_qualifiers = llc_d_conn_ev_qfyrs_4_1,
4306         .ev_actions    = llc_d_conn_actions_4_1,
4307 };
4308
4309 /*
4310  * State transition for
4311  * LLC_CONN_EV_DATA_CONN_REQ event
4312  */
4313 static llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_5[] = {
4314         [0] = llc_conn_ev_qlfy_set_status_refuse,
4315         [1] = NULL,
4316 };
4317
4318 /* just one member, NULL, .bss zeroes it */
4319 static llc_conn_action_t llc_d_conn_actions_5[1];
4320
4321 static struct llc_conn_state_trans llc_d_conn_state_trans_5 = {
4322         .ev            = llc_conn_ev_data_req,
4323         .next_state    = LLC_CONN_STATE_D_CONN,
4324         .ev_qualifiers = llc_d_conn_ev_qfyrs_5,
4325         .ev_actions    = llc_d_conn_actions_5,
4326 };
4327
4328 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4329 static llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_6[] = {
4330         [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
4331         [1] = NULL,
4332 };
4333
4334 static llc_conn_action_t llc_d_conn_actions_6[] = {
4335         [0] = llc_conn_ac_send_disc_cmd_p_set_x,
4336         [1] = llc_conn_ac_start_ack_timer,
4337         [2] = llc_conn_ac_inc_retry_cnt_by_1,
4338         [3] = NULL,
4339 };
4340
4341 static struct llc_conn_state_trans llc_d_conn_state_trans_6 = {
4342         .ev            = llc_conn_ev_ack_tmr_exp,
4343         .next_state    = LLC_CONN_STATE_D_CONN,
4344         .ev_qualifiers = llc_d_conn_ev_qfyrs_6,
4345         .ev_actions    = llc_d_conn_actions_6,
4346 };
4347
4348 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event, cause_flag = 1 */
4349 static llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_7[] = {
4350         [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
4351         [1] = llc_conn_ev_qlfy_cause_flag_eq_1,
4352         [2] = llc_conn_ev_qlfy_set_status_failed,
4353         [3] = NULL,
4354 };
4355
4356 static llc_conn_action_t llc_d_conn_actions_7[] = {
4357         [0] = llc_conn_ac_disc_confirm,
4358         [1] = llc_conn_disc,
4359         [2] = NULL,
4360 };
4361
4362 static struct llc_conn_state_trans llc_d_conn_state_trans_7 = {
4363         .ev            = llc_conn_ev_ack_tmr_exp,
4364         .next_state    = LLC_CONN_STATE_ADM,
4365         .ev_qualifiers = llc_d_conn_ev_qfyrs_7,
4366         .ev_actions    = llc_d_conn_actions_7,
4367 };
4368
4369 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event, cause_flag = 0 */
4370 static llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_8[] = {
4371         [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
4372         [1] = llc_conn_ev_qlfy_cause_flag_eq_0,
4373         [2] = llc_conn_ev_qlfy_set_status_failed,
4374         [3] = NULL,
4375 };
4376
4377 static llc_conn_action_t llc_d_conn_actions_8[] = {
4378         [0] = llc_conn_disc,
4379         [1] = NULL,
4380 };
4381
4382 static struct llc_conn_state_trans llc_d_conn_state_trans_8 = {
4383         .ev            = llc_conn_ev_ack_tmr_exp,
4384         .next_state    = LLC_CONN_STATE_ADM,
4385         .ev_qualifiers = llc_d_conn_ev_qfyrs_8,
4386         .ev_actions    = llc_d_conn_actions_8,
4387 };
4388
4389 /*
4390  * Array of pointers;
4391  * one to each transition
4392  */
4393 static struct llc_conn_state_trans *llc_d_conn_state_transitions[] = {
4394          [0] = &llc_d_conn_state_trans_5,       /* Request */
4395          [1] = &llc_common_state_trans_end,
4396          [2] = &llc_common_state_trans_end,     /* Local busy */
4397          [3] = &llc_common_state_trans_end,     /* Initiate PF cycle */
4398          [4] = &llc_d_conn_state_trans_6,       /* Timer */
4399          [5] = &llc_d_conn_state_trans_7,
4400          [6] = &llc_d_conn_state_trans_8,
4401          [7] = &llc_common_state_trans_end,
4402          [8] = &llc_d_conn_state_trans_1,       /* Receive frame */
4403          [9] = &llc_d_conn_state_trans_1_1,
4404         [10] = &llc_d_conn_state_trans_2,
4405         [11] = &llc_d_conn_state_trans_2_1,
4406         [12] = &llc_d_conn_state_trans_3,
4407         [13] = &llc_d_conn_state_trans_4,
4408         [14] = &llc_d_conn_state_trans_4_1,
4409         [15] = &llc_common_state_trans_end,
4410 };
4411
4412 /* LLC_CONN_STATE_RESET transitions */
4413 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
4414 static llc_conn_action_t llc_rst_actions_1[] = {
4415         [0] = llc_conn_ac_set_vs_0,
4416         [1] = llc_conn_ac_set_vr_0,
4417         [2] = llc_conn_ac_set_s_flag_1,
4418         [3] = llc_conn_ac_send_ua_rsp_f_set_p,
4419         [4] = NULL,
4420 };
4421
4422 static struct llc_conn_state_trans llc_rst_state_trans_1 = {
4423         .ev            = llc_conn_ev_rx_sabme_cmd_pbit_set_x,
4424         .next_state    = LLC_CONN_STATE_RESET,
4425         .ev_qualifiers = NONE,
4426         .ev_actions    = llc_rst_actions_1,
4427 };
4428
4429 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event,
4430  * cause_flag = 1
4431  */
4432 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_2[] = {
4433         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
4434         [1] = llc_conn_ev_qlfy_cause_flag_eq_1,
4435         [2] = llc_conn_ev_qlfy_set_status_conn,
4436         [3] = NULL,
4437 };
4438
4439 static llc_conn_action_t llc_rst_actions_2[] = {
4440         [0] = llc_conn_ac_stop_ack_timer,
4441         [1] = llc_conn_ac_set_vs_0,
4442         [2] = llc_conn_ac_set_vr_0,
4443         [3] = llc_conn_ac_upd_p_flag,
4444         [4] = llc_conn_ac_rst_confirm,
4445         [5] = llc_conn_ac_set_remote_busy_0,
4446         [6] = llc_conn_reset,
4447         [7] = NULL,
4448 };
4449
4450 static struct llc_conn_state_trans llc_rst_state_trans_2 = {
4451         .ev            = llc_conn_ev_rx_ua_rsp_fbit_set_x,
4452         .next_state    = LLC_CONN_STATE_NORMAL,
4453         .ev_qualifiers = llc_rst_ev_qfyrs_2,
4454         .ev_actions    = llc_rst_actions_2,
4455 };
4456
4457 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event,
4458  * cause_flag = 0
4459  */
4460 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_2_1[] = {
4461         [0] = llc_conn_ev_qlfy_p_flag_eq_f,
4462         [1] = llc_conn_ev_qlfy_cause_flag_eq_0,
4463         [2] = llc_conn_ev_qlfy_set_status_rst_done,
4464         [3] = NULL,
4465 };
4466
4467 static llc_conn_action_t llc_rst_actions_2_1[] = {
4468         [0] = llc_conn_ac_stop_ack_timer,
4469         [1] = llc_conn_ac_set_vs_0,
4470         [2] = llc_conn_ac_set_vr_0,
4471         [3] = llc_conn_ac_upd_p_flag,
4472         [4] = llc_conn_ac_rst_confirm,
4473         [5] = llc_conn_ac_set_remote_busy_0,
4474         [6] = llc_conn_reset,
4475         [7] = NULL,
4476 };
4477
4478 static struct llc_conn_state_trans llc_rst_state_trans_2_1 = {
4479         .ev            = llc_conn_ev_rx_ua_rsp_fbit_set_x,
4480         .next_state    = LLC_CONN_STATE_NORMAL,
4481         .ev_qualifiers = llc_rst_ev_qfyrs_2_1,
4482         .ev_actions    = llc_rst_actions_2_1,
4483 };
4484
4485 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4486 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_3[] = {
4487         [0] = llc_conn_ev_qlfy_s_flag_eq_1,
4488         [1] = llc_conn_ev_qlfy_set_status_rst_done,
4489         [2] = NULL,
4490 };
4491
4492 static llc_conn_action_t llc_rst_actions_3[] = {
4493         [0] = llc_conn_ac_set_p_flag_0,
4494         [1] = llc_conn_ac_set_remote_busy_0,
4495         [2] = NULL,
4496 };
4497
4498 static struct llc_conn_state_trans llc_rst_state_trans_3 = {
4499         .ev            = llc_conn_ev_ack_tmr_exp,
4500         .next_state    = LLC_CONN_STATE_NORMAL,
4501         .ev_qualifiers = llc_rst_ev_qfyrs_3,
4502         .ev_actions    = llc_rst_actions_3,
4503 };
4504
4505 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event,
4506  * cause_flag = 1
4507  */
4508 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_4[] = {
4509         [0] = llc_conn_ev_qlfy_cause_flag_eq_1,
4510         [1] = llc_conn_ev_qlfy_set_status_disc,
4511         [2] = NULL,
4512 };
4513 static llc_conn_action_t llc_rst_actions_4[] = {
4514         [0] = llc_conn_ac_send_dm_rsp_f_set_p,
4515         [1] = llc_conn_ac_disc_ind,
4516         [2] = llc_conn_ac_stop_ack_timer,
4517         [3] = llc_conn_disc,
4518         [4] = NULL,
4519 };
4520
4521 static struct llc_conn_state_trans llc_rst_state_trans_4 = {
4522         .ev            = llc_conn_ev_rx_disc_cmd_pbit_set_x,
4523         .next_state    = LLC_CONN_STATE_ADM,
4524         .ev_qualifiers = llc_rst_ev_qfyrs_4,
4525         .ev_actions    = llc_rst_actions_4,
4526 };
4527
4528 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event,
4529  * cause_flag = 0
4530  */
4531 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_4_1[] = {
4532         [0] = llc_conn_ev_qlfy_cause_flag_eq_0,
4533         [1] = llc_conn_ev_qlfy_set_status_refuse,
4534         [2] = NULL,
4535 };
4536
4537 static llc_conn_action_t llc_rst_actions_4_1[] = {
4538         [0] = llc_conn_ac_send_dm_rsp_f_set_p,
4539         [1] = llc_conn_ac_stop_ack_timer,
4540         [2] = llc_conn_disc,
4541         [3] = NULL,
4542 };
4543
4544 static struct llc_conn_state_trans llc_rst_state_trans_4_1 = {
4545         .ev            = llc_conn_ev_rx_disc_cmd_pbit_set_x,
4546         .next_state    = LLC_CONN_STATE_ADM,
4547         .ev_qualifiers = llc_rst_ev_qfyrs_4_1,
4548         .ev_actions    = llc_rst_actions_4_1,
4549 };
4550
4551 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event,
4552  * cause_flag = 1
4553  */
4554 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_5[] = {
4555         [0] = llc_conn_ev_qlfy_cause_flag_eq_1,
4556         [1] = llc_conn_ev_qlfy_set_status_disc,
4557         [2] = NULL,
4558 };
4559
4560 static llc_conn_action_t llc_rst_actions_5[] = {
4561         [0] = llc_conn_ac_disc_ind,
4562         [1] = llc_conn_ac_stop_ack_timer,
4563         [2] = llc_conn_disc,
4564         [3] = NULL,
4565 };
4566
4567 static struct llc_conn_state_trans llc_rst_state_trans_5 = {
4568         .ev            = llc_conn_ev_rx_dm_rsp_fbit_set_x,
4569         .next_state    = LLC_CONN_STATE_ADM,
4570         .ev_qualifiers = llc_rst_ev_qfyrs_5,
4571         .ev_actions    = llc_rst_actions_5,
4572 };
4573
4574 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event,
4575  * cause_flag = 0
4576  */
4577 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_5_1[] = {
4578         [0] = llc_conn_ev_qlfy_cause_flag_eq_0,
4579         [1] = llc_conn_ev_qlfy_set_status_refuse,
4580         [2] = NULL,
4581 };
4582
4583 static llc_conn_action_t llc_rst_actions_5_1[] = {
4584         [0] = llc_conn_ac_stop_ack_timer,
4585         [1] = llc_conn_disc,
4586         [2] = NULL,
4587 };
4588
4589 static struct llc_conn_state_trans llc_rst_state_trans_5_1 = {
4590         .ev            = llc_conn_ev_rx_dm_rsp_fbit_set_x,
4591         .next_state    = LLC_CONN_STATE_ADM,
4592         .ev_qualifiers = llc_rst_ev_qfyrs_5_1,
4593         .ev_actions    = llc_rst_actions_5_1,
4594 };
4595
4596 /* State transitions for DATA_CONN_REQ event */
4597 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_6[] = {
4598         [0] = llc_conn_ev_qlfy_set_status_refuse,
4599         [1] = NULL,
4600 };
4601
4602 /* just one member, NULL, .bss zeroes it */
4603 static llc_conn_action_t llc_rst_actions_6[1];
4604
4605 static struct llc_conn_state_trans llc_rst_state_trans_6 = {
4606         .ev            = llc_conn_ev_data_req,
4607         .next_state    = LLC_CONN_STATE_RESET,
4608         .ev_qualifiers = llc_rst_ev_qfyrs_6,
4609         .ev_actions    = llc_rst_actions_6,
4610 };
4611
4612 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4613 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_7[] = {
4614         [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
4615         [1] = llc_conn_ev_qlfy_s_flag_eq_0,
4616         [2] = NULL,
4617 };
4618
4619 static llc_conn_action_t llc_rst_actions_7[] = {
4620         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
4621         [1] = llc_conn_ac_start_ack_timer,
4622         [2] = llc_conn_ac_inc_retry_cnt_by_1,
4623         [3] = NULL,
4624 };
4625
4626 static struct llc_conn_state_trans llc_rst_state_trans_7 = {
4627         .ev            = llc_conn_ev_ack_tmr_exp,
4628         .next_state    = LLC_CONN_STATE_RESET,
4629         .ev_qualifiers = llc_rst_ev_qfyrs_7,
4630         .ev_actions    = llc_rst_actions_7,
4631 };
4632
4633 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4634 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_8[] = {
4635         [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
4636         [1] = llc_conn_ev_qlfy_s_flag_eq_0,
4637         [2] = llc_conn_ev_qlfy_cause_flag_eq_1,
4638         [3] = llc_conn_ev_qlfy_set_status_failed,
4639         [4] = NULL,
4640 };
4641 static llc_conn_action_t llc_rst_actions_8[] = {
4642         [0] = llc_conn_ac_disc_ind,
4643         [1] = llc_conn_disc,
4644         [2] = NULL,
4645 };
4646
4647 static struct llc_conn_state_trans llc_rst_state_trans_8 = {
4648         .ev            = llc_conn_ev_ack_tmr_exp,
4649         .next_state    = LLC_CONN_STATE_ADM,
4650         .ev_qualifiers = llc_rst_ev_qfyrs_8,
4651         .ev_actions    = llc_rst_actions_8,
4652 };
4653
4654 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4655 static llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_8_1[] = {
4656         [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
4657         [1] = llc_conn_ev_qlfy_s_flag_eq_0,
4658         [2] = llc_conn_ev_qlfy_cause_flag_eq_0,
4659         [3] = llc_conn_ev_qlfy_set_status_failed,
4660         [4] = NULL,
4661 };
4662 static llc_conn_action_t llc_rst_actions_8_1[] = {
4663         [0] = llc_conn_ac_disc_ind,
4664         [1] = llc_conn_disc,
4665         [2] = NULL,
4666 };
4667
4668 static struct llc_conn_state_trans llc_rst_state_trans_8_1 = {
4669         .ev            = llc_conn_ev_ack_tmr_exp,
4670         .next_state    = LLC_CONN_STATE_ADM,
4671         .ev_qualifiers = llc_rst_ev_qfyrs_8_1,
4672         .ev_actions    = llc_rst_actions_8_1,
4673 };
4674
4675 /*
4676  * Array of pointers;
4677  * one to each transition
4678  */
4679 static struct llc_conn_state_trans *llc_rst_state_transitions[] = {
4680          [0] = &llc_rst_state_trans_6,          /* Request */
4681          [1] = &llc_common_state_trans_end,
4682          [2] = &llc_common_state_trans_end,     /* Local busy */
4683          [3] = &llc_common_state_trans_end,     /* Initiate PF cycle */
4684          [4] = &llc_rst_state_trans_3,          /* Timer */
4685          [5] = &llc_rst_state_trans_7,
4686          [6] = &llc_rst_state_trans_8,
4687          [7] = &llc_rst_state_trans_8_1,
4688          [8] = &llc_common_state_trans_end,
4689          [9] = &llc_rst_state_trans_1,          /* Receive frame */
4690         [10] = &llc_rst_state_trans_2,
4691         [11] = &llc_rst_state_trans_2_1,
4692         [12] = &llc_rst_state_trans_4,
4693         [13] = &llc_rst_state_trans_4_1,
4694         [14] = &llc_rst_state_trans_5,
4695         [15] = &llc_rst_state_trans_5_1,
4696         [16] = &llc_common_state_trans_end,
4697 };
4698
4699 /* LLC_CONN_STATE_ERROR transitions */
4700 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
4701 static llc_conn_action_t llc_error_actions_1[] = {
4702         [0] = llc_conn_ac_set_vs_0,
4703         [1] = llc_conn_ac_set_vr_0,
4704         [2] = llc_conn_ac_send_ua_rsp_f_set_p,
4705         [3] = llc_conn_ac_rst_ind,
4706         [4] = llc_conn_ac_set_p_flag_0,
4707         [5] = llc_conn_ac_set_remote_busy_0,
4708         [6] = llc_conn_ac_stop_ack_timer,
4709         [7] = llc_conn_reset,
4710         [8] = NULL,
4711 };
4712
4713 static struct llc_conn_state_trans llc_error_state_trans_1 = {
4714         .ev            = llc_conn_ev_rx_sabme_cmd_pbit_set_x,
4715         .next_state    = LLC_CONN_STATE_NORMAL,
4716         .ev_qualifiers = NONE,
4717         .ev_actions    = llc_error_actions_1,
4718 };
4719
4720 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event */
4721 static llc_conn_action_t llc_error_actions_2[] = {
4722         [0] = llc_conn_ac_send_ua_rsp_f_set_p,
4723         [1] = llc_conn_ac_disc_ind,
4724         [2] = llc_conn_ac_stop_ack_timer,
4725         [3] = llc_conn_disc,
4726         [4] = NULL,
4727 };
4728
4729 static struct llc_conn_state_trans llc_error_state_trans_2 = {
4730         .ev            = llc_conn_ev_rx_disc_cmd_pbit_set_x,
4731         .next_state    = LLC_CONN_STATE_ADM,
4732         .ev_qualifiers = NONE,
4733         .ev_actions    = llc_error_actions_2,
4734 };
4735
4736 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event */
4737 static llc_conn_action_t llc_error_actions_3[] = {
4738         [0] = llc_conn_ac_disc_ind,
4739         [1] = llc_conn_ac_stop_ack_timer,
4740         [2] = llc_conn_disc,
4741         [3] = NULL,
4742 };
4743
4744 static struct llc_conn_state_trans llc_error_state_trans_3 = {
4745         .ev            = llc_conn_ev_rx_dm_rsp_fbit_set_x,
4746         .next_state    = LLC_CONN_STATE_ADM,
4747         .ev_qualifiers = NONE,
4748         .ev_actions    = llc_error_actions_3,
4749 };
4750
4751 /* State transitions for LLC_CONN_EV_RX_FRMR_RSP_Fbit_SET_X event */
4752 static llc_conn_action_t llc_error_actions_4[] = {
4753         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
4754         [1] = llc_conn_ac_start_ack_timer,
4755         [2] = llc_conn_ac_set_retry_cnt_0,
4756         [3] = llc_conn_ac_set_cause_flag_0,
4757         [4] = NULL,
4758 };
4759
4760 static struct llc_conn_state_trans llc_error_state_trans_4 = {
4761         .ev            = llc_conn_ev_rx_frmr_rsp_fbit_set_x,
4762         .next_state    = LLC_CONN_STATE_RESET,
4763         .ev_qualifiers = NONE,
4764         .ev_actions    = llc_error_actions_4,
4765 };
4766
4767 /* State transitions for LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_X event */
4768 static llc_conn_action_t llc_error_actions_5[] = {
4769         [0] = llc_conn_ac_resend_frmr_rsp_f_set_p,
4770         [1] = NULL,
4771 };
4772
4773 static struct llc_conn_state_trans llc_error_state_trans_5 = {
4774         .ev            = llc_conn_ev_rx_xxx_cmd_pbit_set_x,
4775         .next_state    = LLC_CONN_STATE_ERROR,
4776         .ev_qualifiers = NONE,
4777         .ev_actions    = llc_error_actions_5,
4778 };
4779
4780 /* State transitions for LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_X event */
4781 static struct llc_conn_state_trans llc_error_state_trans_6 = {
4782         .ev            = llc_conn_ev_rx_xxx_rsp_fbit_set_x,
4783         .next_state    = LLC_CONN_STATE_ERROR,
4784         .ev_qualifiers = NONE,
4785         .ev_actions    = NONE,
4786 };
4787
4788 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4789 static llc_conn_ev_qfyr_t llc_error_ev_qfyrs_7[] = {
4790         [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
4791         [1] = NULL,
4792 };
4793
4794 static llc_conn_action_t llc_error_actions_7[] = {
4795         [0] = llc_conn_ac_resend_frmr_rsp_f_set_0,
4796         [1] = llc_conn_ac_start_ack_timer,
4797         [2] = llc_conn_ac_inc_retry_cnt_by_1,
4798         [3] = NULL,
4799 };
4800
4801 static struct llc_conn_state_trans llc_error_state_trans_7 = {
4802         .ev            = llc_conn_ev_ack_tmr_exp,
4803         .next_state    = LLC_CONN_STATE_ERROR,
4804         .ev_qualifiers = llc_error_ev_qfyrs_7,
4805         .ev_actions    = llc_error_actions_7,
4806 };
4807
4808 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4809 static llc_conn_ev_qfyr_t llc_error_ev_qfyrs_8[] = {
4810         [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
4811         [1] = NULL,
4812 };
4813
4814 static llc_conn_action_t llc_error_actions_8[] = {
4815         [0] = llc_conn_ac_send_sabme_cmd_p_set_x,
4816         [1] = llc_conn_ac_set_s_flag_0,
4817         [2] = llc_conn_ac_start_ack_timer,
4818         [3] = llc_conn_ac_set_retry_cnt_0,
4819         [4] = llc_conn_ac_set_cause_flag_0,
4820         [5] = NULL,
4821 };
4822
4823 static struct llc_conn_state_trans llc_error_state_trans_8 = {
4824         .ev            = llc_conn_ev_ack_tmr_exp,
4825         .next_state    = LLC_CONN_STATE_RESET,
4826         .ev_qualifiers = llc_error_ev_qfyrs_8,
4827         .ev_actions    = llc_error_actions_8,
4828 };
4829
4830 /* State transitions for LLC_CONN_EV_DATA_CONN_REQ event */
4831 static llc_conn_ev_qfyr_t llc_error_ev_qfyrs_9[] = {
4832         [0] = llc_conn_ev_qlfy_set_status_refuse,
4833         [1] = NULL,
4834 };
4835
4836 /* just one member, NULL, .bss zeroes it */
4837 static llc_conn_action_t llc_error_actions_9[1];
4838
4839 static struct llc_conn_state_trans llc_error_state_trans_9 = {
4840         .ev            = llc_conn_ev_data_req,
4841         .next_state    = LLC_CONN_STATE_ERROR,
4842         .ev_qualifiers = llc_error_ev_qfyrs_9,
4843         .ev_actions    = llc_error_actions_9,
4844 };
4845
4846 /*
4847  * Array of pointers;
4848  * one to each transition
4849  */
4850 static struct llc_conn_state_trans *llc_error_state_transitions[] = {
4851          [0] = &llc_error_state_trans_9,        /* Request */
4852          [1] = &llc_common_state_trans_end,
4853          [2] = &llc_common_state_trans_end,     /* Local busy */
4854          [3] = &llc_common_state_trans_end,     /* Initiate PF cycle */
4855          [4] = &llc_error_state_trans_7,        /* Timer */
4856          [5] = &llc_error_state_trans_8,
4857          [6] = &llc_common_state_trans_end,
4858          [7] = &llc_error_state_trans_1,        /* Receive frame */
4859          [8] = &llc_error_state_trans_2,
4860          [9] = &llc_error_state_trans_3,
4861         [10] = &llc_error_state_trans_4,
4862         [11] = &llc_error_state_trans_5,
4863         [12] = &llc_error_state_trans_6,
4864         [13] = &llc_common_state_trans_end,
4865 };
4866
4867 /* LLC_CONN_STATE_TEMP transitions */
4868 /* State transitions for LLC_CONN_EV_DISC_REQ event */
4869 static llc_conn_action_t llc_temp_actions_1[] = {
4870         [0] = llc_conn_ac_stop_all_timers,
4871         [1] = llc_conn_ac_send_disc_cmd_p_set_x,
4872         [2] = llc_conn_disc,
4873         [3] = NULL,
4874 };
4875
4876 static struct llc_conn_state_trans llc_temp_state_trans_1 = {
4877         .ev            = llc_conn_ev_disc_req,
4878         .next_state    = LLC_CONN_STATE_ADM,
4879         .ev_qualifiers = NONE,
4880         .ev_actions    = llc_temp_actions_1,
4881 };
4882
4883 /*
4884  * Array of pointers;
4885  * one to each transition
4886  */
4887 static struct llc_conn_state_trans *llc_temp_state_transitions[] = {
4888         [0] = &llc_temp_state_trans_1,          /* requests */
4889         [1] = &llc_common_state_trans_end,
4890         [2] = &llc_common_state_trans_end,      /* local busy */
4891         [3] = &llc_common_state_trans_end,      /* init_pf_cycle */
4892         [4] = &llc_common_state_trans_end,      /* timer */
4893         [5] = &llc_common_state_trans_end,      /* receive */
4894 };
4895
4896 /* Connection State Transition Table */
4897 struct llc_conn_state llc_conn_state_table[NBR_CONN_STATES] = {
4898         [LLC_CONN_STATE_ADM - 1] = {
4899                 .current_state  = LLC_CONN_STATE_ADM,
4900                 .transitions    = llc_adm_state_transitions,
4901         },
4902         [LLC_CONN_STATE_SETUP - 1] = {
4903                 .current_state  = LLC_CONN_STATE_SETUP,
4904                 .transitions    = llc_setup_state_transitions,
4905         },
4906         [LLC_CONN_STATE_NORMAL - 1] = {
4907                 .current_state  = LLC_CONN_STATE_NORMAL,
4908                 .transitions    = llc_normal_state_transitions,
4909         },
4910         [LLC_CONN_STATE_BUSY - 1] = {
4911                 .current_state  = LLC_CONN_STATE_BUSY,
4912                 .transitions    = llc_busy_state_transitions,
4913         },
4914         [LLC_CONN_STATE_REJ - 1] = {
4915                 .current_state  = LLC_CONN_STATE_REJ,
4916                 .transitions    = llc_reject_state_transitions,
4917         },
4918         [LLC_CONN_STATE_AWAIT - 1] = {
4919                 .current_state  = LLC_CONN_STATE_AWAIT,
4920                 .transitions    = llc_await_state_transitions,
4921         },
4922         [LLC_CONN_STATE_AWAIT_BUSY - 1] = {
4923                 .current_state  = LLC_CONN_STATE_AWAIT_BUSY,
4924                 .transitions    = llc_await_busy_state_transitions,
4925         },
4926         [LLC_CONN_STATE_AWAIT_REJ - 1] = {
4927                 .current_state  = LLC_CONN_STATE_AWAIT_REJ,
4928                 .transitions    = llc_await_rejct_state_transitions,
4929         },
4930         [LLC_CONN_STATE_D_CONN - 1] = {
4931                 .current_state  = LLC_CONN_STATE_D_CONN,
4932                 .transitions    = llc_d_conn_state_transitions,
4933         },
4934         [LLC_CONN_STATE_RESET - 1] = {
4935                 .current_state  = LLC_CONN_STATE_RESET,
4936                 .transitions    = llc_rst_state_transitions,
4937         },
4938         [LLC_CONN_STATE_ERROR - 1] = {
4939                 .current_state  = LLC_CONN_STATE_ERROR,
4940                 .transitions    = llc_error_state_transitions,
4941         },
4942         [LLC_CONN_STATE_TEMP - 1] = {
4943                 .current_state  = LLC_CONN_STATE_TEMP,
4944                 .transitions    = llc_temp_state_transitions,
4945         },
4946 };