FreeCalypso > hg > fc-tourmaline
view cdg-hybrid/cdginc/p_8010_152_ps_include.h @ 303:f76436d19a7a default tip
!GPRS config: fix long-standing AT+COPS chance hanging bug
There has been a long-standing bug in FreeCalypso going back years:
sometimes in the AT command bring-up sequence of an ACI-only MS,
the AT+COPS command would produce only a power scan followed by
cessation of protocol stack activity (only L1 ADC traces), instead
of the expected network search sequence. This behaviour was seen
in different FC firmware versions going back to Citrine, and seemed
to follow some law of chance, not reliably repeatable.
This bug has been tracked down and found to be specific to !GPRS
configuration, stemming from our TCS2/TCS3 hybrid and reconstruction
of !GPRS support that was bitrotten in TCS3.2/LoCosto version.
ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3
version and had to be pulled from TCS2 - but as it turns out,
there is a new field in the MMR_REG_REQ primitive that needs to be
set correctly, and that psa_mms.c module is the place where this
initialization needed to be added.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 08 Jun 2023 08:23:37 +0000 |
parents | 35f7a1dc9f7d |
children |
line wrap: on
line source
/* +--------------------------------------------------------------------------+ | PROJECT : PROTOCOL STACK | | FILE : p_8010_152_ps_include.h | | SOURCE : "sap\8010_152_ps_include.pdf" | | LastModified : "2003-10-15" | | IdAndVersion : "8010.152.02.023" | | SrcFileTime : "Thu Nov 29 09:28:58 2007" | | Generated by CCDGEN_2.5.5A on Fri Oct 14 21:41:52 2016 | | !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!! | +--------------------------------------------------------------------------+ */ /* PRAGMAS * PREFIX : PS * COMPATIBILITY_DEFINES : NO * ALWAYS_ENUM_IN_VAL_FILE: YES * ENABLE_GROUP: NO * CAPITALIZE_TYPENAME: NO */ #ifndef P_8010_152_PS_INCLUDE_H #define P_8010_152_PS_INCLUDE_H #define CDG_ENTER__P_8010_152_PS_INCLUDE_H #define CDG_ENTER__FILENAME _P_8010_152_PS_INCLUDE_H #define CDG_ENTER__P_8010_152_PS_INCLUDE_H__FILE_TYPE CDGINC #define CDG_ENTER__P_8010_152_PS_INCLUDE_H__LAST_MODIFIED _2003_10_15 #define CDG_ENTER__P_8010_152_PS_INCLUDE_H__ID_AND_VERSION _8010_152_02_023 #define CDG_ENTER__P_8010_152_PS_INCLUDE_H__SRC_FILE_TIME _Thu_Nov_29_09_28_58_2007 #include "CDG_ENTER.h" #undef CDG_ENTER__P_8010_152_PS_INCLUDE_H #undef CDG_ENTER__FILENAME #include "p_8010_152_ps_include.val" /* * typedef between var and valtab enums */ #ifndef __T_PS_pkt_flow_id__ #define __T_PS_pkt_flow_id__ typedef T_PS_VAL_pkt_flow_id T_PS_pkt_flow_id; #endif #ifndef __T_PS_delay__ #define __T_PS_delay__ typedef T_PS_VAL_delay T_PS_delay; #endif #ifndef __T_PS_relclass__ #define __T_PS_relclass__ typedef T_PS_VAL_relclass T_PS_relclass; #endif #ifndef __T_PS_peak__ #define __T_PS_peak__ typedef T_PS_VAL_peak T_PS_peak; #endif #ifndef __T_PS_preced__ #define __T_PS_preced__ typedef T_PS_VAL_preced T_PS_preced; #endif #ifndef __T_PS_mean__ #define __T_PS_mean__ typedef T_PS_VAL_mean T_PS_mean; #endif #ifndef __T_PS_tc__ #define __T_PS_tc__ typedef T_PS_VAL_tc T_PS_tc; #endif #ifndef __T_PS_order__ #define __T_PS_order__ typedef T_PS_VAL_order T_PS_order; #endif #ifndef __T_PS_del_err_sdu__ #define __T_PS_del_err_sdu__ typedef T_PS_VAL_del_err_sdu T_PS_del_err_sdu; #endif #ifndef __T_PS_max_sdu__ #define __T_PS_max_sdu__ typedef T_PS_VAL_max_sdu T_PS_max_sdu; #endif #ifndef __T_PS_max_rate_ul__ #define __T_PS_max_rate_ul__ typedef T_PS_VAL_max_rate_ul T_PS_max_rate_ul; #endif #ifndef __T_PS_max_rate_dl__ #define __T_PS_max_rate_dl__ typedef T_PS_VAL_max_rate_dl T_PS_max_rate_dl; #endif #ifndef __T_PS_xfer_delay__ #define __T_PS_xfer_delay__ typedef T_PS_VAL_xfer_delay T_PS_xfer_delay; #endif #ifndef __T_PS_handling_pri__ #define __T_PS_handling_pri__ typedef T_PS_VAL_handling_pri T_PS_handling_pri; #endif #ifndef __T_PS_guar_br_ul__ #define __T_PS_guar_br_ul__ typedef T_PS_VAL_guar_br_ul T_PS_guar_br_ul; #endif #ifndef __T_PS_guar_br_dl__ #define __T_PS_guar_br_dl__ typedef T_PS_VAL_guar_br_dl T_PS_guar_br_dl; #endif #ifndef __T_PS_sgsn_rel__ #define __T_PS_sgsn_rel__ typedef T_PS_VAL_sgsn_rel T_PS_sgsn_rel; #endif #ifndef __T_PS_content__ #define __T_PS_content__ typedef T_PS_VAL_content T_PS_content; #endif #ifndef __T_PS_access_modes__ #define __T_PS_access_modes__ typedef T_PS_VAL_access_modes T_PS_access_modes; #endif #ifndef __T_PS_arfcn_rssi__ #define __T_PS_arfcn_rssi__ typedef T_PS_VAL_arfcn_rssi T_PS_arfcn_rssi; #endif #ifndef __T_PS_attach_detach_allowed__ #define __T_PS_attach_detach_allowed__ typedef T_PS_VAL_attach_detach_allowed T_PS_attach_detach_allowed; #endif #ifndef __T_PS_service_level__ #define __T_PS_service_level__ typedef T_PS_VAL_service_level T_PS_service_level; #endif #ifndef __T_PS_cn_domain__ #define __T_PS_cn_domain__ typedef T_PS_VAL_cn_domain T_PS_cn_domain; #endif #ifndef __T_PS_cpich_ec_n0__ #define __T_PS_cpich_ec_n0__ typedef T_PS_VAL_cpich_ec_n0 T_PS_cpich_ec_n0; #endif #ifndef __T_PS_cpich_rscp__ #define __T_PS_cpich_rscp__ typedef T_PS_VAL_cpich_rscp T_PS_cpich_rscp; #endif #ifndef __T_PS_est_service__ #define __T_PS_est_service__ typedef T_PS_VAL_est_service T_PS_est_service; #endif #ifndef __T_PS_arfcn__ #define __T_PS_arfcn__ typedef T_PS_VAL_arfcn T_PS_arfcn; #endif #ifndef __T_PS_gsm_band_priority__ #define __T_PS_gsm_band_priority__ typedef T_PS_VAL_gsm_band_priority T_PS_gsm_band_priority; #endif #ifndef __T_PS_ncc__ #define __T_PS_ncc__ typedef T_PS_VAL_ncc T_PS_ncc; #endif #ifndef __T_PS_bcc__ #define __T_PS_bcc__ typedef T_PS_VAL_bcc T_PS_bcc; #endif #ifndef __T_PS_gsm_frequency_band__ #define __T_PS_gsm_frequency_band__ typedef T_PS_VAL_gsm_frequency_band T_PS_gsm_frequency_band; #endif #ifndef __T_PS_gsm_ncell_index__ #define __T_PS_gsm_ncell_index__ typedef T_PS_VAL_gsm_ncell_index T_PS_gsm_ncell_index; #endif #ifndef __T_PS_bsic_valid__ #define __T_PS_bsic_valid__ typedef T_PS_VAL_bsic_valid T_PS_bsic_valid; #endif #ifndef __T_PS_llc_mode__ #define __T_PS_llc_mode__ typedef T_PS_VAL_llc_mode T_PS_llc_mode; #endif #ifndef __T_PS_meas_mode__ #define __T_PS_meas_mode__ typedef T_PS_VAL_meas_mode T_PS_meas_mode; #endif #ifndef __T_PS_nmo__ #define __T_PS_nmo__ typedef T_PS_VAL_nmo T_PS_nmo; #endif #ifndef __T_PS_search_mode__ #define __T_PS_search_mode__ typedef T_PS_VAL_search_mode T_PS_search_mode; #endif #ifndef __T_PS_peak_throughput__ #define __T_PS_peak_throughput__ typedef T_PS_VAL_peak T_PS_peak_throughput; #endif #ifndef __T_PS_t3212__ #define __T_PS_t3212__ typedef T_PS_VAL_t3212 T_PS_t3212; #endif #ifndef __T_PS_mcc__ #define __T_PS_mcc__ typedef T_PS_VAL_mcc T_PS_mcc; #endif #ifndef __T_PS_mnc__ #define __T_PS_mnc__ typedef T_PS_VAL_mnc T_PS_mnc; #endif #ifndef __T_PS_rat__ #define __T_PS_rat__ typedef T_PS_VAL_rat T_PS_rat; #endif #ifndef __T_PS_radio_prio__ #define __T_PS_radio_prio__ typedef T_PS_VAL_radio_prio T_PS_radio_prio; #endif #ifndef __T_PS_rel_ind__ #define __T_PS_rel_ind__ typedef T_PS_VAL_rel_ind T_PS_rel_ind; #endif #ifndef __T_PS_ksi__ #define __T_PS_ksi__ typedef T_PS_VAL_ksi T_PS_ksi; #endif #ifndef __T_PS_sapi__ #define __T_PS_sapi__ typedef T_PS_VAL_sapi T_PS_sapi; #endif #ifndef __T_PS_sim_type__ #define __T_PS_sim_type__ typedef T_PS_VAL_sim_type T_PS_sim_type; #endif #ifndef __T_PS_uarfcn_rssi__ #define __T_PS_uarfcn_rssi__ typedef T_PS_VAL_uarfcn_rssi T_PS_uarfcn_rssi; #endif #ifndef __T_PS_uarfcn__ #define __T_PS_uarfcn__ typedef T_PS_VAL_uarfcn T_PS_uarfcn; #endif #ifndef __T_PS_cell_status__ #define __T_PS_cell_status__ typedef T_PS_VAL_cell_status T_PS_cell_status; #endif #ifndef __T_PS_psc__ #define __T_PS_psc__ typedef T_PS_VAL_psc T_PS_psc; #endif #ifndef __T_PS_threshold__ #define __T_PS_threshold__ typedef T_PS_VAL_threshold T_PS_threshold; #endif #ifndef __T_PS_start_val__ #define __T_PS_start_val__ typedef T_PS_VAL_start_val T_PS_start_val; #endif #ifndef __T_PS_tx_diversity__ #define __T_PS_tx_diversity__ typedef T_PS_VAL_tx_diversity T_PS_tx_diversity; #endif #ifndef __T_PS_acc__ #define __T_PS_acc__ /* * Container for the access control class field from (U)SIM, see [3G 11.11] and [3G 31.102] * CCDGEN:WriteStruct_Count==1341 */ typedef struct { U8 content[PS_SIZE_ACC]; /*< 0: 2> T_PS_content, Content of access control class */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_PS_acc; #endif #ifndef __T_PS_ad__ #define __T_PS_ad__ /* * Container for the administrative data field from (U)SIM, see [3G 11.11] and [3G 31.102] * CCDGEN:WriteStruct_Count==1342 */ typedef struct { U8 op; /*< 0: 1> UE operation mode */ U8 ai[PS_SIZE_AI]; /*< 1: 2> Additional information */ U8 _align0; /*< 3: 1> alignment */ } T_PS_ad; #endif #ifndef __T_PS_gsm_bands__ #define __T_PS_gsm_bands__ /* * GSM bands * CCDGEN:WriteStruct_Count==1343 */ typedef struct { U16 gsm_frequency_band; /*< 0: 2> T_PS_gsm_frequency_band, Frequency band specification */ U16 gsm_band_priority; /*< 2: 2> T_PS_gsm_band_priority, GSM band priority */ } T_PS_gsm_bands; #endif #ifndef __T_PS_bsic__ #define __T_PS_bsic__ /* * GSM BSIC * CCDGEN:WriteStruct_Count==1344 */ typedef struct { U8 ncc; /*< 0: 1> T_PS_ncc, NCC */ U8 bcc; /*< 1: 1> T_PS_bcc, BCC */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_PS_bsic; #endif #ifndef __T_PS_gsm_cell_description__ #define __T_PS_gsm_cell_description__ /* * GSM channel number and band specification * CCDGEN:WriteStruct_Count==1345 */ typedef struct { U16 gsm_frequency_band; /*< 0: 2> T_PS_gsm_frequency_band, Frequency band specification */ U16 arfcn; /*< 2: 2> T_PS_arfcn, GSM channel number */ T_PS_bsic bsic; /*< 4: 4> GSM BSIC */ } T_PS_gsm_cell_description; #endif #ifndef __T_PS_gsm_ncell_list__ #define __T_PS_gsm_ncell_list__ /* * GSM neighbour cell list * CCDGEN:WriteStruct_Count==1346 */ typedef struct { U8 _align0; /*< 0: 1> alignment */ U8 _align1; /*< 1: 1> alignment */ U8 _align2; /*< 2: 1> alignment */ U8 c_gsm_cell_description; /*< 3: 1> counter */ T_PS_gsm_cell_description gsm_cell_description[PS_MAX_GSM_NCELLS]; /*< 4:256> GSM channel number and band specification */ } T_PS_gsm_ncell_list; #endif #ifndef __T_PS_gsm_ncell_measurement__ #define __T_PS_gsm_ncell_measurement__ /* * GSM neighbour cell measurement result * CCDGEN:WriteStruct_Count==1347 */ typedef struct { T_PS_gsm_cell_description gsm_cell_description; /*< 0: 8> GSM channel number and band specification */ U8 bsic_valid; /*< 8: 1> T_PS_bsic_valid, BSIC validated */ U8 v_arfcn_rssi; /*< 9: 1> valid-flag */ S8 arfcn_rssi; /*< 10: 1> T_PS_arfcn_rssi, GSM channel RSSI measurement */ U8 _align0; /*< 11: 1> alignment */ } T_PS_gsm_ncell_measurement; #endif #ifndef __T_PS_gsm_ncell_results__ #define __T_PS_gsm_ncell_results__ /* * GSM neighbour cell results * CCDGEN:WriteStruct_Count==1348 */ typedef struct { U8 _align0; /*< 0: 1> alignment */ U8 _align1; /*< 1: 1> alignment */ U8 _align2; /*< 2: 1> alignment */ U8 c_gsm_ncell_measurement; /*< 3: 1> counter */ T_PS_gsm_ncell_measurement gsm_ncell_measurement[PS_MAX_GSM_NCELLS]; /*< 4:384> GSM neighbour cell measurement result */ } T_PS_gsm_ncell_results; #endif #ifndef __T_PS_imsi__ #define __T_PS_imsi__ /* * Container for a subscriber id * CCDGEN:WriteStruct_Count==1349 */ typedef struct { U8 c_identity; /*< 0: 1> counter */ U8 identity[PS_SIZE_IMSI_MAX]; /*< 1: 15> Content of IMSI */ } T_PS_imsi; #endif #ifndef __T_PS_k_c__ #define __T_PS_k_c__ /* * Container for GSM ciphering parameter * CCDGEN:WriteStruct_Count==1350 */ typedef struct { U8 key[PS_SIZE_KC]; /*< 0: 8> Ciphering key */ U8 ksi; /*< 8: 1> T_PS_ksi, Key set identifier */ U8 _align0; /*< 9: 1> alignment */ U8 _align1; /*< 10: 1> alignment */ U8 _align2; /*< 11: 1> alignment */ } T_PS_k_c; #endif /* * Container for GPRS ciphering parameter * CCDGEN:WriteStruct_Count==1351 */ #ifndef __T_PS_k_c_gprs__ #define __T_PS_k_c_gprs__ typedef T_PS_k_c T_PS_k_c_gprs; #endif #ifndef __T_PS_gsm_key_set__ #define __T_PS_gsm_key_set__ /* * Contains information related to ciphering * CCDGEN:WriteStruct_Count==1352 */ typedef struct { T_PS_k_c k_c; /*< 0: 12> Container for GSM ciphering parameter */ T_PS_k_c_gprs k_c_gprs; /*< 12: 12> Container for GPRS ciphering parameter */ } T_PS_gsm_key_set; #endif #ifndef __T_PS_ul_sdus__ #define __T_PS_ul_sdus__ /* * Sequence numbers and mem handles pr. NSAPI * CCDGEN:WriteStruct_Count==1353 */ typedef struct { U8 ul_sequence_number; /*< 0: 1> Sequence number of last unacknowledged uplink SDU */ U8 dl_sequence_number; /*< 1: 1> Sequence number of last unacknowledged downlink SDU (used by the network) */ U8 _align0; /*< 2: 1> alignment */ U8 c_mem_handle; /*< 3: 1> counter */ U32 *ptr_mem_handle; /*< 4: 4> pointer to Memory handle */ } T_PS_ul_sdus; #endif #ifndef __T_PS_lac__ #define __T_PS_lac__ /* * Container for location area code * CCDGEN:WriteStruct_Count==1354 */ typedef struct { U8 lac_elements[PS_SIZE_LAC]; /*< 0: 2> Location area code element */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_PS_lac; #endif #ifndef __T_PS_operation_mode__ #define __T_PS_operation_mode__ /* * Supported radio access technologies * CCDGEN:WriteStruct_Count==1355 */ typedef struct { U8 access_modes; /*< 0: 1> T_PS_access_modes, Supported access modes. */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 v_gsm_bands; /*< 3: 1> valid-flag */ T_PS_gsm_bands gsm_bands; /*< 4: 4> GSM bands */ } T_PS_operation_mode; #endif #ifndef __T_PS_nas_system_info__ #define __T_PS_nas_system_info__ /* * NAS system information * CCDGEN:WriteStruct_Count==1356 */ typedef struct { T_PS_lac lac; /*< 0: 4> Container for location area code */ U8 v_rac; /*< 4: 1> valid-flag */ U8 rac; /*< 5: 1> Container for packet switched routing area code */ U8 nmo; /*< 6: 1> T_PS_nmo, Network mode of operation */ U8 attach_detach_allowed; /*< 7: 1> T_PS_attach_detach_allowed, Attach/detach allowed */ U8 t3212; /*< 8: 1> T_PS_t3212, Periodic updating timer */ U8 _align0; /*< 9: 1> alignment */ U8 _align1; /*< 10: 1> alignment */ U8 _align2; /*< 11: 1> alignment */ } T_PS_nas_system_info; #endif #ifndef __T_PS_p_tmsi__ #define __T_PS_p_tmsi__ /* * Container for P-TMSI * CCDGEN:WriteStruct_Count==1357 */ typedef struct { U8 content_p_tmsi[PS_SIZE_P_TMSI]; /*< 0: 4> Content of P-TMSI */ } T_PS_p_tmsi; #endif #ifndef __T_PS_plmn_id__ #define __T_PS_plmn_id__ /* * Container for a GSM MAP network identifier * CCDGEN:WriteStruct_Count==1358 */ typedef struct { U8 mcc[PS_SIZE_MCC]; /*< 0: 3> T_PS_mcc, Mobile country code */ U8 c_mnc; /*< 3: 1> counter */ U8 mnc[PS_SIZE_MNC_MAX]; /*< 4: 3> T_PS_mnc, Mobile network code */ U8 _align0; /*< 7: 1> alignment */ } T_PS_plmn_id; #endif /* * Selected network identifier * CCDGEN:WriteStruct_Count==1359 */ #ifndef __T_PS_selected_plmn__ #define __T_PS_selected_plmn__ typedef T_PS_plmn_id T_PS_selected_plmn; #endif /* * Home network identifier * CCDGEN:WriteStruct_Count==1360 */ #ifndef __T_PS_home_plmn__ #define __T_PS_home_plmn__ typedef T_PS_plmn_id T_PS_home_plmn; #endif /* * Equivalent network identifier * CCDGEN:WriteStruct_Count==1361 */ #ifndef __T_PS_equivalent_plmn__ #define __T_PS_equivalent_plmn__ typedef T_PS_plmn_id T_PS_equivalent_plmn; #endif #ifndef __T_PS_lai__ #define __T_PS_lai__ /* * Container for location area information * CCDGEN:WriteStruct_Count==1362 */ typedef struct { T_PS_plmn_id plmn_id; /*< 0: 8> Container for a GSM MAP network identifier */ T_PS_lac lac; /*< 8: 4> Container for location area code */ } T_PS_lai; #endif #ifndef __T_PS_forbidden_lai__ #define __T_PS_forbidden_lai__ /* * Container for forbidden location area list * CCDGEN:WriteStruct_Count==1363 */ typedef struct { U8 _align0; /*< 0: 1> alignment */ U8 _align1; /*< 1: 1> alignment */ U8 _align2; /*< 2: 1> alignment */ U8 c_lai; /*< 3: 1> counter */ T_PS_lai lai[PS_MAX_FORBIDDEN_LAI]; /*< 4:120> Container for location area information */ } T_PS_forbidden_lai; #endif #ifndef __T_PS_equivalent_plmn_list__ #define __T_PS_equivalent_plmn_list__ /* * Container for equivalent PLMN list * CCDGEN:WriteStruct_Count==1364 */ typedef struct { U8 _align0; /*< 0: 1> alignment */ U8 _align1; /*< 1: 1> alignment */ U8 _align2; /*< 2: 1> alignment */ U8 c_equivalent_plmn; /*< 3: 1> counter */ T_PS_equivalent_plmn equivalent_plmn[PS_MAX_EQUIVALENT_PLMNS]; /*< 4: 40> Equivalent network identifier */ } T_PS_equivalent_plmn_list; #endif #ifndef __T_PS_rai__ #define __T_PS_rai__ /* * Container for packet switched routing area identification * CCDGEN:WriteStruct_Count==1365 */ typedef struct { T_PS_lai lai; /*< 0: 12> Container for location area information */ U8 rac; /*< 12: 1> Container for packet switched routing area code */ U8 _align0; /*< 13: 1> alignment */ U8 _align1; /*< 14: 1> alignment */ U8 _align2; /*< 15: 1> alignment */ } T_PS_rai; #endif #ifndef __T_PS_ps_loci__ #define __T_PS_ps_loci__ /* * Container for packet switched location information * CCDGEN:WriteStruct_Count==1366 */ typedef struct { T_PS_rai rai; /*< 0: 16> Container for packet switched routing area identification */ U8 _align0; /*< 16: 1> alignment */ U8 _align1; /*< 17: 1> alignment */ U8 _align2; /*< 18: 1> alignment */ U8 v_p_tmsi; /*< 19: 1> valid-flag */ T_PS_p_tmsi p_tmsi; /*< 20: 4> Container for P-TMSI */ } T_PS_ps_loci; #endif #ifndef __T_PS_tmsi__ #define __T_PS_tmsi__ /* * Container for TMSI * CCDGEN:WriteStruct_Count==1368 */ typedef struct { U8 content_tmsi[PS_SIZE_TMSI]; /*< 0: 4> Content of TMSI */ } T_PS_tmsi; #endif #ifndef __T_PS_loci__ #define __T_PS_loci__ /* * Container for location information * CCDGEN:WriteStruct_Count==1369 */ typedef struct { T_PS_lai lai; /*< 0: 12> Container for location area information */ U8 _align0; /*< 12: 1> alignment */ U8 _align1; /*< 13: 1> alignment */ U8 _align2; /*< 14: 1> alignment */ U8 v_tmsi; /*< 15: 1> valid-flag */ T_PS_tmsi tmsi; /*< 16: 4> Container for TMSI */ } T_PS_loci; #endif #ifndef __T_PS_umts_cell_description__ #define __T_PS_umts_cell_description__ /* * Container for cell description information for a UMTS cell * CCDGEN:WriteStruct_Count==1370 */ typedef struct { U16 uarfcn; /*< 0: 2> T_PS_uarfcn, UMTS channel number */ U16 psc; /*< 2: 2> T_PS_psc, FDD primary scrambling code */ U8 v_tx_diversity; /*< 4: 1> valid-flag */ U8 tx_diversity; /*< 5: 1> T_PS_tx_diversity, UMTS FDD TX diversity indicator */ U8 _align0; /*< 6: 1> alignment */ U8 _align1; /*< 7: 1> alignment */ } T_PS_umts_cell_description; #endif #ifndef __T_PS_key_set__ #define __T_PS_key_set__ /* * Ciphering and integrity keys for a CN domain * CCDGEN:WriteStruct_Count==1371 */ typedef struct { U8 ksi; /*< 0: 1> T_PS_ksi, Key set identifier */ U8 ciphering_key[PS_SIZE_CK]; /*< 1: 16> Ciphering key */ U8 integrity_key[PS_SIZE_IK]; /*< 17: 16> Integrity protection key */ U8 _align0; /*< 33: 1> alignment */ U8 _align1; /*< 34: 1> alignment */ U8 _align2; /*< 35: 1> alignment */ } T_PS_key_set; #endif #ifndef __T_PS_umts_ncell_list__ #define __T_PS_umts_ncell_list__ /* * UMTS neighbour cell list * CCDGEN:WriteStruct_Count==1372 */ typedef struct { U8 _align0; /*< 0: 1> alignment */ U8 _align1; /*< 1: 1> alignment */ U8 _align2; /*< 2: 1> alignment */ U8 c_umts_cell_description; /*< 3: 1> counter */ T_PS_umts_cell_description umts_cell_description[PS_MAX_UMTS_NCELLS]; /*< 4:512> Container for cell description information for a UMTS cell */ } T_PS_umts_ncell_list; #endif #ifndef __T_PS_umts_ncell_measurement__ #define __T_PS_umts_ncell_measurement__ /* * UMTS neighbour cell measurement result * CCDGEN:WriteStruct_Count==1373 */ typedef struct { U16 psc; /*< 0: 2> T_PS_psc, FDD primary scrambling code */ U8 cell_status; /*< 2: 1> T_PS_cell_status, Cell suitability status */ U8 v_cpich_rscp; /*< 3: 1> valid-flag */ S8 cpich_rscp; /*< 4: 1> T_PS_cpich_rscp, UMTS cell measurement value of CPICH RSCP */ U8 v_cpich_ec_n0; /*< 5: 1> valid-flag */ S8 cpich_ec_n0; /*< 6: 1> T_PS_cpich_ec_n0, UMTS cell measurement value of CPICH Ec/N0 */ U8 _align0; /*< 7: 1> alignment */ } T_PS_umts_ncell_measurement; #endif #ifndef __T_PS_umts_ncell_results__ #define __T_PS_umts_ncell_results__ /* * UMTS neighbour cell results * CCDGEN:WriteStruct_Count==1374 */ typedef struct { U16 uarfcn; /*< 0: 2> T_PS_uarfcn, UMTS channel number */ S8 uarfcn_rssi; /*< 2: 1> T_PS_uarfcn_rssi, UMTS channel RSSI measurement */ U8 c_umts_ncell_measurement; /*< 3: 1> counter */ T_PS_umts_ncell_measurement umts_ncell_measurement[PS_MAX_UMTS_NCELLS_PER_UARFCN]; /*< 4:256> UMTS neighbour cell measurement result */ } T_PS_umts_ncell_results; #endif #ifndef __T_PS_cs_security_parms__ #define __T_PS_cs_security_parms__ /* * Contains parameters related to ciphering and integrity protection for CS domain. * CCDGEN:WriteStruct_Count==1375 */ typedef struct { T_PS_key_set key_set; /*< 0: 36> Ciphering and integrity keys for a CN domain */ U8 _align0; /*< 36: 1> alignment */ U8 _align1; /*< 37: 1> alignment */ U8 _align2; /*< 38: 1> alignment */ U8 v_start_val; /*< 39: 1> valid-flag */ U32 start_val; /*< 40: 4> T_PS_start_val, START value (20 bits) */ } T_PS_cs_security_parms; #endif /* * Contains parameters related to ciphering and integrity protection for PS domain. * CCDGEN:WriteStruct_Count==1376 */ #ifndef __T_PS_ps_security_parms__ #define __T_PS_ps_security_parms__ typedef T_PS_cs_security_parms T_PS_ps_security_parms; #endif #ifndef __T_PS_umts_security_info__ #define __T_PS_umts_security_info__ /* * Contains information related to UMTS ciphering and integrity protection. * CCDGEN:WriteStruct_Count==1377 */ typedef struct { U8 _align0; /*< 0: 1> alignment */ U8 _align1; /*< 1: 1> alignment */ U8 _align2; /*< 2: 1> alignment */ U8 v_threshold; /*< 3: 1> valid-flag */ U32 threshold; /*< 4: 4> T_PS_threshold, THRESHOLD value */ T_PS_cs_security_parms cs_security_parms; /*< 8: 44> Contains parameters related to ciphering and integrity protection for CS domain. */ T_PS_ps_security_parms ps_security_parms; /*< 52: 44> Contains parameters related to ciphering and integrity protection for PS domain. */ } T_PS_umts_security_info; #endif #ifndef __T_PS_security_info__ #define __T_PS_security_info__ /* * Contains information related to ciphering and integrity protection. * CCDGEN:WriteStruct_Count==1378 */ typedef struct { U8 sim_type; /*< 0: 1> T_PS_sim_type, Type of subscriber card present. */ U8 _align0; /*< 1: 1> alignment */ U8 _align1; /*< 2: 1> alignment */ U8 v_gsm_key_set; /*< 3: 1> valid-flag */ T_PS_gsm_key_set gsm_key_set; /*< 4: 24> Contains information related to ciphering */ U8 _align2; /*< 28: 1> alignment */ U8 _align3; /*< 29: 1> alignment */ U8 _align4; /*< 30: 1> alignment */ U8 v_umts_security_info; /*< 31: 1> valid-flag */ T_PS_umts_security_info umts_security_info; /*< 32: 96> Contains information related to UMTS ciphering and integrity protection. */ } T_PS_security_info; #endif #ifndef __T_PS_qos_r97__ #define __T_PS_qos_r97__ /* * quality of service R97 * CCDGEN:WriteStruct_Count==1379 */ typedef struct { U8 delay; /*< 0: 1> T_PS_delay, delay class */ U8 relclass; /*< 1: 1> T_PS_relclass, reliability class */ U8 peak; /*< 2: 1> T_PS_peak, peak throughput */ U8 preced; /*< 3: 1> T_PS_preced, precedence class */ U8 mean; /*< 4: 1> T_PS_mean, mean throughput */ U8 _align0; /*< 5: 1> alignment */ U8 _align1; /*< 6: 1> alignment */ U8 _align2; /*< 7: 1> alignment */ } T_PS_qos_r97; #endif #ifndef __T_PS_sdu_err_ratio__ #define __T_PS_sdu_err_ratio__ /* * SDU error ratio * CCDGEN:WriteStruct_Count==1380 */ typedef struct { U8 ratio_mant; /*< 0: 1> mantissa */ U8 ratio_exp; /*< 1: 1> exponent */ U8 _align0; /*< 2: 1> alignment */ U8 _align1; /*< 3: 1> alignment */ } T_PS_sdu_err_ratio; #endif /* * Residual bit error ratio * CCDGEN:WriteStruct_Count==1381 */ #ifndef __T_PS_ber__ #define __T_PS_ber__ typedef T_PS_sdu_err_ratio T_PS_ber; #endif #ifndef __T_PS_qos_r99__ #define __T_PS_qos_r99__ /* * quality of service R99 * CCDGEN:WriteStruct_Count==1382 */ typedef struct { U8 tc; /*< 0: 1> T_PS_tc, traffic class; R99 / UMTS */ U8 order; /*< 1: 1> T_PS_order, delivery order; R99 / UMTS */ U8 del_err_sdu; /*< 2: 1> T_PS_del_err_sdu, delivery of erroneous SDU; R99 / UMTS */ U8 _align0; /*< 3: 1> alignment */ U16 max_sdu; /*< 4: 2> T_PS_max_sdu, max SDU size; R99 / UMTS */ U16 max_rate_ul; /*< 6: 2> T_PS_max_rate_ul, max bit-rate uplink; R99 / UMTS */ U16 max_rate_dl; /*< 8: 2> T_PS_max_rate_dl, max bit-rate downlink; R99 / UMTS */ U8 _align1; /*< 10: 1> alignment */ U8 _align2; /*< 11: 1> alignment */ T_PS_ber ber; /*< 12: 4> Residual bit error ratio */ T_PS_sdu_err_ratio sdu_err_ratio; /*< 16: 4> SDU error ratio */ U16 xfer_delay; /*< 20: 2> T_PS_xfer_delay, transfer delay; R99 / UMTS */ U8 handling_pri; /*< 22: 1> T_PS_handling_pri, traffic handling priority; R99 / UMTS */ U8 _align3; /*< 23: 1> alignment */ U16 guar_br_ul; /*< 24: 2> T_PS_guar_br_ul, guaranteed bit-rate uplink; R99 / UMTS */ U16 guar_br_dl; /*< 26: 2> T_PS_guar_br_dl, guaranteed bit-rate downlink; R99 / UMTS */ } T_PS_qos_r99; #endif #ifndef __T_PS_min_qos__ #define __T_PS_min_qos__ /* * quality of service * CCDGEN:WriteStruct_Count==1383 */ typedef union { U32 min_qos_not_present; /*< 0: 4> QoS parameters absent */ T_PS_qos_r97 qos_r97; /*< 0: 8> quality of service R97 */ T_PS_qos_r99 qos_r99; /*< 0: 28> quality of service R99 */ } T_PS_min_qos; #endif #ifndef __T_PS_qos__ #define __T_PS_qos__ /* * quality of service * CCDGEN:WriteStruct_Count==1384 */ typedef union { U32 qos_not_present; /*< 0: 4> QoS parameters absent. From nas_include sap */ T_PS_qos_r97 qos_r97; /*< 0: 8> quality of service R97 */ T_PS_qos_r99 qos_r99; /*< 0: 28> quality of service R99 */ } T_PS_qos; #endif /* * End of substructure section, begin of primitive definition section */ #ifndef __T_PS_EXPORT__ #define __T_PS_EXPORT__ /* * * CCDGEN:WriteStruct_Count==1386 */ typedef struct { T_PS_acc acc; /*< 0: 4> Container for the access control class field from (U)SIM, see [3G 11.11] and [3G 31.102] */ T_PS_ad ad; /*< 4: 4> Container for the administrative data field from (U)SIM, see [3G 11.11] and [3G 31.102] */ U16 arfcn; /*< 8: 2> T_PS_arfcn, GSM channel number */ S8 arfcn_rssi; /*< 10: 1> T_PS_arfcn_rssi, GSM channel RSSI measurement */ U8 _align0; /*< 11: 1> alignment */ T_PS_bsic bsic; /*< 12: 4> GSM BSIC */ U8 cn_domain; /*< 16: 1> T_PS_cn_domain, Core network domain identity */ S8 cpich_ec_n0; /*< 17: 1> T_PS_cpich_ec_n0, UMTS cell measurement value of CPICH Ec/N0 */ S8 cpich_rscp; /*< 18: 1> T_PS_cpich_rscp, UMTS cell measurement value of CPICH RSCP */ U8 est_service; /*< 19: 1> T_PS_est_service, Establishment service requested */ T_PS_cs_security_parms cs_security_parms; /*< 20: 44> Contains parameters related to ciphering and integrity protection for CS domain. */ T_PS_equivalent_plmn equivalent_plmn; /*< 64: 8> Equivalent network identifier */ T_PS_equivalent_plmn_list equivalent_plmn_list; /*< 72: 44> Container for equivalent PLMN list */ T_PS_forbidden_lai forbidden_lai; /*<116:124> Container for forbidden location area list */ T_PS_gsm_cell_description gsm_cell_description; /*<240: 8> GSM channel number and band specification */ U16 gsm_frequency_band; /*<248: 2> T_PS_gsm_frequency_band, Frequency band specification */ U8 gsm_ncell_index; /*<250: 1> T_PS_gsm_ncell_index, GSM neighbour cell index */ U8 _align1; /*<251: 1> alignment */ T_PS_gsm_ncell_list gsm_ncell_list; /*<252:260> GSM neighbour cell list */ T_PS_gsm_ncell_measurement gsm_ncell_measurement; /*<512: 12> GSM neighbour cell measurement result */ T_PS_gsm_ncell_results gsm_ncell_results; /*<524:388> GSM neighbour cell results */ T_PS_gsm_key_set gsm_key_set; /*<912: 24> Contains information related to ciphering */ T_PS_home_plmn home_plmn; /*<936: 8> Home network identifier */ T_PS_imsi imsi; /*<944: 16> Container for a subscriber id */ T_PS_k_c k_c; /*<960: 12> Container for GSM ciphering parameter */ T_PS_k_c_gprs k_c_gprs; /*<972: 12> Container for GPRS ciphering parameter */ T_PS_key_set key_set; /*<984: 36> Ciphering and integrity keys for a CN domain */ U8 ksi; /*<1020: 1> T_PS_ksi, Key set identifier */ U8 _align2; /*<1021: 1> alignment */ U8 _align3; /*<1022: 1> alignment */ U8 _align4; /*<1023: 1> alignment */ T_PS_lac lac; /*<1024: 4> Container for location area code */ T_PS_lai lai; /*<1028: 12> Container for location area information */ T_PS_loci loci; /*<1040: 20> Container for location information */ U8 llc_mode; /*<1060: 1> T_PS_llc_mode, LLC mode */ U8 meas_mode; /*<1061: 1> T_PS_meas_mode, Measurement mode */ U8 _align5; /*<1062: 1> alignment */ U8 _align6; /*<1063: 1> alignment */ U32 mem_handle; /*<1064: 4> Memory handle */ T_PS_nas_system_info nas_system_info; /*<1068: 12> NAS system information */ T_PS_operation_mode operation_mode; /*<1080: 8> Supported radio access technologies */ T_PS_p_tmsi p_tmsi; /*<1088: 4> Container for P-TMSI */ U16 peak_throughput; /*<1092: 2> T_PS_peak_throughput, Peak throughput QoS parameter */ U8 _align7; /*<1094: 1> alignment */ U8 _align8; /*<1095: 1> alignment */ T_PS_plmn_id plmn_id; /*<1096: 8> Container for a GSM MAP network identifier */ T_PS_ps_loci ps_loci; /*<1104: 24> Container for packet switched location information */ T_PS_ps_security_parms ps_security_parms; /*<1128: 44> Contains parameters related to ciphering and integrity protection for PS domain. */ U16 psc; /*<1172: 2> T_PS_psc, FDD primary scrambling code */ U8 radio_prio; /*<1174: 1> T_PS_radio_prio, Radio priority */ U8 rac; /*<1175: 1> Container for packet switched routing area code */ T_PS_rai rai; /*<1176: 16> Container for packet switched routing area identification */ U8 rat; /*<1192: 1> T_PS_rat, Radio access technology */ U8 rel_ind; /*<1193: 1> T_PS_rel_ind, Local Release Indicator */ U8 sapi; /*<1194: 1> T_PS_sapi, Service Access Point Identifier */ U8 search_mode; /*<1195: 1> T_PS_search_mode, Search mode for network scan */ T_PS_security_info security_info; /*<1196:128> Contains information related to ciphering and integrity protection. */ T_PS_selected_plmn selected_plmn; /*<1324: 8> Selected network identifier */ U32 start_val; /*<1332: 4> T_PS_start_val, START value (20 bits) */ U8 sim_type; /*<1336: 1> T_PS_sim_type, Type of subscriber card present. */ U8 _align9; /*<1337: 1> alignment */ U8 _align10; /*<1338: 1> alignment */ U8 _align11; /*<1339: 1> alignment */ T_PS_tmsi tmsi; /*<1340: 4> Container for TMSI */ U8 tx_diversity; /*<1344: 1> T_PS_tx_diversity, UMTS FDD TX diversity indicator */ U8 _align12; /*<1345: 1> alignment */ U16 uarfcn; /*<1346: 2> T_PS_uarfcn, UMTS channel number */ S8 uarfcn_rssi; /*<1348: 1> T_PS_uarfcn_rssi, UMTS channel RSSI measurement */ U8 _align13; /*<1349: 1> alignment */ U8 _align14; /*<1350: 1> alignment */ U8 _align15; /*<1351: 1> alignment */ T_PS_ul_sdus ul_sdus; /*<1352: 8> Sequence numbers and mem handles pr. NSAPI */ T_PS_umts_cell_description umts_cell_description; /*<1360: 8> Container for cell description information for a UMTS cell */ T_PS_umts_ncell_list umts_ncell_list; /*<1368:516> UMTS neighbour cell list */ T_PS_umts_ncell_measurement umts_ncell_measurement; /*<1884: 8> UMTS neighbour cell measurement result */ T_PS_umts_ncell_results umts_ncell_results; /*<1892:260> UMTS neighbour cell results */ T_PS_umts_security_info umts_security_info; /*<2152: 96> Contains information related to UMTS ciphering and integrity protection. */ U8 service_level; /*<2248: 1> T_PS_service_level, Cell service level */ U8 _align16; /*<2249: 1> alignment */ U8 _align17; /*<2250: 1> alignment */ U8 _align18; /*<2251: 1> alignment */ T_PS_ctrl_qos ctrl_qos; /*<2252: 4> (enum=32bit) controller for union */ T_PS_qos qos; /*<2256: 28> quality of service */ T_PS_qos_r97 qos_r97; /*<2284: 8> quality of service R97 */ T_PS_qos_r99 qos_r99; /*<2292: 28> quality of service R99 */ T_PS_ctrl_min_qos ctrl_min_qos; /*<2320: 4> (enum=32bit) controller for union */ T_PS_min_qos min_qos; /*<2324: 28> quality of service */ U16 pkt_flow_id; /*<2352: 2> T_PS_pkt_flow_id, packet flow identifier */ U8 _align19; /*<2354: 1> alignment */ U8 _align20; /*<2355: 1> alignment */ T_sdu sdu; /*<2356: ? > Container for a message */ } T_PS_EXPORT; #endif #include "CDG_LEAVE.h" #endif