Blame view
net/llc/llc_s_st.c
5.74 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
/* * llc_s_st.c - Defines SAP component state machine transitions. * * The followed transitions are SAP component state machine transitions * which are described in 802.2 LLC protocol standard document. * * Copyright (c) 1997 by Procom Technology, Inc. * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br> * * This program can be redistributed or modified under the terms of the * GNU General Public License as published by the Free Software Foundation. * This program is distributed without any warranty or implied warranty * of merchantability or fitness for a particular purpose. * * See the GNU General Public License for more details. */ #include <linux/types.h> #include <net/llc_if.h> #include <net/llc_s_ev.h> #include <net/llc_s_ac.h> #include <net/llc_s_st.h> /* dummy last-transition indicator; common to all state transition groups * last entry for this state * all members are zeros, .bss zeroes it */ static struct llc_sap_state_trans llc_sap_state_trans_end; /* state LLC_SAP_STATE_INACTIVE transition for * LLC_SAP_EV_ACTIVATION_REQ event */ |
22bbf5f3e llc: Make llc_sap... |
32 |
static const llc_sap_action_t llc_sap_inactive_state_actions_1[] = { |
1da177e4c Linux-2.6.12-rc2 |
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
[0] = llc_sap_action_report_status, [1] = NULL, }; static struct llc_sap_state_trans llc_sap_inactive_state_trans_1 = { .ev = llc_sap_ev_activation_req, .next_state = LLC_SAP_STATE_ACTIVE, .ev_actions = llc_sap_inactive_state_actions_1, }; /* array of pointers; one to each transition */ static struct llc_sap_state_trans *llc_sap_inactive_state_transitions[] = { [0] = &llc_sap_inactive_state_trans_1, [1] = &llc_sap_state_trans_end, }; /* state LLC_SAP_STATE_ACTIVE transition for LLC_SAP_EV_RX_UI event */ |
22bbf5f3e llc: Make llc_sap... |
50 |
static const llc_sap_action_t llc_sap_active_state_actions_1[] = { |
1da177e4c Linux-2.6.12-rc2 |
51 52 53 54 55 56 57 58 59 60 61 |
[0] = llc_sap_action_unitdata_ind, [1] = NULL, }; static struct llc_sap_state_trans llc_sap_active_state_trans_1 = { .ev = llc_sap_ev_rx_ui, .next_state = LLC_SAP_STATE_ACTIVE, .ev_actions = llc_sap_active_state_actions_1, }; /* state LLC_SAP_STATE_ACTIVE transition for LLC_SAP_EV_UNITDATA_REQ event */ |
22bbf5f3e llc: Make llc_sap... |
62 |
static const llc_sap_action_t llc_sap_active_state_actions_2[] = { |
1da177e4c Linux-2.6.12-rc2 |
63 64 65 66 67 68 69 70 71 72 73 |
[0] = llc_sap_action_send_ui, [1] = NULL, }; static struct llc_sap_state_trans llc_sap_active_state_trans_2 = { .ev = llc_sap_ev_unitdata_req, .next_state = LLC_SAP_STATE_ACTIVE, .ev_actions = llc_sap_active_state_actions_2, }; /* state LLC_SAP_STATE_ACTIVE transition for LLC_SAP_EV_XID_REQ event */ |
22bbf5f3e llc: Make llc_sap... |
74 |
static const llc_sap_action_t llc_sap_active_state_actions_3[] = { |
1da177e4c Linux-2.6.12-rc2 |
75 76 77 78 79 80 81 82 83 84 85 |
[0] = llc_sap_action_send_xid_c, [1] = NULL, }; static struct llc_sap_state_trans llc_sap_active_state_trans_3 = { .ev = llc_sap_ev_xid_req, .next_state = LLC_SAP_STATE_ACTIVE, .ev_actions = llc_sap_active_state_actions_3, }; /* state LLC_SAP_STATE_ACTIVE transition for LLC_SAP_EV_RX_XID_C event */ |
22bbf5f3e llc: Make llc_sap... |
86 |
static const llc_sap_action_t llc_sap_active_state_actions_4[] = { |
1da177e4c Linux-2.6.12-rc2 |
87 88 89 90 91 92 93 94 95 96 97 |
[0] = llc_sap_action_send_xid_r, [1] = NULL, }; static struct llc_sap_state_trans llc_sap_active_state_trans_4 = { .ev = llc_sap_ev_rx_xid_c, .next_state = LLC_SAP_STATE_ACTIVE, .ev_actions = llc_sap_active_state_actions_4, }; /* state LLC_SAP_STATE_ACTIVE transition for LLC_SAP_EV_RX_XID_R event */ |
22bbf5f3e llc: Make llc_sap... |
98 |
static const llc_sap_action_t llc_sap_active_state_actions_5[] = { |
1da177e4c Linux-2.6.12-rc2 |
99 100 101 102 103 104 105 106 107 108 109 |
[0] = llc_sap_action_xid_ind, [1] = NULL, }; static struct llc_sap_state_trans llc_sap_active_state_trans_5 = { .ev = llc_sap_ev_rx_xid_r, .next_state = LLC_SAP_STATE_ACTIVE, .ev_actions = llc_sap_active_state_actions_5, }; /* state LLC_SAP_STATE_ACTIVE transition for LLC_SAP_EV_TEST_REQ event */ |
22bbf5f3e llc: Make llc_sap... |
110 |
static const llc_sap_action_t llc_sap_active_state_actions_6[] = { |
1da177e4c Linux-2.6.12-rc2 |
111 112 113 114 115 116 117 118 119 120 121 |
[0] = llc_sap_action_send_test_c, [1] = NULL, }; static struct llc_sap_state_trans llc_sap_active_state_trans_6 = { .ev = llc_sap_ev_test_req, .next_state = LLC_SAP_STATE_ACTIVE, .ev_actions = llc_sap_active_state_actions_6, }; /* state LLC_SAP_STATE_ACTIVE transition for LLC_SAP_EV_RX_TEST_C event */ |
22bbf5f3e llc: Make llc_sap... |
122 |
static const llc_sap_action_t llc_sap_active_state_actions_7[] = { |
1da177e4c Linux-2.6.12-rc2 |
123 124 125 126 127 128 129 130 131 132 133 |
[0] = llc_sap_action_send_test_r, [1] = NULL, }; static struct llc_sap_state_trans llc_sap_active_state_trans_7 = { .ev = llc_sap_ev_rx_test_c, .next_state = LLC_SAP_STATE_ACTIVE, .ev_actions = llc_sap_active_state_actions_7 }; /* state LLC_SAP_STATE_ACTIVE transition for LLC_SAP_EV_RX_TEST_R event */ |
22bbf5f3e llc: Make llc_sap... |
134 |
static const llc_sap_action_t llc_sap_active_state_actions_8[] = { |
1da177e4c Linux-2.6.12-rc2 |
135 136 137 138 139 140 141 142 143 144 145 146 147 |
[0] = llc_sap_action_test_ind, [1] = NULL, }; static struct llc_sap_state_trans llc_sap_active_state_trans_8 = { .ev = llc_sap_ev_rx_test_r, .next_state = LLC_SAP_STATE_ACTIVE, .ev_actions = llc_sap_active_state_actions_8, }; /* state LLC_SAP_STATE_ACTIVE transition for * LLC_SAP_EV_DEACTIVATION_REQ event */ |
22bbf5f3e llc: Make llc_sap... |
148 |
static const llc_sap_action_t llc_sap_active_state_actions_9[] = { |
1da177e4c Linux-2.6.12-rc2 |
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
[0] = llc_sap_action_report_status, [1] = NULL, }; static struct llc_sap_state_trans llc_sap_active_state_trans_9 = { .ev = llc_sap_ev_deactivation_req, .next_state = LLC_SAP_STATE_INACTIVE, .ev_actions = llc_sap_active_state_actions_9 }; /* array of pointers; one to each transition */ static struct llc_sap_state_trans *llc_sap_active_state_transitions[] = { [0] = &llc_sap_active_state_trans_2, [1] = &llc_sap_active_state_trans_1, [2] = &llc_sap_active_state_trans_3, [3] = &llc_sap_active_state_trans_4, [4] = &llc_sap_active_state_trans_5, [5] = &llc_sap_active_state_trans_6, [6] = &llc_sap_active_state_trans_7, [7] = &llc_sap_active_state_trans_8, [8] = &llc_sap_active_state_trans_9, [9] = &llc_sap_state_trans_end, }; /* SAP state transition table */ struct llc_sap_state llc_sap_state_table[LLC_NR_SAP_STATES] = { [LLC_SAP_STATE_INACTIVE - 1] = { .curr_state = LLC_SAP_STATE_INACTIVE, .transitions = llc_sap_inactive_state_transitions, |
d57b1869b [NET] LLC: Fix wh... |
178 |
}, |
1da177e4c Linux-2.6.12-rc2 |
179 180 181 182 183 |
[LLC_SAP_STATE_ACTIVE - 1] = { .curr_state = LLC_SAP_STATE_ACTIVE, .transitions = llc_sap_active_state_transitions, }, }; |