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 */
36static const 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
45static 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 */
53static const 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
62static 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 */
70static const 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
82static 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 */
90static const 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
98static 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 */
106static const 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
117static 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 */
125static const 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
132static 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 */
140static const 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
148static 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 */
156static const 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
164static 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 */
172static const 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
180static 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 */
188static const 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
196static 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 */
204static const 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
212static 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 */
220static const 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
228static 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
237static const 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
242static const 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
250static 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 */
259static const 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
264static const 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
273static 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 */
281static const 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
286static const 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
295static 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 */
303static const 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
308static const 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
317static 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 */
325static const 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
330static const 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
339static 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 */
350static 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 */
354static const 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
362static 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 */
370static const 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
381static 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 */
389static const 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
395static 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 */
403static const 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
409static 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 */
417static const llc_conn_action_t llc_adm_actions_5[] = {
418 [0] = llc_conn_disc,
419 [1] = NULL,
420};
421
422static 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 */
433static 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 */
448static const 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
456static 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 */
464static const 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
470static const 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
480static 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 */
488static const 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
494static const 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
501static 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 */
509static const llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_4[] = {
510 [0] = llc_conn_ev_qlfy_set_status_disc,
511 [1] = NULL,
512};
513
514static const 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
522static 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 */
530static const llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_5[] = {
531 [0] = llc_conn_ev_qlfy_set_status_disc,
532 [1] = NULL,
533};
534
535static const 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
542static 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 */
550static const 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
556static const 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
563static 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 */
571static const 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
578static const 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
584static 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 */
595static 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 */
612static const 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
619static const 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
625static 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 */
633static const 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
640static const 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
646static 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 */
654static const 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 */
661static const llc_conn_action_t llc_normal_actions_2_1[1];
662
663static 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 */
671static const 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
676static const 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
683static 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 */
691static const 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
696static const 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
703static 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 */
711static const 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
716static const 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
726static 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 */
734static const 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
739static const 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
749static 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 */
757static const 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
762static const 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
772static 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 */
780static const 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
785static const 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
793static 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 */
801static const 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
806static const 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
814static 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 */
822static const 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
830static 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 */
838static const 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
843static const 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
853static 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 */
861static const 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
866static 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 */
874static const 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
879static const 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
887static 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 */
895static const 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
900static const 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
908static 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 */
916static const 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
925static 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 */
933static const 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
940static 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 */
948static const 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
955static 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 */
963static const 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
968static const 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
976static 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 */
984static const 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
993static 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 */
1001static const 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
1008static 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 */
1016static const 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
1023static 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 */
1031static const 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
1036static const 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
1043static 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 */
1051static const 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
1060static 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 */
1068static const 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
1073static const 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
1083static 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 */
1091static const 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
1096static const 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
1106static 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 */
1114static const 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
1119static const 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
1128static 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 */
1136static const 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
1141static const 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
1150static 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 */
1158static const 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
1167static 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 */
1175static const 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
1180static const 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
1186static 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 */
1194static const 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
1199static const 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
1208static 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 */
1216static const 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
1222static const 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
1231static 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 */
1239static const 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
1245static const 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
1254static 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 */
1262static const 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
1267static const 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
1273static 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 */
1284static 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 */
1345static const 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
1351static const 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
1357static 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 */
1365static const 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
1371static const 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
1377static 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 */
1385static const 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 */
1392static const llc_conn_action_t llc_busy_actions_2_1[1];
1393
1394static 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 */
1402static const 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
1408static const 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
1414static 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 */
1422static const 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
1428static const 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
1434static 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 */
1442static const 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
1448static const llc_conn_action_t llc_busy_actions_5[] = {
1449 [0] = llc_conn_ac_send_rr_xxx_x_set_0,
1450 [1] = NULL,
1451};
1452
1453static 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 */
1461static const 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
1467static const llc_conn_action_t llc_busy_actions_6[] = {
1468 [0] = llc_conn_ac_send_rr_xxx_x_set_0,
1469 [1] = NULL,
1470};
1471
1472static 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 */
1480static const 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
1486static const llc_conn_action_t llc_busy_actions_7[] = {
1487 [0] = llc_conn_ac_send_rr_xxx_x_set_0,
1488 [1] = NULL,
1489};
1490
1491static 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 */
1499static const 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
1505static const llc_conn_action_t llc_busy_actions_8[] = {
1506 [0] = llc_conn_ac_send_rr_xxx_x_set_0,
1507 [1] = NULL,
1508};
1509
1510static 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 */
1518static const 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
1523static const 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
1532static 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 */
1540static const 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
1545static const 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
1554static 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 */
1562static const 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
1567static const 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
1574static 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 */
1582static const 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
1587static const 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
1594static 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 */
1602static const 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
1609static 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 */
1617static const 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
1627static 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 */
1635static const 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
1640static const 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
1652static 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 */
1660static const 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
1665static const 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
1677static 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 */
1685static const 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
1690static const 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
1700static 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 */
1708static const 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
1713static const 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
1723static 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 */
1731static const 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
1738static 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 */
1746static const 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
1753static 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 */
1761static const 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
1766static const 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
1773static 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 */
1781static const 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
1788static 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 */
1796static const 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
1803static 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 */
1811static const 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
1818static 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 */
1826static const 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
1831static const 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
1838static 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 */
1846static const 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
1853static 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 */
1861static const 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
1866static const 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
1875static 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 */
1883static const 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
1888static const 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
1897static 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 */
1905static const 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
1910static const 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
1918static 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 */
1926static const 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
1931static const 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
1939static 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 */
1947static const 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
1956static 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 */
1964static const 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
1969static const 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
1975static 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 */
1983static const 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
1988static const 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
1996static 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 */
2004static const 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
2010static const 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
2018static 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 */
2026static const 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
2032static const 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
2040static 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 */
2048static const 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
2054static const 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
2063static 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 */
2071static const 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
2077static const llc_conn_action_t llc_busy_actions_26[] = {
2078 [0] = llc_conn_ac_set_data_flag_1,
2079 [1] = NULL,
2080};
2081
2082static 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 */
2093static 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 */
2158static const 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
2164static const llc_conn_action_t llc_reject_actions_1[] = {
2165 [0] = llc_conn_ac_send_i_xxx_x_set_0,
2166 [1] = NULL,
2167};
2168
2169static 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 */
2177static const 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
2183static const llc_conn_action_t llc_reject_actions_2[] = {
2184 [0] = llc_conn_ac_send_i_xxx_x_set_0,
2185 [1] = NULL,
2186};
2187
2188static 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 */
2196static const 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 */
2203static const llc_conn_action_t llc_reject_actions_2_1[1];
2204
2205static 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 */
2214static const 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
2219static const 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
2225static 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 */
2233static const 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
2238static const 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
2244static 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 */
2252static const 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
2259static 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 */
2267static const 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
2274static 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 */
2282static const 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
2287static const 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
2294static 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 */
2302static const 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
2308static 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 */
2316static const 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
2321static const 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
2333static 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 */
2341static const 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
2346static const 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
2357static 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 */
2365static const 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
2370static const 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
2379static 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 */
2387static const 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
2392static const 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
2401static 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 */
2409static const 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
2418static 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 */
2426static const 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
2433static 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 */
2441static const 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
2448static 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 */
2456static const 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
2461static const 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
2468static 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 */
2476static const 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
2483static 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 */
2491static const 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
2498static 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 */
2506static const 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
2513static 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 */
2521static const 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
2526static const 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
2533static 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 */
2541static const 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
2548static 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 */
2556static const 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
2561static const 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
2570static 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 */
2578static const 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
2583static const 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
2592static 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 */
2600static const 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
2605static const 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
2613static 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 */
2621static const 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
2626static const 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
2634static 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 */
2642static const 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
2650static 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 */
2658static const 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
2663static const 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
2669static 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 */
2677static const 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
2683static const 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
2691static 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 */
2699static const 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
2704static const 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
2713static 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 */
2721static const 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
2727static const 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
2736static 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 */
2744static const 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
2750static const 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
2759static 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 */
2770static 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 */
2829static const 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 */
2835static const llc_conn_action_t llc_await_actions_1_0[1];
2836
2837static 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 */
2845static const 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
2851static 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 */
2859static const 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
2870static 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 */
2878static const 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
2886static 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 */
2894static const 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
2902static 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 */
2910static const 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
2919static 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 */
2927static const 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
2938static 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 */
2946static const 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
2955static 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 */
2963static const 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
2972static 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 */
2980static const 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
2989static 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 */
2997static const 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
3006static 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 */
3014static const 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
3023static 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 */
3031static const 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
3038static 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 */
3046static const 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
3053static 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 */
3061static const 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
3068static 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 */
3076static const 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
3083static 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 */
3091static const 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
3099static 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 */
3107static const 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
3115static 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 */
3123static const 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
3131static 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 */
3139static const 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
3146static 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 */
3154static const 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
3161static 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 */
3169static const 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
3177static 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 */
3185static const 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
3190static const 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
3197static 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 */
3208static 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 */
3258static const 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 */
3264static const llc_conn_action_t llc_await_busy_actions_1_0[1];
3265
3266static 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 */
3274static const 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
3279static const 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
3285static 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 */
3293static const 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
3298static const 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
3303static 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 */
3311static const 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
3316static const 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
3321static 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 */
3329static const 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
3340static 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 */
3348static const 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
3356static 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 */
3364static const 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
3372static 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 */
3380static const 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
3388static 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 */
3396static const 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
3409static 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 */
3417static const 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
3427static 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 */
3435static const 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
3445static 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 */
3453static const 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
3463static 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 */
3471static const 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
3480static 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 */
3488static const 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
3497static 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 */
3505static const 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
3512static 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 */
3520static const 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
3527static 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 */
3535static const 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
3542static 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 */
3550static const 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
3557static 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 */
3565static const 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
3573static 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 */
3581static const 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
3589static 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 */
3597static const 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
3605static 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 */
3613static const 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
3620static 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 */
3628static const 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
3635static 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 */
3643static const 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
3651static 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 */
3659static const 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
3664static const 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
3671static 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 */
3682static 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 */
3734static const 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 */
3740static const llc_conn_action_t llc_await_reject_actions_1_0[1];
3741
3742static 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 */
3750static const 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
3756static 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 */
3764static const 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
3770static 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 */
3778static const 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
3784static 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 */
3792static const 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
3799static 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 */
3807static const 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
3819static 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 */
3827static const 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
3837static 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 */
3845static const 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
3855static 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 */
3863static const 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
3873static 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 */
3881static const 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
3890static 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 */
3898static const 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
3907static 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 */
3915static const 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
3924static 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 */
3932static const 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
3939static 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 */
3947static const 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
3954static 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 */
3962static const 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
3969static 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 */
3977static const 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
3984static 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 */
3992static const 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
4000static 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 */
4008static const 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
4016static 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 */
4024static const 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
4032static 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 */
4040static const 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
4047static 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 */
4055static const 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
4062static 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 */
4070static const 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
4078static 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 */
4086static const 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
4091static const 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
4098static 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 */
4109static 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 */
4160static const 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
4166static const 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
4174static 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 */
4184static const 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
4190static const 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
4197static 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 */
4207static const 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
4214static const 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
4221static 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 */
4231static const 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
4238static const 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
4244static 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 */
4252static const 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
4257static 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 */
4267static const 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
4273static const 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
4280static 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 */
4290static const 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
4296static const 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
4302static 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 */
4313static const 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 */
4319static const llc_conn_action_t llc_d_conn_actions_5[1];
4320
4321static 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 */
4329static const 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
4334static const 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
4341static 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 */
4349static const 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
4356static const 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
4362static 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 */
4370static const 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
4377static const llc_conn_action_t llc_d_conn_actions_8[] = {
4378 [0] = llc_conn_disc,
4379 [1] = NULL,
4380};
4381
4382static 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 */
4393static 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 */
4414static const 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
4422static 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 */
4432static const 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
4439static const 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
4450static 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 */
4460static const 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
4467static const 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
4478static 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 */
4486static const 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
4492static const 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
4498static 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 */
4508static const 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};
4513static const 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
4521static 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 */
4531static const 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
4537static const 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
4544static 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 */
4554static const 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
4560static const 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
4567static 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 */
4577static const 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
4583static const 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
4589static 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 */
4597static const 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 */
4603static const llc_conn_action_t llc_rst_actions_6[1];
4604
4605static 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 */
4613static const 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
4619static const 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
4626static 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 */
4634static const 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};
4641static const 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
4647static 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 */
4655static const 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};
4662static const 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
4668static 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 */
4679static 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 */
4701static const 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
4713static 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 */
4721static const 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
4729static 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 */
4737static const 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
4744static 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 */
4752static const 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
4760static 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 */
4768static const llc_conn_action_t llc_error_actions_5[] = {
4769 [0] = llc_conn_ac_resend_frmr_rsp_f_set_p,
4770 [1] = NULL,
4771};
4772
4773static 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 */
4781static 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 */
4789static const 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
4794static const 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
4801static 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 */
4809static const 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
4814static const 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
4823static 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 */
4831static const 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 */
4837static const llc_conn_action_t llc_error_actions_9[1];
4838
4839static 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 */
4850static 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 */
4869static const 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
4876static 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 */
4887static 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 */
4897struct 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};
4947

source code of linux/net/llc/llc_c_st.c