2 * llc_c_st.c - This module contains state transition of connection component.
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.
7 * Copyright (c) 1997 by Procom Technology, Inc.
8 * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
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.
15 * See the GNU General Public License for more details.
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>
26 /* COMMON CONNECTION STATE transitions
27 * Common transitions for
28 * LLC_CONN_STATE_NORMAL,
29 * LLC_CONN_STATE_BUSY,
31 * LLC_CONN_STATE_AWAIT,
32 * LLC_CONN_STATE_AWAIT_BUSY and
33 * LLC_CONN_STATE_AWAIT_REJ states
35 /* State transitions for LLC_CONN_EV_DISC_REQ event */
36 static 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
,
45 static struct llc_conn_state_trans llc_common_state_trans_1
= {
46 .ev
= llc_conn_ev_disc_req
,
47 .next_state
= LLC_CONN_STATE_D_CONN
,
48 .ev_qualifiers
= NONE
,
49 .ev_actions
= llc_common_actions_1
,
52 /* State transitions for LLC_CONN_EV_RESET_REQ event */
53 static 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
,
62 static struct llc_conn_state_trans llc_common_state_trans_2
= {
63 .ev
= llc_conn_ev_rst_req
,
64 .next_state
= LLC_CONN_STATE_RESET
,
65 .ev_qualifiers
= NONE
,
66 .ev_actions
= llc_common_actions_2
,
69 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
70 static 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
,
82 static struct llc_conn_state_trans llc_common_state_trans_3
= {
83 .ev
= llc_conn_ev_rx_sabme_cmd_pbit_set_x
,
84 .next_state
= LLC_CONN_STATE_NORMAL
,
85 .ev_qualifiers
= NONE
,
86 .ev_actions
= llc_common_actions_3
,
89 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event */
90 static 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
,
98 static struct llc_conn_state_trans llc_common_state_trans_4
= {
99 .ev
= llc_conn_ev_rx_disc_cmd_pbit_set_x
,
100 .next_state
= LLC_CONN_STATE_ADM
,
101 .ev_qualifiers
= NONE
,
102 .ev_actions
= llc_common_actions_4
,
105 /* State transitions for LLC_CONN_EV_RX_FRMR_RSP_Fbit_SET_X event */
106 static 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
,
117 static struct llc_conn_state_trans llc_common_state_trans_5
= {
118 .ev
= llc_conn_ev_rx_frmr_rsp_fbit_set_x
,
119 .next_state
= LLC_CONN_STATE_RESET
,
120 .ev_qualifiers
= NONE
,
121 .ev_actions
= llc_common_actions_5
,
124 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event */
125 static const llc_conn_action_t llc_common_actions_6
[] = {
126 [0] = llc_conn_ac_disc_ind
,
127 [1] = llc_conn_ac_stop_all_timers
,
132 static struct llc_conn_state_trans llc_common_state_trans_6
= {
133 .ev
= llc_conn_ev_rx_dm_rsp_fbit_set_x
,
134 .next_state
= LLC_CONN_STATE_ADM
,
135 .ev_qualifiers
= NONE
,
136 .ev_actions
= llc_common_actions_6
,
139 /* State transitions for LLC_CONN_EV_RX_ZZZ_CMD_Pbit_SET_X_INVAL_Nr event */
140 static 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
,
148 static struct llc_conn_state_trans llc_common_state_trans_7a
= {
149 .ev
= llc_conn_ev_rx_zzz_cmd_pbit_set_x_inval_nr
,
150 .next_state
= LLC_CONN_STATE_ERROR
,
151 .ev_qualifiers
= NONE
,
152 .ev_actions
= llc_common_actions_7a
,
155 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_X_INVAL_Ns event */
156 static 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
,
164 static struct llc_conn_state_trans llc_common_state_trans_7b
= {
165 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_x_inval_ns
,
166 .next_state
= LLC_CONN_STATE_ERROR
,
167 .ev_qualifiers
= NONE
,
168 .ev_actions
= llc_common_actions_7b
,
171 /* State transitions for LLC_CONN_EV_RX_ZZZ_RSP_Fbit_SET_X_INVAL_Nr event */
172 static 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
,
180 static struct llc_conn_state_trans llc_common_state_trans_8a
= {
181 .ev
= llc_conn_ev_rx_zzz_rsp_fbit_set_x_inval_nr
,
182 .next_state
= LLC_CONN_STATE_ERROR
,
183 .ev_qualifiers
= NONE
,
184 .ev_actions
= llc_common_actions_8a
,
187 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_X_INVAL_Ns event */
188 static 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
,
196 static struct llc_conn_state_trans llc_common_state_trans_8b
= {
197 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_x_inval_ns
,
198 .next_state
= LLC_CONN_STATE_ERROR
,
199 .ev_qualifiers
= NONE
,
200 .ev_actions
= llc_common_actions_8b
,
203 /* State transitions for LLC_CONN_EV_RX_BAD_PDU event */
204 static 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
,
212 static struct llc_conn_state_trans llc_common_state_trans_8c
= {
213 .ev
= llc_conn_ev_rx_bad_pdu
,
214 .next_state
= LLC_CONN_STATE_ERROR
,
215 .ev_qualifiers
= NONE
,
216 .ev_actions
= llc_common_actions_8c
,
219 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event */
220 static 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
,
228 static struct llc_conn_state_trans llc_common_state_trans_9
= {
229 .ev
= llc_conn_ev_rx_ua_rsp_fbit_set_x
,
230 .next_state
= LLC_CONN_STATE_ERROR
,
231 .ev_qualifiers
= NONE
,
232 .ev_actions
= llc_common_actions_9
,
235 /* State transitions for LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_1 event */
237 static const llc_conn_ev_qfyr_t llc_common_ev_qfyrs_10
[] = {
238 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
242 static 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
,
250 static struct llc_conn_state_trans llc_common_state_trans_10
= {
251 .ev
= llc_conn_ev_rx_xxx_rsp_fbit_set_1
,
252 .next_state
= LLC_CONN_STATE_ERROR
,
253 .ev_qualifiers
= llc_common_ev_qfyrs_10
,
254 .ev_actions
= llc_common_actions_10
,
258 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
259 static const llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11a
[] = {
260 [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2
,
264 static 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
,
273 static struct llc_conn_state_trans llc_common_state_trans_11a
= {
274 .ev
= llc_conn_ev_p_tmr_exp
,
275 .next_state
= LLC_CONN_STATE_RESET
,
276 .ev_qualifiers
= llc_common_ev_qfyrs_11a
,
277 .ev_actions
= llc_common_actions_11a
,
280 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
281 static const llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11b
[] = {
282 [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2
,
286 static 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
,
295 static struct llc_conn_state_trans llc_common_state_trans_11b
= {
296 .ev
= llc_conn_ev_ack_tmr_exp
,
297 .next_state
= LLC_CONN_STATE_RESET
,
298 .ev_qualifiers
= llc_common_ev_qfyrs_11b
,
299 .ev_actions
= llc_common_actions_11b
,
302 /* State transitions for LLC_CONN_EV_REJ_TMR_EXP event */
303 static const llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11c
[] = {
304 [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2
,
308 static 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
,
317 static struct llc_conn_state_trans llc_common_state_trans_11c
= {
318 .ev
= llc_conn_ev_rej_tmr_exp
,
319 .next_state
= LLC_CONN_STATE_RESET
,
320 .ev_qualifiers
= llc_common_ev_qfyrs_11c
,
321 .ev_actions
= llc_common_actions_11c
,
324 /* State transitions for LLC_CONN_EV_BUSY_TMR_EXP event */
325 static const llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11d
[] = {
326 [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2
,
330 static 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
,
339 static struct llc_conn_state_trans llc_common_state_trans_11d
= {
340 .ev
= llc_conn_ev_busy_tmr_exp
,
341 .next_state
= LLC_CONN_STATE_RESET
,
342 .ev_qualifiers
= llc_common_ev_qfyrs_11d
,
343 .ev_actions
= llc_common_actions_11d
,
347 * Common dummy state transition; must be last entry for all state
348 * transition groups - it'll be on .bss, so will be zeroed.
350 static struct llc_conn_state_trans llc_common_state_trans_end
;
352 /* LLC_CONN_STATE_ADM transitions */
353 /* State transitions for LLC_CONN_EV_CONN_REQ event */
354 static 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
,
362 static struct llc_conn_state_trans llc_adm_state_trans_1
= {
363 .ev
= llc_conn_ev_conn_req
,
364 .next_state
= LLC_CONN_STATE_SETUP
,
365 .ev_qualifiers
= NONE
,
366 .ev_actions
= llc_adm_actions_1
,
369 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
370 static 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
,
381 static struct llc_conn_state_trans llc_adm_state_trans_2
= {
382 .ev
= llc_conn_ev_rx_sabme_cmd_pbit_set_x
,
383 .next_state
= LLC_CONN_STATE_NORMAL
,
384 .ev_qualifiers
= NONE
,
385 .ev_actions
= llc_adm_actions_2
,
388 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event */
389 static const llc_conn_action_t llc_adm_actions_3
[] = {
390 [0] = llc_conn_ac_send_dm_rsp_f_set_p
,
395 static struct llc_conn_state_trans llc_adm_state_trans_3
= {
396 .ev
= llc_conn_ev_rx_disc_cmd_pbit_set_x
,
397 .next_state
= LLC_CONN_STATE_ADM
,
398 .ev_qualifiers
= NONE
,
399 .ev_actions
= llc_adm_actions_3
,
402 /* State transitions for LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_1 event */
403 static const llc_conn_action_t llc_adm_actions_4
[] = {
404 [0] = llc_conn_ac_send_dm_rsp_f_set_1
,
409 static struct llc_conn_state_trans llc_adm_state_trans_4
= {
410 .ev
= llc_conn_ev_rx_xxx_cmd_pbit_set_1
,
411 .next_state
= LLC_CONN_STATE_ADM
,
412 .ev_qualifiers
= NONE
,
413 .ev_actions
= llc_adm_actions_4
,
416 /* State transitions for LLC_CONN_EV_RX_XXX_YYY event */
417 static const llc_conn_action_t llc_adm_actions_5
[] = {
422 static struct llc_conn_state_trans llc_adm_state_trans_5
= {
423 .ev
= llc_conn_ev_rx_any_frame
,
424 .next_state
= LLC_CONN_OUT_OF_SVC
,
425 .ev_qualifiers
= NONE
,
426 .ev_actions
= llc_adm_actions_5
,
431 * one to each transition
433 static struct llc_conn_state_trans
*llc_adm_state_transitions
[] = {
434 [0] = &llc_adm_state_trans_1
, /* Request */
435 [1] = &llc_common_state_trans_end
,
436 [2] = &llc_common_state_trans_end
, /* local_busy */
437 [3] = &llc_common_state_trans_end
, /* init_pf_cycle */
438 [4] = &llc_common_state_trans_end
, /* timer */
439 [5] = &llc_adm_state_trans_2
, /* Receive frame */
440 [6] = &llc_adm_state_trans_3
,
441 [7] = &llc_adm_state_trans_4
,
442 [8] = &llc_adm_state_trans_5
,
443 [9] = &llc_common_state_trans_end
,
446 /* LLC_CONN_STATE_SETUP transitions */
447 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
448 static 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
,
456 static struct llc_conn_state_trans llc_setup_state_trans_1
= {
457 .ev
= llc_conn_ev_rx_sabme_cmd_pbit_set_x
,
458 .next_state
= LLC_CONN_STATE_SETUP
,
459 .ev_qualifiers
= NONE
,
460 .ev_actions
= llc_setup_actions_1
,
463 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event */
464 static 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
,
470 static 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
,
480 static struct llc_conn_state_trans llc_setup_state_trans_2
= {
481 .ev
= llc_conn_ev_rx_ua_rsp_fbit_set_x
,
482 .next_state
= LLC_CONN_STATE_NORMAL
,
483 .ev_qualifiers
= llc_setup_ev_qfyrs_2
,
484 .ev_actions
= llc_setup_actions_2
,
487 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
488 static 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
,
494 static 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
,
501 static struct llc_conn_state_trans llc_setup_state_trans_3
= {
502 .ev
= llc_conn_ev_ack_tmr_exp
,
503 .next_state
= LLC_CONN_STATE_NORMAL
,
504 .ev_qualifiers
= llc_setup_ev_qfyrs_3
,
505 .ev_actions
= llc_setup_actions_3
,
508 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event */
509 static const llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_4
[] = {
510 [0] = llc_conn_ev_qlfy_set_status_disc
,
514 static 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
,
522 static struct llc_conn_state_trans llc_setup_state_trans_4
= {
523 .ev
= llc_conn_ev_rx_disc_cmd_pbit_set_x
,
524 .next_state
= LLC_CONN_STATE_ADM
,
525 .ev_qualifiers
= llc_setup_ev_qfyrs_4
,
526 .ev_actions
= llc_setup_actions_4
,
529 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event */
530 static const llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_5
[] = {
531 [0] = llc_conn_ev_qlfy_set_status_disc
,
535 static const llc_conn_action_t llc_setup_actions_5
[] = {
536 [0] = llc_conn_ac_stop_ack_timer
,
537 [1] = llc_conn_ac_conn_confirm
,
542 static struct llc_conn_state_trans llc_setup_state_trans_5
= {
543 .ev
= llc_conn_ev_rx_dm_rsp_fbit_set_x
,
544 .next_state
= LLC_CONN_STATE_ADM
,
545 .ev_qualifiers
= llc_setup_ev_qfyrs_5
,
546 .ev_actions
= llc_setup_actions_5
,
549 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
550 static 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
,
556 static 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
,
563 static struct llc_conn_state_trans llc_setup_state_trans_7
= {
564 .ev
= llc_conn_ev_ack_tmr_exp
,
565 .next_state
= LLC_CONN_STATE_SETUP
,
566 .ev_qualifiers
= llc_setup_ev_qfyrs_7
,
567 .ev_actions
= llc_setup_actions_7
,
570 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
571 static 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
,
578 static const llc_conn_action_t llc_setup_actions_8
[] = {
579 [0] = llc_conn_ac_conn_confirm
,
584 static struct llc_conn_state_trans llc_setup_state_trans_8
= {
585 .ev
= llc_conn_ev_ack_tmr_exp
,
586 .next_state
= LLC_CONN_STATE_ADM
,
587 .ev_qualifiers
= llc_setup_ev_qfyrs_8
,
588 .ev_actions
= llc_setup_actions_8
,
593 * one to each transition
595 static struct llc_conn_state_trans
*llc_setup_state_transitions
[] = {
596 [0] = &llc_common_state_trans_end
, /* Request */
597 [1] = &llc_common_state_trans_end
, /* local busy */
598 [2] = &llc_common_state_trans_end
, /* init_pf_cycle */
599 [3] = &llc_setup_state_trans_3
, /* Timer */
600 [4] = &llc_setup_state_trans_7
,
601 [5] = &llc_setup_state_trans_8
,
602 [6] = &llc_common_state_trans_end
,
603 [7] = &llc_setup_state_trans_1
, /* Receive frame */
604 [8] = &llc_setup_state_trans_2
,
605 [9] = &llc_setup_state_trans_4
,
606 [10] = &llc_setup_state_trans_5
,
607 [11] = &llc_common_state_trans_end
,
610 /* LLC_CONN_STATE_NORMAL transitions */
611 /* State transitions for LLC_CONN_EV_DATA_REQ event */
612 static 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
,
619 static 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
,
625 static struct llc_conn_state_trans llc_normal_state_trans_1
= {
626 .ev
= llc_conn_ev_data_req
,
627 .next_state
= LLC_CONN_STATE_NORMAL
,
628 .ev_qualifiers
= llc_normal_ev_qfyrs_1
,
629 .ev_actions
= llc_normal_actions_1
,
632 /* State transitions for LLC_CONN_EV_DATA_REQ event */
633 static 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
,
640 static 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
,
646 static struct llc_conn_state_trans llc_normal_state_trans_2
= {
647 .ev
= llc_conn_ev_data_req
,
648 .next_state
= LLC_CONN_STATE_NORMAL
,
649 .ev_qualifiers
= llc_normal_ev_qfyrs_2
,
650 .ev_actions
= llc_normal_actions_2
,
653 /* State transitions for LLC_CONN_EV_DATA_REQ event */
654 static 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
,
660 /* just one member, NULL, .bss zeroes it */
661 static const llc_conn_action_t llc_normal_actions_2_1
[1];
663 static struct llc_conn_state_trans llc_normal_state_trans_2_1
= {
664 .ev
= llc_conn_ev_data_req
,
665 .next_state
= LLC_CONN_STATE_NORMAL
,
666 .ev_qualifiers
= llc_normal_ev_qfyrs_2_1
,
667 .ev_actions
= llc_normal_actions_2_1
,
670 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
671 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_3
[] = {
672 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
676 static 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
,
683 static struct llc_conn_state_trans llc_normal_state_trans_3
= {
684 .ev
= llc_conn_ev_local_busy_detected
,
685 .next_state
= LLC_CONN_STATE_BUSY
,
686 .ev_qualifiers
= llc_normal_ev_qfyrs_3
,
687 .ev_actions
= llc_normal_actions_3
,
690 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
691 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_4
[] = {
692 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
696 static 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
,
703 static struct llc_conn_state_trans llc_normal_state_trans_4
= {
704 .ev
= llc_conn_ev_local_busy_detected
,
705 .next_state
= LLC_CONN_STATE_BUSY
,
706 .ev_qualifiers
= llc_normal_ev_qfyrs_4
,
707 .ev_actions
= llc_normal_actions_4
,
710 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
711 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_5a
[] = {
712 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
716 static 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
,
726 static struct llc_conn_state_trans llc_normal_state_trans_5a
= {
727 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns
,
728 .next_state
= LLC_CONN_STATE_REJ
,
729 .ev_qualifiers
= llc_normal_ev_qfyrs_5a
,
730 .ev_actions
= llc_normal_actions_5a
,
733 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
734 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_5b
[] = {
735 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
739 static 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
,
749 static struct llc_conn_state_trans llc_normal_state_trans_5b
= {
750 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns
,
751 .next_state
= LLC_CONN_STATE_REJ
,
752 .ev_qualifiers
= llc_normal_ev_qfyrs_5b
,
753 .ev_actions
= llc_normal_actions_5b
,
756 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns event */
757 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_5c
[] = {
758 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
762 static 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
,
772 static struct llc_conn_state_trans llc_normal_state_trans_5c
= {
773 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns
,
774 .next_state
= LLC_CONN_STATE_REJ
,
775 .ev_qualifiers
= llc_normal_ev_qfyrs_5c
,
776 .ev_actions
= llc_normal_actions_5c
,
779 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
780 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_6a
[] = {
781 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
785 static 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
,
793 static struct llc_conn_state_trans llc_normal_state_trans_6a
= {
794 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns
,
795 .next_state
= LLC_CONN_STATE_REJ
,
796 .ev_qualifiers
= llc_normal_ev_qfyrs_6a
,
797 .ev_actions
= llc_normal_actions_6a
,
800 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
801 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_6b
[] = {
802 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
806 static 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
,
814 static struct llc_conn_state_trans llc_normal_state_trans_6b
= {
815 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns
,
816 .next_state
= LLC_CONN_STATE_REJ
,
817 .ev_qualifiers
= llc_normal_ev_qfyrs_6b
,
818 .ev_actions
= llc_normal_actions_6b
,
821 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
822 static 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
,
830 static struct llc_conn_state_trans llc_normal_state_trans_7
= {
831 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns
,
832 .next_state
= LLC_CONN_STATE_REJ
,
833 .ev_qualifiers
= NONE
,
834 .ev_actions
= llc_normal_actions_7
,
837 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_X event */
838 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_8a
[] = {
839 [0] = llc_conn_ev_qlfy_p_flag_eq_f
,
843 static 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
,
853 static struct llc_conn_state_trans llc_normal_state_trans_8a
= {
854 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_x
,
855 .next_state
= LLC_CONN_STATE_NORMAL
,
856 .ev_qualifiers
= llc_normal_ev_qfyrs_8a
,
857 .ev_actions
= llc_normal_actions_8
,
860 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
861 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_8b
[] = {
862 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
866 static struct llc_conn_state_trans llc_normal_state_trans_8b
= {
867 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0
,
868 .next_state
= LLC_CONN_STATE_NORMAL
,
869 .ev_qualifiers
= llc_normal_ev_qfyrs_8b
,
870 .ev_actions
= llc_normal_actions_8
,
873 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
874 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_9a
[] = {
875 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
879 static 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
,
887 static struct llc_conn_state_trans llc_normal_state_trans_9a
= {
888 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0
,
889 .next_state
= LLC_CONN_STATE_NORMAL
,
890 .ev_qualifiers
= llc_normal_ev_qfyrs_9a
,
891 .ev_actions
= llc_normal_actions_9a
,
894 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
895 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_9b
[] = {
896 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
900 static 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
,
908 static struct llc_conn_state_trans llc_normal_state_trans_9b
= {
909 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0
,
910 .next_state
= LLC_CONN_STATE_NORMAL
,
911 .ev_qualifiers
= llc_normal_ev_qfyrs_9b
,
912 .ev_actions
= llc_normal_actions_9b
,
915 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
916 static 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
,
925 static struct llc_conn_state_trans llc_normal_state_trans_10
= {
926 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1
,
927 .next_state
= LLC_CONN_STATE_NORMAL
,
928 .ev_qualifiers
= NONE
,
929 .ev_actions
= llc_normal_actions_10
,
932 /* State transitions for * LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
933 static 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
,
940 static struct llc_conn_state_trans llc_normal_state_trans_11a
= {
941 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_0
,
942 .next_state
= LLC_CONN_STATE_NORMAL
,
943 .ev_qualifiers
= NONE
,
944 .ev_actions
= llc_normal_actions_11a
,
947 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
948 static 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
,
955 static struct llc_conn_state_trans llc_normal_state_trans_11b
= {
956 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_0
,
957 .next_state
= LLC_CONN_STATE_NORMAL
,
958 .ev_qualifiers
= NONE
,
959 .ev_actions
= llc_normal_actions_11b
,
962 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
963 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_11c
[] = {
964 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
968 static 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
,
976 static struct llc_conn_state_trans llc_normal_state_trans_11c
= {
977 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_1
,
978 .next_state
= LLC_CONN_STATE_NORMAL
,
979 .ev_qualifiers
= llc_normal_ev_qfyrs_11c
,
980 .ev_actions
= llc_normal_actions_11c
,
983 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
984 static 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
,
993 static struct llc_conn_state_trans llc_normal_state_trans_12
= {
994 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_1
,
995 .next_state
= LLC_CONN_STATE_NORMAL
,
996 .ev_qualifiers
= NONE
,
997 .ev_actions
= llc_normal_actions_12
,
1000 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
1001 static 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
,
1008 static struct llc_conn_state_trans llc_normal_state_trans_13a
= {
1009 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_0
,
1010 .next_state
= LLC_CONN_STATE_NORMAL
,
1011 .ev_qualifiers
= NONE
,
1012 .ev_actions
= llc_normal_actions_13a
,
1015 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
1016 static 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
,
1023 static struct llc_conn_state_trans llc_normal_state_trans_13b
= {
1024 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_0
,
1025 .next_state
= LLC_CONN_STATE_NORMAL
,
1026 .ev_qualifiers
= NONE
,
1027 .ev_actions
= llc_normal_actions_13b
,
1030 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
1031 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_13c
[] = {
1032 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1036 static 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
,
1043 static struct llc_conn_state_trans llc_normal_state_trans_13c
= {
1044 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_1
,
1045 .next_state
= LLC_CONN_STATE_NORMAL
,
1046 .ev_qualifiers
= llc_normal_ev_qfyrs_13c
,
1047 .ev_actions
= llc_normal_actions_13c
,
1050 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
1051 static 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
,
1060 static struct llc_conn_state_trans llc_normal_state_trans_14
= {
1061 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_1
,
1062 .next_state
= LLC_CONN_STATE_NORMAL
,
1063 .ev_qualifiers
= NONE
,
1064 .ev_actions
= llc_normal_actions_14
,
1067 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
1068 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_15a
[] = {
1069 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
1073 static 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
,
1083 static struct llc_conn_state_trans llc_normal_state_trans_15a
= {
1084 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_0
,
1085 .next_state
= LLC_CONN_STATE_NORMAL
,
1086 .ev_qualifiers
= llc_normal_ev_qfyrs_15a
,
1087 .ev_actions
= llc_normal_actions_15a
,
1090 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_X event */
1091 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_15b
[] = {
1092 [0] = llc_conn_ev_qlfy_p_flag_eq_f
,
1096 static 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
,
1106 static struct llc_conn_state_trans llc_normal_state_trans_15b
= {
1107 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_x
,
1108 .next_state
= LLC_CONN_STATE_NORMAL
,
1109 .ev_qualifiers
= llc_normal_ev_qfyrs_15b
,
1110 .ev_actions
= llc_normal_actions_15b
,
1113 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
1114 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_16a
[] = {
1115 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1119 static 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
,
1128 static struct llc_conn_state_trans llc_normal_state_trans_16a
= {
1129 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_0
,
1130 .next_state
= LLC_CONN_STATE_NORMAL
,
1131 .ev_qualifiers
= llc_normal_ev_qfyrs_16a
,
1132 .ev_actions
= llc_normal_actions_16a
,
1135 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
1136 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_16b
[] = {
1137 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1141 static 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
,
1150 static struct llc_conn_state_trans llc_normal_state_trans_16b
= {
1151 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_0
,
1152 .next_state
= LLC_CONN_STATE_NORMAL
,
1153 .ev_qualifiers
= llc_normal_ev_qfyrs_16b
,
1154 .ev_actions
= llc_normal_actions_16b
,
1157 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
1158 static 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
,
1167 static struct llc_conn_state_trans llc_normal_state_trans_17
= {
1168 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_1
,
1169 .next_state
= LLC_CONN_STATE_NORMAL
,
1170 .ev_qualifiers
= NONE
,
1171 .ev_actions
= llc_normal_actions_17
,
1174 /* State transitions for LLC_CONN_EV_INIT_P_F_CYCLE event */
1175 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_18
[] = {
1176 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
1180 static 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
,
1186 static struct llc_conn_state_trans llc_normal_state_trans_18
= {
1187 .ev
= llc_conn_ev_init_p_f_cycle
,
1188 .next_state
= LLC_CONN_STATE_NORMAL
,
1189 .ev_qualifiers
= llc_normal_ev_qfyrs_18
,
1190 .ev_actions
= llc_normal_actions_18
,
1193 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
1194 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_19
[] = {
1195 [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2
,
1199 static 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
,
1208 static struct llc_conn_state_trans llc_normal_state_trans_19
= {
1209 .ev
= llc_conn_ev_p_tmr_exp
,
1210 .next_state
= LLC_CONN_STATE_AWAIT
,
1211 .ev_qualifiers
= llc_normal_ev_qfyrs_19
,
1212 .ev_actions
= llc_normal_actions_19
,
1215 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
1216 static 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
,
1222 static 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
,
1231 static struct llc_conn_state_trans llc_normal_state_trans_20a
= {
1232 .ev
= llc_conn_ev_ack_tmr_exp
,
1233 .next_state
= LLC_CONN_STATE_AWAIT
,
1234 .ev_qualifiers
= llc_normal_ev_qfyrs_20a
,
1235 .ev_actions
= llc_normal_actions_20a
,
1238 /* State transitions for LLC_CONN_EV_BUSY_TMR_EXP event */
1239 static 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
,
1245 static 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
,
1254 static struct llc_conn_state_trans llc_normal_state_trans_20b
= {
1255 .ev
= llc_conn_ev_busy_tmr_exp
,
1256 .next_state
= LLC_CONN_STATE_AWAIT
,
1257 .ev_qualifiers
= llc_normal_ev_qfyrs_20b
,
1258 .ev_actions
= llc_normal_actions_20b
,
1261 /* State transitions for LLC_CONN_EV_TX_BUFF_FULL event */
1262 static const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_21
[] = {
1263 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
1267 static 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
,
1273 static struct llc_conn_state_trans llc_normal_state_trans_21
= {
1274 .ev
= llc_conn_ev_tx_buffer_full
,
1275 .next_state
= LLC_CONN_STATE_NORMAL
,
1276 .ev_qualifiers
= llc_normal_ev_qfyrs_21
,
1277 .ev_actions
= llc_normal_actions_21
,
1281 * Array of pointers;
1282 * one to each transition
1284 static struct llc_conn_state_trans
*llc_normal_state_transitions
[] = {
1285 [0] = &llc_normal_state_trans_1
, /* Requests */
1286 [1] = &llc_normal_state_trans_2
,
1287 [2] = &llc_normal_state_trans_2_1
,
1288 [3] = &llc_common_state_trans_1
,
1289 [4] = &llc_common_state_trans_2
,
1290 [5] = &llc_common_state_trans_end
,
1291 [6] = &llc_normal_state_trans_21
,
1292 [7] = &llc_normal_state_trans_3
, /* Local busy */
1293 [8] = &llc_normal_state_trans_4
,
1294 [9] = &llc_common_state_trans_end
,
1295 [10] = &llc_normal_state_trans_18
, /* Init pf cycle */
1296 [11] = &llc_common_state_trans_end
,
1297 [12] = &llc_common_state_trans_11a
, /* Timers */
1298 [13] = &llc_common_state_trans_11b
,
1299 [14] = &llc_common_state_trans_11c
,
1300 [15] = &llc_common_state_trans_11d
,
1301 [16] = &llc_normal_state_trans_19
,
1302 [17] = &llc_normal_state_trans_20a
,
1303 [18] = &llc_normal_state_trans_20b
,
1304 [19] = &llc_common_state_trans_end
,
1305 [20] = &llc_normal_state_trans_8b
, /* Receive frames */
1306 [21] = &llc_normal_state_trans_9b
,
1307 [22] = &llc_normal_state_trans_10
,
1308 [23] = &llc_normal_state_trans_11b
,
1309 [24] = &llc_normal_state_trans_11c
,
1310 [25] = &llc_normal_state_trans_5a
,
1311 [26] = &llc_normal_state_trans_5b
,
1312 [27] = &llc_normal_state_trans_5c
,
1313 [28] = &llc_normal_state_trans_6a
,
1314 [29] = &llc_normal_state_trans_6b
,
1315 [30] = &llc_normal_state_trans_7
,
1316 [31] = &llc_normal_state_trans_8a
,
1317 [32] = &llc_normal_state_trans_9a
,
1318 [33] = &llc_normal_state_trans_11a
,
1319 [34] = &llc_normal_state_trans_12
,
1320 [35] = &llc_normal_state_trans_13a
,
1321 [36] = &llc_normal_state_trans_13b
,
1322 [37] = &llc_normal_state_trans_13c
,
1323 [38] = &llc_normal_state_trans_14
,
1324 [39] = &llc_normal_state_trans_15a
,
1325 [40] = &llc_normal_state_trans_15b
,
1326 [41] = &llc_normal_state_trans_16a
,
1327 [42] = &llc_normal_state_trans_16b
,
1328 [43] = &llc_normal_state_trans_17
,
1329 [44] = &llc_common_state_trans_3
,
1330 [45] = &llc_common_state_trans_4
,
1331 [46] = &llc_common_state_trans_5
,
1332 [47] = &llc_common_state_trans_6
,
1333 [48] = &llc_common_state_trans_7a
,
1334 [49] = &llc_common_state_trans_7b
,
1335 [50] = &llc_common_state_trans_8a
,
1336 [51] = &llc_common_state_trans_8b
,
1337 [52] = &llc_common_state_trans_8c
,
1338 [53] = &llc_common_state_trans_9
,
1339 /* [54] = &llc_common_state_trans_10, */
1340 [54] = &llc_common_state_trans_end
,
1343 /* LLC_CONN_STATE_BUSY transitions */
1344 /* State transitions for LLC_CONN_EV_DATA_REQ event */
1345 static 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
,
1351 static 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
,
1357 static struct llc_conn_state_trans llc_busy_state_trans_1
= {
1358 .ev
= llc_conn_ev_data_req
,
1359 .next_state
= LLC_CONN_STATE_BUSY
,
1360 .ev_qualifiers
= llc_busy_ev_qfyrs_1
,
1361 .ev_actions
= llc_busy_actions_1
,
1364 /* State transitions for LLC_CONN_EV_DATA_REQ event */
1365 static 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
,
1371 static 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
,
1377 static struct llc_conn_state_trans llc_busy_state_trans_2
= {
1378 .ev
= llc_conn_ev_data_req
,
1379 .next_state
= LLC_CONN_STATE_BUSY
,
1380 .ev_qualifiers
= llc_busy_ev_qfyrs_2
,
1381 .ev_actions
= llc_busy_actions_2
,
1384 /* State transitions for LLC_CONN_EV_DATA_REQ event */
1385 static 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
,
1391 /* just one member, NULL, .bss zeroes it */
1392 static const llc_conn_action_t llc_busy_actions_2_1
[1];
1394 static struct llc_conn_state_trans llc_busy_state_trans_2_1
= {
1395 .ev
= llc_conn_ev_data_req
,
1396 .next_state
= LLC_CONN_STATE_BUSY
,
1397 .ev_qualifiers
= llc_busy_ev_qfyrs_2_1
,
1398 .ev_actions
= llc_busy_actions_2_1
,
1401 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1402 static 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
,
1408 static 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
,
1414 static struct llc_conn_state_trans llc_busy_state_trans_3
= {
1415 .ev
= llc_conn_ev_local_busy_cleared
,
1416 .next_state
= LLC_CONN_STATE_REJ
,
1417 .ev_qualifiers
= llc_busy_ev_qfyrs_3
,
1418 .ev_actions
= llc_busy_actions_3
,
1421 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1422 static 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
,
1428 static 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
,
1434 static struct llc_conn_state_trans llc_busy_state_trans_4
= {
1435 .ev
= llc_conn_ev_local_busy_cleared
,
1436 .next_state
= LLC_CONN_STATE_REJ
,
1437 .ev_qualifiers
= llc_busy_ev_qfyrs_4
,
1438 .ev_actions
= llc_busy_actions_4
,
1441 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1442 static 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
,
1448 static const llc_conn_action_t llc_busy_actions_5
[] = {
1449 [0] = llc_conn_ac_send_rr_xxx_x_set_0
,
1453 static struct llc_conn_state_trans llc_busy_state_trans_5
= {
1454 .ev
= llc_conn_ev_local_busy_cleared
,
1455 .next_state
= LLC_CONN_STATE_NORMAL
,
1456 .ev_qualifiers
= llc_busy_ev_qfyrs_5
,
1457 .ev_actions
= llc_busy_actions_5
,
1460 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1461 static 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
,
1467 static const llc_conn_action_t llc_busy_actions_6
[] = {
1468 [0] = llc_conn_ac_send_rr_xxx_x_set_0
,
1472 static struct llc_conn_state_trans llc_busy_state_trans_6
= {
1473 .ev
= llc_conn_ev_local_busy_cleared
,
1474 .next_state
= LLC_CONN_STATE_NORMAL
,
1475 .ev_qualifiers
= llc_busy_ev_qfyrs_6
,
1476 .ev_actions
= llc_busy_actions_6
,
1479 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1480 static 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
,
1486 static const llc_conn_action_t llc_busy_actions_7
[] = {
1487 [0] = llc_conn_ac_send_rr_xxx_x_set_0
,
1491 static struct llc_conn_state_trans llc_busy_state_trans_7
= {
1492 .ev
= llc_conn_ev_local_busy_cleared
,
1493 .next_state
= LLC_CONN_STATE_REJ
,
1494 .ev_qualifiers
= llc_busy_ev_qfyrs_7
,
1495 .ev_actions
= llc_busy_actions_7
,
1498 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
1499 static 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
,
1505 static const llc_conn_action_t llc_busy_actions_8
[] = {
1506 [0] = llc_conn_ac_send_rr_xxx_x_set_0
,
1510 static struct llc_conn_state_trans llc_busy_state_trans_8
= {
1511 .ev
= llc_conn_ev_local_busy_cleared
,
1512 .next_state
= LLC_CONN_STATE_REJ
,
1513 .ev_qualifiers
= llc_busy_ev_qfyrs_8
,
1514 .ev_actions
= llc_busy_actions_8
,
1517 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_X_UNEXPD_Ns event */
1518 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_9a
[] = {
1519 [0] = llc_conn_ev_qlfy_p_flag_eq_f
,
1523 static 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
,
1532 static struct llc_conn_state_trans llc_busy_state_trans_9a
= {
1533 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_x_unexpd_ns
,
1534 .next_state
= LLC_CONN_STATE_BUSY
,
1535 .ev_qualifiers
= llc_busy_ev_qfyrs_9a
,
1536 .ev_actions
= llc_busy_actions_9a
,
1539 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
1540 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_9b
[] = {
1541 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
1545 static 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
,
1554 static struct llc_conn_state_trans llc_busy_state_trans_9b
= {
1555 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns
,
1556 .next_state
= LLC_CONN_STATE_BUSY
,
1557 .ev_qualifiers
= llc_busy_ev_qfyrs_9b
,
1558 .ev_actions
= llc_busy_actions_9b
,
1561 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
1562 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_10a
[] = {
1563 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1567 static 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
,
1574 static struct llc_conn_state_trans llc_busy_state_trans_10a
= {
1575 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns
,
1576 .next_state
= LLC_CONN_STATE_BUSY
,
1577 .ev_qualifiers
= llc_busy_ev_qfyrs_10a
,
1578 .ev_actions
= llc_busy_actions_10a
,
1581 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
1582 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_10b
[] = {
1583 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1587 static 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
,
1594 static struct llc_conn_state_trans llc_busy_state_trans_10b
= {
1595 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns
,
1596 .next_state
= LLC_CONN_STATE_BUSY
,
1597 .ev_qualifiers
= llc_busy_ev_qfyrs_10b
,
1598 .ev_actions
= llc_busy_actions_10b
,
1601 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
1602 static 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
,
1609 static struct llc_conn_state_trans llc_busy_state_trans_11
= {
1610 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns
,
1611 .next_state
= LLC_CONN_STATE_BUSY
,
1612 .ev_qualifiers
= NONE
,
1613 .ev_actions
= llc_busy_actions_11
,
1616 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
1617 static 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
,
1627 static struct llc_conn_state_trans llc_busy_state_trans_12
= {
1628 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1
,
1629 .next_state
= LLC_CONN_STATE_BUSY
,
1630 .ev_qualifiers
= NONE
,
1631 .ev_actions
= llc_busy_actions_12
,
1634 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_X event */
1635 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_13a
[] = {
1636 [0] = llc_conn_ev_qlfy_p_flag_eq_f
,
1640 static 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
,
1652 static struct llc_conn_state_trans llc_busy_state_trans_13a
= {
1653 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_x
,
1654 .next_state
= LLC_CONN_STATE_BUSY
,
1655 .ev_qualifiers
= llc_busy_ev_qfyrs_13a
,
1656 .ev_actions
= llc_busy_actions_13a
,
1659 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
1660 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_13b
[] = {
1661 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
1665 static 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
,
1677 static struct llc_conn_state_trans llc_busy_state_trans_13b
= {
1678 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0
,
1679 .next_state
= LLC_CONN_STATE_BUSY
,
1680 .ev_qualifiers
= llc_busy_ev_qfyrs_13b
,
1681 .ev_actions
= llc_busy_actions_13b
,
1684 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
1685 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_14a
[] = {
1686 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1690 static 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
,
1700 static struct llc_conn_state_trans llc_busy_state_trans_14a
= {
1701 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0
,
1702 .next_state
= LLC_CONN_STATE_BUSY
,
1703 .ev_qualifiers
= llc_busy_ev_qfyrs_14a
,
1704 .ev_actions
= llc_busy_actions_14a
,
1707 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
1708 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_14b
[] = {
1709 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1713 static 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
,
1723 static struct llc_conn_state_trans llc_busy_state_trans_14b
= {
1724 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0
,
1725 .next_state
= LLC_CONN_STATE_BUSY
,
1726 .ev_qualifiers
= llc_busy_ev_qfyrs_14b
,
1727 .ev_actions
= llc_busy_actions_14b
,
1730 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
1731 static 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
,
1738 static struct llc_conn_state_trans llc_busy_state_trans_15a
= {
1739 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_0
,
1740 .next_state
= LLC_CONN_STATE_BUSY
,
1741 .ev_qualifiers
= NONE
,
1742 .ev_actions
= llc_busy_actions_15a
,
1745 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
1746 static 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
,
1753 static struct llc_conn_state_trans llc_busy_state_trans_15b
= {
1754 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_0
,
1755 .next_state
= LLC_CONN_STATE_BUSY
,
1756 .ev_qualifiers
= NONE
,
1757 .ev_actions
= llc_busy_actions_15b
,
1760 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
1761 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_15c
[] = {
1762 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1766 static 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
,
1773 static struct llc_conn_state_trans llc_busy_state_trans_15c
= {
1774 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_1
,
1775 .next_state
= LLC_CONN_STATE_BUSY
,
1776 .ev_qualifiers
= llc_busy_ev_qfyrs_15c
,
1777 .ev_actions
= llc_busy_actions_15c
,
1780 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
1781 static 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
,
1788 static struct llc_conn_state_trans llc_busy_state_trans_16
= {
1789 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_1
,
1790 .next_state
= LLC_CONN_STATE_BUSY
,
1791 .ev_qualifiers
= NONE
,
1792 .ev_actions
= llc_busy_actions_16
,
1795 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
1796 static 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
,
1803 static struct llc_conn_state_trans llc_busy_state_trans_17a
= {
1804 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_0
,
1805 .next_state
= LLC_CONN_STATE_BUSY
,
1806 .ev_qualifiers
= NONE
,
1807 .ev_actions
= llc_busy_actions_17a
,
1810 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
1811 static 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
,
1818 static struct llc_conn_state_trans llc_busy_state_trans_17b
= {
1819 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_0
,
1820 .next_state
= LLC_CONN_STATE_BUSY
,
1821 .ev_qualifiers
= NONE
,
1822 .ev_actions
= llc_busy_actions_17b
,
1825 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
1826 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_17c
[] = {
1827 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1831 static 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
,
1838 static struct llc_conn_state_trans llc_busy_state_trans_17c
= {
1839 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_1
,
1840 .next_state
= LLC_CONN_STATE_BUSY
,
1841 .ev_qualifiers
= llc_busy_ev_qfyrs_17c
,
1842 .ev_actions
= llc_busy_actions_17c
,
1845 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
1846 static 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
,
1853 static struct llc_conn_state_trans llc_busy_state_trans_18
= {
1854 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_1
,
1855 .next_state
= LLC_CONN_STATE_BUSY
,
1856 .ev_qualifiers
= NONE
,
1857 .ev_actions
= llc_busy_actions_18
,
1860 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
1861 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_19a
[] = {
1862 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
1866 static 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
,
1875 static struct llc_conn_state_trans llc_busy_state_trans_19a
= {
1876 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_0
,
1877 .next_state
= LLC_CONN_STATE_BUSY
,
1878 .ev_qualifiers
= llc_busy_ev_qfyrs_19a
,
1879 .ev_actions
= llc_busy_actions_19a
,
1882 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_X event */
1883 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_19b
[] = {
1884 [0] = llc_conn_ev_qlfy_p_flag_eq_f
,
1888 static 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
,
1897 static struct llc_conn_state_trans llc_busy_state_trans_19b
= {
1898 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_x
,
1899 .next_state
= LLC_CONN_STATE_BUSY
,
1900 .ev_qualifiers
= llc_busy_ev_qfyrs_19b
,
1901 .ev_actions
= llc_busy_actions_19b
,
1904 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
1905 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_20a
[] = {
1906 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1910 static 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
,
1918 static struct llc_conn_state_trans llc_busy_state_trans_20a
= {
1919 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_0
,
1920 .next_state
= LLC_CONN_STATE_BUSY
,
1921 .ev_qualifiers
= llc_busy_ev_qfyrs_20a
,
1922 .ev_actions
= llc_busy_actions_20a
,
1925 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
1926 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_20b
[] = {
1927 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
1931 static 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
,
1939 static struct llc_conn_state_trans llc_busy_state_trans_20b
= {
1940 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_0
,
1941 .next_state
= LLC_CONN_STATE_BUSY
,
1942 .ev_qualifiers
= llc_busy_ev_qfyrs_20b
,
1943 .ev_actions
= llc_busy_actions_20b
,
1946 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
1947 static 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
,
1956 static struct llc_conn_state_trans llc_busy_state_trans_21
= {
1957 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_1
,
1958 .next_state
= LLC_CONN_STATE_BUSY
,
1959 .ev_qualifiers
= NONE
,
1960 .ev_actions
= llc_busy_actions_21
,
1963 /* State transitions for LLC_CONN_EV_INIT_P_F_CYCLE event */
1964 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_22
[] = {
1965 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
1969 static 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
,
1975 static struct llc_conn_state_trans llc_busy_state_trans_22
= {
1976 .ev
= llc_conn_ev_init_p_f_cycle
,
1977 .next_state
= LLC_CONN_STATE_BUSY
,
1978 .ev_qualifiers
= llc_busy_ev_qfyrs_22
,
1979 .ev_actions
= llc_busy_actions_22
,
1982 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
1983 static const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_23
[] = {
1984 [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2
,
1988 static 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
,
1996 static struct llc_conn_state_trans llc_busy_state_trans_23
= {
1997 .ev
= llc_conn_ev_p_tmr_exp
,
1998 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
1999 .ev_qualifiers
= llc_busy_ev_qfyrs_23
,
2000 .ev_actions
= llc_busy_actions_23
,
2003 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
2004 static 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
,
2010 static 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
,
2018 static struct llc_conn_state_trans llc_busy_state_trans_24a
= {
2019 .ev
= llc_conn_ev_ack_tmr_exp
,
2020 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
2021 .ev_qualifiers
= llc_busy_ev_qfyrs_24a
,
2022 .ev_actions
= llc_busy_actions_24a
,
2025 /* State transitions for LLC_CONN_EV_BUSY_TMR_EXP event */
2026 static 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
,
2032 static 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
,
2040 static struct llc_conn_state_trans llc_busy_state_trans_24b
= {
2041 .ev
= llc_conn_ev_busy_tmr_exp
,
2042 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
2043 .ev_qualifiers
= llc_busy_ev_qfyrs_24b
,
2044 .ev_actions
= llc_busy_actions_24b
,
2047 /* State transitions for LLC_CONN_EV_REJ_TMR_EXP event */
2048 static 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
,
2054 static 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
,
2063 static struct llc_conn_state_trans llc_busy_state_trans_25
= {
2064 .ev
= llc_conn_ev_rej_tmr_exp
,
2065 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
2066 .ev_qualifiers
= llc_busy_ev_qfyrs_25
,
2067 .ev_actions
= llc_busy_actions_25
,
2070 /* State transitions for LLC_CONN_EV_REJ_TMR_EXP event */
2071 static 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
,
2077 static const llc_conn_action_t llc_busy_actions_26
[] = {
2078 [0] = llc_conn_ac_set_data_flag_1
,
2082 static struct llc_conn_state_trans llc_busy_state_trans_26
= {
2083 .ev
= llc_conn_ev_rej_tmr_exp
,
2084 .next_state
= LLC_CONN_STATE_BUSY
,
2085 .ev_qualifiers
= llc_busy_ev_qfyrs_26
,
2086 .ev_actions
= llc_busy_actions_26
,
2090 * Array of pointers;
2091 * one to each transition
2093 static struct llc_conn_state_trans
*llc_busy_state_transitions
[] = {
2094 [0] = &llc_common_state_trans_1
, /* Request */
2095 [1] = &llc_common_state_trans_2
,
2096 [2] = &llc_busy_state_trans_1
,
2097 [3] = &llc_busy_state_trans_2
,
2098 [4] = &llc_busy_state_trans_2_1
,
2099 [5] = &llc_common_state_trans_end
,
2100 [6] = &llc_busy_state_trans_3
, /* Local busy */
2101 [7] = &llc_busy_state_trans_4
,
2102 [8] = &llc_busy_state_trans_5
,
2103 [9] = &llc_busy_state_trans_6
,
2104 [10] = &llc_busy_state_trans_7
,
2105 [11] = &llc_busy_state_trans_8
,
2106 [12] = &llc_common_state_trans_end
,
2107 [13] = &llc_busy_state_trans_22
, /* Initiate PF cycle */
2108 [14] = &llc_common_state_trans_end
,
2109 [15] = &llc_common_state_trans_11a
, /* Timer */
2110 [16] = &llc_common_state_trans_11b
,
2111 [17] = &llc_common_state_trans_11c
,
2112 [18] = &llc_common_state_trans_11d
,
2113 [19] = &llc_busy_state_trans_23
,
2114 [20] = &llc_busy_state_trans_24a
,
2115 [21] = &llc_busy_state_trans_24b
,
2116 [22] = &llc_busy_state_trans_25
,
2117 [23] = &llc_busy_state_trans_26
,
2118 [24] = &llc_common_state_trans_end
,
2119 [25] = &llc_busy_state_trans_9a
, /* Receive frame */
2120 [26] = &llc_busy_state_trans_9b
,
2121 [27] = &llc_busy_state_trans_10a
,
2122 [28] = &llc_busy_state_trans_10b
,
2123 [29] = &llc_busy_state_trans_11
,
2124 [30] = &llc_busy_state_trans_12
,
2125 [31] = &llc_busy_state_trans_13a
,
2126 [32] = &llc_busy_state_trans_13b
,
2127 [33] = &llc_busy_state_trans_14a
,
2128 [34] = &llc_busy_state_trans_14b
,
2129 [35] = &llc_busy_state_trans_15a
,
2130 [36] = &llc_busy_state_trans_15b
,
2131 [37] = &llc_busy_state_trans_15c
,
2132 [38] = &llc_busy_state_trans_16
,
2133 [39] = &llc_busy_state_trans_17a
,
2134 [40] = &llc_busy_state_trans_17b
,
2135 [41] = &llc_busy_state_trans_17c
,
2136 [42] = &llc_busy_state_trans_18
,
2137 [43] = &llc_busy_state_trans_19a
,
2138 [44] = &llc_busy_state_trans_19b
,
2139 [45] = &llc_busy_state_trans_20a
,
2140 [46] = &llc_busy_state_trans_20b
,
2141 [47] = &llc_busy_state_trans_21
,
2142 [48] = &llc_common_state_trans_3
,
2143 [49] = &llc_common_state_trans_4
,
2144 [50] = &llc_common_state_trans_5
,
2145 [51] = &llc_common_state_trans_6
,
2146 [52] = &llc_common_state_trans_7a
,
2147 [53] = &llc_common_state_trans_7b
,
2148 [54] = &llc_common_state_trans_8a
,
2149 [55] = &llc_common_state_trans_8b
,
2150 [56] = &llc_common_state_trans_8c
,
2151 [57] = &llc_common_state_trans_9
,
2152 /* [58] = &llc_common_state_trans_10, */
2153 [58] = &llc_common_state_trans_end
,
2156 /* LLC_CONN_STATE_REJ transitions */
2157 /* State transitions for LLC_CONN_EV_DATA_REQ event */
2158 static 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
,
2164 static const llc_conn_action_t llc_reject_actions_1
[] = {
2165 [0] = llc_conn_ac_send_i_xxx_x_set_0
,
2169 static struct llc_conn_state_trans llc_reject_state_trans_1
= {
2170 .ev
= llc_conn_ev_data_req
,
2171 .next_state
= LLC_CONN_STATE_REJ
,
2172 .ev_qualifiers
= llc_reject_ev_qfyrs_1
,
2173 .ev_actions
= llc_reject_actions_1
,
2176 /* State transitions for LLC_CONN_EV_DATA_REQ event */
2177 static 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
,
2183 static const llc_conn_action_t llc_reject_actions_2
[] = {
2184 [0] = llc_conn_ac_send_i_xxx_x_set_0
,
2188 static struct llc_conn_state_trans llc_reject_state_trans_2
= {
2189 .ev
= llc_conn_ev_data_req
,
2190 .next_state
= LLC_CONN_STATE_REJ
,
2191 .ev_qualifiers
= llc_reject_ev_qfyrs_2
,
2192 .ev_actions
= llc_reject_actions_2
,
2195 /* State transitions for LLC_CONN_EV_DATA_REQ event */
2196 static 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
,
2202 /* just one member, NULL, .bss zeroes it */
2203 static const llc_conn_action_t llc_reject_actions_2_1
[1];
2205 static struct llc_conn_state_trans llc_reject_state_trans_2_1
= {
2206 .ev
= llc_conn_ev_data_req
,
2207 .next_state
= LLC_CONN_STATE_REJ
,
2208 .ev_qualifiers
= llc_reject_ev_qfyrs_2_1
,
2209 .ev_actions
= llc_reject_actions_2_1
,
2213 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
2214 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_3
[] = {
2215 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
2219 static 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
,
2225 static struct llc_conn_state_trans llc_reject_state_trans_3
= {
2226 .ev
= llc_conn_ev_local_busy_detected
,
2227 .next_state
= LLC_CONN_STATE_BUSY
,
2228 .ev_qualifiers
= llc_reject_ev_qfyrs_3
,
2229 .ev_actions
= llc_reject_actions_3
,
2232 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
2233 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_4
[] = {
2234 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
2238 static 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
,
2244 static struct llc_conn_state_trans llc_reject_state_trans_4
= {
2245 .ev
= llc_conn_ev_local_busy_detected
,
2246 .next_state
= LLC_CONN_STATE_BUSY
,
2247 .ev_qualifiers
= llc_reject_ev_qfyrs_4
,
2248 .ev_actions
= llc_reject_actions_4
,
2251 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
2252 static 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
,
2259 static struct llc_conn_state_trans llc_reject_state_trans_5a
= {
2260 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns
,
2261 .next_state
= LLC_CONN_STATE_REJ
,
2262 .ev_qualifiers
= NONE
,
2263 .ev_actions
= llc_reject_actions_5a
,
2266 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
2267 static 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
,
2274 static struct llc_conn_state_trans llc_reject_state_trans_5b
= {
2275 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns
,
2276 .next_state
= LLC_CONN_STATE_REJ
,
2277 .ev_qualifiers
= NONE
,
2278 .ev_actions
= llc_reject_actions_5b
,
2281 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns event */
2282 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_5c
[] = {
2283 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
2287 static 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
,
2294 static struct llc_conn_state_trans llc_reject_state_trans_5c
= {
2295 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns
,
2296 .next_state
= LLC_CONN_STATE_REJ
,
2297 .ev_qualifiers
= llc_reject_ev_qfyrs_5c
,
2298 .ev_actions
= llc_reject_actions_5c
,
2301 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
2302 static 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
,
2308 static struct llc_conn_state_trans llc_reject_state_trans_6
= {
2309 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns
,
2310 .next_state
= LLC_CONN_STATE_REJ
,
2311 .ev_qualifiers
= NONE
,
2312 .ev_actions
= llc_reject_actions_6
,
2315 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_X event */
2316 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_7a
[] = {
2317 [0] = llc_conn_ev_qlfy_p_flag_eq_f
,
2321 static 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
,
2333 static struct llc_conn_state_trans llc_reject_state_trans_7a
= {
2334 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_x
,
2335 .next_state
= LLC_CONN_STATE_NORMAL
,
2336 .ev_qualifiers
= llc_reject_ev_qfyrs_7a
,
2337 .ev_actions
= llc_reject_actions_7a
,
2340 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
2341 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_7b
[] = {
2342 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
2346 static 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
,
2357 static struct llc_conn_state_trans llc_reject_state_trans_7b
= {
2358 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0
,
2359 .next_state
= LLC_CONN_STATE_NORMAL
,
2360 .ev_qualifiers
= llc_reject_ev_qfyrs_7b
,
2361 .ev_actions
= llc_reject_actions_7b
,
2364 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
2365 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_8a
[] = {
2366 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
2370 static 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
,
2379 static struct llc_conn_state_trans llc_reject_state_trans_8a
= {
2380 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0
,
2381 .next_state
= LLC_CONN_STATE_NORMAL
,
2382 .ev_qualifiers
= llc_reject_ev_qfyrs_8a
,
2383 .ev_actions
= llc_reject_actions_8a
,
2386 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
2387 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_8b
[] = {
2388 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
2392 static 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
,
2401 static struct llc_conn_state_trans llc_reject_state_trans_8b
= {
2402 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0
,
2403 .next_state
= LLC_CONN_STATE_NORMAL
,
2404 .ev_qualifiers
= llc_reject_ev_qfyrs_8b
,
2405 .ev_actions
= llc_reject_actions_8b
,
2408 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
2409 static 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
,
2418 static struct llc_conn_state_trans llc_reject_state_trans_9
= {
2419 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1
,
2420 .next_state
= LLC_CONN_STATE_NORMAL
,
2421 .ev_qualifiers
= NONE
,
2422 .ev_actions
= llc_reject_actions_9
,
2425 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
2426 static 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
,
2433 static struct llc_conn_state_trans llc_reject_state_trans_10a
= {
2434 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_0
,
2435 .next_state
= LLC_CONN_STATE_REJ
,
2436 .ev_qualifiers
= NONE
,
2437 .ev_actions
= llc_reject_actions_10a
,
2440 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
2441 static 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
,
2448 static struct llc_conn_state_trans llc_reject_state_trans_10b
= {
2449 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_0
,
2450 .next_state
= LLC_CONN_STATE_REJ
,
2451 .ev_qualifiers
= NONE
,
2452 .ev_actions
= llc_reject_actions_10b
,
2455 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
2456 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_10c
[] = {
2457 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
2461 static 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
,
2468 static struct llc_conn_state_trans llc_reject_state_trans_10c
= {
2469 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_1
,
2470 .next_state
= LLC_CONN_STATE_REJ
,
2471 .ev_qualifiers
= llc_reject_ev_qfyrs_10c
,
2472 .ev_actions
= llc_reject_actions_10c
,
2475 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
2476 static 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
,
2483 static struct llc_conn_state_trans llc_reject_state_trans_11
= {
2484 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_1
,
2485 .next_state
= LLC_CONN_STATE_REJ
,
2486 .ev_qualifiers
= NONE
,
2487 .ev_actions
= llc_reject_actions_11
,
2490 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
2491 static 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
,
2498 static struct llc_conn_state_trans llc_reject_state_trans_12a
= {
2499 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_0
,
2500 .next_state
= LLC_CONN_STATE_REJ
,
2501 .ev_qualifiers
= NONE
,
2502 .ev_actions
= llc_reject_actions_12a
,
2505 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
2506 static 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
,
2513 static struct llc_conn_state_trans llc_reject_state_trans_12b
= {
2514 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_0
,
2515 .next_state
= LLC_CONN_STATE_REJ
,
2516 .ev_qualifiers
= NONE
,
2517 .ev_actions
= llc_reject_actions_12b
,
2520 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
2521 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_12c
[] = {
2522 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
2526 static 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
,
2533 static struct llc_conn_state_trans llc_reject_state_trans_12c
= {
2534 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_1
,
2535 .next_state
= LLC_CONN_STATE_REJ
,
2536 .ev_qualifiers
= llc_reject_ev_qfyrs_12c
,
2537 .ev_actions
= llc_reject_actions_12c
,
2540 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
2541 static 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
,
2548 static struct llc_conn_state_trans llc_reject_state_trans_13
= {
2549 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_1
,
2550 .next_state
= LLC_CONN_STATE_REJ
,
2551 .ev_qualifiers
= NONE
,
2552 .ev_actions
= llc_reject_actions_13
,
2555 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
2556 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_14a
[] = {
2557 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
2561 static 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
,
2570 static struct llc_conn_state_trans llc_reject_state_trans_14a
= {
2571 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_0
,
2572 .next_state
= LLC_CONN_STATE_REJ
,
2573 .ev_qualifiers
= llc_reject_ev_qfyrs_14a
,
2574 .ev_actions
= llc_reject_actions_14a
,
2577 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_X event */
2578 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_14b
[] = {
2579 [0] = llc_conn_ev_qlfy_p_flag_eq_f
,
2583 static 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
,
2592 static struct llc_conn_state_trans llc_reject_state_trans_14b
= {
2593 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_x
,
2594 .next_state
= LLC_CONN_STATE_REJ
,
2595 .ev_qualifiers
= llc_reject_ev_qfyrs_14b
,
2596 .ev_actions
= llc_reject_actions_14b
,
2599 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
2600 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_15a
[] = {
2601 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
2605 static 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
,
2613 static struct llc_conn_state_trans llc_reject_state_trans_15a
= {
2614 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_0
,
2615 .next_state
= LLC_CONN_STATE_REJ
,
2616 .ev_qualifiers
= llc_reject_ev_qfyrs_15a
,
2617 .ev_actions
= llc_reject_actions_15a
,
2620 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
2621 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_15b
[] = {
2622 [0] = llc_conn_ev_qlfy_p_flag_eq_1
,
2626 static 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
,
2634 static struct llc_conn_state_trans llc_reject_state_trans_15b
= {
2635 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_0
,
2636 .next_state
= LLC_CONN_STATE_REJ
,
2637 .ev_qualifiers
= llc_reject_ev_qfyrs_15b
,
2638 .ev_actions
= llc_reject_actions_15b
,
2641 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
2642 static 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
,
2650 static struct llc_conn_state_trans llc_reject_state_trans_16
= {
2651 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_1
,
2652 .next_state
= LLC_CONN_STATE_REJ
,
2653 .ev_qualifiers
= NONE
,
2654 .ev_actions
= llc_reject_actions_16
,
2657 /* State transitions for LLC_CONN_EV_INIT_P_F_CYCLE event */
2658 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_17
[] = {
2659 [0] = llc_conn_ev_qlfy_p_flag_eq_0
,
2663 static 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
,
2669 static struct llc_conn_state_trans llc_reject_state_trans_17
= {
2670 .ev
= llc_conn_ev_init_p_f_cycle
,
2671 .next_state
= LLC_CONN_STATE_REJ
,
2672 .ev_qualifiers
= llc_reject_ev_qfyrs_17
,
2673 .ev_actions
= llc_reject_actions_17
,
2676 /* State transitions for LLC_CONN_EV_REJ_TMR_EXP event */
2677 static 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
,
2683 static 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
,
2691 static struct llc_conn_state_trans llc_reject_state_trans_18
= {
2692 .ev
= llc_conn_ev_rej_tmr_exp
,
2693 .next_state
= LLC_CONN_STATE_REJ
,
2694 .ev_qualifiers
= llc_reject_ev_qfyrs_18
,
2695 .ev_actions
= llc_reject_actions_18
,
2698 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
2699 static const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_19
[] = {
2700 [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2
,
2704 static 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
,
2713 static struct llc_conn_state_trans llc_reject_state_trans_19
= {
2714 .ev
= llc_conn_ev_p_tmr_exp
,
2715 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
2716 .ev_qualifiers
= llc_reject_ev_qfyrs_19
,
2717 .ev_actions
= llc_reject_actions_19
,
2720 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
2721 static 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
,
2727 static 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
,
2736 static struct llc_conn_state_trans llc_reject_state_trans_20a
= {
2737 .ev
= llc_conn_ev_ack_tmr_exp
,
2738 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
2739 .ev_qualifiers
= llc_reject_ev_qfyrs_20a
,
2740 .ev_actions
= llc_reject_actions_20a
,
2743 /* State transitions for LLC_CONN_EV_BUSY_TMR_EXP event */
2744 static 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
,
2750 static 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
,
2759 static struct llc_conn_state_trans llc_reject_state_trans_20b
= {
2760 .ev
= llc_conn_ev_busy_tmr_exp
,
2761 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
2762 .ev_qualifiers
= llc_reject_ev_qfyrs_20b
,
2763 .ev_actions
= llc_reject_actions_20b
,
2767 * Array of pointers;
2768 * one to each transition
2770 static struct llc_conn_state_trans
*llc_reject_state_transitions
[] = {
2771 [0] = &llc_common_state_trans_1
, /* Request */
2772 [1] = &llc_common_state_trans_2
,
2773 [2] = &llc_common_state_trans_end
,
2774 [3] = &llc_reject_state_trans_1
,
2775 [4] = &llc_reject_state_trans_2
,
2776 [5] = &llc_reject_state_trans_2_1
,
2777 [6] = &llc_reject_state_trans_3
, /* Local busy */
2778 [7] = &llc_reject_state_trans_4
,
2779 [8] = &llc_common_state_trans_end
,
2780 [9] = &llc_reject_state_trans_17
, /* Initiate PF cycle */
2781 [10] = &llc_common_state_trans_end
,
2782 [11] = &llc_common_state_trans_11a
, /* Timer */
2783 [12] = &llc_common_state_trans_11b
,
2784 [13] = &llc_common_state_trans_11c
,
2785 [14] = &llc_common_state_trans_11d
,
2786 [15] = &llc_reject_state_trans_18
,
2787 [16] = &llc_reject_state_trans_19
,
2788 [17] = &llc_reject_state_trans_20a
,
2789 [18] = &llc_reject_state_trans_20b
,
2790 [19] = &llc_common_state_trans_end
,
2791 [20] = &llc_common_state_trans_3
, /* Receive frame */
2792 [21] = &llc_common_state_trans_4
,
2793 [22] = &llc_common_state_trans_5
,
2794 [23] = &llc_common_state_trans_6
,
2795 [24] = &llc_common_state_trans_7a
,
2796 [25] = &llc_common_state_trans_7b
,
2797 [26] = &llc_common_state_trans_8a
,
2798 [27] = &llc_common_state_trans_8b
,
2799 [28] = &llc_common_state_trans_8c
,
2800 [29] = &llc_common_state_trans_9
,
2801 /* [30] = &llc_common_state_trans_10, */
2802 [30] = &llc_reject_state_trans_5a
,
2803 [31] = &llc_reject_state_trans_5b
,
2804 [32] = &llc_reject_state_trans_5c
,
2805 [33] = &llc_reject_state_trans_6
,
2806 [34] = &llc_reject_state_trans_7a
,
2807 [35] = &llc_reject_state_trans_7b
,
2808 [36] = &llc_reject_state_trans_8a
,
2809 [37] = &llc_reject_state_trans_8b
,
2810 [38] = &llc_reject_state_trans_9
,
2811 [39] = &llc_reject_state_trans_10a
,
2812 [40] = &llc_reject_state_trans_10b
,
2813 [41] = &llc_reject_state_trans_10c
,
2814 [42] = &llc_reject_state_trans_11
,
2815 [43] = &llc_reject_state_trans_12a
,
2816 [44] = &llc_reject_state_trans_12b
,
2817 [45] = &llc_reject_state_trans_12c
,
2818 [46] = &llc_reject_state_trans_13
,
2819 [47] = &llc_reject_state_trans_14a
,
2820 [48] = &llc_reject_state_trans_14b
,
2821 [49] = &llc_reject_state_trans_15a
,
2822 [50] = &llc_reject_state_trans_15b
,
2823 [51] = &llc_reject_state_trans_16
,
2824 [52] = &llc_common_state_trans_end
,
2827 /* LLC_CONN_STATE_AWAIT transitions */
2828 /* State transitions for LLC_CONN_EV_DATA_REQ event */
2829 static const llc_conn_ev_qfyr_t llc_await_ev_qfyrs_1_0
[] = {
2830 [0] = llc_conn_ev_qlfy_set_status_refuse
,
2834 /* just one member, NULL, .bss zeroes it */
2835 static const llc_conn_action_t llc_await_actions_1_0
[1];
2837 static struct llc_conn_state_trans llc_await_state_trans_1_0
= {
2838 .ev
= llc_conn_ev_data_req
,
2839 .next_state
= LLC_CONN_STATE_AWAIT
,
2840 .ev_qualifiers
= llc_await_ev_qfyrs_1_0
,
2841 .ev_actions
= llc_await_actions_1_0
,
2844 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
2845 static 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
,
2851 static struct llc_conn_state_trans llc_await_state_trans_1
= {
2852 .ev
= llc_conn_ev_local_busy_detected
,
2853 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
2854 .ev_qualifiers
= NONE
,
2855 .ev_actions
= llc_await_actions_1
,
2858 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns event */
2859 static 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
,
2870 static struct llc_conn_state_trans llc_await_state_trans_2
= {
2871 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns
,
2872 .next_state
= LLC_CONN_STATE_REJ
,
2873 .ev_qualifiers
= NONE
,
2874 .ev_actions
= llc_await_actions_2
,
2877 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
2878 static 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
,
2886 static struct llc_conn_state_trans llc_await_state_trans_3a
= {
2887 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns
,
2888 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
2889 .ev_qualifiers
= NONE
,
2890 .ev_actions
= llc_await_actions_3a
,
2893 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
2894 static 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
,
2902 static struct llc_conn_state_trans llc_await_state_trans_3b
= {
2903 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns
,
2904 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
2905 .ev_qualifiers
= NONE
,
2906 .ev_actions
= llc_await_actions_3b
,
2909 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
2910 static 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
,
2919 static struct llc_conn_state_trans llc_await_state_trans_4
= {
2920 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns
,
2921 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
2922 .ev_qualifiers
= NONE
,
2923 .ev_actions
= llc_await_actions_4
,
2926 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1 event */
2927 static 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
,
2938 static struct llc_conn_state_trans llc_await_state_trans_5
= {
2939 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_1
,
2940 .next_state
= LLC_CONN_STATE_NORMAL
,
2941 .ev_qualifiers
= NONE
,
2942 .ev_actions
= llc_await_actions_5
,
2945 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
2946 static 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
,
2955 static struct llc_conn_state_trans llc_await_state_trans_6a
= {
2956 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0
,
2957 .next_state
= LLC_CONN_STATE_AWAIT
,
2958 .ev_qualifiers
= NONE
,
2959 .ev_actions
= llc_await_actions_6a
,
2962 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
2963 static 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
,
2972 static struct llc_conn_state_trans llc_await_state_trans_6b
= {
2973 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0
,
2974 .next_state
= LLC_CONN_STATE_AWAIT
,
2975 .ev_qualifiers
= NONE
,
2976 .ev_actions
= llc_await_actions_6b
,
2979 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
2980 static 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
,
2989 static struct llc_conn_state_trans llc_await_state_trans_7
= {
2990 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1
,
2991 .next_state
= LLC_CONN_STATE_AWAIT
,
2992 .ev_qualifiers
= NONE
,
2993 .ev_actions
= llc_await_actions_7
,
2996 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
2997 static 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
,
3006 static struct llc_conn_state_trans llc_await_state_trans_8a
= {
3007 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_1
,
3008 .next_state
= LLC_CONN_STATE_NORMAL
,
3009 .ev_qualifiers
= NONE
,
3010 .ev_actions
= llc_await_actions_8a
,
3013 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_1 event */
3014 static 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
,
3023 static struct llc_conn_state_trans llc_await_state_trans_8b
= {
3024 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_1
,
3025 .next_state
= LLC_CONN_STATE_NORMAL
,
3026 .ev_qualifiers
= NONE
,
3027 .ev_actions
= llc_await_actions_8b
,
3030 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
3031 static 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
,
3038 static struct llc_conn_state_trans llc_await_state_trans_9a
= {
3039 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_0
,
3040 .next_state
= LLC_CONN_STATE_AWAIT
,
3041 .ev_qualifiers
= NONE
,
3042 .ev_actions
= llc_await_actions_9a
,
3045 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
3046 static 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
,
3053 static struct llc_conn_state_trans llc_await_state_trans_9b
= {
3054 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_0
,
3055 .next_state
= LLC_CONN_STATE_AWAIT
,
3056 .ev_qualifiers
= NONE
,
3057 .ev_actions
= llc_await_actions_9b
,
3060 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
3061 static 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
,
3068 static struct llc_conn_state_trans llc_await_state_trans_9c
= {
3069 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_0
,
3070 .next_state
= LLC_CONN_STATE_AWAIT
,
3071 .ev_qualifiers
= NONE
,
3072 .ev_actions
= llc_await_actions_9c
,
3075 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
3076 static 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
,
3083 static struct llc_conn_state_trans llc_await_state_trans_9d
= {
3084 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_0
,
3085 .next_state
= LLC_CONN_STATE_AWAIT
,
3086 .ev_qualifiers
= NONE
,
3087 .ev_actions
= llc_await_actions_9d
,
3090 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
3091 static 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
,
3099 static struct llc_conn_state_trans llc_await_state_trans_10a
= {
3100 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_1
,
3101 .next_state
= LLC_CONN_STATE_AWAIT
,
3102 .ev_qualifiers
= NONE
,
3103 .ev_actions
= llc_await_actions_10a
,
3106 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
3107 static 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
,
3115 static struct llc_conn_state_trans llc_await_state_trans_10b
= {
3116 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_1
,
3117 .next_state
= LLC_CONN_STATE_AWAIT
,
3118 .ev_qualifiers
= NONE
,
3119 .ev_actions
= llc_await_actions_10b
,
3122 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
3123 static 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
,
3131 static struct llc_conn_state_trans llc_await_state_trans_11
= {
3132 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_1
,
3133 .next_state
= LLC_CONN_STATE_NORMAL
,
3134 .ev_qualifiers
= NONE
,
3135 .ev_actions
= llc_await_actions_11
,
3138 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
3139 static 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
,
3146 static struct llc_conn_state_trans llc_await_state_trans_12a
= {
3147 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_0
,
3148 .next_state
= LLC_CONN_STATE_AWAIT
,
3149 .ev_qualifiers
= NONE
,
3150 .ev_actions
= llc_await_actions_12a
,
3153 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
3154 static 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
,
3161 static struct llc_conn_state_trans llc_await_state_trans_12b
= {
3162 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_0
,
3163 .next_state
= LLC_CONN_STATE_AWAIT
,
3164 .ev_qualifiers
= NONE
,
3165 .ev_actions
= llc_await_actions_12b
,
3168 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
3169 static 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
,
3177 static struct llc_conn_state_trans llc_await_state_trans_13
= {
3178 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_1
,
3179 .next_state
= LLC_CONN_STATE_AWAIT
,
3180 .ev_qualifiers
= NONE
,
3181 .ev_actions
= llc_await_actions_13
,
3184 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
3185 static const llc_conn_ev_qfyr_t llc_await_ev_qfyrs_14
[] = {
3186 [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2
,
3190 static 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
,
3197 static struct llc_conn_state_trans llc_await_state_trans_14
= {
3198 .ev
= llc_conn_ev_p_tmr_exp
,
3199 .next_state
= LLC_CONN_STATE_AWAIT
,
3200 .ev_qualifiers
= llc_await_ev_qfyrs_14
,
3201 .ev_actions
= llc_await_actions_14
,
3205 * Array of pointers;
3206 * one to each transition
3208 static struct llc_conn_state_trans
*llc_await_state_transitions
[] = {
3209 [0] = &llc_common_state_trans_1
, /* Request */
3210 [1] = &llc_common_state_trans_2
,
3211 [2] = &llc_await_state_trans_1_0
,
3212 [3] = &llc_common_state_trans_end
,
3213 [4] = &llc_await_state_trans_1
, /* Local busy */
3214 [5] = &llc_common_state_trans_end
,
3215 [6] = &llc_common_state_trans_end
, /* Initiate PF Cycle */
3216 [7] = &llc_common_state_trans_11a
, /* Timer */
3217 [8] = &llc_common_state_trans_11b
,
3218 [9] = &llc_common_state_trans_11c
,
3219 [10] = &llc_common_state_trans_11d
,
3220 [11] = &llc_await_state_trans_14
,
3221 [12] = &llc_common_state_trans_end
,
3222 [13] = &llc_common_state_trans_3
, /* Receive frame */
3223 [14] = &llc_common_state_trans_4
,
3224 [15] = &llc_common_state_trans_5
,
3225 [16] = &llc_common_state_trans_6
,
3226 [17] = &llc_common_state_trans_7a
,
3227 [18] = &llc_common_state_trans_7b
,
3228 [19] = &llc_common_state_trans_8a
,
3229 [20] = &llc_common_state_trans_8b
,
3230 [21] = &llc_common_state_trans_8c
,
3231 [22] = &llc_common_state_trans_9
,
3232 /* [23] = &llc_common_state_trans_10, */
3233 [23] = &llc_await_state_trans_2
,
3234 [24] = &llc_await_state_trans_3a
,
3235 [25] = &llc_await_state_trans_3b
,
3236 [26] = &llc_await_state_trans_4
,
3237 [27] = &llc_await_state_trans_5
,
3238 [28] = &llc_await_state_trans_6a
,
3239 [29] = &llc_await_state_trans_6b
,
3240 [30] = &llc_await_state_trans_7
,
3241 [31] = &llc_await_state_trans_8a
,
3242 [32] = &llc_await_state_trans_8b
,
3243 [33] = &llc_await_state_trans_9a
,
3244 [34] = &llc_await_state_trans_9b
,
3245 [35] = &llc_await_state_trans_9c
,
3246 [36] = &llc_await_state_trans_9d
,
3247 [37] = &llc_await_state_trans_10a
,
3248 [38] = &llc_await_state_trans_10b
,
3249 [39] = &llc_await_state_trans_11
,
3250 [40] = &llc_await_state_trans_12a
,
3251 [41] = &llc_await_state_trans_12b
,
3252 [42] = &llc_await_state_trans_13
,
3253 [43] = &llc_common_state_trans_end
,
3256 /* LLC_CONN_STATE_AWAIT_BUSY transitions */
3257 /* State transitions for LLC_CONN_EV_DATA_CONN_REQ event */
3258 static const llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_1_0
[] = {
3259 [0] = llc_conn_ev_qlfy_set_status_refuse
,
3263 /* just one member, NULL, .bss zeroes it */
3264 static const llc_conn_action_t llc_await_busy_actions_1_0
[1];
3266 static struct llc_conn_state_trans llc_await_busy_state_trans_1_0
= {
3267 .ev
= llc_conn_ev_data_req
,
3268 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3269 .ev_qualifiers
= llc_await_busy_ev_qfyrs_1_0
,
3270 .ev_actions
= llc_await_busy_actions_1_0
,
3273 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
3274 static const llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_1
[] = {
3275 [0] = llc_conn_ev_qlfy_data_flag_eq_1
,
3279 static 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
,
3285 static struct llc_conn_state_trans llc_await_busy_state_trans_1
= {
3286 .ev
= llc_conn_ev_local_busy_cleared
,
3287 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
3288 .ev_qualifiers
= llc_await_busy_ev_qfyrs_1
,
3289 .ev_actions
= llc_await_busy_actions_1
,
3292 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
3293 static const llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_2
[] = {
3294 [0] = llc_conn_ev_qlfy_data_flag_eq_0
,
3298 static const llc_conn_action_t llc_await_busy_actions_2
[] = {
3299 [0] = llc_conn_ac_send_rr_xxx_x_set_0
,
3303 static struct llc_conn_state_trans llc_await_busy_state_trans_2
= {
3304 .ev
= llc_conn_ev_local_busy_cleared
,
3305 .next_state
= LLC_CONN_STATE_AWAIT
,
3306 .ev_qualifiers
= llc_await_busy_ev_qfyrs_2
,
3307 .ev_actions
= llc_await_busy_actions_2
,
3310 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_CLEARED event */
3311 static const llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_3
[] = {
3312 [0] = llc_conn_ev_qlfy_data_flag_eq_2
,
3316 static const llc_conn_action_t llc_await_busy_actions_3
[] = {
3317 [0] = llc_conn_ac_send_rr_xxx_x_set_0
,
3321 static struct llc_conn_state_trans llc_await_busy_state_trans_3
= {
3322 .ev
= llc_conn_ev_local_busy_cleared
,
3323 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
3324 .ev_qualifiers
= llc_await_busy_ev_qfyrs_3
,
3325 .ev_actions
= llc_await_busy_actions_3
,
3328 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns event */
3329 static 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
,
3340 static struct llc_conn_state_trans llc_await_busy_state_trans_4
= {
3341 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns
,
3342 .next_state
= LLC_CONN_STATE_BUSY
,
3343 .ev_qualifiers
= NONE
,
3344 .ev_actions
= llc_await_busy_actions_4
,
3347 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
3348 static 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
,
3356 static struct llc_conn_state_trans llc_await_busy_state_trans_5a
= {
3357 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns
,
3358 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3359 .ev_qualifiers
= NONE
,
3360 .ev_actions
= llc_await_busy_actions_5a
,
3363 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
3364 static 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
,
3372 static struct llc_conn_state_trans llc_await_busy_state_trans_5b
= {
3373 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns
,
3374 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3375 .ev_qualifiers
= NONE
,
3376 .ev_actions
= llc_await_busy_actions_5b
,
3379 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
3380 static 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
,
3388 static struct llc_conn_state_trans llc_await_busy_state_trans_6
= {
3389 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns
,
3390 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3391 .ev_qualifiers
= NONE
,
3392 .ev_actions
= llc_await_busy_actions_6
,
3395 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1 event */
3396 static 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
,
3409 static struct llc_conn_state_trans llc_await_busy_state_trans_7
= {
3410 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_1
,
3411 .next_state
= LLC_CONN_STATE_BUSY
,
3412 .ev_qualifiers
= NONE
,
3413 .ev_actions
= llc_await_busy_actions_7
,
3416 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
3417 static 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
,
3427 static struct llc_conn_state_trans llc_await_busy_state_trans_8a
= {
3428 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0
,
3429 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3430 .ev_qualifiers
= NONE
,
3431 .ev_actions
= llc_await_busy_actions_8a
,
3434 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
3435 static 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
,
3445 static struct llc_conn_state_trans llc_await_busy_state_trans_8b
= {
3446 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0
,
3447 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3448 .ev_qualifiers
= NONE
,
3449 .ev_actions
= llc_await_busy_actions_8b
,
3452 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
3453 static 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
,
3463 static struct llc_conn_state_trans llc_await_busy_state_trans_9
= {
3464 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1
,
3465 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3466 .ev_qualifiers
= NONE
,
3467 .ev_actions
= llc_await_busy_actions_9
,
3470 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
3471 static 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
,
3480 static struct llc_conn_state_trans llc_await_busy_state_trans_10a
= {
3481 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_1
,
3482 .next_state
= LLC_CONN_STATE_BUSY
,
3483 .ev_qualifiers
= NONE
,
3484 .ev_actions
= llc_await_busy_actions_10a
,
3487 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_1 event */
3488 static 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
,
3497 static struct llc_conn_state_trans llc_await_busy_state_trans_10b
= {
3498 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_1
,
3499 .next_state
= LLC_CONN_STATE_BUSY
,
3500 .ev_qualifiers
= NONE
,
3501 .ev_actions
= llc_await_busy_actions_10b
,
3504 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
3505 static 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
,
3512 static struct llc_conn_state_trans llc_await_busy_state_trans_11a
= {
3513 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_0
,
3514 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3515 .ev_qualifiers
= NONE
,
3516 .ev_actions
= llc_await_busy_actions_11a
,
3519 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
3520 static 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
,
3527 static struct llc_conn_state_trans llc_await_busy_state_trans_11b
= {
3528 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_0
,
3529 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3530 .ev_qualifiers
= NONE
,
3531 .ev_actions
= llc_await_busy_actions_11b
,
3534 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
3535 static 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
,
3542 static struct llc_conn_state_trans llc_await_busy_state_trans_11c
= {
3543 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_0
,
3544 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3545 .ev_qualifiers
= NONE
,
3546 .ev_actions
= llc_await_busy_actions_11c
,
3549 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
3550 static 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
,
3557 static struct llc_conn_state_trans llc_await_busy_state_trans_11d
= {
3558 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_0
,
3559 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3560 .ev_qualifiers
= NONE
,
3561 .ev_actions
= llc_await_busy_actions_11d
,
3564 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
3565 static 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
,
3573 static struct llc_conn_state_trans llc_await_busy_state_trans_12a
= {
3574 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_1
,
3575 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3576 .ev_qualifiers
= NONE
,
3577 .ev_actions
= llc_await_busy_actions_12a
,
3580 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
3581 static 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
,
3589 static struct llc_conn_state_trans llc_await_busy_state_trans_12b
= {
3590 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_1
,
3591 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3592 .ev_qualifiers
= NONE
,
3593 .ev_actions
= llc_await_busy_actions_12b
,
3596 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
3597 static 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
,
3605 static struct llc_conn_state_trans llc_await_busy_state_trans_13
= {
3606 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_1
,
3607 .next_state
= LLC_CONN_STATE_BUSY
,
3608 .ev_qualifiers
= NONE
,
3609 .ev_actions
= llc_await_busy_actions_13
,
3612 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
3613 static 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
,
3620 static struct llc_conn_state_trans llc_await_busy_state_trans_14a
= {
3621 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_0
,
3622 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3623 .ev_qualifiers
= NONE
,
3624 .ev_actions
= llc_await_busy_actions_14a
,
3627 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
3628 static 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
,
3635 static struct llc_conn_state_trans llc_await_busy_state_trans_14b
= {
3636 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_0
,
3637 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3638 .ev_qualifiers
= NONE
,
3639 .ev_actions
= llc_await_busy_actions_14b
,
3642 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
3643 static 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
,
3651 static struct llc_conn_state_trans llc_await_busy_state_trans_15
= {
3652 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_1
,
3653 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3654 .ev_qualifiers
= NONE
,
3655 .ev_actions
= llc_await_busy_actions_15
,
3658 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
3659 static const llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_16
[] = {
3660 [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2
,
3664 static 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
,
3671 static struct llc_conn_state_trans llc_await_busy_state_trans_16
= {
3672 .ev
= llc_conn_ev_p_tmr_exp
,
3673 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3674 .ev_qualifiers
= llc_await_busy_ev_qfyrs_16
,
3675 .ev_actions
= llc_await_busy_actions_16
,
3679 * Array of pointers;
3680 * one to each transition
3682 static struct llc_conn_state_trans
*llc_await_busy_state_transitions
[] = {
3683 [0] = &llc_common_state_trans_1
, /* Request */
3684 [1] = &llc_common_state_trans_2
,
3685 [2] = &llc_await_busy_state_trans_1_0
,
3686 [3] = &llc_common_state_trans_end
,
3687 [4] = &llc_await_busy_state_trans_1
, /* Local busy */
3688 [5] = &llc_await_busy_state_trans_2
,
3689 [6] = &llc_await_busy_state_trans_3
,
3690 [7] = &llc_common_state_trans_end
,
3691 [8] = &llc_common_state_trans_end
, /* Initiate PF cycle */
3692 [9] = &llc_common_state_trans_11a
, /* Timer */
3693 [10] = &llc_common_state_trans_11b
,
3694 [11] = &llc_common_state_trans_11c
,
3695 [12] = &llc_common_state_trans_11d
,
3696 [13] = &llc_await_busy_state_trans_16
,
3697 [14] = &llc_common_state_trans_end
,
3698 [15] = &llc_await_busy_state_trans_4
, /* Receive frame */
3699 [16] = &llc_await_busy_state_trans_5a
,
3700 [17] = &llc_await_busy_state_trans_5b
,
3701 [18] = &llc_await_busy_state_trans_6
,
3702 [19] = &llc_await_busy_state_trans_7
,
3703 [20] = &llc_await_busy_state_trans_8a
,
3704 [21] = &llc_await_busy_state_trans_8b
,
3705 [22] = &llc_await_busy_state_trans_9
,
3706 [23] = &llc_await_busy_state_trans_10a
,
3707 [24] = &llc_await_busy_state_trans_10b
,
3708 [25] = &llc_await_busy_state_trans_11a
,
3709 [26] = &llc_await_busy_state_trans_11b
,
3710 [27] = &llc_await_busy_state_trans_11c
,
3711 [28] = &llc_await_busy_state_trans_11d
,
3712 [29] = &llc_await_busy_state_trans_12a
,
3713 [30] = &llc_await_busy_state_trans_12b
,
3714 [31] = &llc_await_busy_state_trans_13
,
3715 [32] = &llc_await_busy_state_trans_14a
,
3716 [33] = &llc_await_busy_state_trans_14b
,
3717 [34] = &llc_await_busy_state_trans_15
,
3718 [35] = &llc_common_state_trans_3
,
3719 [36] = &llc_common_state_trans_4
,
3720 [37] = &llc_common_state_trans_5
,
3721 [38] = &llc_common_state_trans_6
,
3722 [39] = &llc_common_state_trans_7a
,
3723 [40] = &llc_common_state_trans_7b
,
3724 [41] = &llc_common_state_trans_8a
,
3725 [42] = &llc_common_state_trans_8b
,
3726 [43] = &llc_common_state_trans_8c
,
3727 [44] = &llc_common_state_trans_9
,
3728 /* [45] = &llc_common_state_trans_10, */
3729 [45] = &llc_common_state_trans_end
,
3732 /* ----------------- LLC_CONN_STATE_AWAIT_REJ transitions --------------- */
3733 /* State transitions for LLC_CONN_EV_DATA_CONN_REQ event */
3734 static const llc_conn_ev_qfyr_t llc_await_reject_ev_qfyrs_1_0
[] = {
3735 [0] = llc_conn_ev_qlfy_set_status_refuse
,
3739 /* just one member, NULL, .bss zeroes it */
3740 static const llc_conn_action_t llc_await_reject_actions_1_0
[1];
3742 static struct llc_conn_state_trans llc_await_reject_state_trans_1_0
= {
3743 .ev
= llc_conn_ev_data_req
,
3744 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
3745 .ev_qualifiers
= llc_await_reject_ev_qfyrs_1_0
,
3746 .ev_actions
= llc_await_reject_actions_1_0
,
3749 /* State transitions for LLC_CONN_EV_LOCAL_BUSY_DETECTED event */
3750 static 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
,
3756 static struct llc_conn_state_trans llc_await_rejct_state_trans_1
= {
3757 .ev
= llc_conn_ev_local_busy_detected
,
3758 .next_state
= LLC_CONN_STATE_AWAIT_BUSY
,
3759 .ev_qualifiers
= NONE
,
3760 .ev_actions
= llc_await_rejct_actions_1
,
3763 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns event */
3764 static 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
,
3770 static struct llc_conn_state_trans llc_await_rejct_state_trans_2a
= {
3771 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns
,
3772 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
3773 .ev_qualifiers
= NONE
,
3774 .ev_actions
= llc_await_rejct_actions_2a
,
3777 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns event */
3778 static 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
,
3784 static struct llc_conn_state_trans llc_await_rejct_state_trans_2b
= {
3785 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns
,
3786 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
3787 .ev_qualifiers
= NONE
,
3788 .ev_actions
= llc_await_rejct_actions_2b
,
3791 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns event */
3792 static 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
,
3799 static struct llc_conn_state_trans llc_await_rejct_state_trans_3
= {
3800 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns
,
3801 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
3802 .ev_qualifiers
= NONE
,
3803 .ev_actions
= llc_await_rejct_actions_3
,
3806 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1 event */
3807 static 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
,
3819 static struct llc_conn_state_trans llc_await_rejct_state_trans_4
= {
3820 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_1
,
3821 .next_state
= LLC_CONN_STATE_NORMAL
,
3822 .ev_qualifiers
= NONE
,
3823 .ev_actions
= llc_await_rejct_actions_4
,
3826 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 event */
3827 static 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
,
3837 static struct llc_conn_state_trans llc_await_rejct_state_trans_5a
= {
3838 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_0
,
3839 .next_state
= LLC_CONN_STATE_AWAIT
,
3840 .ev_qualifiers
= NONE
,
3841 .ev_actions
= llc_await_rejct_actions_5a
,
3844 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 event */
3845 static 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
,
3855 static struct llc_conn_state_trans llc_await_rejct_state_trans_5b
= {
3856 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_0
,
3857 .next_state
= LLC_CONN_STATE_AWAIT
,
3858 .ev_qualifiers
= NONE
,
3859 .ev_actions
= llc_await_rejct_actions_5b
,
3862 /* State transitions for LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 event */
3863 static 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
,
3873 static struct llc_conn_state_trans llc_await_rejct_state_trans_6
= {
3874 .ev
= llc_conn_ev_rx_i_cmd_pbit_set_1
,
3875 .next_state
= LLC_CONN_STATE_AWAIT
,
3876 .ev_qualifiers
= NONE
,
3877 .ev_actions
= llc_await_rejct_actions_6
,
3880 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 event */
3881 static 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
,
3890 static struct llc_conn_state_trans llc_await_rejct_state_trans_7a
= {
3891 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_1
,
3892 .next_state
= LLC_CONN_STATE_REJ
,
3893 .ev_qualifiers
= NONE
,
3894 .ev_actions
= llc_await_rejct_actions_7a
,
3897 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_1 event */
3898 static 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
,
3907 static struct llc_conn_state_trans llc_await_rejct_state_trans_7b
= {
3908 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_1
,
3909 .next_state
= LLC_CONN_STATE_REJ
,
3910 .ev_qualifiers
= NONE
,
3911 .ev_actions
= llc_await_rejct_actions_7b
,
3914 /* State transitions for LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns event */
3915 static 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
,
3924 static struct llc_conn_state_trans llc_await_rejct_state_trans_7c
= {
3925 .ev
= llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns
,
3926 .next_state
= LLC_CONN_STATE_REJ
,
3927 .ev_qualifiers
= NONE
,
3928 .ev_actions
= llc_await_rejct_actions_7c
,
3931 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 event */
3932 static 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
,
3939 static struct llc_conn_state_trans llc_await_rejct_state_trans_8a
= {
3940 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_0
,
3941 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
3942 .ev_qualifiers
= NONE
,
3943 .ev_actions
= llc_await_rejct_actions_8a
,
3946 /* State transitions for LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 event */
3947 static 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
,
3954 static struct llc_conn_state_trans llc_await_rejct_state_trans_8b
= {
3955 .ev
= llc_conn_ev_rx_rr_rsp_fbit_set_0
,
3956 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
3957 .ev_qualifiers
= NONE
,
3958 .ev_actions
= llc_await_rejct_actions_8b
,
3961 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 event */
3962 static 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
,
3969 static struct llc_conn_state_trans llc_await_rejct_state_trans_8c
= {
3970 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_0
,
3971 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
3972 .ev_qualifiers
= NONE
,
3973 .ev_actions
= llc_await_rejct_actions_8c
,
3976 /* State transitions for LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 event */
3977 static 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
,
3984 static struct llc_conn_state_trans llc_await_rejct_state_trans_8d
= {
3985 .ev
= llc_conn_ev_rx_rej_rsp_fbit_set_0
,
3986 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
3987 .ev_qualifiers
= NONE
,
3988 .ev_actions
= llc_await_rejct_actions_8d
,
3991 /* State transitions for LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 event */
3992 static 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
,
4000 static struct llc_conn_state_trans llc_await_rejct_state_trans_9a
= {
4001 .ev
= llc_conn_ev_rx_rr_cmd_pbit_set_1
,
4002 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
4003 .ev_qualifiers
= NONE
,
4004 .ev_actions
= llc_await_rejct_actions_9a
,
4007 /* State transitions for LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 event */
4008 static 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
,
4016 static struct llc_conn_state_trans llc_await_rejct_state_trans_9b
= {
4017 .ev
= llc_conn_ev_rx_rej_cmd_pbit_set_1
,
4018 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
4019 .ev_qualifiers
= NONE
,
4020 .ev_actions
= llc_await_rejct_actions_9b
,
4023 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 event */
4024 static 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
,
4032 static struct llc_conn_state_trans llc_await_rejct_state_trans_10
= {
4033 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_1
,
4034 .next_state
= LLC_CONN_STATE_REJ
,
4035 .ev_qualifiers
= NONE
,
4036 .ev_actions
= llc_await_rejct_actions_10
,
4039 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 event */
4040 static 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
,
4047 static struct llc_conn_state_trans llc_await_rejct_state_trans_11a
= {
4048 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_0
,
4049 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
4050 .ev_qualifiers
= NONE
,
4051 .ev_actions
= llc_await_rejct_actions_11a
,
4054 /* State transitions for LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 event */
4055 static 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
,
4062 static struct llc_conn_state_trans llc_await_rejct_state_trans_11b
= {
4063 .ev
= llc_conn_ev_rx_rnr_rsp_fbit_set_0
,
4064 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
4065 .ev_qualifiers
= NONE
,
4066 .ev_actions
= llc_await_rejct_actions_11b
,
4069 /* State transitions for LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 event */
4070 static 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
,
4078 static struct llc_conn_state_trans llc_await_rejct_state_trans_12
= {
4079 .ev
= llc_conn_ev_rx_rnr_cmd_pbit_set_1
,
4080 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
4081 .ev_qualifiers
= NONE
,
4082 .ev_actions
= llc_await_rejct_actions_12
,
4085 /* State transitions for LLC_CONN_EV_P_TMR_EXP event */
4086 static const llc_conn_ev_qfyr_t llc_await_rejct_ev_qfyrs_13
[] = {
4087 [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2
,
4091 static 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
,
4098 static struct llc_conn_state_trans llc_await_rejct_state_trans_13
= {
4099 .ev
= llc_conn_ev_p_tmr_exp
,
4100 .next_state
= LLC_CONN_STATE_AWAIT_REJ
,
4101 .ev_qualifiers
= llc_await_rejct_ev_qfyrs_13
,
4102 .ev_actions
= llc_await_rejct_actions_13
,
4106 * Array of pointers;
4107 * one to each transition
4109 static struct llc_conn_state_trans
*llc_await_rejct_state_transitions
[] = {
4110 [0] = &llc_await_reject_state_trans_1_0
,
4111 [1] = &llc_common_state_trans_1
, /* requests */
4112 [2] = &llc_common_state_trans_2
,
4113 [3] = &llc_common_state_trans_end
,
4114 [4] = &llc_await_rejct_state_trans_1
, /* local busy */
4115 [5] = &llc_common_state_trans_end
,
4116 [6] = &llc_common_state_trans_end
, /* Initiate PF cycle */
4117 [7] = &llc_await_rejct_state_trans_13
, /* timers */
4118 [8] = &llc_common_state_trans_11a
,
4119 [9] = &llc_common_state_trans_11b
,
4120 [10] = &llc_common_state_trans_11c
,
4121 [11] = &llc_common_state_trans_11d
,
4122 [12] = &llc_common_state_trans_end
,
4123 [13] = &llc_await_rejct_state_trans_2a
, /* receive frames */
4124 [14] = &llc_await_rejct_state_trans_2b
,
4125 [15] = &llc_await_rejct_state_trans_3
,
4126 [16] = &llc_await_rejct_state_trans_4
,
4127 [17] = &llc_await_rejct_state_trans_5a
,
4128 [18] = &llc_await_rejct_state_trans_5b
,
4129 [19] = &llc_await_rejct_state_trans_6
,
4130 [20] = &llc_await_rejct_state_trans_7a
,
4131 [21] = &llc_await_rejct_state_trans_7b
,
4132 [22] = &llc_await_rejct_state_trans_7c
,
4133 [23] = &llc_await_rejct_state_trans_8a
,
4134 [24] = &llc_await_rejct_state_trans_8b
,
4135 [25] = &llc_await_rejct_state_trans_8c
,
4136 [26] = &llc_await_rejct_state_trans_8d
,
4137 [27] = &llc_await_rejct_state_trans_9a
,
4138 [28] = &llc_await_rejct_state_trans_9b
,
4139 [29] = &llc_await_rejct_state_trans_10
,
4140 [30] = &llc_await_rejct_state_trans_11a
,
4141 [31] = &llc_await_rejct_state_trans_11b
,
4142 [32] = &llc_await_rejct_state_trans_12
,
4143 [33] = &llc_common_state_trans_3
,
4144 [34] = &llc_common_state_trans_4
,
4145 [35] = &llc_common_state_trans_5
,
4146 [36] = &llc_common_state_trans_6
,
4147 [37] = &llc_common_state_trans_7a
,
4148 [38] = &llc_common_state_trans_7b
,
4149 [39] = &llc_common_state_trans_8a
,
4150 [40] = &llc_common_state_trans_8b
,
4151 [41] = &llc_common_state_trans_8c
,
4152 [42] = &llc_common_state_trans_9
,
4153 /* [43] = &llc_common_state_trans_10, */
4154 [43] = &llc_common_state_trans_end
,
4157 /* LLC_CONN_STATE_D_CONN transitions */
4158 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event,
4160 static 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
,
4166 static 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
,
4174 static struct llc_conn_state_trans llc_d_conn_state_trans_1
= {
4175 .ev
= llc_conn_ev_rx_sabme_cmd_pbit_set_x
,
4176 .next_state
= LLC_CONN_STATE_ADM
,
4177 .ev_qualifiers
= llc_d_conn_ev_qfyrs_1
,
4178 .ev_actions
= llc_d_conn_actions_1
,
4181 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event,
4184 static 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
,
4190 static 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
,
4197 static struct llc_conn_state_trans llc_d_conn_state_trans_1_1
= {
4198 .ev
= llc_conn_ev_rx_sabme_cmd_pbit_set_x
,
4199 .next_state
= LLC_CONN_STATE_ADM
,
4200 .ev_qualifiers
= llc_d_conn_ev_qfyrs_1_1
,
4201 .ev_actions
= llc_d_conn_actions_1_1
,
4204 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event,
4207 static 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
,
4214 static 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
,
4221 static struct llc_conn_state_trans llc_d_conn_state_trans_2
= {
4222 .ev
= llc_conn_ev_rx_ua_rsp_fbit_set_x
,
4223 .next_state
= LLC_CONN_STATE_ADM
,
4224 .ev_qualifiers
= llc_d_conn_ev_qfyrs_2
,
4225 .ev_actions
= llc_d_conn_actions_2
,
4228 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event,
4231 static 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
,
4238 static const llc_conn_action_t llc_d_conn_actions_2_1
[] = {
4239 [0] = llc_conn_ac_stop_ack_timer
,
4240 [1] = llc_conn_disc
,
4244 static struct llc_conn_state_trans llc_d_conn_state_trans_2_1
= {
4245 .ev
= llc_conn_ev_rx_ua_rsp_fbit_set_x
,
4246 .next_state
= LLC_CONN_STATE_ADM
,
4247 .ev_qualifiers
= llc_d_conn_ev_qfyrs_2_1
,
4248 .ev_actions
= llc_d_conn_actions_2_1
,
4251 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event */
4252 static const llc_conn_action_t llc_d_conn_actions_3
[] = {
4253 [0] = llc_conn_ac_send_ua_rsp_f_set_p
,
4257 static struct llc_conn_state_trans llc_d_conn_state_trans_3
= {
4258 .ev
= llc_conn_ev_rx_disc_cmd_pbit_set_x
,
4259 .next_state
= LLC_CONN_STATE_D_CONN
,
4260 .ev_qualifiers
= NONE
,
4261 .ev_actions
= llc_d_conn_actions_3
,
4264 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event,
4267 static 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
,
4273 static 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
,
4280 static struct llc_conn_state_trans llc_d_conn_state_trans_4
= {
4281 .ev
= llc_conn_ev_rx_dm_rsp_fbit_set_x
,
4282 .next_state
= LLC_CONN_STATE_ADM
,
4283 .ev_qualifiers
= llc_d_conn_ev_qfyrs_4
,
4284 .ev_actions
= llc_d_conn_actions_4
,
4287 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event,
4290 static 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
,
4296 static const llc_conn_action_t llc_d_conn_actions_4_1
[] = {
4297 [0] = llc_conn_ac_stop_ack_timer
,
4298 [1] = llc_conn_disc
,
4302 static struct llc_conn_state_trans llc_d_conn_state_trans_4_1
= {
4303 .ev
= llc_conn_ev_rx_dm_rsp_fbit_set_x
,
4304 .next_state
= LLC_CONN_STATE_ADM
,
4305 .ev_qualifiers
= llc_d_conn_ev_qfyrs_4_1
,
4306 .ev_actions
= llc_d_conn_actions_4_1
,
4310 * State transition for
4311 * LLC_CONN_EV_DATA_CONN_REQ event
4313 static const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_5
[] = {
4314 [0] = llc_conn_ev_qlfy_set_status_refuse
,
4318 /* just one member, NULL, .bss zeroes it */
4319 static const llc_conn_action_t llc_d_conn_actions_5
[1];
4321 static struct llc_conn_state_trans llc_d_conn_state_trans_5
= {
4322 .ev
= llc_conn_ev_data_req
,
4323 .next_state
= LLC_CONN_STATE_D_CONN
,
4324 .ev_qualifiers
= llc_d_conn_ev_qfyrs_5
,
4325 .ev_actions
= llc_d_conn_actions_5
,
4328 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4329 static const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_6
[] = {
4330 [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2
,
4334 static 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
,
4341 static struct llc_conn_state_trans llc_d_conn_state_trans_6
= {
4342 .ev
= llc_conn_ev_ack_tmr_exp
,
4343 .next_state
= LLC_CONN_STATE_D_CONN
,
4344 .ev_qualifiers
= llc_d_conn_ev_qfyrs_6
,
4345 .ev_actions
= llc_d_conn_actions_6
,
4348 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event, cause_flag = 1 */
4349 static 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
,
4356 static const llc_conn_action_t llc_d_conn_actions_7
[] = {
4357 [0] = llc_conn_ac_disc_confirm
,
4358 [1] = llc_conn_disc
,
4362 static struct llc_conn_state_trans llc_d_conn_state_trans_7
= {
4363 .ev
= llc_conn_ev_ack_tmr_exp
,
4364 .next_state
= LLC_CONN_STATE_ADM
,
4365 .ev_qualifiers
= llc_d_conn_ev_qfyrs_7
,
4366 .ev_actions
= llc_d_conn_actions_7
,
4369 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event, cause_flag = 0 */
4370 static 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
,
4377 static const llc_conn_action_t llc_d_conn_actions_8
[] = {
4378 [0] = llc_conn_disc
,
4382 static struct llc_conn_state_trans llc_d_conn_state_trans_8
= {
4383 .ev
= llc_conn_ev_ack_tmr_exp
,
4384 .next_state
= LLC_CONN_STATE_ADM
,
4385 .ev_qualifiers
= llc_d_conn_ev_qfyrs_8
,
4386 .ev_actions
= llc_d_conn_actions_8
,
4390 * Array of pointers;
4391 * one to each transition
4393 static struct llc_conn_state_trans
*llc_d_conn_state_transitions
[] = {
4394 [0] = &llc_d_conn_state_trans_5
, /* Request */
4395 [1] = &llc_common_state_trans_end
,
4396 [2] = &llc_common_state_trans_end
, /* Local busy */
4397 [3] = &llc_common_state_trans_end
, /* Initiate PF cycle */
4398 [4] = &llc_d_conn_state_trans_6
, /* Timer */
4399 [5] = &llc_d_conn_state_trans_7
,
4400 [6] = &llc_d_conn_state_trans_8
,
4401 [7] = &llc_common_state_trans_end
,
4402 [8] = &llc_d_conn_state_trans_1
, /* Receive frame */
4403 [9] = &llc_d_conn_state_trans_1_1
,
4404 [10] = &llc_d_conn_state_trans_2
,
4405 [11] = &llc_d_conn_state_trans_2_1
,
4406 [12] = &llc_d_conn_state_trans_3
,
4407 [13] = &llc_d_conn_state_trans_4
,
4408 [14] = &llc_d_conn_state_trans_4_1
,
4409 [15] = &llc_common_state_trans_end
,
4412 /* LLC_CONN_STATE_RESET transitions */
4413 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
4414 static 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
,
4422 static struct llc_conn_state_trans llc_rst_state_trans_1
= {
4423 .ev
= llc_conn_ev_rx_sabme_cmd_pbit_set_x
,
4424 .next_state
= LLC_CONN_STATE_RESET
,
4425 .ev_qualifiers
= NONE
,
4426 .ev_actions
= llc_rst_actions_1
,
4429 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event,
4432 static 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
,
4439 static 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
,
4450 static struct llc_conn_state_trans llc_rst_state_trans_2
= {
4451 .ev
= llc_conn_ev_rx_ua_rsp_fbit_set_x
,
4452 .next_state
= LLC_CONN_STATE_NORMAL
,
4453 .ev_qualifiers
= llc_rst_ev_qfyrs_2
,
4454 .ev_actions
= llc_rst_actions_2
,
4457 /* State transitions for LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X event,
4460 static 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
,
4467 static 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
,
4478 static struct llc_conn_state_trans llc_rst_state_trans_2_1
= {
4479 .ev
= llc_conn_ev_rx_ua_rsp_fbit_set_x
,
4480 .next_state
= LLC_CONN_STATE_NORMAL
,
4481 .ev_qualifiers
= llc_rst_ev_qfyrs_2_1
,
4482 .ev_actions
= llc_rst_actions_2_1
,
4485 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4486 static 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
,
4492 static 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
,
4498 static struct llc_conn_state_trans llc_rst_state_trans_3
= {
4499 .ev
= llc_conn_ev_ack_tmr_exp
,
4500 .next_state
= LLC_CONN_STATE_NORMAL
,
4501 .ev_qualifiers
= llc_rst_ev_qfyrs_3
,
4502 .ev_actions
= llc_rst_actions_3
,
4505 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event,
4508 static 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
,
4513 static 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
,
4521 static struct llc_conn_state_trans llc_rst_state_trans_4
= {
4522 .ev
= llc_conn_ev_rx_disc_cmd_pbit_set_x
,
4523 .next_state
= LLC_CONN_STATE_ADM
,
4524 .ev_qualifiers
= llc_rst_ev_qfyrs_4
,
4525 .ev_actions
= llc_rst_actions_4
,
4528 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event,
4531 static 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
,
4537 static 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
,
4544 static struct llc_conn_state_trans llc_rst_state_trans_4_1
= {
4545 .ev
= llc_conn_ev_rx_disc_cmd_pbit_set_x
,
4546 .next_state
= LLC_CONN_STATE_ADM
,
4547 .ev_qualifiers
= llc_rst_ev_qfyrs_4_1
,
4548 .ev_actions
= llc_rst_actions_4_1
,
4551 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event,
4554 static 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
,
4560 static 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
,
4567 static struct llc_conn_state_trans llc_rst_state_trans_5
= {
4568 .ev
= llc_conn_ev_rx_dm_rsp_fbit_set_x
,
4569 .next_state
= LLC_CONN_STATE_ADM
,
4570 .ev_qualifiers
= llc_rst_ev_qfyrs_5
,
4571 .ev_actions
= llc_rst_actions_5
,
4574 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event,
4577 static 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
,
4583 static const llc_conn_action_t llc_rst_actions_5_1
[] = {
4584 [0] = llc_conn_ac_stop_ack_timer
,
4585 [1] = llc_conn_disc
,
4589 static struct llc_conn_state_trans llc_rst_state_trans_5_1
= {
4590 .ev
= llc_conn_ev_rx_dm_rsp_fbit_set_x
,
4591 .next_state
= LLC_CONN_STATE_ADM
,
4592 .ev_qualifiers
= llc_rst_ev_qfyrs_5_1
,
4593 .ev_actions
= llc_rst_actions_5_1
,
4596 /* State transitions for DATA_CONN_REQ event */
4597 static const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_6
[] = {
4598 [0] = llc_conn_ev_qlfy_set_status_refuse
,
4602 /* just one member, NULL, .bss zeroes it */
4603 static const llc_conn_action_t llc_rst_actions_6
[1];
4605 static struct llc_conn_state_trans llc_rst_state_trans_6
= {
4606 .ev
= llc_conn_ev_data_req
,
4607 .next_state
= LLC_CONN_STATE_RESET
,
4608 .ev_qualifiers
= llc_rst_ev_qfyrs_6
,
4609 .ev_actions
= llc_rst_actions_6
,
4612 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4613 static 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
,
4619 static 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
,
4626 static struct llc_conn_state_trans llc_rst_state_trans_7
= {
4627 .ev
= llc_conn_ev_ack_tmr_exp
,
4628 .next_state
= LLC_CONN_STATE_RESET
,
4629 .ev_qualifiers
= llc_rst_ev_qfyrs_7
,
4630 .ev_actions
= llc_rst_actions_7
,
4633 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4634 static 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
,
4641 static const llc_conn_action_t llc_rst_actions_8
[] = {
4642 [0] = llc_conn_ac_disc_ind
,
4643 [1] = llc_conn_disc
,
4647 static struct llc_conn_state_trans llc_rst_state_trans_8
= {
4648 .ev
= llc_conn_ev_ack_tmr_exp
,
4649 .next_state
= LLC_CONN_STATE_ADM
,
4650 .ev_qualifiers
= llc_rst_ev_qfyrs_8
,
4651 .ev_actions
= llc_rst_actions_8
,
4654 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4655 static 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
,
4662 static const llc_conn_action_t llc_rst_actions_8_1
[] = {
4663 [0] = llc_conn_ac_disc_ind
,
4664 [1] = llc_conn_disc
,
4668 static struct llc_conn_state_trans llc_rst_state_trans_8_1
= {
4669 .ev
= llc_conn_ev_ack_tmr_exp
,
4670 .next_state
= LLC_CONN_STATE_ADM
,
4671 .ev_qualifiers
= llc_rst_ev_qfyrs_8_1
,
4672 .ev_actions
= llc_rst_actions_8_1
,
4676 * Array of pointers;
4677 * one to each transition
4679 static struct llc_conn_state_trans
*llc_rst_state_transitions
[] = {
4680 [0] = &llc_rst_state_trans_6
, /* Request */
4681 [1] = &llc_common_state_trans_end
,
4682 [2] = &llc_common_state_trans_end
, /* Local busy */
4683 [3] = &llc_common_state_trans_end
, /* Initiate PF cycle */
4684 [4] = &llc_rst_state_trans_3
, /* Timer */
4685 [5] = &llc_rst_state_trans_7
,
4686 [6] = &llc_rst_state_trans_8
,
4687 [7] = &llc_rst_state_trans_8_1
,
4688 [8] = &llc_common_state_trans_end
,
4689 [9] = &llc_rst_state_trans_1
, /* Receive frame */
4690 [10] = &llc_rst_state_trans_2
,
4691 [11] = &llc_rst_state_trans_2_1
,
4692 [12] = &llc_rst_state_trans_4
,
4693 [13] = &llc_rst_state_trans_4_1
,
4694 [14] = &llc_rst_state_trans_5
,
4695 [15] = &llc_rst_state_trans_5_1
,
4696 [16] = &llc_common_state_trans_end
,
4699 /* LLC_CONN_STATE_ERROR transitions */
4700 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
4701 static 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
,
4713 static struct llc_conn_state_trans llc_error_state_trans_1
= {
4714 .ev
= llc_conn_ev_rx_sabme_cmd_pbit_set_x
,
4715 .next_state
= LLC_CONN_STATE_NORMAL
,
4716 .ev_qualifiers
= NONE
,
4717 .ev_actions
= llc_error_actions_1
,
4720 /* State transitions for LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X event */
4721 static 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
,
4729 static struct llc_conn_state_trans llc_error_state_trans_2
= {
4730 .ev
= llc_conn_ev_rx_disc_cmd_pbit_set_x
,
4731 .next_state
= LLC_CONN_STATE_ADM
,
4732 .ev_qualifiers
= NONE
,
4733 .ev_actions
= llc_error_actions_2
,
4736 /* State transitions for LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X event */
4737 static 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
,
4744 static struct llc_conn_state_trans llc_error_state_trans_3
= {
4745 .ev
= llc_conn_ev_rx_dm_rsp_fbit_set_x
,
4746 .next_state
= LLC_CONN_STATE_ADM
,
4747 .ev_qualifiers
= NONE
,
4748 .ev_actions
= llc_error_actions_3
,
4751 /* State transitions for LLC_CONN_EV_RX_FRMR_RSP_Fbit_SET_X event */
4752 static 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
,
4760 static struct llc_conn_state_trans llc_error_state_trans_4
= {
4761 .ev
= llc_conn_ev_rx_frmr_rsp_fbit_set_x
,
4762 .next_state
= LLC_CONN_STATE_RESET
,
4763 .ev_qualifiers
= NONE
,
4764 .ev_actions
= llc_error_actions_4
,
4767 /* State transitions for LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_X event */
4768 static const llc_conn_action_t llc_error_actions_5
[] = {
4769 [0] = llc_conn_ac_resend_frmr_rsp_f_set_p
,
4773 static struct llc_conn_state_trans llc_error_state_trans_5
= {
4774 .ev
= llc_conn_ev_rx_xxx_cmd_pbit_set_x
,
4775 .next_state
= LLC_CONN_STATE_ERROR
,
4776 .ev_qualifiers
= NONE
,
4777 .ev_actions
= llc_error_actions_5
,
4780 /* State transitions for LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_X event */
4781 static struct llc_conn_state_trans llc_error_state_trans_6
= {
4782 .ev
= llc_conn_ev_rx_xxx_rsp_fbit_set_x
,
4783 .next_state
= LLC_CONN_STATE_ERROR
,
4784 .ev_qualifiers
= NONE
,
4788 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4789 static const llc_conn_ev_qfyr_t llc_error_ev_qfyrs_7
[] = {
4790 [0] = llc_conn_ev_qlfy_retry_cnt_lt_n2
,
4794 static 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
,
4801 static struct llc_conn_state_trans llc_error_state_trans_7
= {
4802 .ev
= llc_conn_ev_ack_tmr_exp
,
4803 .next_state
= LLC_CONN_STATE_ERROR
,
4804 .ev_qualifiers
= llc_error_ev_qfyrs_7
,
4805 .ev_actions
= llc_error_actions_7
,
4808 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4809 static const llc_conn_ev_qfyr_t llc_error_ev_qfyrs_8
[] = {
4810 [0] = llc_conn_ev_qlfy_retry_cnt_gte_n2
,
4814 static 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
,
4823 static struct llc_conn_state_trans llc_error_state_trans_8
= {
4824 .ev
= llc_conn_ev_ack_tmr_exp
,
4825 .next_state
= LLC_CONN_STATE_RESET
,
4826 .ev_qualifiers
= llc_error_ev_qfyrs_8
,
4827 .ev_actions
= llc_error_actions_8
,
4830 /* State transitions for LLC_CONN_EV_DATA_CONN_REQ event */
4831 static const llc_conn_ev_qfyr_t llc_error_ev_qfyrs_9
[] = {
4832 [0] = llc_conn_ev_qlfy_set_status_refuse
,
4836 /* just one member, NULL, .bss zeroes it */
4837 static const llc_conn_action_t llc_error_actions_9
[1];
4839 static struct llc_conn_state_trans llc_error_state_trans_9
= {
4840 .ev
= llc_conn_ev_data_req
,
4841 .next_state
= LLC_CONN_STATE_ERROR
,
4842 .ev_qualifiers
= llc_error_ev_qfyrs_9
,
4843 .ev_actions
= llc_error_actions_9
,
4847 * Array of pointers;
4848 * one to each transition
4850 static struct llc_conn_state_trans
*llc_error_state_transitions
[] = {
4851 [0] = &llc_error_state_trans_9
, /* Request */
4852 [1] = &llc_common_state_trans_end
,
4853 [2] = &llc_common_state_trans_end
, /* Local busy */
4854 [3] = &llc_common_state_trans_end
, /* Initiate PF cycle */
4855 [4] = &llc_error_state_trans_7
, /* Timer */
4856 [5] = &llc_error_state_trans_8
,
4857 [6] = &llc_common_state_trans_end
,
4858 [7] = &llc_error_state_trans_1
, /* Receive frame */
4859 [8] = &llc_error_state_trans_2
,
4860 [9] = &llc_error_state_trans_3
,
4861 [10] = &llc_error_state_trans_4
,
4862 [11] = &llc_error_state_trans_5
,
4863 [12] = &llc_error_state_trans_6
,
4864 [13] = &llc_common_state_trans_end
,
4867 /* LLC_CONN_STATE_TEMP transitions */
4868 /* State transitions for LLC_CONN_EV_DISC_REQ event */
4869 static 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
,
4876 static struct llc_conn_state_trans llc_temp_state_trans_1
= {
4877 .ev
= llc_conn_ev_disc_req
,
4878 .next_state
= LLC_CONN_STATE_ADM
,
4879 .ev_qualifiers
= NONE
,
4880 .ev_actions
= llc_temp_actions_1
,
4884 * Array of pointers;
4885 * one to each transition
4887 static struct llc_conn_state_trans
*llc_temp_state_transitions
[] = {
4888 [0] = &llc_temp_state_trans_1
, /* requests */
4889 [1] = &llc_common_state_trans_end
,
4890 [2] = &llc_common_state_trans_end
, /* local busy */
4891 [3] = &llc_common_state_trans_end
, /* init_pf_cycle */
4892 [4] = &llc_common_state_trans_end
, /* timer */
4893 [5] = &llc_common_state_trans_end
, /* receive */
4896 /* Connection State Transition Table */
4897 struct llc_conn_state llc_conn_state_table
[NBR_CONN_STATES
] = {
4898 [LLC_CONN_STATE_ADM
- 1] = {
4899 .current_state
= LLC_CONN_STATE_ADM
,
4900 .transitions
= llc_adm_state_transitions
,
4902 [LLC_CONN_STATE_SETUP
- 1] = {
4903 .current_state
= LLC_CONN_STATE_SETUP
,
4904 .transitions
= llc_setup_state_transitions
,
4906 [LLC_CONN_STATE_NORMAL
- 1] = {
4907 .current_state
= LLC_CONN_STATE_NORMAL
,
4908 .transitions
= llc_normal_state_transitions
,
4910 [LLC_CONN_STATE_BUSY
- 1] = {
4911 .current_state
= LLC_CONN_STATE_BUSY
,
4912 .transitions
= llc_busy_state_transitions
,
4914 [LLC_CONN_STATE_REJ
- 1] = {
4915 .current_state
= LLC_CONN_STATE_REJ
,
4916 .transitions
= llc_reject_state_transitions
,
4918 [LLC_CONN_STATE_AWAIT
- 1] = {
4919 .current_state
= LLC_CONN_STATE_AWAIT
,
4920 .transitions
= llc_await_state_transitions
,
4922 [LLC_CONN_STATE_AWAIT_BUSY
- 1] = {
4923 .current_state
= LLC_CONN_STATE_AWAIT_BUSY
,
4924 .transitions
= llc_await_busy_state_transitions
,
4926 [LLC_CONN_STATE_AWAIT_REJ
- 1] = {
4927 .current_state
= LLC_CONN_STATE_AWAIT_REJ
,
4928 .transitions
= llc_await_rejct_state_transitions
,
4930 [LLC_CONN_STATE_D_CONN
- 1] = {
4931 .current_state
= LLC_CONN_STATE_D_CONN
,
4932 .transitions
= llc_d_conn_state_transitions
,
4934 [LLC_CONN_STATE_RESET
- 1] = {
4935 .current_state
= LLC_CONN_STATE_RESET
,
4936 .transitions
= llc_rst_state_transitions
,
4938 [LLC_CONN_STATE_ERROR
- 1] = {
4939 .current_state
= LLC_CONN_STATE_ERROR
,
4940 .transitions
= llc_error_state_transitions
,
4942 [LLC_CONN_STATE_TEMP
- 1] = {
4943 .current_state
= LLC_CONN_STATE_TEMP
,
4944 .transitions
= llc_temp_state_transitions
,