aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_bssmap_le.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2011-01-31 15:16:45 +0000
committerAnders Broman <anders.broman@ericsson.com>2011-01-31 15:16:45 +0000
commit7a78a180c7d119a645bb446ae3d87aa1272a09fb (patch)
treee96ee11037b588a1d7bbf3e93b5541eb6d54e05f /epan/dissectors/packet-gsm_bssmap_le.c
parent1d9fe2c424bc06f05e1f2f1fefb23067c3582559 (diff)
Dissect more IE's in PERFORM-LOCATION-REQUEST.
svn path=/trunk/; revision=35721
Diffstat (limited to 'epan/dissectors/packet-gsm_bssmap_le.c')
-rw-r--r--epan/dissectors/packet-gsm_bssmap_le.c167
1 files changed, 137 insertions, 30 deletions
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,