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