diff options
author | Anders Broman <anders.broman@ericsson.com> | 2011-01-31 15:16:45 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2011-01-31 15:16:45 +0000 |
commit | 7a78a180c7d119a645bb446ae3d87aa1272a09fb (patch) | |
tree | e96ee11037b588a1d7bbf3e93b5541eb6d54e05f | |
parent | 1d9fe2c424bc06f05e1f2f1fefb23067c3582559 (diff) |
Dissect more IE's in PERFORM-LOCATION-REQUEST.
svn path=/trunk/; revision=35721
-rw-r--r-- | epan/dissectors/packet-bssgp.c | 73 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_a_bssmap.c | 54 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_bssmap_le.c | 167 |
3 files changed, 251 insertions, 43 deletions
diff --git a/epan/dissectors/packet-bssgp.c b/epan/dissectors/packet-bssgp.c index 8c8f72c560..732aba8494 100644 --- a/epan/dissectors/packet-bssgp.c +++ b/epan/dissectors/packet-bssgp.c @@ -7206,9 +7206,25 @@ de_bssgp_nsei(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc */ /* * 11.3.50 LCS QoS + */ +/* Rest of element coded as the value part defined in + * 3GPP TS 48.008, not including 3GPP TS 48.008 IEI and + * 3GPP TS 48.008 octet length indicator + */ +/* * 11.3.51 LCS Client Type + */ +/* Rest of element coded as the value part defined in + * 3GPP TS 49.031, not including 3GPP TS 49.031 IEI and + * 3GPP TS 49.031 octet length indicator + */ +/* * 11.3.52 Requested GPS Assistance Data */ +/* Rest of element coded as the value part defined in + * 3GPP TS 49.031, not including 3GPP TS 49.031 IEI and + * 3GPP TS 49.031 octet length indicator + */ /* * 11.3.53 Location Type */ @@ -7218,7 +7234,19 @@ de_bssgp_nsei(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc */ /* * 11.3.54 Location Estimate + */ +/* Rest of element coded as the value part defined in + * 3GPP TS 48.008, not including 3GPP TS 48.008 IEI and + * 3GPP TS 48.008 octet length indicator + */ +/* * 11.3.55 Positioning Data + */ +/* Rest of element coded as the value part defined in + * 3GPP TS 49.031, not including 3GPP TS 49.031 IEI and + * 3GPP TS 49.031 octet length indicator + */ +/* * 11.3.56 Deciphering Keys */ /* @@ -7698,6 +7726,12 @@ de_bssgp_global_tfi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _ } /* * 11.3.91 IMEI + */ +/* Octets 3-10 contain the IMEI coded as the value part of the Mobile + * Identity IE defined in 3GPP TS 24.008 + * (NOTE 1) + */ +/* * 11.3.92 Time to MBMS Data Transfer * 11.3.93 MBMS Session Repetition Number */ @@ -7884,7 +7918,19 @@ de_bssgp_cs_indication(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le } /* * 11.3.99 Requested GANSS Assistance Data + */ +/* Rest of element coded as the value part defined in + * 3GPP TS 49.031, not including 3GPP TS 49.031 IEI and + * 3GPP TS 49.031 octet length indicator + */ +/* * 11.3.100 GANSS Location Type + */ +/* Rest of element coded as the value part defined in + * 3GPP TS 49.031, not including 3GPP TS 49.031 IEI and + * 3GPP TS 49.031 octet length indicator + */ +/* * 11.3.101 GANSS Positioning Data */ /* @@ -8094,10 +8140,9 @@ const value_string bssgp_elem_strings[] = { { 0x3c, "Bucket Full Ratio" }, /* 11.3.46 Bucket Full Ratio */ { 0x3d, "Service UTRAN CCO" }, /* 11.3.47 Service UTRAN CCO */ { 0x3e, "NSEI (Network Service Entity Identifier)" }, /* 11.3.48 NSEI (Network Service Entity Identifier) */ - - /* 11.3.50 LCS QoS */ - /* 11.3.51 LCS Client Type */ - /* 11.3.52 Requested GPS Assistance Data */ + /* 11.3.50 LCS QoS BSSGP_IEI_LCS_QOS, GSM_PDU_TYPE_BSSMAP_LE, DE_BMAPLE_LCSQOS*/ + /* 11.3.51 LCS Client Type BSSGP_IEI_LCS_CLIENT_TYPE, GSM_PDU_TYPE_BSSMAP_LE, DE_BMAPLE_LCS_CLIENT_TYPE*/ + /* 11.3.52 Requested GPS Assistance Data BSSGP_IEI_REQUESTED_GPS_ASSISTANCE_DATA, GSM_PDU_TYPE_BSSMAP_LE, DE_BMAPLE_REQ_GPS_ASSIST_D*/ /* 11.3.53 Location Type 0x7c, GSM_PDU_TYPE_BSSMAP_LE, DE_BMAPLE_GANSS_LOC_TYPE*/ /* 11.3.54 Location Estimate */ /* 11.3.55 Positioning Data */ @@ -8174,8 +8219,8 @@ const value_string bssgp_elem_strings[] = { /* 11.3.96 Velocity Data */ { 0x00, "DTM Handover Command" }, /* 11.3.97 DTM Handover Command */ { 0x00, "PS Handover Indications" }, /* 11.3.98 CS Indication */ - /* 11.3.99 Requested GANSS Assistance Data */ - /* 11.3.100 GANSS Location Type */ + /* 11.3.99 Requested GANSS Assistance Data 0x7b, GSM_A_PDU_TYPE_BSSMAP, BE_GANSS_ASS_DTA*/ + /* 11.3.100 GANSS Location Type 0x7c, GSM_A_PDU_TYPE_BSSMAP, BE_GANSS_LOC_TYP*/ /* 11.3.101 GANSS Positioning Data */ { 0x00, "Flow Control Granularity" }, /* 11.3.102 Flow Control Granularity */ { 0x00, "eNB Identifier" }, /* 11.3.103 eNB Identifier */ @@ -8207,7 +8252,7 @@ typedef enum DE_BSSGP_CELL_ID, /* 11.3.9 0x08 Cell Identifier */ DE_BSSGP_CHLN_NEEDED, /* 11.3.10 0x09 Channel needed */ DE_BBSGP_DRX_PARAM, /* 11.3.11 0x0a DRX Parameters GSM_A_PDU_TYPE_GM, DE_DRX_PARAM */ - DE_BBSGP_EMLPP_PRIO, /* 11.3.12 0x0b eMLPP-Priority BSSAP_PDU_TYPE_BSSMAP, BE_EMLPP_PRIO*/ + DE_BBSGP_EMLPP_PRIO, /* 11.3.12 0x0b eMLPP-Priority GSM_A_PDU_TYPE_BSSMAP, BE_EMLPP_PRIO*/ DE_BSSGP_FLUSH_ACTION, /* 11.3.13 0x0c Flush Action */ DE_BSSGP_IMSI, /* 11.3.14 0x0d IMSI */ DE_BSSGP_LLC_PDU, /* 11.3.15 0x0e LLC-PDU */ @@ -8501,7 +8546,7 @@ bssgp_ul_unitdata(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) /* PFI PFI/11.3.42 O TLV 3 */ ELEM_OPT_TELV(BSSGP_IEI_PFI , GSM_A_PDU_TYPE_GM, DE_PACKET_FLOW_ID , NULL); /* LSA Identifier List LSA Identifier List/11.3.18 O TLV 3-? */ - ELEM_OPT_TLV(0x26, GSM_A_PDU_TYPE_BSSMAP, BE_LSA_ID_LIST, NULL); + ELEM_OPT_TELV(0x26, GSM_A_PDU_TYPE_BSSMAP, BE_LSA_ID_LIST, NULL); /* Alignment octets Alignment octets/11.3.1 O TLV 2-5 */ ELEM_OPT_TELV(0x00, BSSGP_PDU_TYPE, DE_BSSGP_ALIGNMENT_OCTETS, NULL); /* LLC-PDU (note) LLC-PDU/11.3.15 M TLV 2-? */ @@ -9919,19 +9964,25 @@ bssgp_perform_loc_request(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint /* NSEI (PCU-PTP) NSEI/11.3.48 M TLV 4-? */ ELEM_OPT_TELV(0x3e, GSM_A_PDU_TYPE_RR, DE_BSSGP_NSEI , " - (PCU-PTP)"); /* Location Type Location Type/11.3.53 M TLV 3-? */ - ELEM_OPT_TLV(0x7c, GSM_PDU_TYPE_BSSMAP_LE, DE_BMAPLE_GANSS_LOC_TYPE, NULL); + ELEM_OPT_TELV(0x7c, GSM_PDU_TYPE_BSSMAP_LE, DE_BMAPLE_GANSS_LOC_TYPE, NULL); /* Cell Identifier Cell Identifier/11.3.9 M TLV 10 */ ELEM_OPT_TELV(BSSGP_IEI_CELL_IDENTIFIER, BSSGP_PDU_TYPE, DE_BSSGP_CELL_ID , NULL); /* LCS Capability (note 2) LCS Capability/11.3.59 O TLV 3-? */ - ELEM_OPT_TLV( BSSGP_IEI_LCS_CAPABILITY , GSM_A_PDU_TYPE_GM, DE_PS_LCS_CAP , NULL); + ELEM_OPT_TELV( BSSGP_IEI_LCS_CAPABILITY , GSM_A_PDU_TYPE_GM, DE_PS_LCS_CAP , NULL); /* LCS Priority LCS Priority/11.3.57 O TLV 3-? */ - ELEM_OPT_TLV(BSSGP_IEI_LCS_PRIORITY, GSM_A_PDU_TYPE_BSSMAP, BE_LCS_PRIO, NULL); + ELEM_OPT_TELV(BSSGP_IEI_LCS_PRIORITY, GSM_A_PDU_TYPE_BSSMAP, BE_LCS_PRIO, NULL); /* LCS QoS LCS QoS/11.3.50 O TLV 3-? */ + ELEM_OPT_TELV(BSSGP_IEI_LCS_QOS, GSM_PDU_TYPE_BSSMAP_LE, DE_BMAPLE_LCSQOS, NULL); /* LCS Client Type (note 3) LCS Client Type/11.3.51 C TLV 3-? */ + ELEM_OPT_TELV(BSSGP_IEI_LCS_CLIENT_TYPE, GSM_PDU_TYPE_BSSMAP_LE, DE_BMAPLE_LCS_CLIENT_TYPE, NULL); /* Requested GPS Assistance Data (note 4) Requested GPS Assistance Data/11.3.52 O TLV 3-? */ + ELEM_OPT_TELV(BSSGP_IEI_REQUESTED_GPS_ASSISTANCE_DATA, GSM_PDU_TYPE_BSSMAP_LE, DE_BMAPLE_REQ_GPS_ASSIST_D, NULL); /* IMEI (note 5) IMEI/11.3.91 O TLV 10 */ + ELEM_OPT_TELV(0x70,GSM_A_PDU_TYPE_COMMON, DE_MID, NULL); /* GANSS Location Type GANSS Location Type / 11.3.100 C TLV 3 */ + ELEM_OPT_TELV(0x7c, GSM_A_PDU_TYPE_BSSMAP, BE_GANSS_LOC_TYP, NULL); /* Requested GANSS Assistance Data (note 6) Requested GANSS Assistance Data/11.3.99 O TLV 3-? */ + ELEM_OPT_TLV(0x7b, GSM_A_PDU_TYPE_BSSMAP, BE_GANSS_ASS_DTA, NULL); EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gpinfo); } diff --git a/epan/dissectors/packet-gsm_a_bssmap.c b/epan/dissectors/packet-gsm_a_bssmap.c index 533fe006cb..3e0c1b7efa 100644 --- a/epan/dissectors/packet-gsm_a_bssmap.c +++ b/epan/dissectors/packet-gsm_a_bssmap.c @@ -512,6 +512,9 @@ static int hf_gsm_a_bssmap_asind_b3 = -1; static int hf_gsm_a_bssmap_bss_res = -1; static int hf_gsm_a_bssmap_tcp = -1; static int hf_gsm_a_bssmap_filler_bits = -1; +static int hf_gsm_a_bssmap_method = -1; +static int hf_gsm_a_bssmap_ganss_id = -1; +static int hf_gsm_a_bssmap_usage = -1; static int hf_gsm_a_bssmap_aoip_trans_ipv4 = -1; static int hf_gsm_a_bssmap_aoip_trans_ipv6 = -1; static int hf_gsm_a_bssmap_aoip_trans_port = -1; @@ -3458,6 +3461,7 @@ be_vgcs_talker_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _ /* * 3.2.2.95 GANSS Assistance Data * The GANSS Assistance Data octets 3 to n are coded as the Requested GANSS Data element of 3GPP TS 49.031 (BSSAP-LE) + * XXX move to packet-gsm_bssmap_le.c */ guint16 be_ganss_ass_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_) @@ -3472,7 +3476,35 @@ be_ganss_ass_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, } /* * 3.2.2.96 GANSS Positioning Data + * XXX move to packet-gsm_bssmap_le.c */ + +static const value_string gsm_a_bssmap_method_vals[] = { + { 0x00, "MS-Based" }, + { 0x01, "MS-Assisted" }, + { 0x02, "Conventional" }, + { 0x03, "Reserved" }, + { 0, NULL } +}; + +static const value_string gsm_a_bssmap_ganss_id_vals[] = { + { 0x00, "Galileo" }, + { 0x01, "Satellite Based Augmentation Systems (SBAS)" }, + { 0x02, "Modernized GPS" }, + { 0x03, "Quasi Zenith Satellite System (QZSS)" }, + { 0x04, "GLONASS" }, + { 0, NULL } +}; + +static const value_string gsm_a_bssmap_usage_vals[] = { + { 0x00, "Attempted unsuccessfully due to failure or interruption" }, + { 0x01, "Attempted successfully: results not used to generate location" }, + { 0x02, "Attempted successfully: results used to verify but not generate location" }, + { 0x03, "Attempted successfully: results used to generate location" }, + { 0x04, "Attempted successfully: case where MS supports multiple mobile based positioning methods and the actual method or methods used by the MS cannot be determined" }, + { 0, NULL } +}; + guint16 be_ganss_pos_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_) { @@ -3480,9 +3512,12 @@ be_ganss_pos_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, curr_offset = offset; - proto_tree_add_text(tree, tvb, curr_offset, len, "Not decoded yet"); + proto_tree_add_item(tree, hf_gsm_a_bssmap_method, tvb, curr_offset, 1, FALSE); + proto_tree_add_item(tree, hf_gsm_a_bssmap_ganss_id, tvb, curr_offset, 1, FALSE); + proto_tree_add_item(tree, hf_gsm_a_bssmap_usage, tvb, curr_offset, 1, FALSE); + curr_offset++; - return(len); + return(curr_offset-offset); } /* * 3.2.2.97 GANSS Location Type @@ -6698,6 +6733,21 @@ proto_register_gsm_a_bssmap(void) FT_UINT8, BASE_DEC,NULL, 0x07, NULL, HFILL } }, + { &hf_gsm_a_bssmap_method, + { "Method","gsm_a_bssmap.method", + FT_UINT8, BASE_DEC,VALS(gsm_a_bssmap_method_vals), 0xc0, + NULL, HFILL } + }, + { &hf_gsm_a_bssmap_ganss_id, + { "GANSS Id","gsm_a_bssmap.ganss_id", + FT_UINT8, BASE_DEC,VALS(gsm_a_bssmap_ganss_id_vals), 0x38, + NULL, HFILL } + }, + { &hf_gsm_a_bssmap_usage, + { "Usage","gsm_a_bssmap.usage", + FT_UINT8, BASE_DEC,VALS(gsm_a_bssmap_usage_vals), 0x07, + NULL, HFILL } + }, { &hf_gsm_a_bssmap_aoip_trans_ipv4, { "Transport Layer Address (IPv4)","gsm_a_bssmap.aoip_trans_ipv4", FT_IPv4,BASE_NONE, NULL, 0x0, diff --git a/epan/dissectors/packet-gsm_bssmap_le.c b/epan/dissectors/packet-gsm_bssmap_le.c index b4ecf418fd..5cb4c0fc76 100644 --- a/epan/dissectors/packet-gsm_bssmap_le.c +++ b/epan/dissectors/packet-gsm_bssmap_le.c @@ -195,6 +195,17 @@ static int hf_gsm_bssmap_le_spare = -1; static int hf_gsm_bssmap_le_ciphering_key_flag = -1; static int hf_gsm_bssmap_le_current_deciphering_key_value = -1; static int hf_gsm_bssmap_le_next_deciphering_key_value = -1; +static int hf_gsm_bssmap_le_acq_ass = -1; +static int hf_gsm_bssmap_le_ref_time = -1; +static int hf_gsm_bssmap_le_ref_loc = -1; +static int hf_gsm_bssmap_le_dgps_corr = -1; +static int hf_gsm_bssmap_le_nav_mod = -1; +static int hf_gsm_bssmap_le_iono_mod = -1; +static int hf_gsm_bssmap_le_utc_mod = -1; +static int hf_gsm_bssmap_le_almanac = -1; +static int hf_gsm_bssmap_le_ephemeris_ext_chk = -1; +static int hf_gsm_bssmap_le_ephemeris_ext = -1; +static int hf_gsm_bssmap_le_real_time_int = -1; static int hf_gsm_bssmap_le_lcs_cause_value =-1; static int hf_gsm_bssmap_le_diagnostic_value = -1; static int hf_gsm_bssmap_le_client_category = -1; @@ -328,6 +339,47 @@ de_bmaple_decihp_keys(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len /* * 10.10 Requested GPS Assistance Data */ +static guint16 +de_bmaple_req_gps_ass_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_) +{ + guint32 curr_offset; + + curr_offset = offset; + + /* Octet 3 H G F E D C B A */ + /* bit H Acquisition Assistance */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_acq_ass, tvb, curr_offset, 1, FALSE); + /* bit G Reference Time */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_ref_time, tvb, curr_offset, 1, FALSE); + /* bit F Reference Location */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_ref_loc, tvb, curr_offset, 1, FALSE); + /* bit E DGPS Corrections */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_dgps_corr, tvb, curr_offset, 1, FALSE); + /* bit D Navigation Model */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_nav_mod, tvb, curr_offset, 1, FALSE); + /* bit C Ionospheric Model */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_iono_mod, tvb, curr_offset, 1, FALSE); + /* bit B UTC Model */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_utc_mod, tvb, curr_offset, 1, FALSE); + /* bit A Almanac */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_almanac, tvb, curr_offset, 1, FALSE); + curr_offset++; + + /* Octet 4 P O N M L K J I + * bits L through P are Spare bits + */ + /* bit K Ephemeris Extension Check */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_ephemeris_ext_chk, tvb, curr_offset, 1, FALSE); + /* bit J Ephemeris Extension */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_ephemeris_ext, tvb, curr_offset, 1, FALSE); + /* bit I Real-Time Integrity */ + proto_tree_add_item(tree, hf_gsm_bssmap_le_real_time_int, tvb, curr_offset, 1, FALSE); + curr_offset++; + + /* Octet 5 to Octet 8+2n Satellite related data */ + proto_tree_add_text(tree, tvb, curr_offset, len-2, "Satellite related data Not decoded yet"); + return(len); +} /* * 10.11 IMSI * coded as the value part of the Mobile Identity IE defined in 3GPP TS 24.008 (NOTE 1) @@ -659,36 +711,36 @@ bssmap_le_elem_idx_t; guint16 (*bssmap_le_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = { /* NOTE: The null types below are defined elsewhere. i.e in packet-gsm_a_bssmap.c */ - de_bmaple_lcs_qos, /* 10.16 LCS QoS */ - NULL, /* LCS Priority */ - NULL, /* 10.18 Location Type */ - be_ganss_loc_type, /* GANSS Location Type */ - NULL, /* 10.9 Geographic Location */ - de_bmaple_pos_dta, /* 10.20 Positioning Data */ - be_ganss_pos_dta, /* GANSS Positioning Data */ - NULL, /* Velocity Data */ - de_bmaple_cause, /* 10.13 LCS Cause */ - de_bmaple_client, /* LCS Client Type */ - de_bmaple_apdu, /* APDU */ - NULL, /* Network Element Identity */ - NULL, /* Requested GPS Assitance Data */ - be_ganss_ass_dta, /* Requested GANSS Assistance Data */ - de_bmaple_decihp_keys, /* 10.8 Deciphering Keys */ - NULL, /* Return Error Request */ - NULL, /* Return Error Cause */ - NULL, /* Segmentation */ - NULL, /* 10.7 Classmark Information Type 3 */ - NULL, /* Cause */ - NULL, /* Cell Identifier */ - NULL, /* 10.6 Chosen Channel */ - de_mid, /* 10.11 IMSI */ - NULL, /* Reserved */ - NULL, /* Reserved */ - NULL, /* Reserved */ - be_lcs_capability, /* LCS Capability */ - be_packet_meas_rep, /* Packet Measurement Report */ - be_measured_cell_identity, /* Measured Cell Identity List */ - de_mid, /* IMEI (use same dissector as IMSI) */ + de_bmaple_lcs_qos, /* 10.16 LCS QoS */ + NULL, /* LCS Priority */ + NULL, /* 10.18 Location Type */ + be_ganss_loc_type, /* GANSS Location Type */ + NULL, /* 10.9 Geographic Location */ + de_bmaple_pos_dta, /* 10.20 Positioning Data */ + be_ganss_pos_dta, /* GANSS Positioning Data */ + NULL, /* Velocity Data */ + de_bmaple_cause, /* 10.13 LCS Cause */ + de_bmaple_client, /* LCS Client Type */ + de_bmaple_apdu, /* APDU */ + NULL, /* Network Element Identity */ + de_bmaple_req_gps_ass_data, /* 10.10 Requested GPS Assistance Data */ + be_ganss_ass_dta, /* Requested GANSS Assistance Data */ + de_bmaple_decihp_keys, /* 10.8 Deciphering Keys */ + NULL, /* Return Error Request */ + NULL, /* Return Error Cause */ + NULL, /* Segmentation */ + NULL, /* 10.7 Classmark Information Type 3 */ + NULL, /* Cause */ + NULL, /* Cell Identifier */ + NULL, /* 10.6 Chosen Channel */ + de_mid, /* 10.11 IMSI */ + NULL, /* Reserved */ + NULL, /* Reserved */ + NULL, /* Reserved */ + be_lcs_capability, /* LCS Capability */ + be_packet_meas_rep, /* Packet Measurement Report */ + be_measured_cell_identity, /* Measured Cell Identity List */ + de_mid, /* IMEI (use same dissector as IMSI) */ NULL, /* NONE */ @@ -1003,6 +1055,61 @@ proto_register_gsm_bssmap_le(void) FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL} }, + { &hf_gsm_bssmap_le_acq_ass, + { "Acquisition Assistance", "bssap.acq_ass", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80, + NULL, HFILL } + }, + { &hf_gsm_bssmap_le_ref_time, + { "Reference Time", "bssap.ref_time", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x40, + NULL, HFILL } + }, + { &hf_gsm_bssmap_le_ref_loc, + { "Reference Location", "bssap.ref_loc", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x20, + NULL, HFILL } + }, + { &hf_gsm_bssmap_le_dgps_corr, + { "DGPS Corrections", "bssap.gps_corr", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x08, + NULL, HFILL } + }, + { &hf_gsm_bssmap_le_nav_mod, + { "Navigation Model", "bssap.nav_mod", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x10, + NULL, HFILL } + }, + { &hf_gsm_bssmap_le_iono_mod, + { "Ionospheric Model", "bssap.iono_mod", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x04, + NULL, HFILL } + }, + { &hf_gsm_bssmap_le_utc_mod, + { "UTC Model", "bssap.utc_mod", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x02, + NULL, HFILL } + }, + { &hf_gsm_bssmap_le_almanac, + { "Almanac", "bssap.almanac", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x01, + NULL, HFILL } + }, + { &hf_gsm_bssmap_le_ephemeris_ext_chk, + { "Ephemeris Extension Check", "bssap.ephemeris_ext_chk", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x04, + NULL, HFILL } + }, + { &hf_gsm_bssmap_le_ephemeris_ext, + { "Ephemeris Extension", "bssap.ephemeris_ext", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x02, + NULL, HFILL } + }, + { &hf_gsm_bssmap_le_real_time_int, + { "Real-Time Integrity", "bssap.real_time_int", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x01, + NULL, HFILL } + }, { &hf_gsm_bssmap_le_lcs_cause_value, { "Cause Value", "gsm_bssmap_le.lcsCauseValue", FT_UINT8, BASE_HEX, VALS(bssmap_le_lcs_cause_values), 0x0, |