aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndersBroman <anders.broman@ericsson.com>2017-10-27 15:47:42 +0200
committerAnders Broman <a.broman58@gmail.com>2017-10-27 14:36:12 +0000
commitbb7511bccf5427a25dc26b14ba7fe76d464e8e2f (patch)
tree139aecfa1adcb6ffa25ae6c821590d133f98202a
parent4ee492e9109c95171bd425b4ac327c613ce56f00 (diff)
[BSSMAP-LE] Add dissection of 10.18 Location Type.
Change-Id: I54900e13eca61cd1f190934a77cb0e704c877dfe Reviewed-on: https://code.wireshark.org/review/24103 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/dissectors/packet-gsm_bssmap_le.c52
1 files changed, 51 insertions, 1 deletions
diff --git a/epan/dissectors/packet-gsm_bssmap_le.c b/epan/dissectors/packet-gsm_bssmap_le.c
index 3c68904..86cb2bd 100644
--- a/epan/dissectors/packet-gsm_bssmap_le.c
+++ b/epan/dissectors/packet-gsm_bssmap_le.c
@@ -176,6 +176,25 @@ static const value_string bssmap_le_response_time_definitions_vals[] = {
{ 0, NULL}
};
+static const value_string bssmap_le_loc_inf_vals[] = {
+ { 0, "Current Geographic Location" },
+ { 1, "Location Assistance Information for the target MS" },
+ { 2, "Deciphering keys for broadcast assistance data for the target MS" },
+ { 0, NULL }
+};
+
+static const value_string bssmap_le_pos_method_vals[] = {
+ { 0, "Reserved" },
+ { 1, "Mobile Assisted E-OTD" },
+ { 2, "Mobile Based E-OTD" },
+ { 3, "Assisted GPS" },
+ { 4, "Assisted GANSS " },
+ { 5, "Assisted GPS and Assisted GANSS" },
+ { 0, NULL }
+};
+
+
+
/* Initialize the protocol and registered fields */
static int proto_bssmap_le = -1;
int hf_gsm_bssmap_le_elem_id = -1;
@@ -214,6 +233,8 @@ static int hf_gsm_bssmap_le_vertical_accuracy = -1;
static int hf_gsm_bssmap_le_response_time_category = -1;
static int hf_gsm_bssmap_le_apdu = -1;
static int hf_gsm_bssmap_le_message_elements = -1;
+static int hf_gsm_bssmap_le_location_inf = -1;
+static int hf_gsm_bssmap_le_pos_method = -1;
/* Initialize the subtree pointers */
@@ -554,6 +575,25 @@ de_bmaple_lcs_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
/*
* 10.18 Location Type
*/
+static guint16
+de_bmaple_location_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+{
+ guint32 curr_offset;
+
+ curr_offset = offset;
+
+ /* Location information (octet 3) */
+ proto_tree_add_item(tree, hf_gsm_bssmap_le_location_inf, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
+ curr_offset++;
+ if (len == 1) {
+ return len;
+ }
+ /* Positioning Method (octet 4) */
+ proto_tree_add_item(tree, hf_gsm_bssmap_le_pos_method, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
+ curr_offset++;
+
+ return(curr_offset - offset);
+}
/*
* 10.19 Network Element Identity
*/
@@ -714,7 +754,7 @@ guint16 (*bssmap_le_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
/* 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 */
+ de_bmaple_location_type, /* 10.18 Location Type */
be_ganss_loc_type, /* GANSS Location Type */
NULL, /* 10.9 Geographic Location */
de_bmaple_pos_dta, /* 10.20 Positioning Data */
@@ -1172,6 +1212,16 @@ proto_register_gsm_bssmap_le(void)
FT_BYTES, BASE_NONE, NULL, 0x0,
NULL, HFILL}
},
+ { &hf_gsm_bssmap_le_location_inf,
+ { "Location Information", "gsm_bssmap_le.location_inf",
+ FT_UINT8, BASE_HEX, VALS(bssmap_le_loc_inf_vals), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_gsm_bssmap_le_pos_method,
+ { "Positioning Method", "gsm_bssmap_le.pos_method",
+ FT_UINT8, BASE_HEX, VALS(bssmap_le_pos_method_vals), 0x0,
+ NULL, HFILL }
+ },
};
expert_module_t* expert_gsm_a_bssmap_le;