Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/net/llc/llc_c_st.c
26278 views
1
/*
2
* llc_c_st.c - This module contains state transition of connection component.
3
*
4
* Description of event functions and actions there is in 802.2 LLC standard,
5
* or in "llc_c_ac.c" and "llc_c_ev.c" modules.
6
*
7
* Copyright (c) 1997 by Procom Technology, Inc.
8
* 2001-2003 by Arnaldo Carvalho de Melo <[email protected]>
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 const llc_conn_action_t llc_common_actions_1[] = {
37
[0] = llc_conn_ac_send_disc_cmd_p_set_x,
38
[1] = llc_conn_ac_start_ack_timer,
39
[2] = llc_conn_ac_stop_other_timers,
40
[3] = llc_conn_ac_set_retry_cnt_0,
41
[4] = llc_conn_ac_set_cause_flag_1,
42
[5] = NULL,
43
};
44
45
static const 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 const llc_conn_action_t llc_common_actions_2[] = {
54
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
55
[1] = llc_conn_ac_start_ack_timer,
56
[2] = llc_conn_ac_stop_other_timers,
57
[3] = llc_conn_ac_set_retry_cnt_0,
58
[4] = llc_conn_ac_set_cause_flag_1,
59
[5] = NULL,
60
};
61
62
static const 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 const llc_conn_action_t llc_common_actions_3[] = {
71
[0] = llc_conn_ac_stop_all_timers,
72
[1] = llc_conn_ac_set_vs_0,
73
[2] = llc_conn_ac_set_vr_0,
74
[3] = llc_conn_ac_send_ua_rsp_f_set_p,
75
[4] = llc_conn_ac_rst_ind,
76
[5] = llc_conn_ac_set_p_flag_0,
77
[6] = llc_conn_ac_set_remote_busy_0,
78
[7] = llc_conn_reset,
79
[8] = NULL,
80
};
81
82
static const 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 const llc_conn_action_t llc_common_actions_4[] = {
91
[0] = llc_conn_ac_stop_all_timers,
92
[1] = llc_conn_ac_send_ua_rsp_f_set_p,
93
[2] = llc_conn_ac_disc_ind,
94
[3] = llc_conn_disc,
95
[4] = NULL,
96
};
97
98
static const 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 const llc_conn_action_t llc_common_actions_5[] = {
107
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
108
[1] = llc_conn_ac_start_ack_timer,
109
[2] = llc_conn_ac_stop_other_timers,
110
[3] = llc_conn_ac_set_retry_cnt_0,
111
[4] = llc_conn_ac_rst_ind,
112
[5] = llc_conn_ac_set_cause_flag_0,
113
[6] = llc_conn_reset,
114
[7] = NULL,
115
};
116
117
static const 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 const llc_conn_action_t llc_common_actions_6[] = {
126
[0] = llc_conn_ac_disc_ind,
127
[1] = llc_conn_ac_stop_all_timers,
128
[2] = llc_conn_disc,
129
[3] = NULL,
130
};
131
132
static const 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 const llc_conn_action_t llc_common_actions_7a[] = {
141
[0] = llc_conn_ac_send_frmr_rsp_f_set_x,
142
[1] = llc_conn_ac_start_ack_timer,
143
[2] = llc_conn_ac_stop_other_timers,
144
[3] = llc_conn_ac_set_retry_cnt_0,
145
[4] = NULL,
146
};
147
148
static const 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 const llc_conn_action_t llc_common_actions_7b[] = {
157
[0] = llc_conn_ac_send_frmr_rsp_f_set_x,
158
[1] = llc_conn_ac_start_ack_timer,
159
[2] = llc_conn_ac_stop_other_timers,
160
[3] = llc_conn_ac_set_retry_cnt_0,
161
[4] = NULL,
162
};
163
164
static const 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 const llc_conn_action_t llc_common_actions_8a[] = {
173
[0] = llc_conn_ac_send_frmr_rsp_f_set_x,
174
[1] = llc_conn_ac_start_ack_timer,
175
[2] = llc_conn_ac_stop_other_timers,
176
[3] = llc_conn_ac_set_retry_cnt_0,
177
[4] = NULL,
178
};
179
180
static const 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 const llc_conn_action_t llc_common_actions_8b[] = {
189
[0] = llc_conn_ac_send_frmr_rsp_f_set_x,
190
[1] = llc_conn_ac_start_ack_timer,
191
[2] = llc_conn_ac_stop_other_timers,
192
[3] = llc_conn_ac_set_retry_cnt_0,
193
[4] = NULL,
194
};
195
196
static const 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 const llc_conn_action_t llc_common_actions_8c[] = {
205
[0] = llc_conn_ac_send_frmr_rsp_f_set_x,
206
[1] = llc_conn_ac_start_ack_timer,
207
[2] = llc_conn_ac_stop_other_timers,
208
[3] = llc_conn_ac_set_retry_cnt_0,
209
[4] = NULL,
210
};
211
212
static const 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 const llc_conn_action_t llc_common_actions_9[] = {
221
[0] = llc_conn_ac_send_frmr_rsp_f_set_x,
222
[1] = llc_conn_ac_start_ack_timer,
223
[2] = llc_conn_ac_stop_other_timers,
224
[3] = llc_conn_ac_set_retry_cnt_0,
225
[4] = NULL,
226
};
227
228
static const 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 const llc_conn_ev_qfyr_t llc_common_ev_qfyrs_10[] = {
238
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
239
[1] = NULL,
240
};
241
242
static const llc_conn_action_t llc_common_actions_10[] = {
243
[0] = llc_conn_ac_send_frmr_rsp_f_set_x,
244
[1] = llc_conn_ac_start_ack_timer,
245
[2] = llc_conn_ac_stop_other_timers,
246
[3] = llc_conn_ac_set_retry_cnt_0,
247
[4] = NULL,
248
};
249
250
static const 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 const llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11a[] = {
260
[0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
261
[1] = NULL,
262
};
263
264
static const llc_conn_action_t llc_common_actions_11a[] = {
265
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
266
[1] = llc_conn_ac_start_ack_timer,
267
[2] = llc_conn_ac_stop_other_timers,
268
[3] = llc_conn_ac_set_retry_cnt_0,
269
[4] = llc_conn_ac_set_cause_flag_0,
270
[5] = NULL,
271
};
272
273
static const 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 const llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11b[] = {
282
[0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
283
[1] = NULL,
284
};
285
286
static const llc_conn_action_t llc_common_actions_11b[] = {
287
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
288
[1] = llc_conn_ac_start_ack_timer,
289
[2] = llc_conn_ac_stop_other_timers,
290
[3] = llc_conn_ac_set_retry_cnt_0,
291
[4] = llc_conn_ac_set_cause_flag_0,
292
[5] = NULL,
293
};
294
295
static const 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 const llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11c[] = {
304
[0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
305
[1] = NULL,
306
};
307
308
static const llc_conn_action_t llc_common_actions_11c[] = {
309
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
310
[1] = llc_conn_ac_start_ack_timer,
311
[2] = llc_conn_ac_stop_other_timers,
312
[3] = llc_conn_ac_set_retry_cnt_0,
313
[4] = llc_conn_ac_set_cause_flag_0,
314
[5] = NULL,
315
};
316
317
static const 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 const llc_conn_ev_qfyr_t llc_common_ev_qfyrs_11d[] = {
326
[0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
327
[1] = NULL,
328
};
329
330
static const llc_conn_action_t llc_common_actions_11d[] = {
331
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
332
[1] = llc_conn_ac_start_ack_timer,
333
[2] = llc_conn_ac_stop_other_timers,
334
[3] = llc_conn_ac_set_retry_cnt_0,
335
[4] = llc_conn_ac_set_cause_flag_0,
336
[5] = NULL,
337
};
338
339
static const 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 const 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 const llc_conn_action_t llc_adm_actions_1[] = {
355
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
356
[1] = llc_conn_ac_start_ack_timer,
357
[2] = llc_conn_ac_set_retry_cnt_0,
358
[3] = llc_conn_ac_set_s_flag_0,
359
[4] = NULL,
360
};
361
362
static const 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 const llc_conn_action_t llc_adm_actions_2[] = {
371
[0] = llc_conn_ac_send_ua_rsp_f_set_p,
372
[1] = llc_conn_ac_set_vs_0,
373
[2] = llc_conn_ac_set_vr_0,
374
[3] = llc_conn_ac_set_retry_cnt_0,
375
[4] = llc_conn_ac_set_p_flag_0,
376
[5] = llc_conn_ac_set_remote_busy_0,
377
[6] = llc_conn_ac_conn_ind,
378
[7] = NULL,
379
};
380
381
static const 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 const llc_conn_action_t llc_adm_actions_3[] = {
390
[0] = llc_conn_ac_send_dm_rsp_f_set_p,
391
[1] = llc_conn_disc,
392
[2] = NULL,
393
};
394
395
static const 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 const llc_conn_action_t llc_adm_actions_4[] = {
404
[0] = llc_conn_ac_send_dm_rsp_f_set_1,
405
[1] = llc_conn_disc,
406
[2] = NULL,
407
};
408
409
static const 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 const llc_conn_action_t llc_adm_actions_5[] = {
418
[0] = llc_conn_disc,
419
[1] = NULL,
420
};
421
422
static const 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 const 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 const llc_conn_action_t llc_setup_actions_1[] = {
449
[0] = llc_conn_ac_send_ua_rsp_f_set_p,
450
[1] = llc_conn_ac_set_vs_0,
451
[2] = llc_conn_ac_set_vr_0,
452
[3] = llc_conn_ac_set_s_flag_1,
453
[4] = NULL,
454
};
455
456
static const 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 const llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_2[] = {
465
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
466
[1] = llc_conn_ev_qlfy_set_status_conn,
467
[2] = NULL,
468
};
469
470
static const llc_conn_action_t llc_setup_actions_2[] = {
471
[0] = llc_conn_ac_stop_ack_timer,
472
[1] = llc_conn_ac_set_vs_0,
473
[2] = llc_conn_ac_set_vr_0,
474
[3] = llc_conn_ac_upd_p_flag,
475
[4] = llc_conn_ac_set_remote_busy_0,
476
[5] = llc_conn_ac_conn_confirm,
477
[6] = NULL,
478
};
479
480
static const 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 const llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_3[] = {
489
[0] = llc_conn_ev_qlfy_s_flag_eq_1,
490
[1] = llc_conn_ev_qlfy_set_status_conn,
491
[2] = NULL,
492
};
493
494
static const llc_conn_action_t llc_setup_actions_3[] = {
495
[0] = llc_conn_ac_set_p_flag_0,
496
[1] = llc_conn_ac_set_remote_busy_0,
497
[2] = llc_conn_ac_conn_confirm,
498
[3] = NULL,
499
};
500
501
static const 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 const llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_4[] = {
510
[0] = llc_conn_ev_qlfy_set_status_disc,
511
[1] = NULL,
512
};
513
514
static const llc_conn_action_t llc_setup_actions_4[] = {
515
[0] = llc_conn_ac_send_dm_rsp_f_set_p,
516
[1] = llc_conn_ac_stop_ack_timer,
517
[2] = llc_conn_ac_conn_confirm,
518
[3] = llc_conn_disc,
519
[4] = NULL,
520
};
521
522
static const 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 const llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_5[] = {
531
[0] = llc_conn_ev_qlfy_set_status_disc,
532
[1] = NULL,
533
};
534
535
static const llc_conn_action_t llc_setup_actions_5[] = {
536
[0] = llc_conn_ac_stop_ack_timer,
537
[1] = llc_conn_ac_conn_confirm,
538
[2] = llc_conn_disc,
539
[3] = NULL,
540
};
541
542
static const 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 const llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_7[] = {
551
[0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
552
[1] = llc_conn_ev_qlfy_s_flag_eq_0,
553
[2] = NULL,
554
};
555
556
static const llc_conn_action_t llc_setup_actions_7[] = {
557
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
558
[1] = llc_conn_ac_start_ack_timer,
559
[2] = llc_conn_ac_inc_retry_cnt_by_1,
560
[3] = NULL,
561
};
562
563
static const 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 const llc_conn_ev_qfyr_t llc_setup_ev_qfyrs_8[] = {
572
[0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
573
[1] = llc_conn_ev_qlfy_s_flag_eq_0,
574
[2] = llc_conn_ev_qlfy_set_status_failed,
575
[3] = NULL,
576
};
577
578
static const llc_conn_action_t llc_setup_actions_8[] = {
579
[0] = llc_conn_ac_conn_confirm,
580
[1] = llc_conn_disc,
581
[2] = NULL,
582
};
583
584
static const 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 const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_1[] = {
613
[0] = llc_conn_ev_qlfy_remote_busy_eq_0,
614
[1] = llc_conn_ev_qlfy_p_flag_eq_0,
615
[2] = llc_conn_ev_qlfy_last_frame_eq_0,
616
[3] = NULL,
617
};
618
619
static const llc_conn_action_t llc_normal_actions_1[] = {
620
[0] = llc_conn_ac_send_i_as_ack,
621
[1] = llc_conn_ac_start_ack_tmr_if_not_running,
622
[2] = NULL,
623
};
624
625
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_2[] = {
634
[0] = llc_conn_ev_qlfy_remote_busy_eq_0,
635
[1] = llc_conn_ev_qlfy_p_flag_eq_0,
636
[2] = llc_conn_ev_qlfy_last_frame_eq_1,
637
[3] = NULL,
638
};
639
640
static const llc_conn_action_t llc_normal_actions_2[] = {
641
[0] = llc_conn_ac_send_i_cmd_p_set_1,
642
[1] = llc_conn_ac_start_p_timer,
643
[2] = NULL,
644
};
645
646
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_2_1[] = {
655
[0] = llc_conn_ev_qlfy_remote_busy_eq_1,
656
[1] = llc_conn_ev_qlfy_set_status_remote_busy,
657
[2] = NULL,
658
};
659
660
/* just one member, NULL, .bss zeroes it */
661
static const llc_conn_action_t llc_normal_actions_2_1[1];
662
663
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_3[] = {
672
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
673
[1] = NULL,
674
};
675
676
static const llc_conn_action_t llc_normal_actions_3[] = {
677
[0] = llc_conn_ac_rst_sendack_flag,
678
[1] = llc_conn_ac_send_rnr_xxx_x_set_0,
679
[2] = llc_conn_ac_set_data_flag_0,
680
[3] = NULL,
681
};
682
683
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_4[] = {
692
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
693
[1] = NULL,
694
};
695
696
static const llc_conn_action_t llc_normal_actions_4[] = {
697
[0] = llc_conn_ac_rst_sendack_flag,
698
[1] = llc_conn_ac_send_rnr_xxx_x_set_0,
699
[2] = llc_conn_ac_set_data_flag_0,
700
[3] = NULL,
701
};
702
703
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_5a[] = {
712
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
713
[1] = NULL,
714
};
715
716
static const llc_conn_action_t llc_normal_actions_5a[] = {
717
[0] = llc_conn_ac_rst_sendack_flag,
718
[1] = llc_conn_ac_send_rej_xxx_x_set_0,
719
[2] = llc_conn_ac_upd_nr_received,
720
[3] = llc_conn_ac_upd_p_flag,
721
[4] = llc_conn_ac_start_rej_timer,
722
[5] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
723
[6] = NULL,
724
};
725
726
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_5b[] = {
735
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
736
[1] = NULL,
737
};
738
739
static const llc_conn_action_t llc_normal_actions_5b[] = {
740
[0] = llc_conn_ac_rst_sendack_flag,
741
[1] = llc_conn_ac_send_rej_xxx_x_set_0,
742
[2] = llc_conn_ac_upd_nr_received,
743
[3] = llc_conn_ac_upd_p_flag,
744
[4] = llc_conn_ac_start_rej_timer,
745
[5] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
746
[6] = NULL,
747
};
748
749
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_5c[] = {
758
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
759
[1] = NULL,
760
};
761
762
static const llc_conn_action_t llc_normal_actions_5c[] = {
763
[0] = llc_conn_ac_rst_sendack_flag,
764
[1] = llc_conn_ac_send_rej_xxx_x_set_0,
765
[2] = llc_conn_ac_upd_nr_received,
766
[3] = llc_conn_ac_upd_p_flag,
767
[4] = llc_conn_ac_start_rej_timer,
768
[5] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
769
[6] = NULL,
770
};
771
772
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_6a[] = {
781
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
782
[1] = NULL,
783
};
784
785
static const llc_conn_action_t llc_normal_actions_6a[] = {
786
[0] = llc_conn_ac_rst_sendack_flag,
787
[1] = llc_conn_ac_send_rej_xxx_x_set_0,
788
[2] = llc_conn_ac_upd_nr_received,
789
[3] = llc_conn_ac_start_rej_timer,
790
[4] = NULL,
791
};
792
793
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_6b[] = {
802
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
803
[1] = NULL,
804
};
805
806
static const llc_conn_action_t llc_normal_actions_6b[] = {
807
[0] = llc_conn_ac_rst_sendack_flag,
808
[1] = llc_conn_ac_send_rej_xxx_x_set_0,
809
[2] = llc_conn_ac_upd_nr_received,
810
[3] = llc_conn_ac_start_rej_timer,
811
[4] = NULL,
812
};
813
814
static const 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 const llc_conn_action_t llc_normal_actions_7[] = {
823
[0] = llc_conn_ac_rst_sendack_flag,
824
[1] = llc_conn_ac_send_rej_rsp_f_set_1,
825
[2] = llc_conn_ac_upd_nr_received,
826
[3] = llc_conn_ac_start_rej_timer,
827
[4] = NULL,
828
};
829
830
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_8a[] = {
839
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
840
[1] = NULL,
841
};
842
843
static const llc_conn_action_t llc_normal_actions_8[] = {
844
[0] = llc_conn_ac_inc_vr_by_1,
845
[1] = llc_conn_ac_data_ind,
846
[2] = llc_conn_ac_upd_p_flag,
847
[3] = llc_conn_ac_upd_nr_received,
848
[4] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
849
[5] = llc_conn_ac_send_ack_if_needed,
850
[6] = NULL,
851
};
852
853
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_8b[] = {
862
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
863
[1] = NULL,
864
};
865
866
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_9a[] = {
875
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
876
[1] = NULL,
877
};
878
879
static const llc_conn_action_t llc_normal_actions_9a[] = {
880
[0] = llc_conn_ac_inc_vr_by_1,
881
[1] = llc_conn_ac_upd_nr_received,
882
[2] = llc_conn_ac_data_ind,
883
[3] = llc_conn_ac_send_ack_if_needed,
884
[4] = NULL,
885
};
886
887
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_9b[] = {
896
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
897
[1] = NULL,
898
};
899
900
static const llc_conn_action_t llc_normal_actions_9b[] = {
901
[0] = llc_conn_ac_inc_vr_by_1,
902
[1] = llc_conn_ac_upd_nr_received,
903
[2] = llc_conn_ac_data_ind,
904
[3] = llc_conn_ac_send_ack_if_needed,
905
[4] = NULL,
906
};
907
908
static const 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 const llc_conn_action_t llc_normal_actions_10[] = {
917
[0] = llc_conn_ac_inc_vr_by_1,
918
[1] = llc_conn_ac_send_ack_rsp_f_set_1,
919
[2] = llc_conn_ac_rst_sendack_flag,
920
[3] = llc_conn_ac_upd_nr_received,
921
[4] = llc_conn_ac_data_ind,
922
[5] = NULL,
923
};
924
925
static const 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 const llc_conn_action_t llc_normal_actions_11a[] = {
934
[0] = llc_conn_ac_upd_p_flag,
935
[1] = llc_conn_ac_upd_nr_received,
936
[2] = llc_conn_ac_clear_remote_busy,
937
[3] = NULL,
938
};
939
940
static const 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 const llc_conn_action_t llc_normal_actions_11b[] = {
949
[0] = llc_conn_ac_upd_p_flag,
950
[1] = llc_conn_ac_upd_nr_received,
951
[2] = llc_conn_ac_clear_remote_busy,
952
[3] = NULL,
953
};
954
955
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_11c[] = {
964
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
965
[1] = NULL,
966
};
967
968
static const llc_conn_action_t llc_normal_actions_11c[] = {
969
[0] = llc_conn_ac_upd_p_flag,
970
[1] = llc_conn_ac_upd_nr_received,
971
[2] = llc_conn_ac_inc_tx_win_size,
972
[3] = llc_conn_ac_clear_remote_busy,
973
[4] = NULL,
974
};
975
976
static const 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 const llc_conn_action_t llc_normal_actions_12[] = {
985
[0] = llc_conn_ac_send_ack_rsp_f_set_1,
986
[1] = llc_conn_ac_upd_nr_received,
987
[2] = llc_conn_ac_adjust_npta_by_rr,
988
[3] = llc_conn_ac_rst_sendack_flag,
989
[4] = llc_conn_ac_clear_remote_busy,
990
[5] = NULL,
991
};
992
993
static const 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 const llc_conn_action_t llc_normal_actions_13a[] = {
1002
[0] = llc_conn_ac_upd_p_flag,
1003
[1] = llc_conn_ac_upd_nr_received,
1004
[2] = llc_conn_ac_set_remote_busy,
1005
[3] = NULL,
1006
};
1007
1008
static const 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 const llc_conn_action_t llc_normal_actions_13b[] = {
1017
[0] = llc_conn_ac_upd_p_flag,
1018
[1] = llc_conn_ac_upd_nr_received,
1019
[2] = llc_conn_ac_set_remote_busy,
1020
[3] = NULL,
1021
};
1022
1023
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_13c[] = {
1032
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1033
[1] = NULL,
1034
};
1035
1036
static const llc_conn_action_t llc_normal_actions_13c[] = {
1037
[0] = llc_conn_ac_upd_p_flag,
1038
[1] = llc_conn_ac_upd_nr_received,
1039
[2] = llc_conn_ac_set_remote_busy,
1040
[3] = NULL,
1041
};
1042
1043
static const 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 const llc_conn_action_t llc_normal_actions_14[] = {
1052
[0] = llc_conn_ac_send_rr_rsp_f_set_1,
1053
[1] = llc_conn_ac_upd_nr_received,
1054
[2] = llc_conn_ac_adjust_npta_by_rnr,
1055
[3] = llc_conn_ac_rst_sendack_flag,
1056
[4] = llc_conn_ac_set_remote_busy,
1057
[5] = NULL,
1058
};
1059
1060
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_15a[] = {
1069
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
1070
[1] = NULL,
1071
};
1072
1073
static const llc_conn_action_t llc_normal_actions_15a[] = {
1074
[0] = llc_conn_ac_set_vs_nr,
1075
[1] = llc_conn_ac_upd_nr_received,
1076
[2] = llc_conn_ac_upd_p_flag,
1077
[3] = llc_conn_ac_dec_tx_win_size,
1078
[4] = llc_conn_ac_resend_i_xxx_x_set_0,
1079
[5] = llc_conn_ac_clear_remote_busy,
1080
[6] = NULL,
1081
};
1082
1083
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_15b[] = {
1092
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
1093
[1] = NULL,
1094
};
1095
1096
static const llc_conn_action_t llc_normal_actions_15b[] = {
1097
[0] = llc_conn_ac_set_vs_nr,
1098
[1] = llc_conn_ac_upd_nr_received,
1099
[2] = llc_conn_ac_upd_p_flag,
1100
[3] = llc_conn_ac_dec_tx_win_size,
1101
[4] = llc_conn_ac_resend_i_xxx_x_set_0,
1102
[5] = llc_conn_ac_clear_remote_busy,
1103
[6] = NULL,
1104
};
1105
1106
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_16a[] = {
1115
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1116
[1] = NULL,
1117
};
1118
1119
static const llc_conn_action_t llc_normal_actions_16a[] = {
1120
[0] = llc_conn_ac_set_vs_nr,
1121
[1] = llc_conn_ac_upd_nr_received,
1122
[2] = llc_conn_ac_dec_tx_win_size,
1123
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
1124
[4] = llc_conn_ac_clear_remote_busy,
1125
[5] = NULL,
1126
};
1127
1128
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_16b[] = {
1137
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1138
[1] = NULL,
1139
};
1140
1141
static const llc_conn_action_t llc_normal_actions_16b[] = {
1142
[0] = llc_conn_ac_set_vs_nr,
1143
[1] = llc_conn_ac_upd_nr_received,
1144
[2] = llc_conn_ac_dec_tx_win_size,
1145
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
1146
[4] = llc_conn_ac_clear_remote_busy,
1147
[5] = NULL,
1148
};
1149
1150
static const 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 const llc_conn_action_t llc_normal_actions_17[] = {
1159
[0] = llc_conn_ac_set_vs_nr,
1160
[1] = llc_conn_ac_upd_nr_received,
1161
[2] = llc_conn_ac_dec_tx_win_size,
1162
[3] = llc_conn_ac_resend_i_rsp_f_set_1,
1163
[4] = llc_conn_ac_clear_remote_busy,
1164
[5] = NULL,
1165
};
1166
1167
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_18[] = {
1176
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
1177
[1] = NULL,
1178
};
1179
1180
static const llc_conn_action_t llc_normal_actions_18[] = {
1181
[0] = llc_conn_ac_send_rr_cmd_p_set_1,
1182
[1] = llc_conn_ac_start_p_timer,
1183
[2] = NULL,
1184
};
1185
1186
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_19[] = {
1195
[0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
1196
[1] = NULL,
1197
};
1198
1199
static const llc_conn_action_t llc_normal_actions_19[] = {
1200
[0] = llc_conn_ac_rst_sendack_flag,
1201
[1] = llc_conn_ac_send_rr_cmd_p_set_1,
1202
[2] = llc_conn_ac_rst_vs,
1203
[3] = llc_conn_ac_start_p_timer,
1204
[4] = llc_conn_ac_inc_retry_cnt_by_1,
1205
[5] = NULL,
1206
};
1207
1208
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_20a[] = {
1217
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
1218
[1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
1219
[2] = NULL,
1220
};
1221
1222
static const llc_conn_action_t llc_normal_actions_20a[] = {
1223
[0] = llc_conn_ac_rst_sendack_flag,
1224
[1] = llc_conn_ac_send_rr_cmd_p_set_1,
1225
[2] = llc_conn_ac_rst_vs,
1226
[3] = llc_conn_ac_start_p_timer,
1227
[4] = llc_conn_ac_inc_retry_cnt_by_1,
1228
[5] = NULL,
1229
};
1230
1231
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_20b[] = {
1240
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
1241
[1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
1242
[2] = NULL,
1243
};
1244
1245
static const llc_conn_action_t llc_normal_actions_20b[] = {
1246
[0] = llc_conn_ac_rst_sendack_flag,
1247
[1] = llc_conn_ac_send_rr_cmd_p_set_1,
1248
[2] = llc_conn_ac_rst_vs,
1249
[3] = llc_conn_ac_start_p_timer,
1250
[4] = llc_conn_ac_inc_retry_cnt_by_1,
1251
[5] = NULL,
1252
};
1253
1254
static const 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 const llc_conn_ev_qfyr_t llc_normal_ev_qfyrs_21[] = {
1263
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
1264
[1] = NULL,
1265
};
1266
1267
static const llc_conn_action_t llc_normal_actions_21[] = {
1268
[0] = llc_conn_ac_send_rr_cmd_p_set_1,
1269
[1] = llc_conn_ac_start_p_timer,
1270
[2] = NULL,
1271
};
1272
1273
static const 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 const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_1[] = {
1346
[0] = llc_conn_ev_qlfy_remote_busy_eq_0,
1347
[1] = llc_conn_ev_qlfy_p_flag_eq_0,
1348
[2] = NULL,
1349
};
1350
1351
static const llc_conn_action_t llc_busy_actions_1[] = {
1352
[0] = llc_conn_ac_send_i_xxx_x_set_0,
1353
[1] = llc_conn_ac_start_ack_tmr_if_not_running,
1354
[2] = NULL,
1355
};
1356
1357
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_2[] = {
1366
[0] = llc_conn_ev_qlfy_remote_busy_eq_0,
1367
[1] = llc_conn_ev_qlfy_p_flag_eq_1,
1368
[2] = NULL,
1369
};
1370
1371
static const llc_conn_action_t llc_busy_actions_2[] = {
1372
[0] = llc_conn_ac_send_i_xxx_x_set_0,
1373
[1] = llc_conn_ac_start_ack_tmr_if_not_running,
1374
[2] = NULL,
1375
};
1376
1377
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_2_1[] = {
1386
[0] = llc_conn_ev_qlfy_remote_busy_eq_1,
1387
[1] = llc_conn_ev_qlfy_set_status_remote_busy,
1388
[2] = NULL,
1389
};
1390
1391
/* just one member, NULL, .bss zeroes it */
1392
static const llc_conn_action_t llc_busy_actions_2_1[1];
1393
1394
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_3[] = {
1403
[0] = llc_conn_ev_qlfy_data_flag_eq_1,
1404
[1] = llc_conn_ev_qlfy_p_flag_eq_0,
1405
[2] = NULL,
1406
};
1407
1408
static const llc_conn_action_t llc_busy_actions_3[] = {
1409
[0] = llc_conn_ac_send_rej_xxx_x_set_0,
1410
[1] = llc_conn_ac_start_rej_timer,
1411
[2] = NULL,
1412
};
1413
1414
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_4[] = {
1423
[0] = llc_conn_ev_qlfy_data_flag_eq_1,
1424
[1] = llc_conn_ev_qlfy_p_flag_eq_1,
1425
[2] = NULL,
1426
};
1427
1428
static const llc_conn_action_t llc_busy_actions_4[] = {
1429
[0] = llc_conn_ac_send_rej_xxx_x_set_0,
1430
[1] = llc_conn_ac_start_rej_timer,
1431
[2] = NULL,
1432
};
1433
1434
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_5[] = {
1443
[0] = llc_conn_ev_qlfy_data_flag_eq_0,
1444
[1] = llc_conn_ev_qlfy_p_flag_eq_0,
1445
[2] = NULL,
1446
};
1447
1448
static const llc_conn_action_t llc_busy_actions_5[] = {
1449
[0] = llc_conn_ac_send_rr_xxx_x_set_0,
1450
[1] = NULL,
1451
};
1452
1453
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_6[] = {
1462
[0] = llc_conn_ev_qlfy_data_flag_eq_0,
1463
[1] = llc_conn_ev_qlfy_p_flag_eq_1,
1464
[2] = NULL,
1465
};
1466
1467
static const llc_conn_action_t llc_busy_actions_6[] = {
1468
[0] = llc_conn_ac_send_rr_xxx_x_set_0,
1469
[1] = NULL,
1470
};
1471
1472
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_7[] = {
1481
[0] = llc_conn_ev_qlfy_data_flag_eq_2,
1482
[1] = llc_conn_ev_qlfy_p_flag_eq_0,
1483
[2] = NULL,
1484
};
1485
1486
static const llc_conn_action_t llc_busy_actions_7[] = {
1487
[0] = llc_conn_ac_send_rr_xxx_x_set_0,
1488
[1] = NULL,
1489
};
1490
1491
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_8[] = {
1500
[0] = llc_conn_ev_qlfy_data_flag_eq_2,
1501
[1] = llc_conn_ev_qlfy_p_flag_eq_1,
1502
[2] = NULL,
1503
};
1504
1505
static const llc_conn_action_t llc_busy_actions_8[] = {
1506
[0] = llc_conn_ac_send_rr_xxx_x_set_0,
1507
[1] = NULL,
1508
};
1509
1510
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_9a[] = {
1519
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
1520
[1] = NULL,
1521
};
1522
1523
static const llc_conn_action_t llc_busy_actions_9a[] = {
1524
[0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1525
[1] = llc_conn_ac_upd_p_flag,
1526
[2] = llc_conn_ac_upd_nr_received,
1527
[3] = llc_conn_ac_set_data_flag_1_if_data_flag_eq_0,
1528
[4] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
1529
[5] = NULL,
1530
};
1531
1532
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_9b[] = {
1541
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
1542
[1] = NULL,
1543
};
1544
1545
static const llc_conn_action_t llc_busy_actions_9b[] = {
1546
[0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1547
[1] = llc_conn_ac_upd_p_flag,
1548
[2] = llc_conn_ac_upd_nr_received,
1549
[3] = llc_conn_ac_set_data_flag_1_if_data_flag_eq_0,
1550
[4] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
1551
[5] = NULL,
1552
};
1553
1554
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_10a[] = {
1563
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1564
[1] = NULL,
1565
};
1566
1567
static const llc_conn_action_t llc_busy_actions_10a[] = {
1568
[0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1569
[1] = llc_conn_ac_upd_nr_received,
1570
[2] = llc_conn_ac_set_data_flag_1_if_data_flag_eq_0,
1571
[3] = NULL,
1572
};
1573
1574
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_10b[] = {
1583
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1584
[1] = NULL,
1585
};
1586
1587
static const llc_conn_action_t llc_busy_actions_10b[] = {
1588
[0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1589
[1] = llc_conn_ac_upd_nr_received,
1590
[2] = llc_conn_ac_set_data_flag_1_if_data_flag_eq_0,
1591
[3] = NULL,
1592
};
1593
1594
static const 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 const llc_conn_action_t llc_busy_actions_11[] = {
1603
[0] = llc_conn_ac_send_rnr_rsp_f_set_1,
1604
[1] = llc_conn_ac_upd_nr_received,
1605
[2] = llc_conn_ac_set_data_flag_1_if_data_flag_eq_0,
1606
[3] = NULL,
1607
};
1608
1609
static const 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 const llc_conn_action_t llc_busy_actions_12[] = {
1618
[0] = llc_conn_ac_inc_vr_by_1,
1619
[1] = llc_conn_ac_data_ind,
1620
[2] = llc_conn_ac_send_rnr_rsp_f_set_1,
1621
[3] = llc_conn_ac_upd_nr_received,
1622
[4] = llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2,
1623
[5] = llc_conn_ac_set_data_flag_0,
1624
[6] = NULL,
1625
};
1626
1627
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_13a[] = {
1636
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
1637
[1] = NULL,
1638
};
1639
1640
static const llc_conn_action_t llc_busy_actions_13a[] = {
1641
[0] = llc_conn_ac_inc_vr_by_1,
1642
[1] = llc_conn_ac_data_ind,
1643
[2] = llc_conn_ac_upd_p_flag,
1644
[3] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1645
[4] = llc_conn_ac_upd_nr_received,
1646
[5] = llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2,
1647
[6] = llc_conn_ac_set_data_flag_0,
1648
[7] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
1649
[8] = NULL,
1650
};
1651
1652
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_13b[] = {
1661
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
1662
[1] = NULL,
1663
};
1664
1665
static const llc_conn_action_t llc_busy_actions_13b[] = {
1666
[0] = llc_conn_ac_inc_vr_by_1,
1667
[1] = llc_conn_ac_data_ind,
1668
[2] = llc_conn_ac_upd_p_flag,
1669
[3] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1670
[4] = llc_conn_ac_upd_nr_received,
1671
[5] = llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2,
1672
[6] = llc_conn_ac_set_data_flag_0,
1673
[7] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
1674
[8] = NULL,
1675
};
1676
1677
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_14a[] = {
1686
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1687
[1] = NULL,
1688
};
1689
1690
static const llc_conn_action_t llc_busy_actions_14a[] = {
1691
[0] = llc_conn_ac_inc_vr_by_1,
1692
[1] = llc_conn_ac_data_ind,
1693
[2] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1694
[3] = llc_conn_ac_upd_nr_received,
1695
[4] = llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2,
1696
[5] = llc_conn_ac_set_data_flag_0,
1697
[6] = NULL,
1698
};
1699
1700
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_14b[] = {
1709
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1710
[1] = NULL,
1711
};
1712
1713
static const llc_conn_action_t llc_busy_actions_14b[] = {
1714
[0] = llc_conn_ac_inc_vr_by_1,
1715
[1] = llc_conn_ac_data_ind,
1716
[2] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
1717
[3] = llc_conn_ac_upd_nr_received,
1718
[4] = llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2,
1719
[5] = llc_conn_ac_set_data_flag_0,
1720
[6] = NULL,
1721
};
1722
1723
static const 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 const llc_conn_action_t llc_busy_actions_15a[] = {
1732
[0] = llc_conn_ac_upd_p_flag,
1733
[1] = llc_conn_ac_upd_nr_received,
1734
[2] = llc_conn_ac_clear_remote_busy,
1735
[3] = NULL,
1736
};
1737
1738
static const 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 const llc_conn_action_t llc_busy_actions_15b[] = {
1747
[0] = llc_conn_ac_upd_p_flag,
1748
[1] = llc_conn_ac_upd_nr_received,
1749
[2] = llc_conn_ac_clear_remote_busy,
1750
[3] = NULL,
1751
};
1752
1753
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_15c[] = {
1762
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1763
[1] = NULL,
1764
};
1765
1766
static const llc_conn_action_t llc_busy_actions_15c[] = {
1767
[0] = llc_conn_ac_upd_p_flag,
1768
[1] = llc_conn_ac_upd_nr_received,
1769
[2] = llc_conn_ac_clear_remote_busy,
1770
[3] = NULL,
1771
};
1772
1773
static const 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 const llc_conn_action_t llc_busy_actions_16[] = {
1782
[0] = llc_conn_ac_send_rnr_rsp_f_set_1,
1783
[1] = llc_conn_ac_upd_nr_received,
1784
[2] = llc_conn_ac_clear_remote_busy,
1785
[3] = NULL,
1786
};
1787
1788
static const 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 const llc_conn_action_t llc_busy_actions_17a[] = {
1797
[0] = llc_conn_ac_upd_p_flag,
1798
[1] = llc_conn_ac_upd_nr_received,
1799
[2] = llc_conn_ac_set_remote_busy,
1800
[3] = NULL,
1801
};
1802
1803
static const 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 const llc_conn_action_t llc_busy_actions_17b[] = {
1812
[0] = llc_conn_ac_upd_p_flag,
1813
[1] = llc_conn_ac_upd_nr_received,
1814
[2] = llc_conn_ac_set_remote_busy,
1815
[3] = NULL,
1816
};
1817
1818
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_17c[] = {
1827
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1828
[1] = NULL,
1829
};
1830
1831
static const llc_conn_action_t llc_busy_actions_17c[] = {
1832
[0] = llc_conn_ac_upd_p_flag,
1833
[1] = llc_conn_ac_upd_nr_received,
1834
[2] = llc_conn_ac_set_remote_busy,
1835
[3] = NULL,
1836
};
1837
1838
static const 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 const llc_conn_action_t llc_busy_actions_18[] = {
1847
[0] = llc_conn_ac_send_rnr_rsp_f_set_1,
1848
[1] = llc_conn_ac_upd_nr_received,
1849
[2] = llc_conn_ac_set_remote_busy,
1850
[3] = NULL,
1851
};
1852
1853
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_19a[] = {
1862
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
1863
[1] = NULL,
1864
};
1865
1866
static const llc_conn_action_t llc_busy_actions_19a[] = {
1867
[0] = llc_conn_ac_set_vs_nr,
1868
[1] = llc_conn_ac_upd_nr_received,
1869
[2] = llc_conn_ac_upd_p_flag,
1870
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
1871
[4] = llc_conn_ac_clear_remote_busy,
1872
[5] = NULL,
1873
};
1874
1875
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_19b[] = {
1884
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
1885
[1] = NULL,
1886
};
1887
1888
static const llc_conn_action_t llc_busy_actions_19b[] = {
1889
[0] = llc_conn_ac_set_vs_nr,
1890
[1] = llc_conn_ac_upd_nr_received,
1891
[2] = llc_conn_ac_upd_p_flag,
1892
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
1893
[4] = llc_conn_ac_clear_remote_busy,
1894
[5] = NULL,
1895
};
1896
1897
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_20a[] = {
1906
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1907
[1] = NULL,
1908
};
1909
1910
static const llc_conn_action_t llc_busy_actions_20a[] = {
1911
[0] = llc_conn_ac_set_vs_nr,
1912
[1] = llc_conn_ac_upd_nr_received,
1913
[2] = llc_conn_ac_resend_i_xxx_x_set_0,
1914
[3] = llc_conn_ac_clear_remote_busy,
1915
[4] = NULL,
1916
};
1917
1918
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_20b[] = {
1927
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
1928
[1] = NULL,
1929
};
1930
1931
static const llc_conn_action_t llc_busy_actions_20b[] = {
1932
[0] = llc_conn_ac_set_vs_nr,
1933
[1] = llc_conn_ac_upd_nr_received,
1934
[2] = llc_conn_ac_resend_i_xxx_x_set_0,
1935
[3] = llc_conn_ac_clear_remote_busy,
1936
[4] = NULL,
1937
};
1938
1939
static const 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 const llc_conn_action_t llc_busy_actions_21[] = {
1948
[0] = llc_conn_ac_set_vs_nr,
1949
[1] = llc_conn_ac_upd_nr_received,
1950
[2] = llc_conn_ac_send_rnr_rsp_f_set_1,
1951
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
1952
[4] = llc_conn_ac_clear_remote_busy,
1953
[5] = NULL,
1954
};
1955
1956
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_22[] = {
1965
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
1966
[1] = NULL,
1967
};
1968
1969
static const llc_conn_action_t llc_busy_actions_22[] = {
1970
[0] = llc_conn_ac_send_rnr_cmd_p_set_1,
1971
[1] = llc_conn_ac_start_p_timer,
1972
[2] = NULL,
1973
};
1974
1975
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_23[] = {
1984
[0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
1985
[1] = NULL,
1986
};
1987
1988
static const llc_conn_action_t llc_busy_actions_23[] = {
1989
[0] = llc_conn_ac_send_rnr_cmd_p_set_1,
1990
[1] = llc_conn_ac_rst_vs,
1991
[2] = llc_conn_ac_start_p_timer,
1992
[3] = llc_conn_ac_inc_retry_cnt_by_1,
1993
[4] = NULL,
1994
};
1995
1996
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_24a[] = {
2005
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
2006
[1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2007
[2] = NULL,
2008
};
2009
2010
static const llc_conn_action_t llc_busy_actions_24a[] = {
2011
[0] = llc_conn_ac_send_rnr_cmd_p_set_1,
2012
[1] = llc_conn_ac_start_p_timer,
2013
[2] = llc_conn_ac_inc_retry_cnt_by_1,
2014
[3] = llc_conn_ac_rst_vs,
2015
[4] = NULL,
2016
};
2017
2018
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_24b[] = {
2027
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
2028
[1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2029
[2] = NULL,
2030
};
2031
2032
static const llc_conn_action_t llc_busy_actions_24b[] = {
2033
[0] = llc_conn_ac_send_rnr_cmd_p_set_1,
2034
[1] = llc_conn_ac_start_p_timer,
2035
[2] = llc_conn_ac_inc_retry_cnt_by_1,
2036
[3] = llc_conn_ac_rst_vs,
2037
[4] = NULL,
2038
};
2039
2040
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_25[] = {
2049
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
2050
[1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2051
[2] = NULL,
2052
};
2053
2054
static const llc_conn_action_t llc_busy_actions_25[] = {
2055
[0] = llc_conn_ac_send_rnr_cmd_p_set_1,
2056
[1] = llc_conn_ac_start_p_timer,
2057
[2] = llc_conn_ac_inc_retry_cnt_by_1,
2058
[3] = llc_conn_ac_rst_vs,
2059
[4] = llc_conn_ac_set_data_flag_1,
2060
[5] = NULL,
2061
};
2062
2063
static const 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 const llc_conn_ev_qfyr_t llc_busy_ev_qfyrs_26[] = {
2072
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
2073
[1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2074
[2] = NULL,
2075
};
2076
2077
static const llc_conn_action_t llc_busy_actions_26[] = {
2078
[0] = llc_conn_ac_set_data_flag_1,
2079
[1] = NULL,
2080
};
2081
2082
static const 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 const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_1[] = {
2159
[0] = llc_conn_ev_qlfy_remote_busy_eq_0,
2160
[1] = llc_conn_ev_qlfy_p_flag_eq_0,
2161
[2] = NULL,
2162
};
2163
2164
static const llc_conn_action_t llc_reject_actions_1[] = {
2165
[0] = llc_conn_ac_send_i_xxx_x_set_0,
2166
[1] = NULL,
2167
};
2168
2169
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_2[] = {
2178
[0] = llc_conn_ev_qlfy_remote_busy_eq_0,
2179
[1] = llc_conn_ev_qlfy_p_flag_eq_1,
2180
[2] = NULL,
2181
};
2182
2183
static const llc_conn_action_t llc_reject_actions_2[] = {
2184
[0] = llc_conn_ac_send_i_xxx_x_set_0,
2185
[1] = NULL,
2186
};
2187
2188
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_2_1[] = {
2197
[0] = llc_conn_ev_qlfy_remote_busy_eq_1,
2198
[1] = llc_conn_ev_qlfy_set_status_remote_busy,
2199
[2] = NULL,
2200
};
2201
2202
/* just one member, NULL, .bss zeroes it */
2203
static const llc_conn_action_t llc_reject_actions_2_1[1];
2204
2205
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_3[] = {
2215
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
2216
[1] = NULL,
2217
};
2218
2219
static const llc_conn_action_t llc_reject_actions_3[] = {
2220
[0] = llc_conn_ac_send_rnr_xxx_x_set_0,
2221
[1] = llc_conn_ac_set_data_flag_2,
2222
[2] = NULL,
2223
};
2224
2225
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_4[] = {
2234
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
2235
[1] = NULL,
2236
};
2237
2238
static const llc_conn_action_t llc_reject_actions_4[] = {
2239
[0] = llc_conn_ac_send_rnr_xxx_x_set_0,
2240
[1] = llc_conn_ac_set_data_flag_2,
2241
[2] = NULL,
2242
};
2243
2244
static const 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 const llc_conn_action_t llc_reject_actions_5a[] = {
2253
[0] = llc_conn_ac_upd_nr_received,
2254
[1] = llc_conn_ac_upd_p_flag,
2255
[2] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
2256
[3] = NULL,
2257
};
2258
2259
static const 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 const llc_conn_action_t llc_reject_actions_5b[] = {
2268
[0] = llc_conn_ac_upd_nr_received,
2269
[1] = llc_conn_ac_upd_p_flag,
2270
[2] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
2271
[3] = NULL,
2272
};
2273
2274
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_5c[] = {
2283
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
2284
[1] = NULL,
2285
};
2286
2287
static const llc_conn_action_t llc_reject_actions_5c[] = {
2288
[0] = llc_conn_ac_upd_nr_received,
2289
[1] = llc_conn_ac_upd_p_flag,
2290
[2] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
2291
[3] = NULL,
2292
};
2293
2294
static const 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 const llc_conn_action_t llc_reject_actions_6[] = {
2303
[0] = llc_conn_ac_send_rr_rsp_f_set_1,
2304
[1] = llc_conn_ac_upd_nr_received,
2305
[2] = NULL,
2306
};
2307
2308
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_7a[] = {
2317
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
2318
[1] = NULL,
2319
};
2320
2321
static const llc_conn_action_t llc_reject_actions_7a[] = {
2322
[0] = llc_conn_ac_inc_vr_by_1,
2323
[1] = llc_conn_ac_data_ind,
2324
[2] = llc_conn_ac_upd_p_flag,
2325
[3] = llc_conn_ac_send_ack_xxx_x_set_0,
2326
[4] = llc_conn_ac_upd_nr_received,
2327
[5] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
2328
[6] = llc_conn_ac_stop_rej_timer,
2329
[7] = NULL,
2330
2331
};
2332
2333
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_7b[] = {
2342
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
2343
[1] = NULL,
2344
};
2345
2346
static const llc_conn_action_t llc_reject_actions_7b[] = {
2347
[0] = llc_conn_ac_inc_vr_by_1,
2348
[1] = llc_conn_ac_data_ind,
2349
[2] = llc_conn_ac_upd_p_flag,
2350
[3] = llc_conn_ac_send_ack_xxx_x_set_0,
2351
[4] = llc_conn_ac_upd_nr_received,
2352
[5] = llc_conn_ac_clear_remote_busy_if_f_eq_1,
2353
[6] = llc_conn_ac_stop_rej_timer,
2354
[7] = NULL,
2355
};
2356
2357
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_8a[] = {
2366
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
2367
[1] = NULL,
2368
};
2369
2370
static const llc_conn_action_t llc_reject_actions_8a[] = {
2371
[0] = llc_conn_ac_inc_vr_by_1,
2372
[1] = llc_conn_ac_data_ind,
2373
[2] = llc_conn_ac_send_ack_xxx_x_set_0,
2374
[3] = llc_conn_ac_upd_nr_received,
2375
[4] = llc_conn_ac_stop_rej_timer,
2376
[5] = NULL,
2377
};
2378
2379
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_8b[] = {
2388
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
2389
[1] = NULL,
2390
};
2391
2392
static const llc_conn_action_t llc_reject_actions_8b[] = {
2393
[0] = llc_conn_ac_inc_vr_by_1,
2394
[1] = llc_conn_ac_data_ind,
2395
[2] = llc_conn_ac_send_ack_xxx_x_set_0,
2396
[3] = llc_conn_ac_upd_nr_received,
2397
[4] = llc_conn_ac_stop_rej_timer,
2398
[5] = NULL,
2399
};
2400
2401
static const 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 const llc_conn_action_t llc_reject_actions_9[] = {
2410
[0] = llc_conn_ac_inc_vr_by_1,
2411
[1] = llc_conn_ac_data_ind,
2412
[2] = llc_conn_ac_send_ack_rsp_f_set_1,
2413
[3] = llc_conn_ac_upd_nr_received,
2414
[4] = llc_conn_ac_stop_rej_timer,
2415
[5] = NULL,
2416
};
2417
2418
static const 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 const llc_conn_action_t llc_reject_actions_10a[] = {
2427
[0] = llc_conn_ac_upd_p_flag,
2428
[1] = llc_conn_ac_upd_nr_received,
2429
[2] = llc_conn_ac_clear_remote_busy,
2430
[3] = NULL,
2431
};
2432
2433
static const 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 const llc_conn_action_t llc_reject_actions_10b[] = {
2442
[0] = llc_conn_ac_upd_p_flag,
2443
[1] = llc_conn_ac_upd_nr_received,
2444
[2] = llc_conn_ac_clear_remote_busy,
2445
[3] = NULL,
2446
};
2447
2448
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_10c[] = {
2457
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
2458
[1] = NULL,
2459
};
2460
2461
static const llc_conn_action_t llc_reject_actions_10c[] = {
2462
[0] = llc_conn_ac_upd_p_flag,
2463
[1] = llc_conn_ac_upd_nr_received,
2464
[2] = llc_conn_ac_clear_remote_busy,
2465
[3] = NULL,
2466
};
2467
2468
static const 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 const llc_conn_action_t llc_reject_actions_11[] = {
2477
[0] = llc_conn_ac_send_ack_rsp_f_set_1,
2478
[1] = llc_conn_ac_upd_nr_received,
2479
[2] = llc_conn_ac_clear_remote_busy,
2480
[3] = NULL,
2481
};
2482
2483
static const 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 const llc_conn_action_t llc_reject_actions_12a[] = {
2492
[0] = llc_conn_ac_upd_p_flag,
2493
[1] = llc_conn_ac_upd_nr_received,
2494
[2] = llc_conn_ac_set_remote_busy,
2495
[3] = NULL,
2496
};
2497
2498
static const 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 const llc_conn_action_t llc_reject_actions_12b[] = {
2507
[0] = llc_conn_ac_upd_p_flag,
2508
[1] = llc_conn_ac_upd_nr_received,
2509
[2] = llc_conn_ac_set_remote_busy,
2510
[3] = NULL,
2511
};
2512
2513
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_12c[] = {
2522
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
2523
[1] = NULL,
2524
};
2525
2526
static const llc_conn_action_t llc_reject_actions_12c[] = {
2527
[0] = llc_conn_ac_upd_p_flag,
2528
[1] = llc_conn_ac_upd_nr_received,
2529
[2] = llc_conn_ac_set_remote_busy,
2530
[3] = NULL,
2531
};
2532
2533
static const 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 const llc_conn_action_t llc_reject_actions_13[] = {
2542
[0] = llc_conn_ac_send_rr_rsp_f_set_1,
2543
[1] = llc_conn_ac_upd_nr_received,
2544
[2] = llc_conn_ac_set_remote_busy,
2545
[3] = NULL,
2546
};
2547
2548
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_14a[] = {
2557
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
2558
[1] = NULL,
2559
};
2560
2561
static const llc_conn_action_t llc_reject_actions_14a[] = {
2562
[0] = llc_conn_ac_set_vs_nr,
2563
[1] = llc_conn_ac_upd_nr_received,
2564
[2] = llc_conn_ac_upd_p_flag,
2565
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
2566
[4] = llc_conn_ac_clear_remote_busy,
2567
[5] = NULL,
2568
};
2569
2570
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_14b[] = {
2579
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
2580
[1] = NULL,
2581
};
2582
2583
static const llc_conn_action_t llc_reject_actions_14b[] = {
2584
[0] = llc_conn_ac_set_vs_nr,
2585
[1] = llc_conn_ac_upd_nr_received,
2586
[2] = llc_conn_ac_upd_p_flag,
2587
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
2588
[4] = llc_conn_ac_clear_remote_busy,
2589
[5] = NULL,
2590
};
2591
2592
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_15a[] = {
2601
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
2602
[1] = NULL,
2603
};
2604
2605
static const llc_conn_action_t llc_reject_actions_15a[] = {
2606
[0] = llc_conn_ac_set_vs_nr,
2607
[1] = llc_conn_ac_upd_nr_received,
2608
[2] = llc_conn_ac_resend_i_xxx_x_set_0,
2609
[3] = llc_conn_ac_clear_remote_busy,
2610
[4] = NULL,
2611
};
2612
2613
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_15b[] = {
2622
[0] = llc_conn_ev_qlfy_p_flag_eq_1,
2623
[1] = NULL,
2624
};
2625
2626
static const llc_conn_action_t llc_reject_actions_15b[] = {
2627
[0] = llc_conn_ac_set_vs_nr,
2628
[1] = llc_conn_ac_upd_nr_received,
2629
[2] = llc_conn_ac_resend_i_xxx_x_set_0,
2630
[3] = llc_conn_ac_clear_remote_busy,
2631
[4] = NULL,
2632
};
2633
2634
static const 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 const llc_conn_action_t llc_reject_actions_16[] = {
2643
[0] = llc_conn_ac_set_vs_nr,
2644
[1] = llc_conn_ac_upd_nr_received,
2645
[2] = llc_conn_ac_resend_i_rsp_f_set_1,
2646
[3] = llc_conn_ac_clear_remote_busy,
2647
[4] = NULL,
2648
};
2649
2650
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_17[] = {
2659
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
2660
[1] = NULL,
2661
};
2662
2663
static const llc_conn_action_t llc_reject_actions_17[] = {
2664
[0] = llc_conn_ac_send_rr_cmd_p_set_1,
2665
[1] = llc_conn_ac_start_p_timer,
2666
[2] = NULL,
2667
};
2668
2669
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_18[] = {
2678
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
2679
[1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2680
[2] = NULL,
2681
};
2682
2683
static const llc_conn_action_t llc_reject_actions_18[] = {
2684
[0] = llc_conn_ac_send_rej_cmd_p_set_1,
2685
[1] = llc_conn_ac_start_p_timer,
2686
[2] = llc_conn_ac_start_rej_timer,
2687
[3] = llc_conn_ac_inc_retry_cnt_by_1,
2688
[4] = NULL,
2689
};
2690
2691
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_19[] = {
2700
[0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2701
[1] = NULL,
2702
};
2703
2704
static const llc_conn_action_t llc_reject_actions_19[] = {
2705
[0] = llc_conn_ac_send_rr_cmd_p_set_1,
2706
[1] = llc_conn_ac_start_p_timer,
2707
[2] = llc_conn_ac_start_rej_timer,
2708
[3] = llc_conn_ac_inc_retry_cnt_by_1,
2709
[4] = llc_conn_ac_rst_vs,
2710
[5] = NULL,
2711
};
2712
2713
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_20a[] = {
2722
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
2723
[1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2724
[2] = NULL,
2725
};
2726
2727
static const llc_conn_action_t llc_reject_actions_20a[] = {
2728
[0] = llc_conn_ac_send_rr_cmd_p_set_1,
2729
[1] = llc_conn_ac_start_p_timer,
2730
[2] = llc_conn_ac_start_rej_timer,
2731
[3] = llc_conn_ac_inc_retry_cnt_by_1,
2732
[4] = llc_conn_ac_rst_vs,
2733
[5] = NULL,
2734
};
2735
2736
static const 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 const llc_conn_ev_qfyr_t llc_reject_ev_qfyrs_20b[] = {
2745
[0] = llc_conn_ev_qlfy_p_flag_eq_0,
2746
[1] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
2747
[2] = NULL,
2748
};
2749
2750
static const llc_conn_action_t llc_reject_actions_20b[] = {
2751
[0] = llc_conn_ac_send_rr_cmd_p_set_1,
2752
[1] = llc_conn_ac_start_p_timer,
2753
[2] = llc_conn_ac_start_rej_timer,
2754
[3] = llc_conn_ac_inc_retry_cnt_by_1,
2755
[4] = llc_conn_ac_rst_vs,
2756
[5] = NULL,
2757
};
2758
2759
static const 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 const 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 const llc_conn_ev_qfyr_t llc_await_ev_qfyrs_1_0[] = {
2830
[0] = llc_conn_ev_qlfy_set_status_refuse,
2831
[1] = NULL,
2832
};
2833
2834
/* just one member, NULL, .bss zeroes it */
2835
static const llc_conn_action_t llc_await_actions_1_0[1];
2836
2837
static const 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 const llc_conn_action_t llc_await_actions_1[] = {
2846
[0] = llc_conn_ac_send_rnr_xxx_x_set_0,
2847
[1] = llc_conn_ac_set_data_flag_0,
2848
[2] = NULL,
2849
};
2850
2851
static const 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 const llc_conn_action_t llc_await_actions_2[] = {
2860
[0] = llc_conn_ac_send_rej_xxx_x_set_0,
2861
[1] = llc_conn_ac_upd_nr_received,
2862
[2] = llc_conn_ac_upd_vs,
2863
[3] = llc_conn_ac_stop_p_timer,
2864
[4] = llc_conn_ac_resend_i_xxx_x_set_0,
2865
[5] = llc_conn_ac_start_rej_timer,
2866
[6] = llc_conn_ac_clear_remote_busy,
2867
[7] = NULL,
2868
};
2869
2870
static const 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 const llc_conn_action_t llc_await_actions_3a[] = {
2879
[0] = llc_conn_ac_send_rej_xxx_x_set_0,
2880
[1] = llc_conn_ac_upd_nr_received,
2881
[2] = llc_conn_ac_upd_vs,
2882
[3] = llc_conn_ac_start_rej_timer,
2883
[4] = NULL,
2884
};
2885
2886
static const 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 const llc_conn_action_t llc_await_actions_3b[] = {
2895
[0] = llc_conn_ac_send_rej_xxx_x_set_0,
2896
[1] = llc_conn_ac_upd_nr_received,
2897
[2] = llc_conn_ac_upd_vs,
2898
[3] = llc_conn_ac_start_rej_timer,
2899
[4] = NULL,
2900
};
2901
2902
static const 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 const llc_conn_action_t llc_await_actions_4[] = {
2911
[0] = llc_conn_ac_send_rej_rsp_f_set_1,
2912
[1] = llc_conn_ac_upd_nr_received,
2913
[2] = llc_conn_ac_upd_vs,
2914
[3] = llc_conn_ac_start_rej_timer,
2915
[4] = llc_conn_ac_start_p_timer,
2916
[5] = NULL,
2917
};
2918
2919
static const 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 const llc_conn_action_t llc_await_actions_5[] = {
2928
[0] = llc_conn_ac_inc_vr_by_1,
2929
[1] = llc_conn_ac_data_ind,
2930
[2] = llc_conn_ac_stop_p_timer,
2931
[3] = llc_conn_ac_upd_nr_received,
2932
[4] = llc_conn_ac_upd_vs,
2933
[5] = llc_conn_ac_resend_i_xxx_x_set_0_or_send_rr,
2934
[6] = llc_conn_ac_clear_remote_busy,
2935
[7] = NULL,
2936
};
2937
2938
static const 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 const llc_conn_action_t llc_await_actions_6a[] = {
2947
[0] = llc_conn_ac_inc_vr_by_1,
2948
[1] = llc_conn_ac_data_ind,
2949
[2] = llc_conn_ac_send_rr_xxx_x_set_0,
2950
[3] = llc_conn_ac_upd_nr_received,
2951
[4] = llc_conn_ac_upd_vs,
2952
[5] = NULL,
2953
};
2954
2955
static const 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 const llc_conn_action_t llc_await_actions_6b[] = {
2964
[0] = llc_conn_ac_inc_vr_by_1,
2965
[1] = llc_conn_ac_data_ind,
2966
[2] = llc_conn_ac_send_rr_xxx_x_set_0,
2967
[3] = llc_conn_ac_upd_nr_received,
2968
[4] = llc_conn_ac_upd_vs,
2969
[5] = NULL,
2970
};
2971
2972
static const 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 const llc_conn_action_t llc_await_actions_7[] = {
2981
[0] = llc_conn_ac_inc_vr_by_1,
2982
[1] = llc_conn_ac_data_ind,
2983
[2] = llc_conn_ac_send_rr_rsp_f_set_1,
2984
[3] = llc_conn_ac_upd_nr_received,
2985
[4] = llc_conn_ac_upd_vs,
2986
[5] = NULL,
2987
};
2988
2989
static const 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 const llc_conn_action_t llc_await_actions_8a[] = {
2998
[0] = llc_conn_ac_upd_nr_received,
2999
[1] = llc_conn_ac_upd_vs,
3000
[2] = llc_conn_ac_stop_p_timer,
3001
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
3002
[4] = llc_conn_ac_clear_remote_busy,
3003
[5] = NULL,
3004
};
3005
3006
static const 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 const llc_conn_action_t llc_await_actions_8b[] = {
3015
[0] = llc_conn_ac_upd_nr_received,
3016
[1] = llc_conn_ac_upd_vs,
3017
[2] = llc_conn_ac_stop_p_timer,
3018
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
3019
[4] = llc_conn_ac_clear_remote_busy,
3020
[5] = NULL,
3021
};
3022
3023
static const 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 const llc_conn_action_t llc_await_actions_9a[] = {
3032
[0] = llc_conn_ac_upd_nr_received,
3033
[1] = llc_conn_ac_upd_vs,
3034
[2] = llc_conn_ac_clear_remote_busy,
3035
[3] = NULL,
3036
};
3037
3038
static const 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 const llc_conn_action_t llc_await_actions_9b[] = {
3047
[0] = llc_conn_ac_upd_nr_received,
3048
[1] = llc_conn_ac_upd_vs,
3049
[2] = llc_conn_ac_clear_remote_busy,
3050
[3] = NULL,
3051
};
3052
3053
static const 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 const llc_conn_action_t llc_await_actions_9c[] = {
3062
[0] = llc_conn_ac_upd_nr_received,
3063
[1] = llc_conn_ac_upd_vs,
3064
[2] = llc_conn_ac_clear_remote_busy,
3065
[3] = NULL,
3066
};
3067
3068
static const 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 const llc_conn_action_t llc_await_actions_9d[] = {
3077
[0] = llc_conn_ac_upd_nr_received,
3078
[1] = llc_conn_ac_upd_vs,
3079
[2] = llc_conn_ac_clear_remote_busy,
3080
[3] = NULL,
3081
};
3082
3083
static const 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 const llc_conn_action_t llc_await_actions_10a[] = {
3092
[0] = llc_conn_ac_send_rr_rsp_f_set_1,
3093
[1] = llc_conn_ac_upd_nr_received,
3094
[2] = llc_conn_ac_upd_vs,
3095
[3] = llc_conn_ac_clear_remote_busy,
3096
[4] = NULL,
3097
};
3098
3099
static const 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 const llc_conn_action_t llc_await_actions_10b[] = {
3108
[0] = llc_conn_ac_send_rr_rsp_f_set_1,
3109
[1] = llc_conn_ac_upd_nr_received,
3110
[2] = llc_conn_ac_upd_vs,
3111
[3] = llc_conn_ac_clear_remote_busy,
3112
[4] = NULL,
3113
};
3114
3115
static const 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 const llc_conn_action_t llc_await_actions_11[] = {
3124
[0] = llc_conn_ac_upd_nr_received,
3125
[1] = llc_conn_ac_upd_vs,
3126
[2] = llc_conn_ac_stop_p_timer,
3127
[3] = llc_conn_ac_set_remote_busy,
3128
[4] = NULL,
3129
};
3130
3131
static const 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 const llc_conn_action_t llc_await_actions_12a[] = {
3140
[0] = llc_conn_ac_upd_nr_received,
3141
[1] = llc_conn_ac_upd_vs,
3142
[2] = llc_conn_ac_set_remote_busy,
3143
[3] = NULL,
3144
};
3145
3146
static const 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 const llc_conn_action_t llc_await_actions_12b[] = {
3155
[0] = llc_conn_ac_upd_nr_received,
3156
[1] = llc_conn_ac_upd_vs,
3157
[2] = llc_conn_ac_set_remote_busy,
3158
[3] = NULL,
3159
};
3160
3161
static const 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 const llc_conn_action_t llc_await_actions_13[] = {
3170
[0] = llc_conn_ac_send_rr_rsp_f_set_1,
3171
[1] = llc_conn_ac_upd_nr_received,
3172
[2] = llc_conn_ac_upd_vs,
3173
[3] = llc_conn_ac_set_remote_busy,
3174
[4] = NULL,
3175
};
3176
3177
static const 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 const llc_conn_ev_qfyr_t llc_await_ev_qfyrs_14[] = {
3186
[0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
3187
[1] = NULL,
3188
};
3189
3190
static const llc_conn_action_t llc_await_actions_14[] = {
3191
[0] = llc_conn_ac_send_rr_cmd_p_set_1,
3192
[1] = llc_conn_ac_start_p_timer,
3193
[2] = llc_conn_ac_inc_retry_cnt_by_1,
3194
[3] = NULL,
3195
};
3196
3197
static const 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 const 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 const llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_1_0[] = {
3259
[0] = llc_conn_ev_qlfy_set_status_refuse,
3260
[1] = NULL,
3261
};
3262
3263
/* just one member, NULL, .bss zeroes it */
3264
static const llc_conn_action_t llc_await_busy_actions_1_0[1];
3265
3266
static const 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 const llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_1[] = {
3275
[0] = llc_conn_ev_qlfy_data_flag_eq_1,
3276
[1] = NULL,
3277
};
3278
3279
static const llc_conn_action_t llc_await_busy_actions_1[] = {
3280
[0] = llc_conn_ac_send_rej_xxx_x_set_0,
3281
[1] = llc_conn_ac_start_rej_timer,
3282
[2] = NULL,
3283
};
3284
3285
static const 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 const llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_2[] = {
3294
[0] = llc_conn_ev_qlfy_data_flag_eq_0,
3295
[1] = NULL,
3296
};
3297
3298
static const llc_conn_action_t llc_await_busy_actions_2[] = {
3299
[0] = llc_conn_ac_send_rr_xxx_x_set_0,
3300
[1] = NULL,
3301
};
3302
3303
static const 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 const llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_3[] = {
3312
[0] = llc_conn_ev_qlfy_data_flag_eq_2,
3313
[1] = NULL,
3314
};
3315
3316
static const llc_conn_action_t llc_await_busy_actions_3[] = {
3317
[0] = llc_conn_ac_send_rr_xxx_x_set_0,
3318
[1] = NULL,
3319
};
3320
3321
static const 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 const llc_conn_action_t llc_await_busy_actions_4[] = {
3330
[0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3331
[1] = llc_conn_ac_upd_nr_received,
3332
[2] = llc_conn_ac_upd_vs,
3333
[3] = llc_conn_ac_stop_p_timer,
3334
[4] = llc_conn_ac_set_data_flag_1,
3335
[5] = llc_conn_ac_clear_remote_busy,
3336
[6] = llc_conn_ac_resend_i_xxx_x_set_0,
3337
[7] = NULL,
3338
};
3339
3340
static const 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 const llc_conn_action_t llc_await_busy_actions_5a[] = {
3349
[0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3350
[1] = llc_conn_ac_upd_nr_received,
3351
[2] = llc_conn_ac_upd_vs,
3352
[3] = llc_conn_ac_set_data_flag_1,
3353
[4] = NULL,
3354
};
3355
3356
static const 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 const llc_conn_action_t llc_await_busy_actions_5b[] = {
3365
[0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3366
[1] = llc_conn_ac_upd_nr_received,
3367
[2] = llc_conn_ac_upd_vs,
3368
[3] = llc_conn_ac_set_data_flag_1,
3369
[4] = NULL,
3370
};
3371
3372
static const 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 const llc_conn_action_t llc_await_busy_actions_6[] = {
3381
[0] = llc_conn_ac_send_rnr_rsp_f_set_1,
3382
[1] = llc_conn_ac_upd_nr_received,
3383
[2] = llc_conn_ac_upd_vs,
3384
[3] = llc_conn_ac_set_data_flag_1,
3385
[4] = NULL,
3386
};
3387
3388
static const 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 const llc_conn_action_t llc_await_busy_actions_7[] = {
3397
[0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3398
[1] = llc_conn_ac_inc_vr_by_1,
3399
[2] = llc_conn_ac_data_ind,
3400
[3] = llc_conn_ac_stop_p_timer,
3401
[4] = llc_conn_ac_upd_nr_received,
3402
[5] = llc_conn_ac_upd_vs,
3403
[6] = llc_conn_ac_set_data_flag_0,
3404
[7] = llc_conn_ac_clear_remote_busy,
3405
[8] = llc_conn_ac_resend_i_xxx_x_set_0,
3406
[9] = NULL,
3407
};
3408
3409
static const 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 const llc_conn_action_t llc_await_busy_actions_8a[] = {
3418
[0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3419
[1] = llc_conn_ac_inc_vr_by_1,
3420
[2] = llc_conn_ac_data_ind,
3421
[3] = llc_conn_ac_upd_nr_received,
3422
[4] = llc_conn_ac_upd_vs,
3423
[5] = llc_conn_ac_set_data_flag_0,
3424
[6] = NULL,
3425
};
3426
3427
static const 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 const llc_conn_action_t llc_await_busy_actions_8b[] = {
3436
[0] = llc_conn_ac_opt_send_rnr_xxx_x_set_0,
3437
[1] = llc_conn_ac_inc_vr_by_1,
3438
[2] = llc_conn_ac_data_ind,
3439
[3] = llc_conn_ac_upd_nr_received,
3440
[4] = llc_conn_ac_upd_vs,
3441
[5] = llc_conn_ac_set_data_flag_0,
3442
[6] = NULL,
3443
};
3444
3445
static const 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 const llc_conn_action_t llc_await_busy_actions_9[] = {
3454
[0] = llc_conn_ac_send_rnr_rsp_f_set_1,
3455
[1] = llc_conn_ac_inc_vr_by_1,
3456
[2] = llc_conn_ac_data_ind,
3457
[3] = llc_conn_ac_upd_nr_received,
3458
[4] = llc_conn_ac_upd_vs,
3459
[5] = llc_conn_ac_set_data_flag_0,
3460
[6] = NULL,
3461
};
3462
3463
static const 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 const llc_conn_action_t llc_await_busy_actions_10a[] = {
3472
[0] = llc_conn_ac_upd_nr_received,
3473
[1] = llc_conn_ac_upd_vs,
3474
[2] = llc_conn_ac_stop_p_timer,
3475
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
3476
[4] = llc_conn_ac_clear_remote_busy,
3477
[5] = NULL,
3478
};
3479
3480
static const 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 const llc_conn_action_t llc_await_busy_actions_10b[] = {
3489
[0] = llc_conn_ac_upd_nr_received,
3490
[1] = llc_conn_ac_upd_vs,
3491
[2] = llc_conn_ac_stop_p_timer,
3492
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
3493
[4] = llc_conn_ac_clear_remote_busy,
3494
[5] = NULL,
3495
};
3496
3497
static const 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 const llc_conn_action_t llc_await_busy_actions_11a[] = {
3506
[0] = llc_conn_ac_upd_nr_received,
3507
[1] = llc_conn_ac_upd_vs,
3508
[2] = llc_conn_ac_clear_remote_busy,
3509
[3] = NULL,
3510
};
3511
3512
static const 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 const llc_conn_action_t llc_await_busy_actions_11b[] = {
3521
[0] = llc_conn_ac_upd_nr_received,
3522
[1] = llc_conn_ac_upd_vs,
3523
[2] = llc_conn_ac_clear_remote_busy,
3524
[3] = NULL,
3525
};
3526
3527
static const 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 const llc_conn_action_t llc_await_busy_actions_11c[] = {
3536
[0] = llc_conn_ac_upd_nr_received,
3537
[1] = llc_conn_ac_upd_vs,
3538
[2] = llc_conn_ac_clear_remote_busy,
3539
[3] = NULL,
3540
};
3541
3542
static const 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 const llc_conn_action_t llc_await_busy_actions_11d[] = {
3551
[0] = llc_conn_ac_upd_nr_received,
3552
[1] = llc_conn_ac_upd_vs,
3553
[2] = llc_conn_ac_clear_remote_busy,
3554
[3] = NULL,
3555
};
3556
3557
static const 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 const llc_conn_action_t llc_await_busy_actions_12a[] = {
3566
[0] = llc_conn_ac_send_rnr_rsp_f_set_1,
3567
[1] = llc_conn_ac_upd_nr_received,
3568
[2] = llc_conn_ac_upd_vs,
3569
[3] = llc_conn_ac_clear_remote_busy,
3570
[4] = NULL,
3571
};
3572
3573
static const 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 const llc_conn_action_t llc_await_busy_actions_12b[] = {
3582
[0] = llc_conn_ac_send_rnr_rsp_f_set_1,
3583
[1] = llc_conn_ac_upd_nr_received,
3584
[2] = llc_conn_ac_upd_vs,
3585
[3] = llc_conn_ac_clear_remote_busy,
3586
[4] = NULL,
3587
};
3588
3589
static const 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 const llc_conn_action_t llc_await_busy_actions_13[] = {
3598
[0] = llc_conn_ac_upd_nr_received,
3599
[1] = llc_conn_ac_upd_vs,
3600
[2] = llc_conn_ac_stop_p_timer,
3601
[3] = llc_conn_ac_set_remote_busy,
3602
[4] = NULL,
3603
};
3604
3605
static const 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 const llc_conn_action_t llc_await_busy_actions_14a[] = {
3614
[0] = llc_conn_ac_upd_nr_received,
3615
[1] = llc_conn_ac_upd_vs,
3616
[2] = llc_conn_ac_set_remote_busy,
3617
[3] = NULL,
3618
};
3619
3620
static const 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 const llc_conn_action_t llc_await_busy_actions_14b[] = {
3629
[0] = llc_conn_ac_upd_nr_received,
3630
[1] = llc_conn_ac_upd_vs,
3631
[2] = llc_conn_ac_set_remote_busy,
3632
[3] = NULL,
3633
};
3634
3635
static const 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 const llc_conn_action_t llc_await_busy_actions_15[] = {
3644
[0] = llc_conn_ac_send_rnr_rsp_f_set_1,
3645
[1] = llc_conn_ac_upd_nr_received,
3646
[2] = llc_conn_ac_upd_vs,
3647
[3] = llc_conn_ac_set_remote_busy,
3648
[4] = NULL,
3649
};
3650
3651
static const 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 const llc_conn_ev_qfyr_t llc_await_busy_ev_qfyrs_16[] = {
3660
[0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
3661
[1] = NULL,
3662
};
3663
3664
static const llc_conn_action_t llc_await_busy_actions_16[] = {
3665
[0] = llc_conn_ac_send_rnr_cmd_p_set_1,
3666
[1] = llc_conn_ac_start_p_timer,
3667
[2] = llc_conn_ac_inc_retry_cnt_by_1,
3668
[3] = NULL,
3669
};
3670
3671
static const 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 const 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 const llc_conn_ev_qfyr_t llc_await_reject_ev_qfyrs_1_0[] = {
3735
[0] = llc_conn_ev_qlfy_set_status_refuse,
3736
[1] = NULL,
3737
};
3738
3739
/* just one member, NULL, .bss zeroes it */
3740
static const llc_conn_action_t llc_await_reject_actions_1_0[1];
3741
3742
static const 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 const llc_conn_action_t llc_await_rejct_actions_1[] = {
3751
[0] = llc_conn_ac_send_rnr_xxx_x_set_0,
3752
[1] = llc_conn_ac_set_data_flag_2,
3753
[2] = NULL
3754
};
3755
3756
static const 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 const llc_conn_action_t llc_await_rejct_actions_2a[] = {
3765
[0] = llc_conn_ac_upd_nr_received,
3766
[1] = llc_conn_ac_upd_vs,
3767
[2] = NULL
3768
};
3769
3770
static const 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 const llc_conn_action_t llc_await_rejct_actions_2b[] = {
3779
[0] = llc_conn_ac_upd_nr_received,
3780
[1] = llc_conn_ac_upd_vs,
3781
[2] = NULL
3782
};
3783
3784
static const 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 const llc_conn_action_t llc_await_rejct_actions_3[] = {
3793
[0] = llc_conn_ac_send_rr_rsp_f_set_1,
3794
[1] = llc_conn_ac_upd_nr_received,
3795
[2] = llc_conn_ac_upd_vs,
3796
[3] = NULL
3797
};
3798
3799
static const 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 const llc_conn_action_t llc_await_rejct_actions_4[] = {
3808
[0] = llc_conn_ac_inc_vr_by_1,
3809
[1] = llc_conn_ac_data_ind,
3810
[2] = llc_conn_ac_stop_p_timer,
3811
[3] = llc_conn_ac_stop_rej_timer,
3812
[4] = llc_conn_ac_upd_nr_received,
3813
[5] = llc_conn_ac_upd_vs,
3814
[6] = llc_conn_ac_resend_i_xxx_x_set_0_or_send_rr,
3815
[7] = llc_conn_ac_clear_remote_busy,
3816
[8] = NULL,
3817
};
3818
3819
static const 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 const llc_conn_action_t llc_await_rejct_actions_5a[] = {
3828
[0] = llc_conn_ac_inc_vr_by_1,
3829
[1] = llc_conn_ac_data_ind,
3830
[2] = llc_conn_ac_send_rr_xxx_x_set_0,
3831
[3] = llc_conn_ac_stop_rej_timer,
3832
[4] = llc_conn_ac_upd_nr_received,
3833
[5] = llc_conn_ac_upd_vs,
3834
[6] = NULL,
3835
};
3836
3837
static const 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 const llc_conn_action_t llc_await_rejct_actions_5b[] = {
3846
[0] = llc_conn_ac_inc_vr_by_1,
3847
[1] = llc_conn_ac_data_ind,
3848
[2] = llc_conn_ac_send_rr_xxx_x_set_0,
3849
[3] = llc_conn_ac_stop_rej_timer,
3850
[4] = llc_conn_ac_upd_nr_received,
3851
[5] = llc_conn_ac_upd_vs,
3852
[6] = NULL,
3853
};
3854
3855
static const 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 const llc_conn_action_t llc_await_rejct_actions_6[] = {
3864
[0] = llc_conn_ac_inc_vr_by_1,
3865
[1] = llc_conn_ac_data_ind,
3866
[2] = llc_conn_ac_send_rr_rsp_f_set_1,
3867
[3] = llc_conn_ac_stop_rej_timer,
3868
[4] = llc_conn_ac_upd_nr_received,
3869
[5] = llc_conn_ac_upd_vs,
3870
[6] = NULL,
3871
};
3872
3873
static const 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 const llc_conn_action_t llc_await_rejct_actions_7a[] = {
3882
[0] = llc_conn_ac_upd_nr_received,
3883
[1] = llc_conn_ac_upd_vs,
3884
[2] = llc_conn_ac_stop_p_timer,
3885
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
3886
[4] = llc_conn_ac_clear_remote_busy,
3887
[5] = NULL,
3888
};
3889
3890
static const 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 const llc_conn_action_t llc_await_rejct_actions_7b[] = {
3899
[0] = llc_conn_ac_upd_nr_received,
3900
[1] = llc_conn_ac_upd_vs,
3901
[2] = llc_conn_ac_stop_p_timer,
3902
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
3903
[4] = llc_conn_ac_clear_remote_busy,
3904
[5] = NULL,
3905
};
3906
3907
static const 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 const llc_conn_action_t llc_await_rejct_actions_7c[] = {
3916
[0] = llc_conn_ac_upd_nr_received,
3917
[1] = llc_conn_ac_upd_vs,
3918
[2] = llc_conn_ac_stop_p_timer,
3919
[3] = llc_conn_ac_resend_i_xxx_x_set_0,
3920
[4] = llc_conn_ac_clear_remote_busy,
3921
[5] = NULL,
3922
};
3923
3924
static const 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 const llc_conn_action_t llc_await_rejct_actions_8a[] = {
3933
[0] = llc_conn_ac_upd_nr_received,
3934
[1] = llc_conn_ac_upd_vs,
3935
[2] = llc_conn_ac_clear_remote_busy,
3936
[3] = NULL,
3937
};
3938
3939
static const 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 const llc_conn_action_t llc_await_rejct_actions_8b[] = {
3948
[0] = llc_conn_ac_upd_nr_received,
3949
[1] = llc_conn_ac_upd_vs,
3950
[2] = llc_conn_ac_clear_remote_busy,
3951
[3] = NULL,
3952
};
3953
3954
static const 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 const llc_conn_action_t llc_await_rejct_actions_8c[] = {
3963
[0] = llc_conn_ac_upd_nr_received,
3964
[1] = llc_conn_ac_upd_vs,
3965
[2] = llc_conn_ac_clear_remote_busy,
3966
[3] = NULL,
3967
};
3968
3969
static const 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 const llc_conn_action_t llc_await_rejct_actions_8d[] = {
3978
[0] = llc_conn_ac_upd_nr_received,
3979
[1] = llc_conn_ac_upd_vs,
3980
[2] = llc_conn_ac_clear_remote_busy,
3981
[3] = NULL,
3982
};
3983
3984
static const 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 const llc_conn_action_t llc_await_rejct_actions_9a[] = {
3993
[0] = llc_conn_ac_send_rr_rsp_f_set_1,
3994
[1] = llc_conn_ac_upd_nr_received,
3995
[2] = llc_conn_ac_upd_vs,
3996
[3] = llc_conn_ac_clear_remote_busy,
3997
[4] = NULL,
3998
};
3999
4000
static const 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 const llc_conn_action_t llc_await_rejct_actions_9b[] = {
4009
[0] = llc_conn_ac_send_rr_rsp_f_set_1,
4010
[1] = llc_conn_ac_upd_nr_received,
4011
[2] = llc_conn_ac_upd_vs,
4012
[3] = llc_conn_ac_clear_remote_busy,
4013
[4] = NULL,
4014
};
4015
4016
static const 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 const llc_conn_action_t llc_await_rejct_actions_10[] = {
4025
[0] = llc_conn_ac_upd_nr_received,
4026
[1] = llc_conn_ac_upd_vs,
4027
[2] = llc_conn_ac_stop_p_timer,
4028
[3] = llc_conn_ac_set_remote_busy,
4029
[4] = NULL,
4030
};
4031
4032
static const 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 const llc_conn_action_t llc_await_rejct_actions_11a[] = {
4041
[0] = llc_conn_ac_upd_nr_received,
4042
[1] = llc_conn_ac_upd_vs,
4043
[2] = llc_conn_ac_set_remote_busy,
4044
[3] = NULL,
4045
};
4046
4047
static const 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 const llc_conn_action_t llc_await_rejct_actions_11b[] = {
4056
[0] = llc_conn_ac_upd_nr_received,
4057
[1] = llc_conn_ac_upd_vs,
4058
[2] = llc_conn_ac_set_remote_busy,
4059
[3] = NULL,
4060
};
4061
4062
static const 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 const llc_conn_action_t llc_await_rejct_actions_12[] = {
4071
[0] = llc_conn_ac_send_rr_rsp_f_set_1,
4072
[1] = llc_conn_ac_upd_nr_received,
4073
[2] = llc_conn_ac_upd_vs,
4074
[3] = llc_conn_ac_set_remote_busy,
4075
[4] = NULL,
4076
};
4077
4078
static const 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 const llc_conn_ev_qfyr_t llc_await_rejct_ev_qfyrs_13[] = {
4087
[0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
4088
[1] = NULL,
4089
};
4090
4091
static const llc_conn_action_t llc_await_rejct_actions_13[] = {
4092
[0] = llc_conn_ac_send_rej_cmd_p_set_1,
4093
[1] = llc_conn_ac_stop_p_timer,
4094
[2] = llc_conn_ac_inc_retry_cnt_by_1,
4095
[3] = NULL,
4096
};
4097
4098
static const 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 const 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 const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_1[] = {
4161
[0] = llc_conn_ev_qlfy_cause_flag_eq_1,
4162
[1] = llc_conn_ev_qlfy_set_status_conflict,
4163
[2] = NULL,
4164
};
4165
4166
static const llc_conn_action_t llc_d_conn_actions_1[] = {
4167
[0] = llc_conn_ac_send_dm_rsp_f_set_p,
4168
[1] = llc_conn_ac_stop_ack_timer,
4169
[2] = llc_conn_ac_disc_confirm,
4170
[3] = llc_conn_disc,
4171
[4] = NULL,
4172
};
4173
4174
static const 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 const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_1_1[] = {
4185
[0] = llc_conn_ev_qlfy_cause_flag_eq_0,
4186
[1] = llc_conn_ev_qlfy_set_status_conflict,
4187
[2] = NULL,
4188
};
4189
4190
static const llc_conn_action_t llc_d_conn_actions_1_1[] = {
4191
[0] = llc_conn_ac_send_dm_rsp_f_set_p,
4192
[1] = llc_conn_ac_stop_ack_timer,
4193
[2] = llc_conn_disc,
4194
[3] = NULL,
4195
};
4196
4197
static const 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 const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_2[] = {
4208
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
4209
[1] = llc_conn_ev_qlfy_cause_flag_eq_1,
4210
[2] = llc_conn_ev_qlfy_set_status_disc,
4211
[3] = NULL,
4212
};
4213
4214
static const llc_conn_action_t llc_d_conn_actions_2[] = {
4215
[0] = llc_conn_ac_stop_ack_timer,
4216
[1] = llc_conn_ac_disc_confirm,
4217
[2] = llc_conn_disc,
4218
[3] = NULL,
4219
};
4220
4221
static const 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 const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_2_1[] = {
4232
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
4233
[1] = llc_conn_ev_qlfy_cause_flag_eq_0,
4234
[2] = llc_conn_ev_qlfy_set_status_disc,
4235
[3] = NULL,
4236
};
4237
4238
static const llc_conn_action_t llc_d_conn_actions_2_1[] = {
4239
[0] = llc_conn_ac_stop_ack_timer,
4240
[1] = llc_conn_disc,
4241
[2] = NULL,
4242
};
4243
4244
static const 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 const llc_conn_action_t llc_d_conn_actions_3[] = {
4253
[0] = llc_conn_ac_send_ua_rsp_f_set_p,
4254
[1] = NULL,
4255
};
4256
4257
static const 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 const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_4[] = {
4268
[0] = llc_conn_ev_qlfy_cause_flag_eq_1,
4269
[1] = llc_conn_ev_qlfy_set_status_disc,
4270
[2] = NULL,
4271
};
4272
4273
static const llc_conn_action_t llc_d_conn_actions_4[] = {
4274
[0] = llc_conn_ac_stop_ack_timer,
4275
[1] = llc_conn_ac_disc_confirm,
4276
[2] = llc_conn_disc,
4277
[3] = NULL,
4278
};
4279
4280
static const 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 const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_4_1[] = {
4291
[0] = llc_conn_ev_qlfy_cause_flag_eq_0,
4292
[1] = llc_conn_ev_qlfy_set_status_disc,
4293
[2] = NULL,
4294
};
4295
4296
static const llc_conn_action_t llc_d_conn_actions_4_1[] = {
4297
[0] = llc_conn_ac_stop_ack_timer,
4298
[1] = llc_conn_disc,
4299
[2] = NULL,
4300
};
4301
4302
static const 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 const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_5[] = {
4314
[0] = llc_conn_ev_qlfy_set_status_refuse,
4315
[1] = NULL,
4316
};
4317
4318
/* just one member, NULL, .bss zeroes it */
4319
static const llc_conn_action_t llc_d_conn_actions_5[1];
4320
4321
static const 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 const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_6[] = {
4330
[0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
4331
[1] = NULL,
4332
};
4333
4334
static const llc_conn_action_t llc_d_conn_actions_6[] = {
4335
[0] = llc_conn_ac_send_disc_cmd_p_set_x,
4336
[1] = llc_conn_ac_start_ack_timer,
4337
[2] = llc_conn_ac_inc_retry_cnt_by_1,
4338
[3] = NULL,
4339
};
4340
4341
static const 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 const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_7[] = {
4350
[0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
4351
[1] = llc_conn_ev_qlfy_cause_flag_eq_1,
4352
[2] = llc_conn_ev_qlfy_set_status_failed,
4353
[3] = NULL,
4354
};
4355
4356
static const llc_conn_action_t llc_d_conn_actions_7[] = {
4357
[0] = llc_conn_ac_disc_confirm,
4358
[1] = llc_conn_disc,
4359
[2] = NULL,
4360
};
4361
4362
static const 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 const llc_conn_ev_qfyr_t llc_d_conn_ev_qfyrs_8[] = {
4371
[0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
4372
[1] = llc_conn_ev_qlfy_cause_flag_eq_0,
4373
[2] = llc_conn_ev_qlfy_set_status_failed,
4374
[3] = NULL,
4375
};
4376
4377
static const llc_conn_action_t llc_d_conn_actions_8[] = {
4378
[0] = llc_conn_disc,
4379
[1] = NULL,
4380
};
4381
4382
static const 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 const 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 const llc_conn_action_t llc_rst_actions_1[] = {
4415
[0] = llc_conn_ac_set_vs_0,
4416
[1] = llc_conn_ac_set_vr_0,
4417
[2] = llc_conn_ac_set_s_flag_1,
4418
[3] = llc_conn_ac_send_ua_rsp_f_set_p,
4419
[4] = NULL,
4420
};
4421
4422
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_2[] = {
4433
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
4434
[1] = llc_conn_ev_qlfy_cause_flag_eq_1,
4435
[2] = llc_conn_ev_qlfy_set_status_conn,
4436
[3] = NULL,
4437
};
4438
4439
static const llc_conn_action_t llc_rst_actions_2[] = {
4440
[0] = llc_conn_ac_stop_ack_timer,
4441
[1] = llc_conn_ac_set_vs_0,
4442
[2] = llc_conn_ac_set_vr_0,
4443
[3] = llc_conn_ac_upd_p_flag,
4444
[4] = llc_conn_ac_rst_confirm,
4445
[5] = llc_conn_ac_set_remote_busy_0,
4446
[6] = llc_conn_reset,
4447
[7] = NULL,
4448
};
4449
4450
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_2_1[] = {
4461
[0] = llc_conn_ev_qlfy_p_flag_eq_f,
4462
[1] = llc_conn_ev_qlfy_cause_flag_eq_0,
4463
[2] = llc_conn_ev_qlfy_set_status_rst_done,
4464
[3] = NULL,
4465
};
4466
4467
static const llc_conn_action_t llc_rst_actions_2_1[] = {
4468
[0] = llc_conn_ac_stop_ack_timer,
4469
[1] = llc_conn_ac_set_vs_0,
4470
[2] = llc_conn_ac_set_vr_0,
4471
[3] = llc_conn_ac_upd_p_flag,
4472
[4] = llc_conn_ac_rst_confirm,
4473
[5] = llc_conn_ac_set_remote_busy_0,
4474
[6] = llc_conn_reset,
4475
[7] = NULL,
4476
};
4477
4478
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_3[] = {
4487
[0] = llc_conn_ev_qlfy_s_flag_eq_1,
4488
[1] = llc_conn_ev_qlfy_set_status_rst_done,
4489
[2] = NULL,
4490
};
4491
4492
static const llc_conn_action_t llc_rst_actions_3[] = {
4493
[0] = llc_conn_ac_set_p_flag_0,
4494
[1] = llc_conn_ac_set_remote_busy_0,
4495
[2] = NULL,
4496
};
4497
4498
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_4[] = {
4509
[0] = llc_conn_ev_qlfy_cause_flag_eq_1,
4510
[1] = llc_conn_ev_qlfy_set_status_disc,
4511
[2] = NULL,
4512
};
4513
static const llc_conn_action_t llc_rst_actions_4[] = {
4514
[0] = llc_conn_ac_send_dm_rsp_f_set_p,
4515
[1] = llc_conn_ac_disc_ind,
4516
[2] = llc_conn_ac_stop_ack_timer,
4517
[3] = llc_conn_disc,
4518
[4] = NULL,
4519
};
4520
4521
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_4_1[] = {
4532
[0] = llc_conn_ev_qlfy_cause_flag_eq_0,
4533
[1] = llc_conn_ev_qlfy_set_status_refuse,
4534
[2] = NULL,
4535
};
4536
4537
static const llc_conn_action_t llc_rst_actions_4_1[] = {
4538
[0] = llc_conn_ac_send_dm_rsp_f_set_p,
4539
[1] = llc_conn_ac_stop_ack_timer,
4540
[2] = llc_conn_disc,
4541
[3] = NULL,
4542
};
4543
4544
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_5[] = {
4555
[0] = llc_conn_ev_qlfy_cause_flag_eq_1,
4556
[1] = llc_conn_ev_qlfy_set_status_disc,
4557
[2] = NULL,
4558
};
4559
4560
static const llc_conn_action_t llc_rst_actions_5[] = {
4561
[0] = llc_conn_ac_disc_ind,
4562
[1] = llc_conn_ac_stop_ack_timer,
4563
[2] = llc_conn_disc,
4564
[3] = NULL,
4565
};
4566
4567
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_5_1[] = {
4578
[0] = llc_conn_ev_qlfy_cause_flag_eq_0,
4579
[1] = llc_conn_ev_qlfy_set_status_refuse,
4580
[2] = NULL,
4581
};
4582
4583
static const llc_conn_action_t llc_rst_actions_5_1[] = {
4584
[0] = llc_conn_ac_stop_ack_timer,
4585
[1] = llc_conn_disc,
4586
[2] = NULL,
4587
};
4588
4589
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_6[] = {
4598
[0] = llc_conn_ev_qlfy_set_status_refuse,
4599
[1] = NULL,
4600
};
4601
4602
/* just one member, NULL, .bss zeroes it */
4603
static const llc_conn_action_t llc_rst_actions_6[1];
4604
4605
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_7[] = {
4614
[0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
4615
[1] = llc_conn_ev_qlfy_s_flag_eq_0,
4616
[2] = NULL,
4617
};
4618
4619
static const llc_conn_action_t llc_rst_actions_7[] = {
4620
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
4621
[1] = llc_conn_ac_start_ack_timer,
4622
[2] = llc_conn_ac_inc_retry_cnt_by_1,
4623
[3] = NULL,
4624
};
4625
4626
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_8[] = {
4635
[0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
4636
[1] = llc_conn_ev_qlfy_s_flag_eq_0,
4637
[2] = llc_conn_ev_qlfy_cause_flag_eq_1,
4638
[3] = llc_conn_ev_qlfy_set_status_failed,
4639
[4] = NULL,
4640
};
4641
static const llc_conn_action_t llc_rst_actions_8[] = {
4642
[0] = llc_conn_ac_disc_ind,
4643
[1] = llc_conn_disc,
4644
[2] = NULL,
4645
};
4646
4647
static const 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 const llc_conn_ev_qfyr_t llc_rst_ev_qfyrs_8_1[] = {
4656
[0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
4657
[1] = llc_conn_ev_qlfy_s_flag_eq_0,
4658
[2] = llc_conn_ev_qlfy_cause_flag_eq_0,
4659
[3] = llc_conn_ev_qlfy_set_status_failed,
4660
[4] = NULL,
4661
};
4662
static const llc_conn_action_t llc_rst_actions_8_1[] = {
4663
[0] = llc_conn_ac_disc_ind,
4664
[1] = llc_conn_disc,
4665
[2] = NULL,
4666
};
4667
4668
static const 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 const 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 const llc_conn_action_t llc_error_actions_1[] = {
4702
[0] = llc_conn_ac_set_vs_0,
4703
[1] = llc_conn_ac_set_vr_0,
4704
[2] = llc_conn_ac_send_ua_rsp_f_set_p,
4705
[3] = llc_conn_ac_rst_ind,
4706
[4] = llc_conn_ac_set_p_flag_0,
4707
[5] = llc_conn_ac_set_remote_busy_0,
4708
[6] = llc_conn_ac_stop_ack_timer,
4709
[7] = llc_conn_reset,
4710
[8] = NULL,
4711
};
4712
4713
static const 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 const llc_conn_action_t llc_error_actions_2[] = {
4722
[0] = llc_conn_ac_send_ua_rsp_f_set_p,
4723
[1] = llc_conn_ac_disc_ind,
4724
[2] = llc_conn_ac_stop_ack_timer,
4725
[3] = llc_conn_disc,
4726
[4] = NULL,
4727
};
4728
4729
static const 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 const llc_conn_action_t llc_error_actions_3[] = {
4738
[0] = llc_conn_ac_disc_ind,
4739
[1] = llc_conn_ac_stop_ack_timer,
4740
[2] = llc_conn_disc,
4741
[3] = NULL,
4742
};
4743
4744
static const 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 const llc_conn_action_t llc_error_actions_4[] = {
4753
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
4754
[1] = llc_conn_ac_start_ack_timer,
4755
[2] = llc_conn_ac_set_retry_cnt_0,
4756
[3] = llc_conn_ac_set_cause_flag_0,
4757
[4] = NULL,
4758
};
4759
4760
static const 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 const llc_conn_action_t llc_error_actions_5[] = {
4769
[0] = llc_conn_ac_resend_frmr_rsp_f_set_p,
4770
[1] = NULL,
4771
};
4772
4773
static const 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 const 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 const llc_conn_ev_qfyr_t llc_error_ev_qfyrs_7[] = {
4790
[0] = llc_conn_ev_qlfy_retry_cnt_lt_n2,
4791
[1] = NULL,
4792
};
4793
4794
static const llc_conn_action_t llc_error_actions_7[] = {
4795
[0] = llc_conn_ac_resend_frmr_rsp_f_set_0,
4796
[1] = llc_conn_ac_start_ack_timer,
4797
[2] = llc_conn_ac_inc_retry_cnt_by_1,
4798
[3] = NULL,
4799
};
4800
4801
static const 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 const llc_conn_ev_qfyr_t llc_error_ev_qfyrs_8[] = {
4810
[0] = llc_conn_ev_qlfy_retry_cnt_gte_n2,
4811
[1] = NULL,
4812
};
4813
4814
static const llc_conn_action_t llc_error_actions_8[] = {
4815
[0] = llc_conn_ac_send_sabme_cmd_p_set_x,
4816
[1] = llc_conn_ac_set_s_flag_0,
4817
[2] = llc_conn_ac_start_ack_timer,
4818
[3] = llc_conn_ac_set_retry_cnt_0,
4819
[4] = llc_conn_ac_set_cause_flag_0,
4820
[5] = NULL,
4821
};
4822
4823
static const 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 const llc_conn_ev_qfyr_t llc_error_ev_qfyrs_9[] = {
4832
[0] = llc_conn_ev_qlfy_set_status_refuse,
4833
[1] = NULL,
4834
};
4835
4836
/* just one member, NULL, .bss zeroes it */
4837
static const llc_conn_action_t llc_error_actions_9[1];
4838
4839
static const 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 const 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 const llc_conn_action_t llc_temp_actions_1[] = {
4870
[0] = llc_conn_ac_stop_all_timers,
4871
[1] = llc_conn_ac_send_disc_cmd_p_set_x,
4872
[2] = llc_conn_disc,
4873
[3] = NULL,
4874
};
4875
4876
static const 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 const 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
};
4947
4948