1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Project :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | Copyright 2002 Texas Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | All rights reserved.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | This file is confidential and a trade secret of Texas
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | The receipt of or possession of this file does not convey
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | any rights to reproduce or disclose its contents or to
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | manufacture, use, or sell anything it may describe, in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | whole, or in part, without the specific written consent of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 | Texas Instruments Berlin, AG.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | Purpose : Definitions for the Protocol Stack Entity
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 | Logical Link Control (LLC)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #ifndef LLC_H
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #define LLC_H
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 /*#ifdef FF_EGPRS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #ifndef LLC_EDGE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #define LLC_EDGE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #endif *//*LLC_EDGE*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 /*#endif */ /*FF_EGPRS*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 * Shift of constants from SAPs LL and LLGMM to PS_include are handled here.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #ifdef LL_2to1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #ifndef DTACS_MOBILITY_MANAGEMENT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #define DTACS_MOBILITY_MANAGEMENT GRLC_MOBILITY_MANAGEMENT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #ifndef GRR_DTACS_DEFGRR_DTACS_DEF
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 #define GRR_DTACS_DEF GRLC_DTACS_DEF
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #ifndef GRR_DTACS_MOBILITY_MANAGEMENT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 #define GRR_DTACS_MOBILITY_MANAGEMENT GRLC_DTACS_MOBILITY_MANAGEMENT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 #ifndef LLC_MAX_CNF
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #define LLC_MAX_CNF LL_MAX_CNF
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 #ifndef LLC_MAX_L3_XID_LEN
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 #define LLC_MAX_L3_XID_LEN LL_MAX_L3_XID_LEN
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 #ifndef LLGMM_ERRCS_ACK_NO_PEER_RES_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 #define LLGMM_ERRCS_ACK_NO_PEER_RES_REEST CAUSE_LLC_ACK_NO_PEER_RES_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 #ifndef LLGMM_ERRCS_DISC_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 #define LLGMM_ERRCS_DISC_NO_PEER_RES CAUSE_LLC_DISC_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 #ifndef LLGMM_ERRCS_DM1_RECEIVED
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 #define LLGMM_ERRCS_DM1_RECEIVED CAUSE_LLC_DM1_RECEIVED
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 #ifndef LLGMM_ERRCS_DM1_RECEIVED_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 #define LLGMM_ERRCS_DM1_RECEIVED_REEST CAUSE_LLC_DM1_RECEIVED_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 #ifndef LLGMM_ERRCS_FRMR_COND
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 #define LLGMM_ERRCS_FRMR_COND CAUSE_LLC_FRMR_COND
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 #ifndef LLGMM_ERRCS_FRMR_COND_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 #define LLGMM_ERRCS_FRMR_COND_REEST CAUSE_LLC_FRMR_COND_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 #ifndef LLGMM_ERRCS_FRMR_RECEIVED
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 #define LLGMM_ERRCS_FRMR_RECEIVED CAUSE_LLC_FRMR_RECEIVED
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 #ifndef LLGMM_ERRCS_L3_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 #define LLGMM_ERRCS_L3_REEST CAUSE_LLC_L3_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 #ifndef LLGMM_ERRCS_MULT_ASS_TLLI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 #define LLGMM_ERRCS_MULT_ASS_TLLI CAUSE_LLC_MULT_ASS_TLLI
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 #ifndef LLGMM_ERRCS_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 #define LLGMM_ERRCS_NO_PEER_RES CAUSE_LLC_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 #ifndef LLGMM_ERRCS_PEER_BUSY_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 #define LLGMM_ERRCS_PEER_BUSY_REEST CAUSE_LLC_PEER_BUSY_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 #ifndef LLGMM_ERRCS_PEER_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 #define LLGMM_ERRCS_PEER_REEST CAUSE_LLC_PEER_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 #ifndef LLGMM_ERRCS_SABM_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 #define LLGMM_ERRCS_SABM_NO_PEER_RES CAUSE_LLC_SABM_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 #ifndef LLGMM_ERRCS_XID_NO_PEER_RE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 #define LLGMM_ERRCS_XID_NO_PEER_RES CAUSE_LLC_XID_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 #ifndef LLGMM_ERRCS_DM0_RECEIVED_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 #define LLGMM_ERRCS_DM0_RECEIVED_REEST CAUSE_LLC_DM0_RECEIVED_REEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 #ifndef LL_ERRCS_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 #define LL_ERRCS_NO_PEER_RES CAUSE_LLC_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 #ifndef LL_ERRCS_INVALID_XID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 #define LL_ERRCS_INVALID_XID CAUSE_LLC_INVALID_XID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 #ifndef LL_PEAK_SUB
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 #define LL_PEAK_SUB PS_PEAK_SUB
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 #ifndef LL_RELCS_DM_RECEIVED
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 #define LL_RELCS_DM_RECEIVED CAUSE_LLC_DM_RECEIVED
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 #ifndef LL_RELCS_INVALID_XID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 #define LL_RELCS_INVALID_XID CAUSE_LLC_INVALID_XID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 #ifndef LL_RELCS_NORMAL
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 #define LL_RELCS_NORMAL CAUSE_LLC_NORMAL_REL
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 #ifndef LL_RELCS_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 #define LL_RELCS_NO_PEER_RES CAUSE_LLC_NO_PEER_RES
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 #ifndef LL_DELAY_SUB
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 #define LL_DELAY_SUB PS_DELAY_SUB
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 #ifndef LL_MEAN_SUB
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 #define LL_MEAN_SUB PS_MEAN_SUB
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 #ifndef LL_NO_REL
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 #define LL_NO_REL PS_NO_REL
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 #ifndef LL_PRECED_SUB
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 #define LL_PRECED_SUB PS_PRECED_SUB
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 #ifndef LL_RLC_PROT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 #define LL_RLC_PROT PS_RLC_PROT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 #ifndef LL_SAPI_1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 #define LL_SAPI_1 PS_SAPI_1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 #ifndef LL_SAPI_3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 #define LL_SAPI_3 PS_SAPI_3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 #ifndef LL_SAPI_5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 #define LL_SAPI_5 PS_SAPI_5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 #ifndef LL_SAPI_7
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 #define LL_SAPI_7 PS_SAPI_7
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 #ifndef LL_SAPI_9
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 #define LL_SAPI_9 PS_SAPI_9
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 #ifndef LL_SAPI_11
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 #define LL_SAPI_11 PS_SAPI_11
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 #ifndef LL_RADIO_PRIO_1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 #define LL_RADIO_PRIO_1 PS_RADIO_PRIO_1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 #ifndef LL_TLLI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 #define LL_TLLI_INVALID PS_TLLI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 #ifndef GRLC_RADIO_PRIO_1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 #define GRLC_RADIO_PRIO_1 PS_RADIO_PRIO_1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 #ifndef GRLC_PEAK_SUB
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 #define GRLC_PEAK_SUB PS_PEAK_SUB
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 #ifndef T_desc_list3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 #define T_desc_list3 T_LL_desc_list3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 #endif /* LL_2to1 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 /* --------------------------------------------------------------------------------- */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 /* remove traces */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 #ifndef _SIMULATION_
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 #ifdef GET_STATE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 #undef GET_STATE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 #define GET_STATE(P) (ENTITY_DATA->P state)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 #endif /* _SIMULATION_ */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 /* --------------------------------------------------------------------------------- */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 #ifdef TRACE_EVE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 #define TRACE_0_INFO(s) TRACE_EVENT ("Info: " s)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 #define TRACE_1_INFO(s,p1) TRACE_EVENT_P1("Info: " s,p1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 #define TRACE_2_INFO(s,p1,p2) TRACE_EVENT_P2("Info: " s,p1,p2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 #define TRACE_3_INFO(s,p1,p2,p3) TRACE_EVENT_P3("Info: " s,p1,p2,p3)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 #define TRACE_4_INFO(s,p1,p2,p3,p4) TRACE_EVENT_P4("Info: " s,p1,p2,p3,p4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 #define TRACE_0_INFO(s)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 #define TRACE_1_INFO(s,p1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 #define TRACE_2_INFO(s,p1,p2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 #define TRACE_3_INFO(s,p1,p2,p3)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 #define TRACE_4_INFO(s,p1,p2,p3,p4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 #ifdef TRACE_PRIM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 #define TRACE_0_PARA(s) vsi_o_ttrace(VSI_CALLER TC_PRIM, "IPar: " s)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 #define TRACE_1_PARA(s,p1) vsi_o_ttrace(VSI_CALLER TC_PRIM, "IPar: " s,p1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 #define TRACE_2_PARA(s,p1,p2) vsi_o_ttrace(VSI_CALLER TC_PRIM, "IPar: " s,p1,p2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 #define TRACE_3_PARA(s,p1,p2,p3) vsi_o_ttrace(VSI_CALLER TC_PRIM, "IPar: " s,p1,p2,p3)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 #define TRACE_4_PARA(s,p1,p2,p3,p4) vsi_o_ttrace(VSI_CALLER TC_PRIM, "IPar: " s,p1,p2,p3,p4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 #define TRACE_0_OUT_PARA(s) vsi_o_ttrace(VSI_CALLER TC_PRIM, "OPar: " s)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 #define TRACE_1_OUT_PARA(s,p1) vsi_o_ttrace(VSI_CALLER TC_PRIM, "OPar: " s,p1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 #define TRACE_2_OUT_PARA(s,p1,p2) vsi_o_ttrace(VSI_CALLER TC_PRIM, "OPar: " s,p1,p2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 #define TRACE_3_OUT_PARA(s,p1,p2,p3) vsi_o_ttrace(VSI_CALLER TC_PRIM, "OPar: " s,p1,p2,p3)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 #define TRACE_4_OUT_PARA(s,p1,p2,p3,p4) vsi_o_ttrace(VSI_CALLER TC_PRIM, "OPar: " s,p1,p2,p3,p4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 #define TRACE_PRIM_FROM(s) vsi_o_ttrace(VSI_CALLER TC_PRIM, "Pdir: " s)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 #define TRACE_PRIM_TO(s) vsi_o_ttrace(VSI_CALLER TC_PRIM, "Pdir: " s)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 #define TRACE_0_PARA(s)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 #define TRACE_1_PARA(s,p1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 #define TRACE_2_PARA(s,p1,p2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 #define TRACE_3_PARA(s,p1,p2,p3)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 #define TRACE_4_PARA(s,p1,p2,p3,p4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 #define TRACE_0_OUT_PARA(s)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 #define TRACE_1_OUT_PARA(s,p1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 #define TRACE_2_OUT_PARA(s,p1,p2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 #define TRACE_3_OUT_PARA(s,p1,p2,p3)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 #define TRACE_4_OUT_PARA(s,p1,p2,p3,p4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 #define TRACE_PRIM_FROM(s)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 #define TRACE_PRIM_TO(s)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 /* --------------------------------------------------------------------------------- */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 * The following macro is similar to PFREE_DESC2. Instead of doing
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 * a PFREE(P) it does a MFREE(p). This macro is used to free CCI primitives
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 * which are removed from CCI SAP and added into this header file.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 #define MFREE_PRIM_DESC2(p) { MFREE_DESC2 ((p)->desc_list2.first); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 MFREE ((p)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 * The following macro is similar to PFREE_DESC. Instead of doing
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 * a PFREE(P) it does a MFREE(p). This macro is used to free CCI primitives
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 * which are removed from CCI SAP and added into this header file.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 #define MFREE_PRIM_DESC(p) { MFREE_DESC ((p)->desc_list.first); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 MFREE ((p)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 * defines the user of the vsi interface
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 #define VSI_CALLER LLC_handle,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 #define VSI_CALLER_SINGLE LLC_handle
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 * Macros
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 * Switch all LLC services with multiple incarnations to use the incarnation
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 * for the given SAPI. Current sapi is stored and all LLC layer parameters
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 * with multiple incarnations are switched to use the incarnation for the
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 * given SAPI.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 #define SWITCH_LLC(s) llc_data->current_sapi = s; \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 SWITCH_PARAM (iov_i, IMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 SWITCH_PARAM (n200, UIMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 SWITCH_PARAM (n201_u, UIMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 SWITCH_PARAM (n201_i, IMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 SWITCH_PARAM (md, IMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 SWITCH_PARAM (mu, IMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 SWITCH_PARAM (kd, IMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 SWITCH_PARAM (ku, IMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 SWITCH_PARAM (requested_l3_xid, IMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 SWITCH_SERVICE (llc, sapi, UIMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 SWITCH_SERVICE (llc, u, UIMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 SWITCH_SERVICE (llc, itx, IMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 SWITCH_SERVICE (llc, irx, IMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 SWITCH_SERVICE (llc, uitx, UIMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 SWITCH_SERVICE (llc, uirx, UIMAP(s)); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 SWITCH_SERVICE (llc, t200, UIMAP(s));
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 * Switch service s of entity e to use incarnation i.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 #define SWITCH_SERVICE(e,s,i) e##_data->##s = &(##e##_data->##s##_base[i]);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 * Switch LLC layer parameter p to incarnation i.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 #define SWITCH_PARAM(p,i) llc_data->##p = &(llc_data->##p##_base[i]);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 * Map SAPI to incarnation, for either acknowledged (4 incarnations) or
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 * unacknowledged operation (6 incarnations)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 #ifdef LL_2to1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 #define IMAP(s) (s == PS_SAPI_3 ? 0 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 s == PS_SAPI_5 ? 1 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 s == PS_SAPI_9 ? 2 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 s == PS_SAPI_11? 3 : 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 #define UIMAP(s) (s == PS_SAPI_1 ? 0 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 s == PS_SAPI_3 ? 1 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 s == PS_SAPI_5 ? 2 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 s == PS_SAPI_7 ? 3 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 s == PS_SAPI_9 ? 4 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 s == PS_SAPI_11? 5 : 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 #define IMAP(s) (s == LL_SAPI_3 ? 0 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 s == LL_SAPI_5 ? 1 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 s == LL_SAPI_9 ? 2 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 s == LL_SAPI_11? 3 : 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 #define UIMAP(s) (s == LL_SAPI_1 ? 0 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 s == LL_SAPI_3 ? 1 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 s == LL_SAPI_5 ? 2 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 s == LL_SAPI_7 ? 3 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 s == LL_SAPI_9 ? 4 : \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 s == LL_SAPI_11? 5 : 0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 * Add octet size of XID parameter P to variable V if the parameter is tagged.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338 #define ADD_IF_TAGGED(V,P) \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339 if (llc_data->u->xid_tag & (0x00000001L << P)) \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 { \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 V += P##_LEN + P##_HDR_LEN; \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 * Tag XID parameter if requested to negotiate
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 #define TAG_IF_REQUESTED(V,P) \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348 if (llc_data->##V##valid) \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 { \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 llc_data->u->xid_tag |= (0x00000001L << P); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 * Tag XID parameter if requested to negotiate and sense of negotiation fits
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 #define TAG_IF_REQUESTED_RSP(S,V,P) \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 if (llc_data->u->requested_xid.##V##.valid) \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358 { \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359 if (llc_data->decoded_xid.##V##.valid) \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 { \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361 /* simple add parameter. Sense of negotiation is already checked */ \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 llc_data->u->xid_tag |= (0x00000001L << P); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 } \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364 else \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 { \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
366 /* Sense of negotiation compared with current values */ \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 if (llc_data->u->requested_xid.##V##.value S *(llc_data->##V)) \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 { \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369 llc_data->u->xid_tag |= (0x00000001L << P); \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 } \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371 } \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
375 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
376 * Timer values are negotiated in units of 0.1 seconds but internally stored
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 * in milliseconds. Therefore a conversion must be done with each XID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378 * negotiation of timer values.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380 #define XID_TIMER_CONVERSION 100
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
382 #define XID2INT(l) (l * XID_TIMER_CONVERSION)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383 #define INT2XID(l) (l / XID_TIMER_CONVERSION)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
384
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
385 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
386 * Timer start- and stop macros for LLC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
388 #define TIMERSTART(t,d) itx_##t##_start((d))
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
389 #define TIMERSTOP(t) itx_##t##_stop()
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
390
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
391
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
392 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
393 * Number of service incarnations (LLME, TX, and RX have only one incarnation)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
394 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
395 #define ACKNOWLEDGED_INC 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
396 #define UNACKNOWLEDGED_INC 6
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
397 #define MAX_SAPI_INC 6
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
398
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
399
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
400 #define U_NUM_INC UNACKNOWLEDGED_INC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
401
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
402 #define ITX_NUM_INC ACKNOWLEDGED_INC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
403 #define IRX_NUM_INC ACKNOWLEDGED_INC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
404
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
405 #define UITX_NUM_INC UNACKNOWLEDGED_INC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
406 #define UIRX_NUM_INC UNACKNOWLEDGED_INC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
407
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
408 #define T200_NUM_INC UNACKNOWLEDGED_INC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
409 #define T201_NUM_INC ACKNOWLEDGED_INC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
410
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
411
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
412 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
413 * Constants
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
414 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
415
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
416 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
417 * Value constants for attached_counter
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
418 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
419 #define CCI_NO_ATTACHE (0x0) /* no entity/service is attached to the primitive */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
420 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
421 * Value constants for fcs_check
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
422 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
423 #define CCI_FCS_PASSED (0x0) /* FCS check has been successfully passed */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
424 #define CCI_FCS_FAILED (0x1) /* FCS check has been failed */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
425 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
426 * Value constants for pm
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
427 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
428 #define CCI_PM_UNPROTECTED (0x0) /* FCS covers frame header and information fields */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
429 #define CCI_PM_PROTECTED (0x1) /* FCS covers frame header field and first N202 octets of information field */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
430 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
431 * Value constants for ciphering_algorithm
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
432 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
433 #define CCI_CIPHER_NO_ALGORITHM (0x0) /* frame shall not be ciphered */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
434 #define CCI_CIPHER_GPRS_A5_1 (0x1) /* frame shall be ciphered using algorithm GPRS A5/1 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
435 #define CCI_CIPHER_GPRS_A5_2 (0x2) /* frame shall be ciphered using algorithm GPRS A5/2 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
436 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
437 * Value constants for direction
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
438 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
439 #define CCI_DIRECTION_UPLINK (0x0) /* direction of LLC frame transmission is MS to SGSN */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
440 #define CCI_DIRECTION_DOWNLINK (0x1) /* direction of LLC frame transmission is SGSN to MS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
441
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
442
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
443
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
444 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
445 * Bitoffset for encoding/decoding
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
446 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
447 #define ENCODE_OFFSET 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
448
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
449
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
450 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
451 * C/R bit
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
452 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
453 #define SGSN_COMMAND 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
454 #define SGSN_RESPONSE 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
455 #define MS_COMMAND 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
456 #define MS_RESPONSE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
457
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
458 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
459 * Size definitions for common U frames (in octets and in bits).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
460 * Define only the header of the frame. FCS_SIZE will be added when the FCS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
461 * is calculated!
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
462 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
463 #define U_HDR_SIZE 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
464 #define U_HDR_SIZE_BITS (U_HDR_SIZE * 8)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
465 #define FCS_SIZE 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
466 #define FCS_SIZE_BITS (FCS_SIZE * 8)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
467
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
468 #ifdef REL99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
469 #define U_NULL_SIZE (U_HDR_SIZE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
470 #define U_NULL_SIZE_BITS (U_NULL_SIZE * 8)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
471 #endif /* REL99 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
472
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
473 #define U_DISC_SIZE (U_HDR_SIZE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
474 #define U_DISC_SIZE_BITS (U_DISC_SIZE * 8)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
475
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
476 #define U_DM_SIZE (U_HDR_SIZE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
477 #define U_DM_SIZE_BITS (U_DM_SIZE * 8)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
478
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
479 #define U_FRMR_INFO_SIZE 10
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
480 #define U_FRMR_SIZE (U_HDR_SIZE + U_FRMR_INFO_SIZE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
481 #define U_FRMR_SIZE_BITS (U_FRMR_SIZE * 8)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
482
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
483 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
484 * Masks and IDs for the different frame formats. Bitwise AND *_MASK with
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
485 * the first octet of the control field must result in *_ID.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
486 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
487 #define I_FRAME_MASK 0x80
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
488 #define S_FRAME_MASK 0xC0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
489 #define UI_FRAME_MASK 0xE0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
490 #define U_FRAME_MASK 0xE0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
491
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
492 #define I_FRAME_ID 0x00
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
493 #define S_FRAME_ID 0x80
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
494 #define UI_FRAME_ID 0xC0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
495 #define U_FRAME_ID 0xE0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
496
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
497 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
498 * Number of octets that must be contained in a valid control field of a frame.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
499 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
500 #define I_CTRL_OCTETS 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
501 #define S_CTRL_OCTETS 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
502 #define UI_CTRL_OCTETS 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
503 #define U_CTRL_OCTETS 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
504
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
505 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
506 * Minimum number of octets that must be contained in a frame to access
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
507 * the complete control field.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
508 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
509 #define CTRL_MIN_OCTETS 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
510 #define I_CTRL_MIN_OCTETS 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
511 #define S_CTRL_MIN_OCTETS 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
512 #define UI_CTRL_MIN_OCTETS 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
513 #define U_CTRL_MIN_OCTETS 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
514
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
515 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
516 * Minimum number of octets that must be contained in a valid frame, excluding
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
517 * the FCS field.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
518 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
519 #define I_FRAME_MIN_OCTETS_WITHOUT_FCS 5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
520 #define S_FRAME_MIN_OCTETS_WITHOUT_FCS 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
521 #define UI_FRAME_MIN_OCTETS_WITHOUT_FCS 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
522 #define U_FRAME_MIN_OCTETS_WITHOUT_FCS 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
523
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
524 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
525 * Minimum number of octets that must be contained in a valid frame.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
526 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
527 #define FRAME_MIN_OCTETS 5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
528 #define I_FRAME_MIN_OCTETS 8
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
529 #define S_FRAME_MIN_OCTETS 6
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
530 #define UI_FRAME_MIN_OCTETS 6
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
531 #define U_FRAME_MIN_OCTETS 5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
532
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
533 #define U_FRAME_FRMR_INFO_OCTETS U_FRMR_INFO_SIZE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
534
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
535 #define S_FRAME_SACK_MIN_CTRL_OCTETS 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
536 #define S_FRAME_SACK_MAX_CTRL_OCTETS 32
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
537
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
538 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
539 * I frame and S frame commands/responses (bits S1, S2).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
540 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
541 #define I_FRAME_RR 0x00
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
542 #define I_FRAME_ACK 0x01
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
543 #define I_FRAME_RNR 0x02
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
544 #define I_FRAME_SACK 0x03
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
545
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
546 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
547 * U frame commands/responses (bits M4, M3, M2, M1).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
548 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
549 #ifdef REL99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
550 #define U_FRAME_NULL 0x00
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
551 #endif /*REL99*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
552 #define U_FRAME_DM 0x01
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
553 #define U_FRAME_DISC 0x04
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
554 #define U_FRAME_UA 0x06
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
555 #define U_FRAME_SABM 0x07
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
556 #define U_FRAME_FRMR 0x08
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
557 #define U_FRAME_XID 0x0B
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
558
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
559 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
560 * Reasons of frame rejection condition. The lower nibble conforms
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
561 * to W4-W1 in the FRMR response frame.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
562 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
563 #define FRMR_W1 0x01
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
564 #define FRMR_W2 0x02
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
565 #define FRMR_W3 0x04
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
566 #define FRMR_W4 0x08
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
567
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
568 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
569 * !!!!!asap <R.LLC.XCEPTION.A.010> "W1 bit: Bit W3 shall be set to 1 in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
570 * conjunction with this bit." Is that always the case?
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
571 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
572 #define FRMR_INCORRECT_LENGTH FRMR_W1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
573 #define FRMR_INCORRECT_LENGTH_ABM (FRMR_W1 | FRMR_W4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
574 #define FRMR_EXCEEDS_N201 FRMR_W2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
575 #define FRMR_EXCEEDS_N201_ABM (FRMR_W2 | FRMR_W4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
576 #define FRMR_UNDEFINED_CTRL FRMR_W3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
577 #define FRMR_UNDEFINED_CTRL_ABM (FRMR_W3 | FRMR_W4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
578
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
579 #define FRMR_CTRL_LENGTH_UNKNOWN 0x00
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
580
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
581
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
582 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
583 * Maximum value of LLC sequence numbers and state variables:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
584 * N(S), N(R), V(S), V(R), ...
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
585 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
586 #define MAX_SEQUENCE_NUMBER 511
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
587
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
588
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
589 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
590 * UITX_*_QUEUE_SIZE defines the maximum number of frames for the various
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
591 * UITX service incarnations (depeding on SAPI). UITX is the only service
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
592 * which is limited with uplink flow control. Enough memory must be present
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
593 * for all other services (U, ITX). U requires a maximum of 2 simultaneously
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
594 * stored frames per SAPI: the first being a received response to a
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
595 * previously sent command, and the second being a command which is to be sent
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
596 * directly afterwards.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
597 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
598 #define UITX_1_QUEUE_SIZE 10
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
599 #define UITX_3_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
600 #define UITX_5_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
601 #define UITX_7_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
602 #define UITX_9_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
603 #define UITX_11_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
604
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
605 #define ITX_3_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
606 #define ITX_5_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
607 #define ITX_9_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
608 #define ITX_11_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
609
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
610 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
611 * Because of the lack of flow control between GRLC and LLC, it is possible,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
612 * that LLC recieve frames from GRLC, but can not forward them to the higher
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
613 * layers. The following constants define the number of UI frames to buffer
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
614 * per SAPI until we get an LL_GETUNITDATA_REQ
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
615 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
616 #define UIRX_QUEUE_SIZE 32
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
617
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
618 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
619 * The number of queued I-frames in ITX is limited to the windowsize ku.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
620 * If only ku frames are queued and we got an acknowledge for this, LLC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
621 * would have no more frames to send. The following variable defines a
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
622 * number of additional frames to buffer.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
623 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
624 #ifdef _SIMULATION_
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
625 #define ITX_ADD_QUEUE_SIZE 8
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
626 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
627 #define ITX_ADD_QUEUE_SIZE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
628 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
629 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
630 * Maximum supported LLC parameter which should be negotiated initial.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
631 * Only values which are different to the default should be defined here.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
632 * In future this value should be read from the flash file system.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
633 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
634 #define N201_U_SUPPORTED 520
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
635 #define N201_I_SUPPORTED 520
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
636 #define KD_KD_SUPPORTED 64
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
637 #if defined (LL_2to1) || defined (REL99)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
638 #define KD_KU_SUPPORTED 16
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
639 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
640 #define KD_KU_SUPPORTED 8
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
641 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
642 #define KD_MD_SUPPORTED 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
643 #define KD_MU_SUPPORTED 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
644
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
645 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
646 * Service definitions. Used to access service data with GET/SET_STATE.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
647 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
648 * Services with multiple incarnation have to be defined as xxx->
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
649 * Services with only one incarnation have to be defined as xxx.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
650 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
651 #define LLME llme.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
652 #define SAPI sapi->
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
653 #define U u->
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
654 #define ITX itx->
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
655 #define IRX irx->
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
656 #define UITX uitx->
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
657 #define UIRX uirx->
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
658 #define T200 t200->
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
659 #define T201 t201->
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
660 #define TX tx.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
661 #define RX rx.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
662
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
663
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
664 /* #ifndef NTRACE*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
665
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
666 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
667 * These defintions are only needed for debugging purposes (!NTRACE).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
668 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
669
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
670 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
671 * The following definitions are necessary for the state initialisation of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
672 * services with the INIT_STATE() macro.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
673 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
674 #define U_0 U
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
675 #define U_1 U
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
676 #define U_2 U
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
677 #define U_3 U
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
678 #define U_4 U
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
679 #define U_5 U
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
680
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
681 #define ITX_0 ITX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
682 #define ITX_1 ITX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
683 #define ITX_2 ITX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
684 #define ITX_3 ITX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
685
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
686 #define IRX_0 IRX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
687 #define IRX_1 IRX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
688 #define IRX_2 IRX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
689 #define IRX_3 IRX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
690
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
691 #define UITX_0 UITX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
692 #define UITX_1 UITX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
693 #define UITX_2 UITX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
694 #define UITX_3 UITX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
695 #define UITX_4 UITX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
696 #define UITX_5 UITX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
697
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
698 #define UIRX_0 UIRX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
699 #define UIRX_1 UIRX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
700 #define UIRX_2 UIRX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
701 #define UIRX_3 UIRX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
702 #define UIRX_4 UIRX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
703 #define UIRX_5 UIRX
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
704
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
705 #define T200_0 T200
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
706 #define T200_1 T200
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
707 #define T200_2 T200
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
708 #define T200_3 T200
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
709 #define T200_4 T200
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
710 #define T200_5 T200
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
711
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
712 #define T201_0 T201
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
713 #define T201_1 T201
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
714 #define T201_2 T201
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
715 #define T201_3 T201
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
716
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
717 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
718 * Service name definitions for trace purposes. The service abbrevation
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
719 * (e.g. LLME) has to be the same as above for the service definitions.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
720 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
721 #define SERVICE_NAME_LLME "LLME"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
722
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
723 #define SERVICE_NAME_U_0 "U_1"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
724 #define SERVICE_NAME_U_1 "U_3"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
725 #define SERVICE_NAME_U_2 "U_5"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
726 #define SERVICE_NAME_U_3 "U_7"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
727 #define SERVICE_NAME_U_4 "U_9"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
728 #define SERVICE_NAME_U_5 "U_11"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
729
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
730 #define SERVICE_NAME_ITX_0 "ITX_3"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
731 #define SERVICE_NAME_ITX_1 "ITX_5"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
732 #define SERVICE_NAME_ITX_2 "ITX_9"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
733 #define SERVICE_NAME_ITX_3 "ITX_11"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
734
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
735 #define SERVICE_NAME_IRX_0 "IRX_3"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
736 #define SERVICE_NAME_IRX_1 "IRX_5"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
737 #define SERVICE_NAME_IRX_2 "IRX_9"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
738 #define SERVICE_NAME_IRX_3 "IRX_11"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
739
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
740 #define SERVICE_NAME_UITX_0 "UITX_1"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
741 #define SERVICE_NAME_UITX_1 "UITX_3"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
742 #define SERVICE_NAME_UITX_2 "UITX_5"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
743 #define SERVICE_NAME_UITX_3 "UITX_7"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
744 #define SERVICE_NAME_UITX_4 "UITX_9"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
745 #define SERVICE_NAME_UITX_5 "UITX_11"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
746
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
747 #define SERVICE_NAME_UIRX_0 "UIRX_1"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
748 #define SERVICE_NAME_UIRX_1 "UIRX_3"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
749 #define SERVICE_NAME_UIRX_2 "UIRX_5"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
750 #define SERVICE_NAME_UIRX_3 "UIRX_7"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
751 #define SERVICE_NAME_UIRX_4 "UIRX_9"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
752 #define SERVICE_NAME_UIRX_5 "UIRX_11"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
753
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
754 #define SERVICE_NAME_T200_0 "T200_1"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
755 #define SERVICE_NAME_T200_1 "T200_3"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
756 #define SERVICE_NAME_T200_2 "T200_5"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
757 #define SERVICE_NAME_T200_3 "T200_7"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
758 #define SERVICE_NAME_T200_4 "T200_9"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
759 #define SERVICE_NAME_T200_5 "T200_11"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
760
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
761 #define SERVICE_NAME_TX "TX"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
762 #define SERVICE_NAME_RX "RX"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
763
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
764 /* #endif !NTRACE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
765
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
766
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
767 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
768 * Timer definitions. For each timer a BASE and MAX value is defined.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
769 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
770 #define TIMER_T200_BASE (0)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
771 #define TIMER_T200_1 (TIMER_T200_BASE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
772 #define TIMER_T200_3 (TIMER_T200_BASE+1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
773 #define TIMER_T200_5 (TIMER_T200_BASE+2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
774 #define TIMER_T200_7 (TIMER_T200_BASE+3)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
775 #define TIMER_T200_9 (TIMER_T200_BASE+4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
776 #define TIMER_T200_11 (TIMER_T200_BASE+5)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
777 #define TIMER_T200_MAX (TIMER_T200_11)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
778
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
779 #define TIMER_T201_BASE (TIMER_T200_MAX+1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
780 #define TIMER_T201_3 (TIMER_T201_BASE)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
781 #define TIMER_T201_5 (TIMER_T201_BASE+1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
782 #define TIMER_T201_9 (TIMER_T201_BASE+2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
783 #define TIMER_T201_11 (TIMER_T201_BASE+3)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
784 #define TIMER_T201_MAX (TIMER_T201_11)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
785
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
786 #define TIMER_MAX (TIMER_T201_MAX)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
787 #define TIMER_NUM (TIMER_MAX+1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
788
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
789
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
790 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
791 * State definitions for each service.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
792 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
793
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
794 #define LLME_TLLI_UNASSIGNED 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
795 #define LLME_TLLI_ASSIGNED 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
796 #define LLME_TLLI_ASSIGNED_SUSPENDED 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
797
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
798 #define U_TLLI_UNASSIGNED 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
799 #define U_ADM 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
800 #define U_LOCAL_ESTABLISHMENT 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
801 #define U_REMOTE_ESTABLISHMENT 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
802 #define U_ABM 5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
803 #define U_LOCAL_RELEASE 6
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
804 #define U_ESTABLISH_RES_PENDING 7
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
805
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
806 #define ITX_TLLI_UNASSIGNED 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
807 #define ITX_TLLI_ASSIGNED 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
808 #define ITX_ABM 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
809 #define ITX_ABM_PEER_BUSY 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
810
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
811 #define IRX_TLLI_UNASSIGNED 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
812 #define IRX_TLLI_ASSIGNED 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
813 #define IRX_ABM 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
814 #define IRX_ABM_BUSY 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
815
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
816 #define UITX_TLLI_UNASSIGNED_NOT_READY 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
817 #define UITX_TLLI_UNASSIGNED_READY 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
818 #define UITX_ADM_NOT_READY 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
819 #define UITX_ADM_READY 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
820
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
821 #define UIRX_TLLI_UNASSIGNED_NOT_READY 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
822 #define UIRX_TLLI_UNASSIGNED_READY 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
823 #define UIRX_ADM_NOT_READY 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
824 #define UIRX_ADM_READY 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
825
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
826 #define T200_TLLI_UNASSIGNED 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
827 #define T200_RESET 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
828 #define T200_RUNNING 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
829
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
830 #define TX_TLLI_UNASSIGNED_NOT_READY 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
831 #define TX_TLLI_UNASSIGNED_READY 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
832 #define TX_TLLI_ASSIGNED_NOT_READY 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
833 #define TX_TLLI_ASSIGNED_READY 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
834
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
835 #define RX_TLLI_UNASSIGNED 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
836 #define RX_TLLI_ASSIGNED 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
837
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
838 #ifndef TI_PS_OP_CIPH_DRIVER
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
839
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
840 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
841 * user defined constants
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
842 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
843
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
844 #define CIPH_SIZE_CK (0x10)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
845 #define CIPH_MAX_ELEM (0x14)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
846 #define CIPH_MAX_HEADER_SIZE (0x25)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
847 #define CIPH_N202 (0x4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
848
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
849 /*==== TYPES ======================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
850
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
851 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
852 * The following definitions was originally generated by CCD. The definitions are not used as
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
853 * primitive definitions anymore, only for SNDCP internal usage.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
854 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
855 /* --------------------------------------------------------------------------------- */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
856 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
857 * enum to Variable algo
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
858 * Ciphering algorithm.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
859 * CCDGEN:WriteEnum_Count==2834
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
860 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
861 #ifndef __T_CIPH_algo__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
862 #define __T_CIPH_algo__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
863 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
864 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
865 CIPH_EA0 = 0x0, /* No encryption */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
866 CIPH_EA1 = 0x1, /* Frame shall be ciphered using algorithm EA1 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
867 CIPH_EA2 = 0x2, /* Frame shall be ciphered using algorithm EA2 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
868 CIPH_EA3 = 0x3 /* Frame shall be ciphered using algorithm EA3 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
869 }T_CIPH_algo;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
870 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
871 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
872 * enum to Variable direction
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
873 * DIRECTION parameter
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
874 * CCDGEN:WriteEnum_Count==2836
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
875 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
876 #ifndef __T_CIPH_direction__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
877 #define __T_CIPH_direction__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
878 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
879 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
880 CIPH_UPLINK_DIR = 0x0, /* See [3G 33.102] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
881 CIPH_DOWNLINK_DIR = 0x1 /* See [3G 33.102] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
882 }T_CIPH_direction;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
883 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
884 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
885 * enum to Variable status
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
886 * Status of the ciphering process
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
887 * CCDGEN:WriteEnum_Count==2853
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
888 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
889 #ifndef __T_CIPH_status__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
890 #define __T_CIPH_status__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
891 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
892 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
893 CIPH_CIPH_FAIL = 0x0, /* Ciphering successful */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
894 CIPH_CIPH_PASS = 0x1, /* Ciphering failed */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
895 CIPH_CIPH_BUSY = 0x2, /* Ongoing ciphering */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
896 CIPH_FCS_ERROR = 0x3 /* FCS error */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
897 }T_CIPH_status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
898 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
899 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
900 * enum to Variable pm
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
901 * Protected or unprotected mode
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
902 * CCDGEN:WriteEnum_Count==2840
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
903 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
904 #ifndef __T_CIPH_pm__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
905 #define __T_CIPH_pm__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
906 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
907 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
908 CIPH_PM_UNPROTECTED = 0x0, /* FCS covers frame header field and first N202 octets of information field */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
909 CIPH_PM_PROTECTED = 0x1 /* FCS covers frame header and information fields */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
910 }T_CIPH_pm;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
911 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
912
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
913 #ifndef __T_CIPH_ck__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
914 #define __T_CIPH_ck__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
915 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
916 * Ciphering key.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
917 * CCDGEN:WriteStruct_Count==13956
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
918 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
919 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
920 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
921 U8 ck_element[CIPH_SIZE_CK]; /*< 0: 16> T_CIPH_ck_element, Ciphering key element */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
922 } T_CIPH_ck;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
923 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
924
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
925 #ifndef __T_CIPH_init_cipher_req_parms__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
926 #define __T_CIPH_init_cipher_req_parms__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
927 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
928 * Ciphering algorithm initialisation parameters.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
929 * CCDGEN:WriteStruct_Count==13968
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
930 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
931 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
932 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
933 U8 algo; /*< 0: 1> T_CIPH_algo, Ciphering algorithm. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
934 U8 direction; /*< 1: 1> T_CIPH_direction, DIRECTION parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
935 U8 zzz_align0; /*< 2: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
936 U8 zzz_align1; /*< 3: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
937 T_CIPH_ck *ptr_ck; /*< 4: 4> pointer to Ciphering key. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
938 } T_CIPH_init_cipher_req_parms;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
939 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
940
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
941
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
942 #ifndef __T_CIPH_gprs_parameters__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
943 #define __T_CIPH_gprs_parameters__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
944 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
945 * Structure containing LLC parameters
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
946 * CCDGEN:WriteStruct_Count==13976
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
947 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
948 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
949 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
950 U8 pm; /*< 0: 1> T_CIPH_pm, Protected or unprotected mode */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
951 U8 zzz_align0; /*< 1: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
952 U16 header_size; /*< 2: 2> T_CIPH_header_size, Frame header size */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
953 U32 ciphering_input; /*< 4: 4> frame-dependent ciphering input */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
954 U32 threshold; /*< 8: 4> T_CIPH_threshold, Threshold parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
955 } T_CIPH_gprs_parameters;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
956 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
957
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
958 #ifndef __T_CIPH_umts_parameters__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
959 #define __T_CIPH_umts_parameters__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
960 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
961 * Structure containing umts parameters
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
962 * CCDGEN:WriteStruct_Count==13980
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
963 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
964 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
965 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
966 U8 bearer; /*< 0: 1> T_CIPH_bearer, BEARER parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
967 U8 zzz_align0; /*< 1: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
968 U8 zzz_align1; /*< 2: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
969 U8 zzz_align2; /*< 3: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
970 U32 count_c; /*< 4: 4> COUNT-C parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
971 U8 dest_bit_offset; /*< 8: 1> T_CIPH_dest_bit_offset, Bit offset */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
972 U8 org_bit_offset; /*< 9: 1> T_CIPH_org_bit_offset, Bit offset */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
973 U8 zzz_align3; /*< 10: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
974 U8 zzz_align4; /*< 11: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
975 U32 threshold; /*< 12: 4> T_CIPH_threshold, Threshold parameter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
976 } T_CIPH_umts_parameters;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
977 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
978
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
979 #ifndef __T_CIPH_in_data__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
980 #define __T_CIPH_in_data__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
981 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
982 * Structure containing length and pointer to the data
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
983 * CCDGEN:WriteStruct_Count==13984
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
984 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
985 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
986 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
987 U16 len; /*< 0: 2> Length of buffer */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
988 U8 zzz_align0; /*< 2: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
989 U8 zzz_align1; /*< 3: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
990 U32 buf; /*< 4: 4> Pointer to the data in buffer */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
991 } T_CIPH_in_data;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
992 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
993
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
994 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
995 * Stucture containing length and pointer to the data
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
996 * CCDGEN:WriteStruct_Count==13988
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
997 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
998 #ifndef __T_CIPH_out_data__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
999 #define __T_CIPH_out_data__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1000 typedef T_CIPH_in_data T_CIPH_out_data;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1001 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1002 #ifndef __T_CIPH_cipher_req_parms__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1003 #define __T_CIPH_cipher_req_parms__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1004 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1005 * Ciphering algorithm parameters.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1006 * CCDGEN:WriteStruct_Count==13990
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1007 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1008 typedef union
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1009 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1010 T_CIPH_gprs_parameters gprs_parameters; /*< 0: 12> Structure containing LLC parameters */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1011 T_CIPH_umts_parameters umts_parameters; /*< 0: 16> Structure containing umts parameters */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1012 } T_CIPH_cipher_req_parms;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1013 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1014
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1015 #ifndef __T_CIPH_in_data_list__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1016 #define __T_CIPH_in_data_list__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1017 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1018 * Structure containing a list of in_data elements
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1019 * CCDGEN:WriteStruct_Count==13994
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1020 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1021 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1022 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1023 T_CIPH_in_data *ptr_in_data; /*< 0: 4> pointer to Structure containing length and pointer to the data */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1024 U16 c_in_data; /*< 4: 2> Number of elements */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1025 U8 zzz_align0; /*< 6: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1026 U8 zzz_align1; /*< 7: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1027 } T_CIPH_in_data_list;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1028 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1029
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1030 #endif /* TI_PS_OP_CIPH_DRIVER */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1031
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1032 /* --------------------------------------------------------------------------------- */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1033
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1034 #ifndef __T_kc__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1035 #define __T_kc__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1036 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1037 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1038 U8 key[8]; /*< 0: 8> ciphering key content */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1039 } T_kc;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1040 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1041
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1042 #ifndef __T_CCI_CIPHER_REQ__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1043 #define __T_CCI_CIPHER_REQ__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1044 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1045 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1046 U8 pm; /*< 0: 1> protected mode */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1047 U8 ciphering_algorithm; /*< 16: 1> ciphering algorithm */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1048 U8 direction; /*< 17: 1> ciphering transfer direction */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1049 U8 attached_counter; /*< 29: 1> attached to primitive data counter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1050 U32 ciphering_input; /*< 4: 4> frame-dependent ciphering input */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1051 T_kc kc; /*< 8: 8> ciphering key */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1052 U32 reference1; /*< 32: 4> frame reference number */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1053 U16 header_size; /*< 36: 2> frame header size */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1054 U8 zzz_align0; /*< 38: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1055 U8 zzz_align1; /*< 39: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1056 T_sdu sdu; /*< 40: ? > service data unit */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1057 } T_CCI_CIPHER_REQ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1058 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1059
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1060 #ifndef __T_CCI_DECIPHER_REQ__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1061 #define __T_CCI_DECIPHER_REQ__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1062 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1063 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1064 U8 pm; /*< 0: 1> protected mode */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1065 U8 ciphering_algorithm; /*< 1: 1> ciphering algorithm */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1066 U8 direction; /*< 16: 1> ciphering transfer direction */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1067 U8 zzz_align0; /*< 30: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1068 T_kc kc; /*< 4: 8> ciphering key */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1069 U32 ciphering_input; /*< 12: 4> frame-dependent ciphering input */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1070 U32 reference1; /*< 20: 4> frame reference number */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1071 U32 reference2; /*< 24: 4> second frame reference number */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1072 U16 header_size; /*< 28: 2> frame header size */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1073 U8 zzz_align1; /*< 30: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1074 U8 zzz_align2; /*< 31: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1075 T_desc_list desc_list; /*< 32: ? > list of generic data descriptors */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1076 } T_CCI_DECIPHER_REQ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1077 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1078
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1079 #ifndef __T_CCI_RESET_REQ__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1080 #define __T_CCI_RESET_REQ__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1081 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1082 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1083 U8 dummy; /*< 0: 1> no parameters */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1084 } T_CCI_RESET_REQ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1085 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1086
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1087 #ifndef __T_CCI_CIPHER_DESC_REQ__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1088 #define __T_CCI_CIPHER_DESC_REQ__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1089 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1090 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1091 U8 pm; /*< 0: 1> protected mode */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1092 U8 ciphering_algorithm; /*< 16: 1> ciphering algorithm */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1093 U8 direction; /*< 17: 1> ciphering transfer direction */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1094 U8 attached_counter; /*< 29: 1> attached to primitive data counter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1095 U32 ciphering_input; /*< 4: 4> frame-dependent ciphering input */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1096 T_kc kc; /*< 8: 8> ciphering key */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1097 U32 reference1; /*< 32: 4> frame reference number */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1098 U16 header_size; /*< 36: 2> frame header size */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1099 U8 zzz_align0; /*< 38: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1100 U8 zzz_align1; /*< 39: 1> alignment */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1101 T_desc_list3 desc_list3; /*< 40: 8> List of generic data descriptors */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1102 } T_CCI_CIPHER_DESC_REQ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1103 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1104
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1105 /* --------------------------------------------------------------------------------- */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1106
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1107 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1108 * LLC global typedefs
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1109 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1110
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1111 typedef UBYTE T_BIT_INT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1112 typedef T_BIT_INT T_BIT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1113
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1114 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1115 * T_FRAME_NUM must be unsigned!
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1116 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1117 typedef USHORT T_FRAME_NUM;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1118
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1119 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1120 * FRAME_NUM_VALID(a, b, c) equal to ETSI: a <= b <= c
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1121 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1122 #define FRAME_NUM_VALID(a,b,c) ( (((T_FRAME_NUM)((b)-(a)))%(MAX_SEQUENCE_NUMBER+1)) <= \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1123 (((T_FRAME_NUM)((c)-(a)))%(MAX_SEQUENCE_NUMBER+1)) )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1124
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1125 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1126 * FRAME_WIN_VALID(a, b, k) equal to ETSI: a < b + k
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1127 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1128 #define FRAME_WIN_VALID(a,b,k) ( (((T_FRAME_NUM)((a)-(b)))%(MAX_SEQUENCE_NUMBER+1)) < (k) )
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1129
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1130 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1131 * FRAME_NUM_DISTANCE(a,b) equal to b - a for frame nums
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1132 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1133 #define FRAME_NUM_DISTANCE(a,b) ((T_FRAME_NUM)((b)-(a))%(MAX_SEQUENCE_NUMBER+1))
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1134
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1135
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1136 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1137 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1138 UBYTE data[S_FRAME_SACK_MAX_CTRL_OCTETS];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1139 } T_SACK_BITMAP;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1140
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1141
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1142 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1143 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1144 ABIT_NO_REQ,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1145 ABIT_SET_REQ
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1146 } T_ABIT_REQ_TYPE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1147
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1148 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1149 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1150 IQ_NO_FRAME, /* return code only */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1151 IQ_NEW_FRAME, /* new in the queue */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1152 IQ_RETR_FRAME, /* ITX - marked for retransmission */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1153 IQ_W4ACK_FRAME, /* ITX - is send, but no ack up to now */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1154 IQ_IS_ACK_FRAME /* ITX - is ack and waiting for to be next in sequence */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1155 } T_IQ_STATUS;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1156
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1157 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1158 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1159 NS_EQUAL_VR,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1160 NS_NO_SEQUENCE_ERROR,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1161 NS_EQUAL_VR_PLUS_1,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1162 NS_IN_RANGE_VR_KU
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1163 } T_LAST_NS_TYPE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1164
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1165 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1166 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1167 I_FRAME = I_FRAME_ID,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1168 S_FRAME = S_FRAME_ID,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1169 UI_FRAME = UI_FRAME_ID,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1170 U_FRAME = U_FRAME_ID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1171 } T_PDU_TYPE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1172
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1173 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1174 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1175 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1176 * The values are chosen to correspond with the Sx and Mx bits in the frame
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1177 * control field. Thus these commands can be used to build the header of a
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1178 * frame.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1179 * NOTE:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1180 * Some I and U frame commands have the same value.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1181 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1182 #ifdef REL99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1183 U_NULL = U_FRAME_NULL,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1184 #endif /* REL99 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1185 I_RR = I_FRAME_RR,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1186 I_ACK = I_FRAME_ACK,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1187 I_RNR = I_FRAME_RNR,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1188 I_SACK = I_FRAME_SACK,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1189 U_SABM = U_FRAME_SABM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1190 U_DISC = U_FRAME_DISC,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1191 U_UA = U_FRAME_UA,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1192 U_DM = U_FRAME_DM,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1193 U_FRMR = U_FRAME_FRMR,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1194 U_XID = U_FRAME_XID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1195 } T_COMMAND;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1196
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1197 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1198 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1199 NO_SERVICE,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1200 SERVICE_LLME,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1201 SERVICE_ITX,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1202 SERVICE_IRX,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1203 SERVICE_UITX,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1204 SERVICE_UIRX,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1205 SERVICE_U,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1206 SERVICE_TX,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1207 SERVICE_RX,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1208 SERVICE_T200
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1209 } T_SERVICE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1210
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1211 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1212 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1213 PRIM_DATA,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1214 PRIM_UNITDATA,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1215 PRIM_REMOVED,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1216 NO_PRIM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1217 } T_PRIM_TYPE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1218
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1219 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1220 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1221 EXPIRY_TIMED,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1222 EXPIRY_REQUESTED
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1223 } T_EXPIRY_MODE_TYPE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1224
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1225
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1226 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1227 * Don't use enum for SAPI, because that's larger in size than UBYTE.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1228 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1229 typedef UBYTE T_SAPI;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1230
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1231 #define SAPI_1 LL_SAPI_1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1232 #define SAPI_2 LL_SAPI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1233 #define SAPI_3 LL_SAPI_3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1234 #define SAPI_4 LL_SAPI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1235 #define SAPI_5 LL_SAPI_5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1236 #define SAPI_6 LL_SAPI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1237 #define SAPI_7 LL_SAPI_7
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1238 #define SAPI_8 LL_SAPI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1239 #define SAPI_9 LL_SAPI_9
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1240 #define SAPI_10 LL_SAPI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1241 #define SAPI_11 LL_SAPI_11
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1242 #define SAPI_12 LL_SAPI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1243 #define SAPI_13 LL_SAPI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1244 #define SAPI_14 LL_SAPI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1245 #define SAPI_15 LL_SAPI_INVALID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1246
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1247 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1248 * Indicates which primitive to use after successful (re-)establishment:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1249 * LL_ESTABLISH_IND/CNF
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1250 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1251 typedef UBYTE T_ESTABLISHMENT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1252
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1253 #define IND_ESTABLISHMENT 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1254 #define CNF_ESTABLISHMENT 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1255
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1256 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1257 * Local TX transmit queue.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1258 * NOTE:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1259 * The ph_* variables must exactly match the types of T_GRLC_DATA_REQ /
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1260 * T_GRLC_UNITDATA_REQ.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1261 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1262 typedef struct T_TX_QUEUE_ELEMENT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1263 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1264 struct T_TX_QUEUE_ELEMENT *next; /* pointer to next element */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1265 ULONG primitive; /* stored primitive */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1266 ULONG reference; /* entry reference number */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1267 T_PRIM_TYPE prim_type; /* primitive type */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1268 UBYTE ph_sapi; /* primitive header: sapi */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1269 ULONG ph_tlli; /* tlli */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1270 UBYTE ph_grlc_qos_peak; /* grlc_qos.peak */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1271 UBYTE ph_radio_prio; /* radio_prio */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1272 UBYTE ph_cause; /* cause */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1273 T_SERVICE rx_service; /* flow control service */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1274 BOOL remove_frame; /* TRUE: frame has to remove */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1275 #ifdef REL99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1276 UBYTE ph_pkt_flow_id; /* packet flow identifier */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1277 #endif /* REL99 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1278 } T_TX_QUEUE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1279
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1280
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1281 typedef struct T_ITX_I_QUEUE_ENTRY
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1282 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1283 struct T_ITX_I_QUEUE_ENTRY *next; /* pointer to next element */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1284 #ifdef LL_DESC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1285 T_LL_DESC_REQ* frame; /* pointer to L3 prim */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1286 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1287 T_LL_DATA_REQ* frame; /* pointer to L3 prim */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1288 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1289 USHORT n_retr; /* retransmission counter */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1290 T_IQ_STATUS status; /* status flag */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1291 T_FRAME_NUM ns; /* send sequence number N(S) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1292 ULONG oc_i_tx; /* OC to use for this N(S) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1293
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1294 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1295 * Copy of original LL_DATA_REQ parameter for attached_counter handling
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1296 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1297 #ifdef LL_2to1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1298 T_PS_qos_r97 ll_qos; /* quality of service */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1299 T_LL_reference1 reference; /* ciphering indicator */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1300 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1301 T_ll_qos ll_qos; /* quality of service */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1302 T_reference1 reference; /* ciphering indicator */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1303 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1304 #ifdef REL99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1305 UBYTE pkt_flow_id; /*Packet Flow Identifier */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1306 #endif /* REL99 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1307 #ifdef LL_DESC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1308 USHORT offset; /* Offset of buffer */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1309 USHORT len; /* Length of buffer */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1310 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1311 USHORT sdu_o_buf; /* Offset of SDU data */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1312 USHORT sdu_l_buf; /* Length of SDU data */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1313 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1314 UBYTE radio_prio; /* Radio Priority */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1315 UBYTE seg_pos; /* First and/or last seg? */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1316
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1317 } T_ITX_I_QUEUE_ENTRY;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1318
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1319
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1320 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1321 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1322 struct T_ITX_I_QUEUE_ENTRY *first; /* pointer to first element */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1323 USHORT entries; /* number of Queue enties */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1324 } T_ITX_I_QUEUE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1325
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1326
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1327 typedef struct T_ITX_S_QUEUE_ENTRY
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1328 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1329 struct T_ITX_S_QUEUE_ENTRY *next; /* pointer to next element */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1330 T_COMMAND sx; /* Supervisiory command Sx */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1331 T_ABIT_REQ_TYPE rt; /* A bit request flag */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1332 T_FRAME_NUM nr; /* N(R) of command */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1333 T_SACK_BITMAP bitmap; /* SACK bitmap */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1334 } T_ITX_S_QUEUE_ENTRY;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1335
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1336
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1337 typedef struct T_IRX_QUEUE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1338 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1339 struct T_IRX_QUEUE *next; /* pointer to next element */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1340 T_LL_UNITDATA_IND* frame; /* pointer to L3 prim */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1341 T_FRAME_NUM ns; /* received frame number N(S) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1342 } T_IRX_QUEUE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1343
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1344 typedef struct T_UIRX_QUEUE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1345 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1346 struct T_UIRX_QUEUE *next; /* pointer to next element */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1347 T_LL_UNITDATA_IND* frame; /* pointer to L3 prim */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1348 } T_UIRX_QUEUE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1349
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1350
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1351 typedef struct /* T_XID_PARAMETERS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1352 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1353 struct /* Version */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1354 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1355 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1356 UBYTE value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1357 } version;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1358 struct /* IOV-UI */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1359 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1360 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1361 ULONG value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1362 } iov_ui;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1363 struct /* IOV-I */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1364 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1365 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1366 ULONG value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1367 } iov_i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1368 struct /* T200 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1369 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1370 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1371 USHORT value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1372 } t200;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1373 struct /* N200 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1374 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1375 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1376 UBYTE value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1377 } n200;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1378 struct /* N201-U */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1379 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1380 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1381 USHORT value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1382 } n201_u;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1383 struct /* N201-I */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1384 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1385 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1386 USHORT value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1387 } n201_i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1388 struct /* mD */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1389 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1390 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1391 USHORT value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1392 } md;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1393 struct /* mU */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1394 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1395 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1396 USHORT value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1397 } mu;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1398 struct /* kD */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1399 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1400 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1401 UBYTE value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1402 } kd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1403 struct /* kU */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1404 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1405 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1406 UBYTE value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1407 } ku;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1408 struct /* Reset */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1409 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1410 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1411 } reset;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1412 } T_XID_PARAMETERS;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1413
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1414
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1415
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1416 typedef struct /* T_FFS_XID_PARAMETERS */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1417 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1418 struct /* T200 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1419 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1420 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1421 USHORT value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1422 } t200[UNACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1423 struct /* N200 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1424 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1425 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1426 UBYTE value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1427 } n200[UNACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1428 struct /* N201-U */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1429 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1430 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1431 USHORT value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1432 } n201_u[UNACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1433 struct /* N201-I */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1434 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1435 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1436 USHORT value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1437 } n201_i[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1438 struct /* mD */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1439 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1440 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1441 USHORT value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1442 } md[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1443 struct /* mU */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1444 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1445 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1446 USHORT value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1447 } mu[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1448 struct /* kD */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1449 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1450 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1451 UBYTE value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1452 } kd[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1453 struct /* kU */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1454 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1455 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1456 UBYTE value;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1457 } ku[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1458 } T_FFS_XID_PARAMETERS;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1459
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1460
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1461 typedef struct /* T_LLME_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1462 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1463 UBYTE state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1464 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1465 * Required for state traces.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1466 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1467 #ifndef NTRACE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1468 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1469 char *state_name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1470 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1471 } T_LLME_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1472
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1473
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1474 typedef struct /* T_U_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1475 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1476 UBYTE state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1477 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1478 * Required for state traces.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1479 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1480 #ifndef NTRACE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1481 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1482 char *state_name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1483 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1484 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1485 * TLLI of current transaction (is set with incoming primitives, time-outs,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1486 * and signals with primitive payload).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1487 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1488 ULONG current_tlli;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1489
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1490 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1491 * Number of retransmissions per sent command frame.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1492 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1493 UBYTE retransmission_counter;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1494
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1495 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1496 * If LLC receives an release request from Layer 3 and is not able to confirm
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1497 * the request immediately, release_requested has to be set to TRUE.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1498 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1499 UBYTE release_requested;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1500
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1501 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1502 * Send LL_ESTABLISH_IND/CNF after successful establishment.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1503 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1504 T_ESTABLISHMENT ind_cnf_establishment;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1505
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1506 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1507 * Indicates if XID command has been sent.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1508 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1509 BOOL xid_pending;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1510
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1511 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1512 * Indicates that an LL_XID_IND has been sent.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1513 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1514 BOOL ll_xid_resp_pending;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1515
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1516 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1517 * Reason of frame rejection condition.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1518 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1519 UBYTE frmr_reason;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1520
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1521 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1522 * Used to tag parameters for the next XID response. This is done by
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1523 * setting the corresponding bit (with the definitions from llc_uf.h) to 1.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1524 * This variable is initialised by llme_init(), and with every call of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1525 * u_eval_xid().
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1526 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1527 ULONG xid_tag;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1528
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1529 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1530 * Tags parameters for further negotiation that have not been included in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1531 * the XID command but are included in the XID response. These parameters
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1532 * have to be included in every XID response until the parameter has been
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1533 * explicitly negotiated, either by responding to an XID command that
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1534 * included the parameter, or by explicitly including the parameter
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1535 * the next time an XID command is transmitted.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1536 * <R.LLC.XIDNEG_R.A.015>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1537 * This variable is initialised by llme_init().
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1538 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1539 ULONG xid_tag_negotiate;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1540
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1541 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1542 * Used to tag parameters that have actually been sent in the last command
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1543 * or response frame. It is used for collision checks and the like.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1544 * This variable is initialised by llme_init(), and with every call of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1545 * u_insert_xid().
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1546 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1547 ULONG xid_tag_sent;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1548
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1549 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1550 * Structure to contain XID parameters that are requested to be negotiated.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1551 * Valid flags are initialised by llme_init(), and are being reset when
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1552 * the parameter has explicitly been included in a response.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1553 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1554 T_XID_PARAMETERS requested_xid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1555
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1556 } T_U_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1557
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1558
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1559 typedef struct /* T_ITX_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1560 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1561 UBYTE state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1562 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1563 * Required for state traces.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1564 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1565 #ifndef NTRACE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1566 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1567 char *state_name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1568 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1569
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1570 BOOL tx_waiting;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1571 BOOL buffer_was_full;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1572
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1573 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1574 * I frame buffer size variables: Total length of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1575 * transmitted and not acknowlegded information fields.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1576 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1577 ULONG B_tx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1578
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1579 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1580 * Local transmit queues for I- and S frames
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1581 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1582 T_ITX_I_QUEUE i_queue;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1583 T_ITX_S_QUEUE_ENTRY *s_queue;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1584
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1585 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1586 * T201 Data
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1587 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1588 T_ITX_I_QUEUE_ENTRY *t201_entry;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1589 USHORT n_pb_retr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1590
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1591 } T_ITX_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1592
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1593
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1594 typedef struct /* T_IRX_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1595 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1596 UBYTE state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1597 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1598 * Required for state traces.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1599 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1600 #ifndef NTRACE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1601 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1602 char *state_name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1603 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1604
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1605 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1606 * I frame buffer size variables: Total length of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1607 * stored information fields.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1608 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1609 ULONG B_rx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1610
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1611 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1612 * Next frame number to forward to L3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1613 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1614 T_FRAME_NUM vf;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1615
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1616 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1617 * L3 ready to receive a data indication flag
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1618 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1619 BOOL ll_send_ready;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1620 T_LAST_NS_TYPE last_ns;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1621
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1622 T_IRX_QUEUE *queue;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1623 } T_IRX_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1624
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1625
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1626 typedef struct /* T_UITX_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1627 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1628 UBYTE state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1629 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1630 * Required for state traces.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1631 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1632 #ifndef NTRACE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1633 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1634 char *state_name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1635 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1636 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1637 * Unacknowledged send sequence number
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1638 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1639 T_FRAME_NUM vu;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1640 } T_UITX_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1641
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1642
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1643 typedef struct /* T_UIRX_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1644 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1645 UBYTE state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1646 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1647 * Required for state traces.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1648 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1649 #ifndef NTRACE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1650 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1651 char *state_name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1652 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1653 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1654 * Bit field for received N(U) values, relative to V(UR).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1655 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1656 ULONG last_32_frames_bitfield;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1657
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1658 T_UIRX_QUEUE *queue;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1659
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1660 } T_UIRX_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1661
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1662
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1663 typedef struct /* T_T200_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1664 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1665 UBYTE state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1666 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1667 * Required for state traces.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1668 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1669 #ifndef NTRACE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1670 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1671 char *state_name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1672 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1673 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1674 * Length of timer T200 in milliseconds (is negotiated in 0.1s!).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1675 * LLC layer parameter.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1676 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1677 T_TIME length;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1678 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1679 * The frame which is associated with the timer, the RLC/MAC cause of the
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1680 * frame, and the service that started the timer. This is the t200_data
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1681 * array of SDL.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1682 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1683 #ifdef LL_DESC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1684 T_LL_UNITDESC_REQ *frame;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1685 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1686 T_LL_UNITDATA_REQ *frame;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1687 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1688 UBYTE cause;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1689 T_SERVICE originator;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1690
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1691 } T_T200_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1692
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1693
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1694 typedef struct /* T_TX_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1695 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1696 UBYTE state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1697 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1698 * Required for state traces.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1699 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1700 #ifndef NTRACE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1701 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1702 char *state_name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1703 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1704 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1705 * Local transmit queue (single-linked dynamic list).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1706 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1707 T_TX_QUEUE *queue;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1708 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1709 * Counter of available space for UITX primitives in the queue.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1710 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1711 UBYTE queue_counter_itx[ITX_NUM_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1712 UBYTE queue_counter_uitx[UITX_NUM_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1713 } T_TX_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1714
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1715
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1716 typedef struct /* T_RX_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1717 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1718 UBYTE state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1719 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1720 * Required for state traces.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1721 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1722 #ifndef NTRACE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1723 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1724 char *state_name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1725 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1726 } T_RX_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1727
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1728
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1729 typedef struct /* T_SAPI_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1730 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1731 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1732 * Unacknowledged receive sequence numbers (0..511)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1733 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1734 T_FRAME_NUM vur;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1735 T_FRAME_NUM last_vur;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1736
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1737 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1738 * Acknowledged mode frame numbers (0..511)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1739 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1740 T_FRAME_NUM vr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1741 T_FRAME_NUM va;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1742 T_FRAME_NUM vs;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1743
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1744 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1745 * Binary overflow counters for acknowledged/unacknowledged mode and
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1746 * uplink/downlink. These variables are initialised with llme_init(),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1747 * and the unacknowledged OCs are reset when XID reset has been received.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1748 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1749 ULONG oc_ui_tx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1750 ULONG oc_ui_rx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1751 ULONG oc_i_tx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1752 ULONG oc_i_rx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1753
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1754 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1755 * pbit_outstanding set to TRUE indicates that a frame with P bit set to 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1756 * is currently outstanding
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1757 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1758 BOOL pbit_outstanding;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1759
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1760 } T_SAPI_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1761
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1762 typedef struct /* Layer 3 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1763 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1764 BOOL valid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1765 UBYTE length;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1766 #ifdef LL_2to1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1767 UBYTE value[LL_MAX_L3_XID_LEN];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1768 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1769 UBYTE value[LLC_MAX_L3_XID_LEN];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1770 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1771 } T_L3_XID;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1772
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1773 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1774 * CCI global typedefs
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1775 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1776 typedef enum
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1777 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1778 CIPHER_REQ,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1779 DECIPHER_REQ,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1780 NO_REQ
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1781 } T_CCI_PRIM_TYPE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1782
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1783 /* CCI data base */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1784 typedef struct /*T_FBS_SERVICE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1785 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1786 UBYTE state;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1787 #ifndef NTRACE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1788 char *name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1789 char *state_name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1790 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1791
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1792 USHORT volatile *cntl_reg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1793 USHORT volatile *status_reg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1794 USHORT volatile *status_irq_reg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1795 USHORT volatile *conf_ul_reg1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1796 USHORT volatile *conf_ul_reg2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1797 USHORT volatile *conf_ul_reg3;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1798 USHORT volatile *conf_ul_reg4;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1799 USHORT volatile *conf_ul_reg5;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1800 USHORT volatile *conf_dl_reg1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1801 USHORT volatile *conf_dl_reg2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1802 USHORT volatile *conf_dl_reg3;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1803 USHORT volatile *conf_dl_reg4;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1804 USHORT volatile *conf_dl_reg5;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1805 USHORT volatile *kc_reg1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1806 USHORT volatile *kc_reg2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1807 USHORT volatile *kc_reg3;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1808 USHORT volatile *kc_reg4;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1809 USHORT volatile *fcs_ul_reg1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1810 USHORT volatile *fcs_ul_reg2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1811 USHORT volatile *fcs_dl_reg1;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1812 USHORT volatile *fcs_dl_reg2;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1813 #if (BOARD == 61 OR BOARD == 71) /* G-Sample or I-Sample */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1814 USHORT volatile *switch_reg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1815 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1816 USHORT volatile *data16_reg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1817 UBYTE volatile *data8_reg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1818
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1819 #ifdef _GEA_SIMULATION_
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1820 UBYTE *simulated_reg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1821 UBYTE *simulated_reg_buffer;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1822 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1823
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1824 /*primitives should also be defined as global */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1825 #ifdef LL_DESC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1826 T_CCI_CIPHER_DESC_REQ *cci_cipher_req;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1827 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1828 T_CCI_CIPHER_REQ *cci_cipher_req;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1829 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1830 T_CCI_DECIPHER_REQ *cci_decipher_req;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1831
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1832 #ifndef TI_PS_OP_CIPH_DRIVER
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1833 T_CIPH_init_cipher_req_parms ciph_params;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1834 BOOL initialized;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1835 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1836 ULONG cci_freed_partition;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1837 BOOL cci_info_trace;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1838
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1839 } T_FBS_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1840
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1841
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1842 typedef struct /* T_LLC_DATA */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1843 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1844 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1845 * Indicates LLC is suspended or not (default).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1846 * This variable is initialised by llme_init().
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1847 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1848 BOOL suspended;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1849
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1850 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1851 * Indicates LLC that GRLC is suspended or not (default).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1852 * This variable is initialised by llme_init().
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1853 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1854 BOOL grlc_suspended;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1855
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1856 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1857 * Current SAPI number. This is used for outgoing primitives. It is set
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1858 * with each external event, like an incoming primitive or a time-out.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1859 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1860 T_SAPI current_sapi;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1861
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1862 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1863 * TLLI New and TLLI Old. These are set by GMM via LLGMM_ASSIGN_REQ.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1864 * TLLI New is used for sending primitives (if the upper layer did not
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1865 * already specify the TLLI). TLLI Old is currently unused.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1866 * Both variables are initialised by llme_init().
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1867 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1868 ULONG tlli_new;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1869 ULONG tlli_old;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1870
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1871 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1872 * LLC layer parameters (according to GSM 04.64, Version 6.4.0). These
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1873 * parameters are initialised by llc_init_parameters().
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1874 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1875 UBYTE version;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1876
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1877 ULONG iov_ui;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1878 ULONG iov_i_base[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1879 ULONG *iov_i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1880
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1881 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1882 * T200 and T201 values are defined in the respective service data arrays.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1883 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1884 UBYTE n200_base[UNACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1885 UBYTE *n200;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1886
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1887 USHORT n201_u_base[UNACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1888 USHORT n201_i_base[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1889 USHORT *n201_u;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1890 USHORT *n201_i;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1891
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1892 USHORT md_base[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1893 USHORT mu_base[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1894 USHORT *md;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1895 USHORT *mu;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1896
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1897 UBYTE kd_base[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1898 UBYTE ku_base[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1899 UBYTE *kd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1900 UBYTE *ku;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1901
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1902 T_L3_XID requested_l3_xid_base[ACKNOWLEDGED_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1903 T_L3_XID *requested_l3_xid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1904
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1905 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1906 * Structure to contain decoded XID parameters.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1907 * Valid flags are initialized by u_check_xid() each time received XID
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1908 * is checked.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1909 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1910 T_XID_PARAMETERS decoded_xid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1911 T_L3_XID decoded_l3_xid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1912
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1913 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1914 * LLC layer variables needed for ciphering (see services TX/RX). These
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1915 * variables are set with LLGMM_ASSIGN_REQ by GMM.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1916 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1917 #ifdef LL_2to1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1918 T_LLGMM_llgmm_kc kc;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1919 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1920 T_llgmm_kc kc;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1921 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1922
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1923
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1924 UBYTE ciphering_algorithm;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1925
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1926 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1927 * Service data structures.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1928 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1929 * Services with multiple incarnations require an array of structures
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1930 * named xxx_base[] with xxx = service abbrevation, and additionally a
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1931 * pointer named *xxx, which will be accessed instead of xxx_base.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1932 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1933 * Services with only one incarnation just have to declare one structure
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1934 * named xxx (no need for xxx_base[] and *xxx).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1935 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1936 * The differentiation between the two access possibilites is made with
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1937 * the defines of the service names above (LLC_SERVICE_XXX).
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1938 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1939 T_LLME_DATA llme;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1940
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1941 T_SAPI_DATA sapi_base[MAX_SAPI_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1942 T_SAPI_DATA *sapi;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1943
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1944 T_U_DATA u_base[U_NUM_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1945 T_U_DATA *u;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1946
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1947 T_ITX_DATA itx_base[ITX_NUM_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1948 T_IRX_DATA irx_base[IRX_NUM_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1949 T_ITX_DATA *itx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1950 T_IRX_DATA *irx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1951
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1952 T_UITX_DATA uitx_base[UITX_NUM_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1953 T_UIRX_DATA uirx_base[UIRX_NUM_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1954 T_UITX_DATA *uitx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1955 T_UIRX_DATA *uirx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1956
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1957 T_T200_DATA t200_base[T200_NUM_INC];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1958 T_T200_DATA *t200;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1959
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1960 T_TX_DATA tx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1961 T_RX_DATA rx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1962
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1963 T_FBS_DATA fbs;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1964
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1965 #ifdef _SIMULATION_
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1966 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1967 * Structure to contain XID parameters that are configured in ffs.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1968 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1969 T_FFS_XID_PARAMETERS ffs_xid;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1970 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1971
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1972 /*Number of milliseconds to delay after sending reset_ind to SNDCP*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1973 USHORT millis;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1974 #ifdef REL99
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1975 U16 cur_pfi; /* current packet flow identifier */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1976 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1977 T_ll_qos cur_qos; /* quality of service R97 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1978 U8 cur_radio_prio; /* T_PS_radio_prio, Radio priority */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1979 } T_LLC_DATA;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1980
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1981
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1982 /*==== EXPORT =====================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1983
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1984 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1985 * Entity data base
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1986 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1987 #ifdef LLC_PEI_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1988 T_LLC_DATA llc_data_base, *llc_data;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1989 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1990 EXTERN T_LLC_DATA llc_data_base, *llc_data;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1991 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1992
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1993 #define ENTITY_DATA llc_data
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1994
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1995 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1996 * Communication handles (see also LLC_PEI.C)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1997 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1998 #define hCommGMM llc_hCommGMM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1999 #define hCommSNDCP llc_hCommSNDCP
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2000 #ifdef LL_2to1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2001 #define hCommMM llc_hCommMM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2002 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2003 #define hCommGSMS llc_hCommGSMS
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2004 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2005 #define hCommGRLC llc_hCommGRLC
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2006
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2007 #ifdef LLC_PEI_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2008 T_HANDLE hCommGMM = VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2009 T_HANDLE hCommSNDCP = VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2010 #ifdef LL_2to1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2011 T_HANDLE hCommMM = VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2012 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2013 T_HANDLE hCommGSMS = VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2014 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2015 T_HANDLE hCommGRLC = VSI_ERROR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2016
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2017 T_HANDLE LLC_handle;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2018 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2019 * make the pei_create function unique
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2020 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2021 #define pei_create llc_pei_create
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2022
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2023 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2024 EXTERN T_HANDLE hCommGMM;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2025 EXTERN T_HANDLE hCommSNDCP;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2026 #ifdef LL_2to1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2027 EXTERN T_HANDLE hCommMM;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2028 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2029 EXTERN T_HANDLE hCommGSMS;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2030 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2031 EXTERN T_HANDLE hCommGRLC;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2032
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2033 EXTERN T_HANDLE LLC_handle;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2034
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2035 #endif /* LLC_PEI_C */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2036
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2037
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2038 #endif /* LLC_H */
|