OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [tags/] [linux-2.6/] [linux-2.6.24_or32_unified_v2.3/] [net/] [llc/] [llc_c_st.c] - Blame information for rev 18

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.