root/net/llc/llc_c_st.c

/* [<][>][^][v][top][bottom][index][help] */
   1 /*
   2  * llc_c_st.c - This module contains state transition of connection component.
   3  *
   4  * Description of event functions and actions there is in 802.2 LLC standard,
   5  * or in "llc_c_ac.c" and "llc_c_ev.c" modules.
   6  *
   7  * Copyright (c) 1997 by Procom Technology, Inc.
   8  *               2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
   9  *
  10  * This program can be redistributed or modified under the terms of the
  11  * GNU General Public License as published by the Free Software Foundation.
  12  * This program is distributed without any warranty or implied warranty
  13  * of merchantability or fitness for a particular purpose.
  14  *
  15  * See the GNU General Public License for more details.
  16  */
  17 #include <linux/types.h>
  18 #include <net/llc_if.h>
  19 #include <net/llc_sap.h>
  20 #include <net/llc_c_ev.h>
  21 #include <net/llc_c_ac.h>
  22 #include <net/llc_c_st.h>
  23 
  24 #define NONE NULL
  25 
  26 /* COMMON CONNECTION STATE transitions
  27  * Common transitions for
  28  * LLC_CONN_STATE_NORMAL,
  29  * LLC_CONN_STATE_BUSY,
  30  * LLC_CONN_STATE_REJ,
  31  * LLC_CONN_STATE_AWAIT,
  32  * LLC_CONN_STATE_AWAIT_BUSY and
  33  * LLC_CONN_STATE_AWAIT_REJ states
  34  */
  35 /* State transitions for LLC_CONN_EV_DISC_REQ event */
  36 static 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 struct llc_conn_state_trans llc_common_state_trans_11d = {
 340         .ev            = llc_conn_ev_busy_tmr_exp,
 341         .next_state    = LLC_CONN_STATE_RESET,
 342         .ev_qualifiers = llc_common_ev_qfyrs_11d,
 343         .ev_actions    = llc_common_actions_11d,
 344 };
 345 
 346 /*
 347  * Common dummy state transition; must be last entry for all state
 348  * transition groups - it'll be on .bss, so will be zeroed.
 349  */
 350 static struct llc_conn_state_trans llc_common_state_trans_end;
 351 
 352 /* LLC_CONN_STATE_ADM transitions */
 353 /* State transitions for LLC_CONN_EV_CONN_REQ event */
 354 static 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 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 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 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 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 struct llc_conn_state_trans llc_adm_state_trans_5 = {
 423         .ev            = llc_conn_ev_rx_any_frame,
 424         .next_state    = LLC_CONN_OUT_OF_SVC,
 425         .ev_qualifiers = NONE,
 426         .ev_actions    = llc_adm_actions_5,
 427 };
 428 
 429 /*
 430  * Array of pointers;
 431  * one to each transition
 432  */
 433 static struct llc_conn_state_trans *llc_adm_state_transitions[] = {
 434         [0] = &llc_adm_state_trans_1,           /* Request */
 435         [1] = &llc_common_state_trans_end,
 436         [2] = &llc_common_state_trans_end,      /* local_busy */
 437         [3] = &llc_common_state_trans_end,      /* init_pf_cycle */
 438         [4] = &llc_common_state_trans_end,      /* timer */
 439         [5] = &llc_adm_state_trans_2,           /* Receive frame */
 440         [6] = &llc_adm_state_trans_3,
 441         [7] = &llc_adm_state_trans_4,
 442         [8] = &llc_adm_state_trans_5,
 443         [9] = &llc_common_state_trans_end,
 444 };
 445 
 446 /* LLC_CONN_STATE_SETUP transitions */
 447 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
 448 static 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 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 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 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 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 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 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 struct llc_conn_state_trans llc_setup_state_trans_8 = {
 585         .ev            = llc_conn_ev_ack_tmr_exp,
 586         .next_state    = LLC_CONN_STATE_ADM,
 587         .ev_qualifiers = llc_setup_ev_qfyrs_8,
 588         .ev_actions    = llc_setup_actions_8,
 589 };
 590 
 591 /*
 592  * Array of pointers;
 593  * one to each transition
 594  */
 595 static struct llc_conn_state_trans *llc_setup_state_transitions[] = {
 596          [0] = &llc_common_state_trans_end,     /* Request */
 597          [1] = &llc_common_state_trans_end,     /* local busy */
 598          [2] = &llc_common_state_trans_end,     /* init_pf_cycle */
 599          [3] = &llc_setup_state_trans_3,        /* Timer */
 600          [4] = &llc_setup_state_trans_7,
 601          [5] = &llc_setup_state_trans_8,
 602          [6] = &llc_common_state_trans_end,
 603          [7] = &llc_setup_state_trans_1,        /* Receive frame */
 604          [8] = &llc_setup_state_trans_2,
 605          [9] = &llc_setup_state_trans_4,
 606         [10] = &llc_setup_state_trans_5,
 607         [11] = &llc_common_state_trans_end,
 608 };
 609 
 610 /* LLC_CONN_STATE_NORMAL transitions */
 611 /* State transitions for LLC_CONN_EV_DATA_REQ event */
 612 static 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 struct llc_conn_state_trans llc_normal_state_trans_21 = {
1274         .ev            = llc_conn_ev_tx_buffer_full,
1275         .next_state    = LLC_CONN_STATE_NORMAL,
1276         .ev_qualifiers = llc_normal_ev_qfyrs_21,
1277         .ev_actions    = llc_normal_actions_21,
1278 };
1279 
1280 /*
1281  * Array of pointers;
1282  * one to each transition
1283  */
1284 static struct llc_conn_state_trans *llc_normal_state_transitions[] = {
1285          [0] = &llc_normal_state_trans_1,       /* Requests */
1286          [1] = &llc_normal_state_trans_2,
1287          [2] = &llc_normal_state_trans_2_1,
1288          [3] = &llc_common_state_trans_1,
1289          [4] = &llc_common_state_trans_2,
1290          [5] = &llc_common_state_trans_end,
1291          [6] = &llc_normal_state_trans_21,
1292          [7] = &llc_normal_state_trans_3,       /* Local busy */
1293          [8] = &llc_normal_state_trans_4,
1294          [9] = &llc_common_state_trans_end,
1295         [10] = &llc_normal_state_trans_18,      /* Init pf cycle */
1296         [11] = &llc_common_state_trans_end,
1297         [12] = &llc_common_state_trans_11a,     /* Timers */
1298         [13] = &llc_common_state_trans_11b,
1299         [14] = &llc_common_state_trans_11c,
1300         [15] = &llc_common_state_trans_11d,
1301         [16] = &llc_normal_state_trans_19,
1302         [17] = &llc_normal_state_trans_20a,
1303         [18] = &llc_normal_state_trans_20b,
1304         [19] = &llc_common_state_trans_end,
1305         [20] = &llc_normal_state_trans_8b,      /* Receive frames */
1306         [21] = &llc_normal_state_trans_9b,
1307         [22] = &llc_normal_state_trans_10,
1308         [23] = &llc_normal_state_trans_11b,
1309         [24] = &llc_normal_state_trans_11c,
1310         [25] = &llc_normal_state_trans_5a,
1311         [26] = &llc_normal_state_trans_5b,
1312         [27] = &llc_normal_state_trans_5c,
1313         [28] = &llc_normal_state_trans_6a,
1314         [29] = &llc_normal_state_trans_6b,
1315         [30] = &llc_normal_state_trans_7,
1316         [31] = &llc_normal_state_trans_8a,
1317         [32] = &llc_normal_state_trans_9a,
1318         [33] = &llc_normal_state_trans_11a,
1319         [34] = &llc_normal_state_trans_12,
1320         [35] = &llc_normal_state_trans_13a,
1321         [36] = &llc_normal_state_trans_13b,
1322         [37] = &llc_normal_state_trans_13c,
1323         [38] = &llc_normal_state_trans_14,
1324         [39] = &llc_normal_state_trans_15a,
1325         [40] = &llc_normal_state_trans_15b,
1326         [41] = &llc_normal_state_trans_16a,
1327         [42] = &llc_normal_state_trans_16b,
1328         [43] = &llc_normal_state_trans_17,
1329         [44] = &llc_common_state_trans_3,
1330         [45] = &llc_common_state_trans_4,
1331         [46] = &llc_common_state_trans_5,
1332         [47] = &llc_common_state_trans_6,
1333         [48] = &llc_common_state_trans_7a,
1334         [49] = &llc_common_state_trans_7b,
1335         [50] = &llc_common_state_trans_8a,
1336         [51] = &llc_common_state_trans_8b,
1337         [52] = &llc_common_state_trans_8c,
1338         [53] = &llc_common_state_trans_9,
1339         /* [54] = &llc_common_state_trans_10, */
1340         [54] = &llc_common_state_trans_end,
1341 };
1342 
1343 /* LLC_CONN_STATE_BUSY transitions */
1344 /* State transitions for LLC_CONN_EV_DATA_REQ event */
1345 static 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 struct llc_conn_state_trans llc_busy_state_trans_26 = {
2083         .ev            = llc_conn_ev_rej_tmr_exp,
2084         .next_state    = LLC_CONN_STATE_BUSY,
2085         .ev_qualifiers = llc_busy_ev_qfyrs_26,
2086         .ev_actions    = llc_busy_actions_26,
2087 };
2088 
2089 /*
2090  * Array of pointers;
2091  * one to each transition
2092  */
2093 static struct llc_conn_state_trans *llc_busy_state_transitions[] = {
2094          [0] = &llc_common_state_trans_1,       /* Request */
2095          [1] = &llc_common_state_trans_2,
2096          [2] = &llc_busy_state_trans_1,
2097          [3] = &llc_busy_state_trans_2,
2098          [4] = &llc_busy_state_trans_2_1,
2099          [5] = &llc_common_state_trans_end,
2100          [6] = &llc_busy_state_trans_3,         /* Local busy */
2101          [7] = &llc_busy_state_trans_4,
2102          [8] = &llc_busy_state_trans_5,
2103          [9] = &llc_busy_state_trans_6,
2104         [10] = &llc_busy_state_trans_7,
2105         [11] = &llc_busy_state_trans_8,
2106         [12] = &llc_common_state_trans_end,
2107         [13] = &llc_busy_state_trans_22,        /* Initiate PF cycle */
2108         [14] = &llc_common_state_trans_end,
2109         [15] = &llc_common_state_trans_11a,     /* Timer */
2110         [16] = &llc_common_state_trans_11b,
2111         [17] = &llc_common_state_trans_11c,
2112         [18] = &llc_common_state_trans_11d,
2113         [19] = &llc_busy_state_trans_23,
2114         [20] = &llc_busy_state_trans_24a,
2115         [21] = &llc_busy_state_trans_24b,
2116         [22] = &llc_busy_state_trans_25,
2117         [23] = &llc_busy_state_trans_26,
2118         [24] = &llc_common_state_trans_end,
2119         [25] = &llc_busy_state_trans_9a,        /* Receive frame */
2120         [26] = &llc_busy_state_trans_9b,
2121         [27] = &llc_busy_state_trans_10a,
2122         [28] = &llc_busy_state_trans_10b,
2123         [29] = &llc_busy_state_trans_11,
2124         [30] = &llc_busy_state_trans_12,
2125         [31] = &llc_busy_state_trans_13a,
2126         [32] = &llc_busy_state_trans_13b,
2127         [33] = &llc_busy_state_trans_14a,
2128         [34] = &llc_busy_state_trans_14b,
2129         [35] = &llc_busy_state_trans_15a,
2130         [36] = &llc_busy_state_trans_15b,
2131         [37] = &llc_busy_state_trans_15c,
2132         [38] = &llc_busy_state_trans_16,
2133         [39] = &llc_busy_state_trans_17a,
2134         [40] = &llc_busy_state_trans_17b,
2135         [41] = &llc_busy_state_trans_17c,
2136         [42] = &llc_busy_state_trans_18,
2137         [43] = &llc_busy_state_trans_19a,
2138         [44] = &llc_busy_state_trans_19b,
2139         [45] = &llc_busy_state_trans_20a,
2140         [46] = &llc_busy_state_trans_20b,
2141         [47] = &llc_busy_state_trans_21,
2142         [48] = &llc_common_state_trans_3,
2143         [49] = &llc_common_state_trans_4,
2144         [50] = &llc_common_state_trans_5,
2145         [51] = &llc_common_state_trans_6,
2146         [52] = &llc_common_state_trans_7a,
2147         [53] = &llc_common_state_trans_7b,
2148         [54] = &llc_common_state_trans_8a,
2149         [55] = &llc_common_state_trans_8b,
2150         [56] = &llc_common_state_trans_8c,
2151         [57] = &llc_common_state_trans_9,
2152         /* [58] = &llc_common_state_trans_10, */
2153         [58] = &llc_common_state_trans_end,
2154 };
2155 
2156 /* LLC_CONN_STATE_REJ transitions */
2157 /* State transitions for LLC_CONN_EV_DATA_REQ event */
2158 static 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 struct llc_conn_state_trans llc_reject_state_trans_20b = {
2760         .ev            = llc_conn_ev_busy_tmr_exp,
2761         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
2762         .ev_qualifiers = llc_reject_ev_qfyrs_20b,
2763         .ev_actions    = llc_reject_actions_20b,
2764 };
2765 
2766 /*
2767  * Array of pointers;
2768  * one to each transition
2769  */
2770 static struct llc_conn_state_trans *llc_reject_state_transitions[] = {
2771          [0] = &llc_common_state_trans_1,       /* Request */
2772          [1] = &llc_common_state_trans_2,
2773          [2] = &llc_common_state_trans_end,
2774          [3] = &llc_reject_state_trans_1,
2775          [4] = &llc_reject_state_trans_2,
2776          [5] = &llc_reject_state_trans_2_1,
2777          [6] = &llc_reject_state_trans_3,       /* Local busy */
2778          [7] = &llc_reject_state_trans_4,
2779          [8] = &llc_common_state_trans_end,
2780          [9] = &llc_reject_state_trans_17,      /* Initiate PF cycle */
2781         [10] = &llc_common_state_trans_end,
2782         [11] = &llc_common_state_trans_11a,     /* Timer */
2783         [12] = &llc_common_state_trans_11b,
2784         [13] = &llc_common_state_trans_11c,
2785         [14] = &llc_common_state_trans_11d,
2786         [15] = &llc_reject_state_trans_18,
2787         [16] = &llc_reject_state_trans_19,
2788         [17] = &llc_reject_state_trans_20a,
2789         [18] = &llc_reject_state_trans_20b,
2790         [19] = &llc_common_state_trans_end,
2791         [20] = &llc_common_state_trans_3,       /* Receive frame */
2792         [21] = &llc_common_state_trans_4,
2793         [22] = &llc_common_state_trans_5,
2794         [23] = &llc_common_state_trans_6,
2795         [24] = &llc_common_state_trans_7a,
2796         [25] = &llc_common_state_trans_7b,
2797         [26] = &llc_common_state_trans_8a,
2798         [27] = &llc_common_state_trans_8b,
2799         [28] = &llc_common_state_trans_8c,
2800         [29] = &llc_common_state_trans_9,
2801         /* [30] = &llc_common_state_trans_10, */
2802         [30] = &llc_reject_state_trans_5a,
2803         [31] = &llc_reject_state_trans_5b,
2804         [32] = &llc_reject_state_trans_5c,
2805         [33] = &llc_reject_state_trans_6,
2806         [34] = &llc_reject_state_trans_7a,
2807         [35] = &llc_reject_state_trans_7b,
2808         [36] = &llc_reject_state_trans_8a,
2809         [37] = &llc_reject_state_trans_8b,
2810         [38] = &llc_reject_state_trans_9,
2811         [39] = &llc_reject_state_trans_10a,
2812         [40] = &llc_reject_state_trans_10b,
2813         [41] = &llc_reject_state_trans_10c,
2814         [42] = &llc_reject_state_trans_11,
2815         [43] = &llc_reject_state_trans_12a,
2816         [44] = &llc_reject_state_trans_12b,
2817         [45] = &llc_reject_state_trans_12c,
2818         [46] = &llc_reject_state_trans_13,
2819         [47] = &llc_reject_state_trans_14a,
2820         [48] = &llc_reject_state_trans_14b,
2821         [49] = &llc_reject_state_trans_15a,
2822         [50] = &llc_reject_state_trans_15b,
2823         [51] = &llc_reject_state_trans_16,
2824         [52] = &llc_common_state_trans_end,
2825 };
2826 
2827 /* LLC_CONN_STATE_AWAIT transitions */
2828 /* State transitions for LLC_CONN_EV_DATA_REQ event */
2829 static 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 struct llc_conn_state_trans llc_await_state_trans_14 = {
3198         .ev            = llc_conn_ev_p_tmr_exp,
3199         .next_state    = LLC_CONN_STATE_AWAIT,
3200         .ev_qualifiers = llc_await_ev_qfyrs_14,
3201         .ev_actions    = llc_await_actions_14,
3202 };
3203 
3204 /*
3205  * Array of pointers;
3206  * one to each transition
3207  */
3208 static struct llc_conn_state_trans *llc_await_state_transitions[] = {
3209          [0] = &llc_common_state_trans_1,       /* Request */
3210          [1] = &llc_common_state_trans_2,
3211          [2] = &llc_await_state_trans_1_0,
3212          [3] = &llc_common_state_trans_end,
3213          [4] = &llc_await_state_trans_1,        /* Local busy */
3214          [5] = &llc_common_state_trans_end,
3215          [6] = &llc_common_state_trans_end,     /* Initiate PF Cycle */
3216          [7] = &llc_common_state_trans_11a,     /* Timer */
3217          [8] = &llc_common_state_trans_11b,
3218          [9] = &llc_common_state_trans_11c,
3219         [10] = &llc_common_state_trans_11d,
3220         [11] = &llc_await_state_trans_14,
3221         [12] = &llc_common_state_trans_end,
3222         [13] = &llc_common_state_trans_3,       /* Receive frame */
3223         [14] = &llc_common_state_trans_4,
3224         [15] = &llc_common_state_trans_5,
3225         [16] = &llc_common_state_trans_6,
3226         [17] = &llc_common_state_trans_7a,
3227         [18] = &llc_common_state_trans_7b,
3228         [19] = &llc_common_state_trans_8a,
3229         [20] = &llc_common_state_trans_8b,
3230         [21] = &llc_common_state_trans_8c,
3231         [22] = &llc_common_state_trans_9,
3232         /* [23] = &llc_common_state_trans_10, */
3233         [23] = &llc_await_state_trans_2,
3234         [24] = &llc_await_state_trans_3a,
3235         [25] = &llc_await_state_trans_3b,
3236         [26] = &llc_await_state_trans_4,
3237         [27] = &llc_await_state_trans_5,
3238         [28] = &llc_await_state_trans_6a,
3239         [29] = &llc_await_state_trans_6b,
3240         [30] = &llc_await_state_trans_7,
3241         [31] = &llc_await_state_trans_8a,
3242         [32] = &llc_await_state_trans_8b,
3243         [33] = &llc_await_state_trans_9a,
3244         [34] = &llc_await_state_trans_9b,
3245         [35] = &llc_await_state_trans_9c,
3246         [36] = &llc_await_state_trans_9d,
3247         [37] = &llc_await_state_trans_10a,
3248         [38] = &llc_await_state_trans_10b,
3249         [39] = &llc_await_state_trans_11,
3250         [40] = &llc_await_state_trans_12a,
3251         [41] = &llc_await_state_trans_12b,
3252         [42] = &llc_await_state_trans_13,
3253         [43] = &llc_common_state_trans_end,
3254 };
3255 
3256 /* LLC_CONN_STATE_AWAIT_BUSY transitions */
3257 /* State transitions for LLC_CONN_EV_DATA_CONN_REQ event */
3258 static 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 struct llc_conn_state_trans llc_await_busy_state_trans_16 = {
3672         .ev            = llc_conn_ev_p_tmr_exp,
3673         .next_state    = LLC_CONN_STATE_AWAIT_BUSY,
3674         .ev_qualifiers = llc_await_busy_ev_qfyrs_16,
3675         .ev_actions    = llc_await_busy_actions_16,
3676 };
3677 
3678 /*
3679  * Array of pointers;
3680  * one to each transition
3681  */
3682 static struct llc_conn_state_trans *llc_await_busy_state_transitions[] = {
3683          [0] = &llc_common_state_trans_1,               /* Request */
3684          [1] = &llc_common_state_trans_2,
3685          [2] = &llc_await_busy_state_trans_1_0,
3686          [3] = &llc_common_state_trans_end,
3687          [4] = &llc_await_busy_state_trans_1,           /* Local busy */
3688          [5] = &llc_await_busy_state_trans_2,
3689          [6] = &llc_await_busy_state_trans_3,
3690          [7] = &llc_common_state_trans_end,
3691          [8] = &llc_common_state_trans_end,             /* Initiate PF cycle */
3692          [9] = &llc_common_state_trans_11a,             /* Timer */
3693         [10] = &llc_common_state_trans_11b,
3694         [11] = &llc_common_state_trans_11c,
3695         [12] = &llc_common_state_trans_11d,
3696         [13] = &llc_await_busy_state_trans_16,
3697         [14] = &llc_common_state_trans_end,
3698         [15] = &llc_await_busy_state_trans_4,           /* Receive frame */
3699         [16] = &llc_await_busy_state_trans_5a,
3700         [17] = &llc_await_busy_state_trans_5b,
3701         [18] = &llc_await_busy_state_trans_6,
3702         [19] = &llc_await_busy_state_trans_7,
3703         [20] = &llc_await_busy_state_trans_8a,
3704         [21] = &llc_await_busy_state_trans_8b,
3705         [22] = &llc_await_busy_state_trans_9,
3706         [23] = &llc_await_busy_state_trans_10a,
3707         [24] = &llc_await_busy_state_trans_10b,
3708         [25] = &llc_await_busy_state_trans_11a,
3709         [26] = &llc_await_busy_state_trans_11b,
3710         [27] = &llc_await_busy_state_trans_11c,
3711         [28] = &llc_await_busy_state_trans_11d,
3712         [29] = &llc_await_busy_state_trans_12a,
3713         [30] = &llc_await_busy_state_trans_12b,
3714         [31] = &llc_await_busy_state_trans_13,
3715         [32] = &llc_await_busy_state_trans_14a,
3716         [33] = &llc_await_busy_state_trans_14b,
3717         [34] = &llc_await_busy_state_trans_15,
3718         [35] = &llc_common_state_trans_3,
3719         [36] = &llc_common_state_trans_4,
3720         [37] = &llc_common_state_trans_5,
3721         [38] = &llc_common_state_trans_6,
3722         [39] = &llc_common_state_trans_7a,
3723         [40] = &llc_common_state_trans_7b,
3724         [41] = &llc_common_state_trans_8a,
3725         [42] = &llc_common_state_trans_8b,
3726         [43] = &llc_common_state_trans_8c,
3727         [44] = &llc_common_state_trans_9,
3728         /* [45] = &llc_common_state_trans_10, */
3729         [45] = &llc_common_state_trans_end,
3730 };
3731 
3732 /* ----------------- LLC_CONN_STATE_AWAIT_REJ transitions --------------- */
3733 /* State transitions for LLC_CONN_EV_DATA_CONN_REQ event */
3734 static 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 struct llc_conn_state_trans llc_await_rejct_state_trans_13 = {
4099         .ev            = llc_conn_ev_p_tmr_exp,
4100         .next_state    = LLC_CONN_STATE_AWAIT_REJ,
4101         .ev_qualifiers = llc_await_rejct_ev_qfyrs_13,
4102         .ev_actions    = llc_await_rejct_actions_13,
4103 };
4104 
4105 /*
4106  * Array of pointers;
4107  * one to each transition
4108  */
4109 static struct llc_conn_state_trans *llc_await_rejct_state_transitions[] = {
4110          [0] = &llc_await_reject_state_trans_1_0,
4111          [1] = &llc_common_state_trans_1,               /* requests */
4112          [2] = &llc_common_state_trans_2,
4113          [3] = &llc_common_state_trans_end,
4114          [4] = &llc_await_rejct_state_trans_1,          /* local busy */
4115          [5] = &llc_common_state_trans_end,
4116          [6] = &llc_common_state_trans_end,             /* Initiate PF cycle */
4117          [7] = &llc_await_rejct_state_trans_13, /* timers */
4118          [8] = &llc_common_state_trans_11a,
4119          [9] = &llc_common_state_trans_11b,
4120         [10] = &llc_common_state_trans_11c,
4121         [11] = &llc_common_state_trans_11d,
4122         [12] = &llc_common_state_trans_end,
4123         [13] = &llc_await_rejct_state_trans_2a, /* receive frames */
4124         [14] = &llc_await_rejct_state_trans_2b,
4125         [15] = &llc_await_rejct_state_trans_3,
4126         [16] = &llc_await_rejct_state_trans_4,
4127         [17] = &llc_await_rejct_state_trans_5a,
4128         [18] = &llc_await_rejct_state_trans_5b,
4129         [19] = &llc_await_rejct_state_trans_6,
4130         [20] = &llc_await_rejct_state_trans_7a,
4131         [21] = &llc_await_rejct_state_trans_7b,
4132         [22] = &llc_await_rejct_state_trans_7c,
4133         [23] = &llc_await_rejct_state_trans_8a,
4134         [24] = &llc_await_rejct_state_trans_8b,
4135         [25] = &llc_await_rejct_state_trans_8c,
4136         [26] = &llc_await_rejct_state_trans_8d,
4137         [27] = &llc_await_rejct_state_trans_9a,
4138         [28] = &llc_await_rejct_state_trans_9b,
4139         [29] = &llc_await_rejct_state_trans_10,
4140         [30] = &llc_await_rejct_state_trans_11a,
4141         [31] = &llc_await_rejct_state_trans_11b,
4142         [32] = &llc_await_rejct_state_trans_12,
4143         [33] = &llc_common_state_trans_3,
4144         [34] = &llc_common_state_trans_4,
4145         [35] = &llc_common_state_trans_5,
4146         [36] = &llc_common_state_trans_6,
4147         [37] = &llc_common_state_trans_7a,
4148         [38] = &llc_common_state_trans_7b,
4149         [39] = &llc_common_state_trans_8a,
4150         [40] = &llc_common_state_trans_8b,
4151         [41] = &llc_common_state_trans_8c,
4152         [42] = &llc_common_state_trans_9,
4153         /* [43] = &llc_common_state_trans_10, */
4154         [43] = &llc_common_state_trans_end,
4155 };
4156 
4157 /* LLC_CONN_STATE_D_CONN transitions */
4158 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event,
4159  * cause_flag = 1 */
4160 static 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 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 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 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 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 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 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 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 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 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 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 struct llc_conn_state_trans llc_d_conn_state_trans_8 = {
4383         .ev            = llc_conn_ev_ack_tmr_exp,
4384         .next_state    = LLC_CONN_STATE_ADM,
4385         .ev_qualifiers = llc_d_conn_ev_qfyrs_8,
4386         .ev_actions    = llc_d_conn_actions_8,
4387 };
4388 
4389 /*
4390  * Array of pointers;
4391  * one to each transition
4392  */
4393 static struct llc_conn_state_trans *llc_d_conn_state_transitions[] = {
4394          [0] = &llc_d_conn_state_trans_5,       /* Request */
4395          [1] = &llc_common_state_trans_end,
4396          [2] = &llc_common_state_trans_end,     /* Local busy */
4397          [3] = &llc_common_state_trans_end,     /* Initiate PF cycle */
4398          [4] = &llc_d_conn_state_trans_6,       /* Timer */
4399          [5] = &llc_d_conn_state_trans_7,
4400          [6] = &llc_d_conn_state_trans_8,
4401          [7] = &llc_common_state_trans_end,
4402          [8] = &llc_d_conn_state_trans_1,       /* Receive frame */
4403          [9] = &llc_d_conn_state_trans_1_1,
4404         [10] = &llc_d_conn_state_trans_2,
4405         [11] = &llc_d_conn_state_trans_2_1,
4406         [12] = &llc_d_conn_state_trans_3,
4407         [13] = &llc_d_conn_state_trans_4,
4408         [14] = &llc_d_conn_state_trans_4_1,
4409         [15] = &llc_common_state_trans_end,
4410 };
4411 
4412 /* LLC_CONN_STATE_RESET transitions */
4413 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
4414 static 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 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 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 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 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 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 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 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 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 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 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 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 struct llc_conn_state_trans llc_rst_state_trans_8_1 = {
4669         .ev            = llc_conn_ev_ack_tmr_exp,
4670         .next_state    = LLC_CONN_STATE_ADM,
4671         .ev_qualifiers = llc_rst_ev_qfyrs_8_1,
4672         .ev_actions    = llc_rst_actions_8_1,
4673 };
4674 
4675 /*
4676  * Array of pointers;
4677  * one to each transition
4678  */
4679 static struct llc_conn_state_trans *llc_rst_state_transitions[] = {
4680          [0] = &llc_rst_state_trans_6,          /* Request */
4681          [1] = &llc_common_state_trans_end,
4682          [2] = &llc_common_state_trans_end,     /* Local busy */
4683          [3] = &llc_common_state_trans_end,     /* Initiate PF cycle */
4684          [4] = &llc_rst_state_trans_3,          /* Timer */
4685          [5] = &llc_rst_state_trans_7,
4686          [6] = &llc_rst_state_trans_8,
4687          [7] = &llc_rst_state_trans_8_1,
4688          [8] = &llc_common_state_trans_end,
4689          [9] = &llc_rst_state_trans_1,          /* Receive frame */
4690         [10] = &llc_rst_state_trans_2,
4691         [11] = &llc_rst_state_trans_2_1,
4692         [12] = &llc_rst_state_trans_4,
4693         [13] = &llc_rst_state_trans_4_1,
4694         [14] = &llc_rst_state_trans_5,
4695         [15] = &llc_rst_state_trans_5_1,
4696         [16] = &llc_common_state_trans_end,
4697 };
4698 
4699 /* LLC_CONN_STATE_ERROR transitions */
4700 /* State transitions for LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X event */
4701 static 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 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 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 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 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 struct llc_conn_state_trans llc_error_state_trans_5 = {
4774         .ev            = llc_conn_ev_rx_xxx_cmd_pbit_set_x,
4775         .next_state    = LLC_CONN_STATE_ERROR,
4776         .ev_qualifiers = NONE,
4777         .ev_actions    = llc_error_actions_5,
4778 };
4779 
4780 /* State transitions for LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_X event */
4781 static struct llc_conn_state_trans llc_error_state_trans_6 = {
4782         .ev            = llc_conn_ev_rx_xxx_rsp_fbit_set_x,
4783         .next_state    = LLC_CONN_STATE_ERROR,
4784         .ev_qualifiers = NONE,
4785         .ev_actions    = NONE,
4786 };
4787 
4788 /* State transitions for LLC_CONN_EV_ACK_TMR_EXP event */
4789 static 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 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 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 struct llc_conn_state_trans llc_error_state_trans_9 = {
4840         .ev            = llc_conn_ev_data_req,
4841         .next_state    = LLC_CONN_STATE_ERROR,
4842         .ev_qualifiers = llc_error_ev_qfyrs_9,
4843         .ev_actions    = llc_error_actions_9,
4844 };
4845 
4846 /*
4847  * Array of pointers;
4848  * one to each transition
4849  */
4850 static struct llc_conn_state_trans *llc_error_state_transitions[] = {
4851          [0] = &llc_error_state_trans_9,        /* Request */
4852          [1] = &llc_common_state_trans_end,
4853          [2] = &llc_common_state_trans_end,     /* Local busy */
4854          [3] = &llc_common_state_trans_end,     /* Initiate PF cycle */
4855          [4] = &llc_error_state_trans_7,        /* Timer */
4856          [5] = &llc_error_state_trans_8,
4857          [6] = &llc_common_state_trans_end,
4858          [7] = &llc_error_state_trans_1,        /* Receive frame */
4859          [8] = &llc_error_state_trans_2,
4860          [9] = &llc_error_state_trans_3,
4861         [10] = &llc_error_state_trans_4,
4862         [11] = &llc_error_state_trans_5,
4863         [12] = &llc_error_state_trans_6,
4864         [13] = &llc_common_state_trans_end,
4865 };
4866 
4867 /* LLC_CONN_STATE_TEMP transitions */
4868 /* State transitions for LLC_CONN_EV_DISC_REQ event */
4869 static 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 struct llc_conn_state_trans llc_temp_state_trans_1 = {
4877         .ev            = llc_conn_ev_disc_req,
4878         .next_state    = LLC_CONN_STATE_ADM,
4879         .ev_qualifiers = NONE,
4880         .ev_actions    = llc_temp_actions_1,
4881 };
4882 
4883 /*
4884  * Array of pointers;
4885  * one to each transition
4886  */
4887 static struct llc_conn_state_trans *llc_temp_state_transitions[] = {
4888         [0] = &llc_temp_state_trans_1,          /* requests */
4889         [1] = &llc_common_state_trans_end,
4890         [2] = &llc_common_state_trans_end,      /* local busy */
4891         [3] = &llc_common_state_trans_end,      /* init_pf_cycle */
4892         [4] = &llc_common_state_trans_end,      /* timer */
4893         [5] = &llc_common_state_trans_end,      /* receive */
4894 };
4895 
4896 /* Connection State Transition Table */
4897 struct llc_conn_state llc_conn_state_table[NBR_CONN_STATES] = {
4898         [LLC_CONN_STATE_ADM - 1] = {
4899                 .current_state  = LLC_CONN_STATE_ADM,
4900                 .transitions    = llc_adm_state_transitions,
4901         },
4902         [LLC_CONN_STATE_SETUP - 1] = {
4903                 .current_state  = LLC_CONN_STATE_SETUP,
4904                 .transitions    = llc_setup_state_transitions,
4905         },
4906         [LLC_CONN_STATE_NORMAL - 1] = {
4907                 .current_state  = LLC_CONN_STATE_NORMAL,
4908                 .transitions    = llc_normal_state_transitions,
4909         },
4910         [LLC_CONN_STATE_BUSY - 1] = {
4911                 .current_state  = LLC_CONN_STATE_BUSY,
4912                 .transitions    = llc_busy_state_transitions,
4913         },
4914         [LLC_CONN_STATE_REJ - 1] = {
4915                 .current_state  = LLC_CONN_STATE_REJ,
4916                 .transitions    = llc_reject_state_transitions,
4917         },
4918         [LLC_CONN_STATE_AWAIT - 1] = {
4919                 .current_state  = LLC_CONN_STATE_AWAIT,
4920                 .transitions    = llc_await_state_transitions,
4921         },
4922         [LLC_CONN_STATE_AWAIT_BUSY - 1] = {
4923                 .current_state  = LLC_CONN_STATE_AWAIT_BUSY,
4924                 .transitions    = llc_await_busy_state_transitions,
4925         },
4926         [LLC_CONN_STATE_AWAIT_REJ - 1] = {
4927                 .current_state  = LLC_CONN_STATE_AWAIT_REJ,
4928                 .transitions    = llc_await_rejct_state_transitions,
4929         },
4930         [LLC_CONN_STATE_D_CONN - 1] = {
4931                 .current_state  = LLC_CONN_STATE_D_CONN,
4932                 .transitions    = llc_d_conn_state_transitions,
4933         },
4934         [LLC_CONN_STATE_RESET - 1] = {
4935                 .current_state  = LLC_CONN_STATE_RESET,
4936                 .transitions    = llc_rst_state_transitions,
4937         },
4938         [LLC_CONN_STATE_ERROR - 1] = {
4939                 .current_state  = LLC_CONN_STATE_ERROR,
4940                 .transitions    = llc_error_state_transitions,
4941         },
4942         [LLC_CONN_STATE_TEMP - 1] = {
4943                 .current_state  = LLC_CONN_STATE_TEMP,
4944                 .transitions    = llc_temp_state_transitions,
4945         },
4946 };

/* [<][>][^][v][top][bottom][index][help] */