Fix a typo in an error message.
[obnox/wireshark/wip.git] / plugins / wimax / wimax_mac.h
1 /* wimax_mac.h
2  * WiMax MAC Definitions
3  *
4  * Copyright (c) 2007 by Intel Corporation.
5  *
6  * Author: Lu Pan <lu.pan@intel.com>
7  *
8  * $Id$
9  *
10  * Wireshark - Network traffic analyzer
11  * By Gerald Combs <gerald@wireshark.org>
12  * Copyright 1999 Gerald Combs
13  *
14  * This program is free software; you can redistribute it and/or
15  * modify it under the terms of the GNU General Public License
16  * as published by the Free Software Foundation; either version 2
17  * of the License, or (at your option) any later version.
18  *
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with this program; if not, write to the Free Software
26  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
27  */
28
29 #ifndef WIMAX_MAC_H
30 #define WIMAX_MAC_H
31
32 #define         IP_HEADER_BYTE                  0x45
33
34 /* WiMax MAC Header/Subheader Sizes */
35 #define         WIMAX_MAC_HEADER_SIZE                   6
36 #define         WIMAX_MAC_SUBHEADER_MESH_SIZE           2
37 #define         WIMAX_MAC_SUBHEADER_FAST_FEEDBACK_SIZE  1
38 #define         WIMAX_MAC_SUBHEADER_GRANT_MGMT_SIZE     2
39
40 #define         WIMAX_MAC_SUBHEADER_FRAG_SIZE(x)        (((x) & (WIMAX_MAC_TYPE_EXTENDED | WIMAX_MAC_TYPE_ARQ)) ? 3 : 2)
41 #define         WIMAX_MAC_SUBHEADER_PACK_SIZE(x)        (((x) & (WIMAX_MAC_TYPE_EXTENDED | WIMAX_MAC_TYPE_ARQ)) ? 3 : 2)
42
43 #define         WIMAX_MAC_HEADER_GENERIC        0
44 #define         WIMAX_MAC_CID_PADDING           0xFFFE
45
46 /* wimax mac arq */
47 #define         ARQ_CUMULATIVE_ACK_ENTRY        1
48 #define         ARQ_CUMULATIVE_ACK_BLOCK_SEQ    3
49 #define         ARQ_ACK_MAP_SIZE                2
50
51 /* WiMax MAC Header Sub-types (Table 6) */
52 #define         WIMAX_MAC_TYPE_MESH             (1 << 5)
53 #define         WIMAX_MAC_TYPE_ARQ              (1 << 4)
54 #define         WIMAX_MAC_TYPE_EXTENDED         (1 << 3)
55 #define         WIMAX_MAC_TYPE_FRAGMENTATION    (1 << 2)
56 #define         WIMAX_MAC_TYPE_PACKING          (1 << 1)
57 #define         WIMAX_MAC_TYPE_FAST_FEEDBACK    (1 << 0)
58 #define         WIMAX_MAC_TYPE_GRANT_MGMT       (1 << 0)
59
60 /* wimax mac management messages (Table 14) */
61 #define         MAC_MGMT_MSG_UCD                0
62 #define         MAC_MGMT_MSG_DCD                1
63 #define         MAC_MGMT_MSG_DL_MAP             2
64 #define         MAC_MGMT_MSG_UL_MAP             3
65 #define         MAC_MGMT_MSG_RNG_REQ            4
66 #define         MAC_MGMT_MSG_RNG_RSP            5
67 #define         MAC_MGMT_MSG_REG_REQ            6
68 #define         MAC_MGMT_MSG_REG_RSP            7
69
70 #define         MAC_MGMT_MSG_PKM_REQ            9
71 #define         MAC_MGMT_MSG_PKM_RSP            10
72 #define         MAC_MGMT_MSG_DSA_REQ            11
73 #define         MAC_MGMT_MSG_DSA_RSP            12
74 #define         MAC_MGMT_MSG_DSA_ACK            13
75 #define         MAC_MGMT_MSG_DSC_REQ            14
76 #define         MAC_MGMT_MSG_DSC_RSP            15
77 #define         MAC_MGMT_MSG_DSC_ACK            16
78 #define         MAC_MGMT_MSG_DSD_REQ            17
79 #define         MAC_MGMT_MSG_DSD_RSP            18
80
81 #define         MAC_MGMT_MSG_MCA_REQ            21
82 #define         MAC_MGMT_MSG_MCA_RSP            22
83 #define         MAC_MGMT_MSG_DBPC_REQ           23
84 #define         MAC_MGMT_MSG_DBPC_RSP           24
85 #define         MAC_MGMT_MSG_RES_CMD            25
86 #define         MAC_MGMT_MSG_SBC_REQ            26
87 #define         MAC_MGMT_MSG_SBC_RSP            27
88 #define         MAC_MGMT_MSG_CLK_CMP            28
89 #define         MAC_MGMT_MSG_DREG_CMD           29
90 #define         MAC_MGMT_MSG_DSX_RVD            30
91 #define         MAC_MGMT_MSG_TFTP_CPLT          31
92 #define         MAC_MGMT_MSG_TFTP_RSP           32
93 #define         MAC_MGMT_MSG_ARQ_FEEDBACK       33
94 #define         MAC_MGMT_MSG_ARQ_DISCARD        34
95 #define         MAC_MGMT_MSG_ARQ_RESET          35
96 #define         MAC_MGMT_MSG_REP_REQ            36
97 #define         MAC_MGMT_MSG_REP_RSP            37
98 #define         MAC_MGMT_MSG_FPC                38
99 #define         MAC_MGMT_MSG_MSH_NCFG           39
100 #define         MAC_MGMT_MSG_MSH_NENT           40
101 #define         MAC_MGMT_MSG_MSH_DSCH           41
102 #define         MAC_MGMT_MSG_MSH_CSCH           42
103 #define         MAC_MGMT_MSG_MSH_CSCF           43
104 #define         MAC_MGMT_MSG_AAS_FBCK_REQ       44
105 #define         MAC_MGMT_MSG_AAS_FBCK_RSP       45
106 #define         MAC_MGMT_MSG_AAS_BEAM_SELECT    46
107 #define         MAC_MGMT_MSG_AAS_BEAM_REQ       47
108 #define         MAC_MGMT_MSG_AAS_BEAM_RSP       48
109 #define         MAC_MGMT_MSG_DREG_REQ           49
110
111 #define         MAC_MGMT_MSG_MOB_SLP_REQ        50
112 #define         MAC_MGMT_MSG_MOB_SLP_RSP        51
113 #define         MAC_MGMT_MSG_MOB_TRF_IND        52
114 #define         MAC_MGMT_MSG_MOB_NBR_ADV        53
115 #define         MAC_MGMT_MSG_MOB_SCN_REQ        54
116 #define         MAC_MGMT_MSG_MOB_SCN_RSP        55
117 #define         MAC_MGMT_MSG_MOB_BSHO_REQ       56
118 #define         MAC_MGMT_MSG_MOB_MSHO_REQ       57
119 #define         MAC_MGMT_MSG_MOB_BSHO_RSP       58
120 #define         MAC_MGMT_MSG_MOB_HO_IND         59
121 #define         MAC_MGMT_MSG_MOB_SCN_REP        60
122 #define         MAC_MGMT_MSG_MOB_PAG_ADV        61
123 #define         MAC_MGMT_MSG_MBS_MAP            62
124 #define         MAC_MGMT_MSG_PMC_REQ            63
125 #define         MAC_MGMT_MSG_PMC_RSP            64
126 #define         MAC_MGMT_MSG_PRC_LT_CTRL        65
127 #define         MAC_MGMT_MSG_MOB_ASC_REP        66
128 #define         MAC_MGMT_MSG_TYPE_MAX           67
129
130 /* DL-MAP types (Table 276) */
131 #define         DL_MAP_EXTENDED_2_DIUC          14
132 #define         DL_MAP_EXTENDED_IE              15
133 /* DL-MAP Extended UIUC Code (table 277a) */
134 #define         DL_MAP_AAS_IE                   2
135 #define         DL_MAP_EXTENDED_CID_SWITCH_IE   4
136 #define         DL_MAP_HARQ_IE                  7
137 /* DL-MAP Extended-2 UIUC Code (table 277c) */
138 #define         DL_MAP_EXTENDED_2_HARQ          7
139
140 /* UL-MAP types (Table 288) */
141 #define         UL_MAP_FAST_FEEDBACK_CHANNEL    0
142 #define         UL_MAP_CDMA_BR_RANGING_IE       12
143 #define         UL_MAP_PAPR_RECUCTION_ALLOC_SAFETY_ZONE 13
144 #define         UL_MAP_CDMA_ALLOCATION_IE       14
145 #define         UL_MAP_EXTENDED_IE              15
146 /* UL-MAP Extended UIUC Code (table 290a) */
147 #define         UL_MAP_CQICH_ALLOCATION_IE      3
148
149 /* DCD types (Table 358)*/
150 #define         DCD_DOWNLINK_BURST_PROFILE      1
151 #define         DCD_BS_EIRP                     2
152 #define         DCD_FRAME_DURATION              3
153 #define         DCD_PHY_TYPE                    4
154 #define         DCD_POWER_ADJUSTMENT            5
155 #define         DCD_CHANNEL_NR                  6
156 #define         DCD_TTG                         7
157 #define         DCD_RTG                         8
158 #define         DCD_RSS                         9
159 #define         DCD_EIRXP                       9
160 #define         DCD_CHANNEL_SWITCH_FRAME_NR     10
161 #define         DCD_FREQUENCY                   12
162 #define         DCD_BS_ID                       13
163 #define         DCD_FRAME_DURATION_CODE         14
164 #define         DCD_FRAME_NR                    15
165 #define         DCD_SIZE_CQICH_ID               16
166 #define         DCD_H_ARQ_ACK_DELAY             17
167 #define         DCD_MAC_VERSION                 148
168
169 #define         DCD_RESTART_COUNT               154
170
171 #define         DCD_BURST_FREQUENCY             1
172 #define         DCD_BURST_FEC_CODE_TYPE         150
173 #define         DCD_BURST_DIUC_EXIT_THRESHOLD   151
174 #define         DCD_BURST_DIUC_ENTRY_THRESHOLD  152
175 #define         DCD_BURST_TCS_ENABLE            153
176 /*#define               DCD_MAXIMUM_RETRANSMISSION      20*/
177 /* TLV types */
178 #define         DCD_TLV_T_19_PERMUTATION_TYPE_FOR_BROADCAST_REGION_IN_HARQ_ZONE 19
179 #define         DCD_TLV_T_20_MAXIMUM_RETRANSMISSION    20
180 #define         DCD_TLV_T_21_DEFAULT_RSSI_AND_CINR_AVERAGING_PARAMETER   21
181 #define         DCD_TLV_T_22_DL_AMC_ALLOCATED_PHYSICAL_BANDS_BITMAP      22
182 #define         DCD_TLV_T_34_DL_REGION_DEFINITION 34
183 #define         DCD_TLV_T_50_HO_TYPE_SUPPORT      50
184 #define         DCD_TLV_T_31_H_ADD_THRESHOLD      31
185 #define         DCD_TLV_T_32_H_DELETE_THRESHOLD   32
186 #define         DCD_TLV_T_33_ASR                  33
187 #define         DCD_TLV_T_34_DL_REGION_DEFINITION 34
188 #define         DCD_TLV_T_35_PAGING_GROUP_ID      35
189 #define         DCD_TLV_T_36_TUSC1_PERMUTATION_ACTIVE_SUBCHANNELS_BITMAP 36
190 #define         DCD_TLV_T_37_TUSC2_PERMUTATION_ACTIVE_SUBCHANNELS_BITMAP 37
191 #define         DCD_TLV_T_51_HYSTERSIS_MARGIN     51
192 #define         DCD_TLV_T_52_TIME_TO_TRIGGER_DURATION 52
193 #define         DCD_TLV_T_54_TRIGGER                  54
194 #define         DCD_TLV_T_60_NOISE_AND_INTERFERENCE   60
195 #define         DCD_TLV_T_153_DOWNLINK_BURST_PROFILE_FOR_MULTIPLE_FEC_TYPES 153
196 #define         DCD_TLV_T_22_DL_AMC_ALLOCATED_PHYSICAL_BANDS_BITMAP  22
197 #define         DCD_TLV_T_541_TYPE_FUNCTION_ACTION 1
198 #define         DCD_TLV_T542_TRIGGER_VALUE  2
199 #define         DCD_TLV_T_543_TRIGGER_AVERAGING_DURATION 3
200 #define         DCD_TLV_T_45_PAGING_INTERVAL_LENGTH   45
201
202 /* UCD types (Table 353) */
203 #define         UCD_UPLINK_BURST_PROFILE            1
204 #define         UCD_RESERVATION_TIMEOUT             2
205 #define         UCD_BW_REQ_SIZE                     3
206 #define         UCD_RANGING_REQ_SIZE                4
207 #define         UCD_FREQUENCY                       5
208
209 #define         UCD_TLV_T_7_HO_RANGING_START        7
210 #define         UCD_TLV_T_8_RANGING_HO_END          8
211 #define         UCD_INITIAL_RANGING_CODES           150
212 #define         UCD_PERIODIC_RANGING_CODES          151
213 #define         UCD_BANDWIDTH_REQUEST_CODES         152
214 #define         UCD_PERIODIC_RANGING_BACKOFF_START  153
215 #define         UCD_PERIODIC_RANGING_BACKOFF_END    154
216 #define         UCD_START_OF_RANGING_CODES_GROUP    155
217 #define         UCD_PERMUTATION_BASE                156
218 #define         UCD_UL_ALLOCATED_SUBCHANNELS_BITMAP 157
219 #define         UCD_TLV_T_158_OPTIONAL_PERMUTATION_UL_ALLOCATED_SUBCHANNELS_BITMAP 158
220 #define         UCD_TLV_T_159_BAND_AMC_ALLOCATION_THRESHHOLD 159
221 #define         UCD_TLV_T_160_BAND_AMC_RELEASE_THRESHOLD     160
222 #define         UCD_TLV_T_161_BAND_AMC_ALLOCATION_TIMER      161
223 #define         UCD_TLV_T_162_BAND_AMC_RELEASE_TIMER         162
224 #define         UCD_TLV_T_163_BAND_STATUS_REPORT_MAX_PERIOD  163
225 #define         UCD_TLV_T_164_BAND_AMC_RETRY_TIMER           164
226 #define         UCD_TLV_T_170_SAFETY_CHANNEL_RETRY_TIMER     170
227 #define         UCD_TLV_T_171_HARQ_ACK_DELAY_FOR_DL_BURST    171
228
229 #define         UCD_TLV_T_172_CQICH_BAND_AMC_TRANSITION_DELAY 172
230 #define         UCD_TLV_T_174_MAXIMUM_RETRANSMISSION         174
231 #define         UCD_TLV_T_176_SIZE_OF_CQICH_ID_FIELD         176
232 #define         UCD_TLV_T_177_NORMALIZED_CN_OVERRIDE_2       177
233 #define         UCD_TLV_T_186_UPPER_BOUND__AAS_PREAMBLE      186
234 #define         UCD_TLV_T_187_LOWER_BOUND_AAS_PREAMBLE       187
235 #define         UCD_TLV_T_188_ALLOW_AAS_BEAM_SELECT_MESSAGE  188
236 #define         UCD_TLV_T_189_USE_CQICH_INDICATION_FLAG      189
237 #define         UCD_TLV_T_190_MS_SPECIFIC_UP_POWER_OFFSET_ADJUSTMENT_STEP    190
238 #define         UCD_TLV_T_191_MS_SPECIFIC_DOWN_POWER_OFSET_ADJUSTMENT_STEP   191
239 #define         UCD_TLV_T_192_MIN_LEVEL_POWER_OFFSET_ADJUSTMENT              192
240 #define         UCD_TLV_T_193_MAX_LEVEL_POWER_OFFSETR_ADJUSTMENT             193
241 #define         UCD_TLV_T_194_HANDOVER_RANGING_CODES                         194
242 #define         UCD_TLV_T_195_INITIAL_RANGING_INTERVAL                       195
243 #define         UCD_TLV_T_196_TX_POWER_REPORT                                196
244 #define         UCD_TLV_T_197_NORMALIZED_CN_FOR_CHANNEL_SOUNDING             197
245 #define         UCD_TLV_T_198_INTIAL_RANGING_BACKOFF_START                   198
246 #define         UCD_TLV_T_199_INITIAL_RANGING_BACKOFF_END                    199
247 #define         UCD_TLV_T_200_BANDWIDTH_REQUESET_BACKOFF_START               200
248 #define         UCD_TLV_T_201_BANDWIDTH_REQUEST_BACKOFF_END                  201
249 #define         UCD_TLV_T_202_UPLINK_BURST_PROFILE_FOR_MULTIPLE_FEC_TYPES    202
250 #define         UCD_TLV_T_203_UL_PUSC_SUBCHANNEL_ROTATION                    203
251 #define         UCD_TLV_T_205_RELATIVE_POWER_OFFSET_UL_HARQ_BURST            205
252 #define         UCD_TLV_T_206_RELATIVE_POWER_OFFSET_UL_BURST_CONTAINING_MAC_MGMT_MSG     206
253 #define         UCD_TLV_T_207_UL_INITIAL_TRANSMIT_TIMING                     207
254 #define         UCD_TLV_T_210_FAST_FEEDBACK_REGION                           210
255 #define         UCD_TLV_T_211_HARQ_ACK_REGION                                211
256 #define         UCD_TLV_T_212_RANGING_REGION                                 212
257 #define         UCD_TLV_T_213_SOUNDING_REGION                                213
258
259 /* Table 357 */
260 #define         UCD_BURST_FEC                           150
261 #define         UCD_BURST_RANGING_DATA_RATIO            151
262 /*#define               UCD_BURST_POWER_BOOST           151*/
263 /*#define               UCD_BURST_TCS_ENABLE            152*/
264
265 /* RNG-REQ types (Table 364) */
266 /* Sorted these values */
267 #define         RNG_REQ_DL_BURST_PROFILE                1
268 #define         RNG_REQ_SS_MAC_ADDRESS                  2
269 #define         RNG_REQ_RANGING_ANOMALIES               3
270 #define         RNG_REQ_AAS_BROADCAST                   4
271 #define         RNG_REQ_SERVING_BS_ID                   5
272 #define         RNG_REQ_RANGING_PURPOSE_INDICATION      6
273 #define         RNG_REQ_HO_ID                           7
274 #define         RNG_REQ_POWER_DOWN_INDICATOR            8
275 #define         RNG_REQ_PAGING_CONTROLLER_ID            9
276 #define         RNG_REQ_MAC_HASH_SKIP_THRESHOLD         10
277 #define         RNG_REQ_ENABLED_ACTION_TRIGGERED        11
278 #define         RNG_REQ_REQUESTED_DNLK_REP_CODING_LEVEL 12
279 #define         RNG_REQ_CMAC_KEY_COUNT                  13
280 #define         RNG_REQ_POWER_SAVING_CLASS_PARAMETERS   21
281
282 /* RNG-REQ/RSP Power Saving Class Parameter TLV's (Table 364a) */
283 #define         RNG_POWER_SAVING_CLASS_FLAGS            1
284 #define         RNG_POWER_SAVING_CLASS_ID               2
285 #define         RNG_POWER_SAVING_CLASS_TYPE             3
286 #define         RNG_START_FRAME_NUMBER                  4
287 #define         RNG_INITIAL_SLEEP_WINDOW                5
288 #define         RNG_LISTENING_WINDOW                    6
289 #define         RNG_FINAL_SLEEP_WINDOW_BASE             7
290 #define         RNG_FINAL_SLEEP_WINDOW_EXPONENT         8
291 #define         RNG_SLPID                               9
292 #define         RNG_CID                                 10
293 #define         RNG_DIRECTION                           11
294
295 /* RNG-RSP types (Table 367) */
296 #define         RNG_RSP_TIMING_ADJUST                   1
297 #define         RNG_RSP_POWER_LEVEL_ADJUST              2
298 #define         RNG_RSP_OFFSET_FREQ_ADJUST              3
299 #define         RNG_RSP_RANGING_STATUS                  4
300 #define         RNG_RSP_DL_FREQ_OVERRIDE                5
301 #define         RNG_RSP_UL_CHANNEL_ID_OVERRIDE          6
302 #define         RNG_RSP_DL_OPERATIONAL_BURST_PROFILE    7
303 #define         RNG_RSP_SS_MAC_ADDRESS                  8
304 #define         RNG_RSP_BASIC_CID                       9
305 #define         RNG_RSP_PRIMARY_MGMT_CID                10
306 #define         RNG_RSP_AAS_BROADCAST_PERMISSION        11
307 #define         RNG_RSP_FRAME_NUMBER                    12
308 #define         RNG_RSP_OPPORTUNITY_NUMBER              13
309 #define         RNG_RSP_SERVICE_LEVEL_PREDICTION        17
310 #define         RNG_RSP_GLOBAL_SERVICE_CLASS_NAME       18
311 #define         RNG_RSP_RESOURCE_RETAIN_FLAG            20
312 #define         RNG_RSP_HO_PROCESS_OPTIMIZATION         21
313 /* Sorted the following values (for readability) */
314 #define         RNG_RSP_HO_ID                           22
315 #define         RNG_RSP_LOCATION_UPDATE_RESPONSE        23
316 #define         RNG_RSP_PAGING_INFORMATION              24
317 #define         RNG_RSP_PAGING_CONTROLLER_ID            25
318 #define         RNG_RSP_NEXT_PERIODIC_RANGING           26
319 #define         RNG_RSP_POWER_SAVING_CLASS_PARAMETERS   27
320 #define         RNG_RSP_MAC_HASH_SKIP_THRESHOLD         28
321 #define         RNG_RSP_SBC_RSP_ENCODINGS               29
322 #define         RNG_RSP_REG_RSP_ENCODINGS               30
323 #define         RNG_RSP_SA_CHALLENGE_TUPLE              31
324 #define         RNG_RSP_ENABLED_ACTION_TRIGGERED        32
325 #define         RNG_RSP_DL_OP_BURST_PROFILE_OFDMA       33
326 #define         RNG_RSP_RANGING_CODE_ATTRIBUTES         150
327 #define         RNG_RSP_SA_CHALLENGE_BS_RANDOM          1
328 #define         RNG_RSP_SA_CHALLENGE_AKID               2
329
330 /* SBC types (section 11.8) */
331 #define         SBC_BW_ALLOC_SUPPORT                    1
332 #define         SBC_TRANSITION_GAPS                     2
333 #define         SBC_REQ_MAX_TRANSMIT_POWER              3
334 #define         SBC_MAC_PDU                             4
335 #define         SBC_PKM_FLOW_CONTROL                    15
336 #define         SBC_AUTH_POLICY_SUPPORT                 16
337 #define         SBC_MAX_SECURITY_ASSOCIATIONS           17
338 #define         SBC_REQ_CURR_TRANSMITTED_POWER          147
339 #define         SBC_SS_FFT_SIZES                        150
340 #define         SBC_SS_DEMODULATOR                      151
341 #define         SBC_SS_MODULATOR                        152
342 #define         SBC_SS_NUM_UL_ARQ_ACK_CHANNEL           153
343 #define         SBC_SS_PERMUTATION_SUPPORT              154
344 #define         SBC_SS_DEMODULATOR_MIMO_SUPPORT         156
345 #define         SBC_SS_MIMO_UPLINK_SUPPORT              157
346 #define         SBC_SS_OFDMA_AAS_PRIVATE_MAP_SUPPORT    158
347 #define         SBC_SS_OFDMA_AAS_CAPABILITIES           159
348 #define         SBC_SS_CINR_MEASUREMENT_CAPABILITY      160
349 #define         SBC_SS_NUM_DL_ARQ_ACK_CHANNEL           161
350
351 #define         SBC_TLV_T_26_POWER_SAVE_CLASS_TYPES_CAPABILITY  26
352 #define         SBC_TLV_T_28_HO_TRIGGER_METRIC_SUPPORT  28
353 #define         SBC_TLV_T_27_EXTENSION_CAPABILITY       27
354
355 #define         SBC_TLV_T_162_HARQ_INCREMENTAL_REDUNDANCY_BUFFER_CAPABILITY 162
356 #define         SBC_TLV_T_163_HARQ_CHASE_COMBINING_AND_CC_IR_BUFFER_CAPABILITY 163
357 #define         SBC_TLV_T_167_ASSOCIATION_SUPPORT       167
358 #define         SBC_TLV_T_170_UPLINK_POWER_CONTROL_SUPPORT 170
359 #define         SBC_TLV_T_171_MINIMUM_NUM_OF_FRAMES     171
360 #define         SBC_TLV_T_172                           172
361 #define         SBC_TLV_T_173_UL_CONTROL_CHANNEL_SUPPORT   173
362 #define         SBC_TLV_T_174_OFDMA_MS_CSIT_CAPABILITY  174
363 #define         SBC_TLV_T_175_MAX_NUM_BST_PER_FRM_CAPABILITY_HARQ 175
364 #define         SBC_TLV_T_176                           176
365 #define         SBC_TLV_T_177_OFDMA_SS_MODULATOR_FOR_MIMO_SUPPORT  177
366 #define         SBC_TLV_T_178_SDMA_PILOT_CAPABILITY     178
367 #define         SBC_TLV_T_179_OFDMA_MULTIPLE_DL_BURST_PROFILE_CAPABILITY 179
368 #define         SBC_TLV_T_204_OFDMA_PARAMETERS_SETS     204
369
370 /* DREG-REQ DREG-CMD types (Sections 6.3.2.3.42 and  6.3.2.3.26) */
371 #define         DREG_PAGING_INFO                        1
372 #define         DREG_REQ_DURATION                       2
373 #define         DREG_PAGING_CONTROLLER_ID               3
374 #define         DREG_IDLE_MODE_RETAIN_INFO              4
375 #define         DREG_MAC_HASH_SKIP_THRESHOLD            5
376 #define         DREG_PAGING_CYCLE_REQUEST               52
377
378 /* REP-REQ types (Sections 11.11) */
379 #define         REP_REQ_REPORT_REQUEST                  1
380 /* REP-REQ report request subtypes */
381 #define         REP_REQ_REPORT_TYPE                     1
382 #define         REP_REQ_CHANNEL_NUMBER                  2
383 #define         REP_REQ_CHANNEL_TYPE                    3
384 #define         REP_REQ_ZONE_SPEC_PHY_CINR_REQ          4
385 #define         REP_REQ_PREAMBLE_PHY_CINR_REQ           5
386 #define         REP_REQ_ZONE_SPEC_EFF_CINR_REQ          6
387 #define         REP_REQ_PREAMBLE_EFF_CINR_REQ           7
388 #define         REP_REQ_CHANNEL_SELECTIVITY_REPORT      8
389
390 /* REP-RSP types (Sections 11.12) */
391 #define         REP_RSP_REPORT_TYPE                     1
392 #define         REP_RSP_CHANNEL_TYPE                    2
393 #define         REP_RSP_ZONE_SPECIFIC_PHY_CINR          3
394 #define         REP_RSP_PREAMBLE_PHY_CINR               4
395 #define         REP_RSP_ZONE_SPECIFIC_EFFECTIVE_CINR    5
396 #define         REP_RSP_PREAMBLE_EFFECTIVE_CINR         6
397 /* REP-RSP report subtypes */
398 #define         REP_RSP_REPORT_CHANNEL_NUMBER           1
399 #define         REP_RSP_REPORT_START_FRAME              2
400 #define         REP_RSP_REPORT_DURATION                 3
401 #define         REP_RSP_REPORT_BASIC_REPORT             4
402 #define         REP_RSP_REPORT_CINR_REPORT              5
403 #define         REP_RSP_REPORT_RSSI_REPORT              6
404 /* REP-RSP channel type report subtypes */
405 #define         REP_RSP_CHANNEL_TYPE_SUBCHANNEL         1
406 #define         REP_RSP_CHANNEL_TYPE_BAND_AMC           2
407 #define         REP_RSP_CHANNEL_TYPE_SAFETY_CHANNEL     3
408 #define         REP_RSP_CHANNEL_TYPE_ENHANCED_BAND_AMC  4
409 #define         REP_RSP_CHANNEL_TYPE_SOUNDING           5
410 /* REP-RSP zone-specific physical CINR report subtypes */
411 #define         REP_RSP_ZONE_SPECIFIC_PHY_CINR_PUSC_SC0         1
412 #define         REP_RSP_ZONE_SPECIFIC_PHY_CINR_PUSC_SC1         2
413 #define         REP_RSP_ZONE_SPECIFIC_PHY_CINR_FUSC             3
414 #define         REP_RSP_ZONE_SPECIFIC_PHY_CINR_OPTIONAL_FUSC    4
415 #define         REP_RSP_ZONE_SPECIFIC_PHY_CINR_SAFETY_CHANNEL   5
416 #define         REP_RSP_ZONE_SPECIFIC_PHY_CINR_AMC              6
417 /* REP-RSP preamble physical CINR report subtypes */
418 #define         REP_RSP_PREAMBLE_PHY_CINR_CONFIGURATION1        1
419 #define         REP_RSP_PREAMBLE_PHY_CINR_CONFIGURATION3        2
420 #define         REP_RSP_PREAMBLE_PHY_CINR_BAND_AMC              3
421 /* REP-RSP zone-specific effective CINR report subtypes */
422 #define         REP_RSP_ZONE_SPECIFIC_EFFECTIVE_CINR_PUSC_SC0   1
423 #define         REP_RSP_ZONE_SPECIFIC_EFFECTIVE_CINR_PUSC_SC1   2
424 #define         REP_RSP_ZONE_SPECIFIC_EFFECTIVE_CINR_FUSC       3
425 #define         REP_RSP_ZONE_SPECIFIC_EFFECTIVE_CINR_OPTIONAL_FUSC      4
426 #define         REP_RSP_ZONE_SPECIFIC_EFFECTIVE_CINR_AMC_AAS    5
427 /* REP-RSP preamble effective CINR report subtypes */
428 #define         REP_RSP_PREAMBLE_EFFECTIVE_CINR_CONFIGURATION1  1
429 #define         REP_RSP_PREAMBLE_EFFECTIVE_CINR_CONFIGURATION3  2
430 #define         REP_RSP_CHANNEL_SELECTIVITY                     3
431 /* REP-RSP channel selectivity report subtypes */
432 #define         FREQUENCY_SELECTIVITY_REPORT                    1
433
434 /* REG types (Section 11.7) */
435 #define         REG_ARQ_PARAMETERS                      1
436 #define         REG_SS_MGMT_SUPPORT                     2
437 #define         REG_IP_MGMT_MODE                        3
438 #define         REG_IP_VERSION                          4
439 #define         REG_REQ_SECONDARY_MGMT_CID              5
440 #define         REG_RSP_SECONDARY_MGMT_CID              5
441 #define         REG_UL_TRANSPORT_CIDS_SUPPORTED         6
442 #define         REG_IP_PHS_SDU_ENCAP                    7
443 #define         REG_MAX_CLASSIFIERS_SUPPORTED           8
444 #define         REG_PHS_SUPPORT                         9
445 #define         REG_ARQ_SUPPORT                         10
446 #define         REG_DSX_FLOW_CONTROL                    11
447 #define         REG_MAC_CRC_SUPPORT                     12
448 #define         REG_MCA_FLOW_CONTROL                    13
449 #define         REG_MCAST_POLLING_CIDS                  14
450 #define         REG_NUM_DL_TRANS_CID                    15
451 #if 0 /* WIMAX_16E_2005 changes this to SBC scope */
452 #define         REG_PKM_FLOW_CONTROL                    15
453 #define         REG_AUTH_POLICY_SUPPORT                 16
454 #define         REG_MAX_SECURITY_ASSOCIATIONS           17
455 #endif
456 #if 0 /* TODO: scope has been changed to SBC scope */
457 #define         REG_DL_TRANSPORT_CIDS_SUPPORTED         15
458 #endif
459 #define         REG_MAC_ADDRESS                         18
460
461 #define         REG_TLV_T_20_MAX_MAC_DATA_PER_FRAME_SUPPORT 20
462 #define         REG_TLV_T_20_1_MAX_MAC_LEVEL_DATA_PER_DL_FRAME 1
463 #define         REG_TLV_T_20_2_MAX_MAC_LEVEL_DATA_PER_UL_FRAME 2
464 #define         REG_TLV_T_21_PACKING_SUPPORT            21
465 #define         REG_TLV_T_22_MAC_EXTENDED_RTPS_SUPPORT  22
466 #define         REG_TLV_T_23_MAX_NUM_BURSTS_TRANSMITTED_CONCURRENTLY_TO_THE_MS 23
467 #define         REG_RSP_TLV_T_24_CID_UPDATE_ENCODINGS   24
468 #define         REG_RSP_TLV_T_24_1_CID_UPDATE_ENCODINGS_NEW_CID 1
469 #define         REG_RSP_TLV_T_24_2_CID_UPDATE_ENCODINGS_SFID    2
470 #define         REG_RSP_TLV_T_24_3_CID_UPDATE_ENCODINGS_CONNECTION_INFO 3
471 #define         REG_RSP_TLV_T_25_COMPRESSED_CID_UPDATE_ENCODINGS        25
472 #define         REG_TLV_T_26_METHOD_FOR_ALLOCATING_IP_ADDR_SECONDARY_MGMNT_CONNECTION 26
473 #define         REG_TLV_T_27_HANDOVER_SUPPORTED         27
474 #define         REG_RSP_TLV_T_28_HO_SYSTEM_RESOURCE_RETAIN_TIME 28
475 #define         REG_TLV_T_29_HO_PROCESS_OPTIMIZATION_MS_TIMER   29
476 #define         REG_RSP_TLV_T_30_MS_HANDOVER_RETRANSMISSION_TIMER 30
477 #define         REG_TLV_T_31_MOBILITY_FEATURES_SUPPORTED 31
478 #define         REG_REQ_TLV_T_32_SLEEP_MODE_RECOVERY_TIME 32
479 #define         REG_REQ_TLV_T_33_MS_PREV_IP_ADDR        33
480 #define         REG_RSP_TLV_T_34_SKIP_ADDR_ACQUISITION  34
481 #define         REG_RSP_TLV_T_35_SAID_UPDATE_ENCODINGS  35
482 #define         REG_RSP_TLV_T_35_1_NEW_SAID             1
483 #define         REG_RSP_TLV_T_35_2_OLD_SAID             2
484 #define         REG_RSP_TLV_T_36_TOTAL_PROVISIONED_SERVICE_FLOW_DSAs 36
485 #define         REG_TLV_T_37_IDLE_MODE_TIMEOUT          37
486 #define         REG_RSP_TLV_T_38_SA_TEK_UPDATE          38
487 #define         REG_RSP_TLV_T_38_1_SA_TEK_UPDATE_TYPE   1
488 #define         REG_RSP_TLV_T_38_2_NEW_SAID             2
489 #define         REG_RSP_TLV_T_38_3_OLD_SAID             3
490 #define         REG_RSP_TLV_T_38_4_OLD_TEK_PARAMETERS   4
491 #define         REG_RSP_TLV_T_38_5_NEW_TEK_GTEK_PARAMETERS 5
492 #define         REG_RSP_TLV_T_38_6_GKEK_PARAMETERS      6
493 #define         REG_RSP_TLV_T_39_GKEK_PARAMETERS        39
494 #define         REG_TLV_T_40_ARQ_ACK_TYPE               40
495 #define         REG_TLV_T_41_MS_HO_CONNECTIONS_PARAM_PROCESSING_TIME 41
496 #define         REG_TLV_T_42_MS_HO_TEK_PROCESSING_TIME               42
497 #define         REG_TLV_T_43_MAC_HEADER_AND_EXTENDED_SUBHEADER_SUPPORT 43
498 #define         REG_RSP_TLV_T_44_SN_REPORTING_BASE              44
499 #define         REG_REQ_TLV_T_45_MS_PERIODIC_RANGING_TIMER_INFO 45
500 #define         REG_HANDOVER_INDICATION_READINESS_TIMER         46
501 #define         REG_REQ_BS_SWITCHING_TIMER                      47
502 #define         REG_POWER_SAVING_CLASS_CAPABILITY                       48
503
504
505
506 /* PKM types (Table 370) */
507 #define         PKM_ATTR_DISPLAY_STRING                  6
508 #define         PKM_ATTR_AUTH_KEY                        7
509 #define         PKM_ATTR_TEK                             8
510 #define         PKM_ATTR_KEY_LIFE_TIME                   9
511 #define         PKM_ATTR_KEY_SEQ_NUM                    10
512 #define         PKM_ATTR_HMAC_DIGEST                    11
513 #define         PKM_ATTR_SAID                           12
514 #define         PKM_ATTR_TEK_PARAM                      13
515 #define         PKM_ATTR_CBC_IV                         15
516 #define         PKM_ATTR_ERROR_CODE                     16
517 #define         PKM_ATTR_CA_CERTIFICATE                 17
518 #define         PKM_ATTR_SS_CERTIFICATE                 18
519 #define         PKM_ATTR_SECURITY_CAPABILITIES          19
520 #define         PKM_ATTR_CRYPTO_SUITE                   20
521 #define         PKM_ATTR_CRYPTO_LIST                    21
522 #define         PKM_ATTR_VERSION                        22
523 #define         PKM_ATTR_SA_DESCRIPTOR                  23
524 #define         PKM_ATTR_SA_TYPE                        24
525 #define         PKM_ATTR_SECURITY_NEGOTIATION_PARAMETERS 25
526 #define         PKM_ATTR_PKM_CONFIG_SETTINGS            27
527 #define         PKM_ATTR_PKM_EAP_PAYLOAD                28
528 #define         PKM_ATTR_PKM_NONCE                      29
529 #define         PKM_ATTR_AUTH_RESULT_CODE               30
530 #define         PKM_ATTR_SA_SERVICE_TYPE                31
531 #define         PKM_ATTR_FRAME_NUMBER                   32
532 #define         PKM_ATTR_SS_RANDOM                      33
533 #define         PKM_ATTR_BS_RANDOM                      34
534 #define         PKM_ATTR_PRE_PAK                        35
535 #define         PKM_ATTR_PAK_AK_SEQ_NUMBER              36
536 #define         PKM_ATTR_BS_CERTIFICATE                 37
537 #define         PKM_ATTR_SIG_BS                         38
538 #define         PKM_ATTR_MS_MAC_ADDRESS                 39
539 #define         PKM_ATTR_CMAC_DIGEST                    40
540 #define         PKM_ATTR_KEY_PUSH_MODES                 41
541 #define         PKM_ATTR_KEY_PUSH_COUNTER               42
542 #define         PKM_ATTR_GKEK                           43
543 #define         PKM_ATTR_SIG_SS                         44
544 #define         PKM_ATTR_AKID                           45
545 #define         PKM_ATTR_ASSOCIATED_GKEK_SEQ_NUM        46
546 #define         PKM_ATTR_GKEK_PARAMETERS                47
547
548 #define         PKM_ATTR_PKM_CONFIG_SETTINGS_AUTHORIZE_WAIT_TIMEOUT 1
549 #define         PKM_ATTR_PKM_CONFIG_SETTINGS_REAUTHORIZE_WAIT_TIMEOUT 2
550 #define         PKM_ATTR_PKM_CONFIG_SETTINGS_AUTHORIZATION_GRACE_TIME 3
551 #define         PKM_ATTR_PKM_CONFIG_SETTINGS_OPERATIONAL_WAIT_TIMEOUT 4
552 #define         PKM_ATTR_PKM_CONFIG_SETTINGS_REKEY_WAIT_TIMEOUT 5
553 #define         PKM_ATTR_PKM_CONFIG_SETTINGS_TEK_GRACE_TIME 6
554 #define         PKM_ATTR_PKM_CONFIG_SETTINGS_AUTHORIZE_REJECT_WAIT_TIMEOUT 7
555
556 #define         PKM_ATTR_SECURITY_NEGOTIATION_PARAMETER_SUB_PKM_VERSION_SUPPORT 1
557 #define         PKM_ATTR_SECURITY_NEGOTIATION_PARAMETER_SUB_AUTHORIZATION_POLICY_SUPPORT 2
558 #define         PKM_ATTR_SECURITY_NEGOTIATION_PARAMETER_SUB_MESSAGE_AUTHENTICATION_CODE  3
559 #define         PKM_ATTR_SECURITY_NEGOTIATION_PARAMETER_SUB_PN_WINDOW_SIZE               4
560 #define         PKM_ATTR_SECURITY_NEGOTIATION_PARAMETER_SUB_PKM_FLOW_CONTROL             5
561 #define         PKM_ATTR_SECURITY_NEGOTIATION_PARAMETER_SUB_MAX_SUPPT_SECURITY_ASSNS     6
562
563 /* Common TLV Encoding types (Table 346) */
564 #define         SHORT_HMAC_TUPLE_COR2                   140
565 #define         CMAC_TUPLE                              141
566 #define         VENDOR_SPECIFIC_INFO                    143
567 #define         VENDOR_ID_ENCODING                      144
568 #define         DSx_UPLINK_FLOW                         145
569 #define         DSx_DOWNLINK_FLOW                       146
570 #define         CURRENT_TX_POWER                        147
571 #define         MAC_VERSION_ENCODING                    148
572 #define         HMAC_TUPLE                              149
573 #define         SHORT_HMAC_TUPLE                        150
574
575 /* Section 11.13.18 */
576 #define         ARQ_ENABLE                              18
577 #define         ARQ_WINDOW_SIZE                         19
578 #define         ARQ_TRANSMITTER_DELAY                   20
579 #define         ARQ_RECEIVER_DELAY                      21
580 #define         ARQ_BLOCK_LIFETIME                      22
581 #define         ARQ_SYNC_LOSS_TIMEOUT                   23
582 #define         ARQ_DELIVER_IN_ORDER                    24
583 #define         ARQ_RX_PURGE_TIMEOUT                    25
584 #define         ARQ_BLOCK_SIZE                          26
585
586 /* Section 6.2.3.2.26 */
587
588 /* Service Flow Encodings (SFE) (Table 383) */
589 #define         SFE_SF_ID                               1
590 #define         SFE_CID                                 2
591 #define         SFE_SERVICE_CLASS_NAME                  3
592 #define         SFE_MBS_SERVICE                         4
593 #define         SFE_QOS_PARAMS_SET                      5
594 #define         SFE_TRAFFIC_PRIORITY                    6
595 #define         SFE_MAX_STR                             7
596 #define         SFE_MAX_TRAFFIC_BURST                   8
597 #define         SFE_MIN_RTR                             9
598 #define         SFE_RESERVED_10                         10
599 #define         SFE_UL_SCHEDULING                       11
600 #define         SFE_TX_POLICY                           12
601 #define         SFE_TOLERATED_JITTER                    13
602 #define         SFE_MAX_LATENCY                         14
603 #define         SFE_FIXED_LEN_SDU                       15
604 #define         SFE_SDU_SIZE                            16
605 #define         SFE_TARGET_SAID                         17
606 #define         SFE_ARQ_ENABLE                          18
607 #define         SFE_ARQ_WINDOW_SIZE                     19
608 #define         SFE_ARQ_TRANSMITTER_DELAY               20
609 #define         SFE_ARQ_RECEIVER_DELAY                  21
610 #define         SFE_ARQ_BLOCK_LIFETIME                  22
611 #define         SFE_ARQ_SYNC_LOSS_TIMEOUT               23
612 #define         SFE_ARQ_DELIVER_IN_ORDER                24
613 #define         SFE_ARQ_RX_PURGE_TIMEOUT                25
614 #define         SFE_ARQ_BLOCK_SIZE                      26
615 #define         SFE_RESERVED_27                         27
616 #define         SFE_CS_SPECIFICATION                    28
617 #define         SFE_TYPE_OF_DATA_DELIVERY_SERVICES      29
618 #define         SFE_SDU_INTER_ARRIVAL_INTERVAL          30
619 #define         SFE_TIME_BASE                           31
620 #define         SFE_PAGING_PREFERENCE                   32
621 #define         SFE_MBS_ZONE_IDENTIFIER_ASSIGNMENT      33
622 #define         SFE_RESERVED_34                         34
623 #define         SFE_GLOBAL_SERVICE_CLASS_NAME           35
624 #define         SFE_RESERVED_36                         36
625 #define         SFE_SN_FEEDBACK_ENABLED                 37
626 #define         SFE_FSN_SIZE                            38
627 #define         SFE_CID_ALLOCATION_FOR_ACTIVE_BS        39
628 #define         SFE_UNSOLICITED_GRANT_INTERVAL          40
629 #define         SFE_UNSOLOCITED_POLLING_INTERVAL        41
630 #define         SFE_PDU_SN_EXT_SUBHEADER_HARQ_REORDER   42
631 #define         SFE_MBS_CONTENTS_ID                     43
632 #define         SFE_HARQ_SERVICE_FLOWS                  44
633 #define         SFE_AUTHORIZATION_TOKEN                 45
634 #define         SFE_HARQ_CHANNEL_MAPPING                46
635
636 /* Convergence Servicerameter Encoding Rules (Section 11.13.19.2) */
637 #define         SFE_CSPER_ATM                                 99
638 #define         SFE_CSPER_PACKET_IPV4                         100
639 #define         SFE_CSPER_PACKET_IPV6                         101
640 #define         SFE_CSPER_PACKET_802_3                        102
641 #define         SFE_CSPER_PACKET_802_1Q                       103
642 #define         SFE_CSPER_PACKET_IPV4_802_3                   104
643 #define         SFE_CSPER_PACKET_IPV6_802_3                   105
644 #define         SFE_CSPER_PACKET_IPV4_802_1Q                  106
645 #define         SFE_CSPER_PACKET_IPV6_802_1Q                  107
646 #define         SFE_CSPER_PACKET_IP_ROCH_COMPRESSION          108
647 #define         SFE_CSPER_PACKET_IP_ECRTP_COMPRESSION         109
648 #define         SFE_CSPER_PACKET_IP_802_3_ROCH_COMPRESSION    110
649 #define         SFE_CSPER_PACKET_IP_802_3_ECRTP_COMPRESSION   111
650
651 /* Section 11.13.19.3 */
652 #define         CST_CLASSIFIER_ACTION                   1
653 #define         CST_CLASSIFIER_ERROR_PARAM_SET          2
654 #define         CST_PACKET_CLASSIFICATION_RULE          3
655 #define         CST_PHS_DSC_ACTION                      4
656 #define         CST_PHS_ERROR_PARAM_SET                 5
657 #define         CST_PHS_RULE                            6
658
659 /* Section 11.13.19.3.3 */
660 #define         CST_ERROR_SET_ERRORED_PARAM             1
661 #define         CST_ERROR_SET_ERROR_CODE                2
662 #define         CST_ERROR_SET_ERROR_MSG                 3
663
664 /* Section 11.13.19.4 */
665 #define         CST_ATM_SWITCHING                       1
666 #define         CST_ATM_CLASSIFIER                      2
667 #define         CST_ATM_CLASSIFIER_DSC_ACTION           3
668 #define         CST_ATM_CLASSIFIER_ERROR_PARAMETER_SET  4
669
670 #define         ATM_VPI_CLASSIFIER                      1
671 #define         ATM_VCI_CLASSIFIER                      2
672 #define         ATM_CLASSIFIER_ID                       3
673
674 /* Section 11.13.19.3.4 */
675 #define         CST_PKT_CLASS_RULE_PRIORITY             1
676 #define         CST_PKT_CLASS_RULE_RANGE_MASK           2
677 #define         CST_PKT_CLASS_RULE_PROTOCOL             3
678 #define         CST_PKT_CLASS_RULE_SRC_IP               4
679 #define         CST_PKT_CLASS_RULE_DST_IP               5
680 #define         CST_PKT_CLASS_RULE_SRCPORT_RANGE        6
681 #define         CST_PKT_CLASS_RULE_DSTPORT_RANGE        7
682 #define         CST_PKT_CLASS_RULE_DST_MAC              8
683 #define         CST_PKT_CLASS_RULE_SRC_MAC              9
684 #define         CST_PKT_CLASS_RULE_ETHERTYPE            10
685 #define         CST_PKT_CLASS_RULE_USER_PRIORITY        11
686 #define         CST_PKT_CLASS_RULE_VLAN_ID              12
687 #define         CST_PKT_CLASS_RULE_PHSI                 13
688 #define         CST_PKT_CLASS_RULE_INDEX                14
689 #define         CST_PKT_CLASS_RULE_IPv6_FLOW_LABEL      15
690 #define         CST_PKT_CLASS_RULE_LARGE_CONTEXT_ID     16
691 #define         CST_PKT_CLASS_RULE_SHORT_FORMAT_CONTEXT_ID 18
692 #define         CST_CLASSIFIER_ACTION_RULE              19
693 #define         CST_PKT_CLASS_RULE_VENDOR_SPEC          143
694
695 /* Section 11.13.19.3.7 */
696 #define         CST_PHS_PHSI                            1
697 #define         CST_PHS_PHSF                            2
698 #define         CST_PHS_PHSM                            3
699 #define         CST_PHS_PHSS                            4
700 #define         CST_PHS_PHSV                            5
701 #define         CST_PHS_VENDOR_SPEC                     143
702
703 #endif /* WIMAX_MAC_H */