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