aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/gsmmap
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-07-04 19:09:38 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-07-04 19:09:38 +0000
commitde00180fe96db678cde0ecca3c82ea10d6fd1700 (patch)
treea8b9b824f888df08a0fe4e9ff1c9c327b48c1011 /asn1/gsmmap
parent96389d268c491173d1bed15403e672db47d3e2d2 (diff)
Add dissection of BSS-MAP elements and a fix to dissect Tele and Bearer service again.
svn path=/trunk/; revision=14849
Diffstat (limited to 'asn1/gsmmap')
-rw-r--r--asn1/gsmmap/gsmmap.cnf52
-rw-r--r--asn1/gsmmap/packet-gsm_map-template.c2
2 files changed, 50 insertions, 4 deletions
diff --git a/asn1/gsmmap/gsmmap.cnf b/asn1/gsmmap/gsmmap.cnf
index 325eabb7be..2c8178b153 100644
--- a/asn1/gsmmap/gsmmap.cnf
+++ b/asn1/gsmmap/gsmmap.cnf
@@ -193,11 +193,17 @@ ModificationRequestFor-CF-Info/noReplyConditionTime ext-noReplyConditionTime
offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &protocolId);
#----------------------------------------------------------------------------------------
+#.FN_BODY AccessNetworkProtocolId
+
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &AccessNetworkProtocolId);
+
+#----------------------------------------------------------------------------------------
#.FN_BODY SignalInfo
tvbuff_t *parameter_tvb;
guint8 octet;
guint8 length;
+ tvbuff_t *next_tvb;
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
&parameter_tvb);
@@ -210,8 +216,14 @@ ModificationRequestFor-CF-Info/noReplyConditionTime ext-noReplyConditionTime
/* gsm-0806 */
case 2:
break;
- /* gsm-BSSMAP */
+ /* gsm-BSSMAP TODO Is it correct to stripp off tw first octets here?*/
case 3:
+ octet = tvb_get_guint8(parameter_tvb,0);
+ length = tvb_get_guint8(parameter_tvb,1);
+ if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
+ next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1);
+ dissect_bssmap(next_tvb, pinfo, tree);
+ }
break;
/* ets-300102-1 (~Q.931 ) */
case 4:
@@ -223,6 +235,37 @@ ModificationRequestFor-CF-Info/noReplyConditionTime ext-noReplyConditionTime
default:
break;
}
+
+#----------------------------------------------------------------------------------------
+#.FN_BODY LongSignalInfo
+
+ tvbuff_t *parameter_tvb;
+ guint8 octet;
+ guint8 length;
+ tvbuff_t *next_tvb;
+
+ offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ &parameter_tvb);
+ if (!parameter_tvb)
+ return offset;
+ switch (AccessNetworkProtocolId){
+ /* ts3G-48006 */
+ case 1:
+ octet = tvb_get_guint8(parameter_tvb,0);
+ length = tvb_get_guint8(parameter_tvb,1);
+ if ( octet == 0) {/* DISCRIMINATION TS 48 006 */
+ /* gsm-BSSMAP? */
+ next_tvb = tvb_new_subset(parameter_tvb, 2, -1, -1);
+ dissect_bssmap(next_tvb, pinfo, tree);
+ }
+ break;
+ /* ts3G-25413 */
+ case 2:
+ break;
+ default:
+ break;
+
+ }
#----------------------------------------------------------------------------------------
#.FN_BODY PrivateExtension/extType
@@ -236,9 +279,10 @@ ModificationRequestFor-CF-Info/noReplyConditionTime ext-noReplyConditionTime
SS-Code TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ssCode_vals)
Teleservice TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Teleservice_vals)
Bearerservice TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Bearerservice_vals)
-Ext_Teleservice TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Teleservice_vals)
-Ext_Bearerservice TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Bearerservice_vals)
-
+TeleserviceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Teleservice_vals)
+BearerServiceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Bearerservice_vals)
+Ext-TeleserviceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Teleservice_vals)
+Ext-BearerServiceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Bearerservice_vals)
#.END
diff --git a/asn1/gsmmap/packet-gsm_map-template.c b/asn1/gsmmap/packet-gsm_map-template.c
index 806a834a2b..3f454b49f8 100644
--- a/asn1/gsmmap/packet-gsm_map-template.c
+++ b/asn1/gsmmap/packet-gsm_map-template.c
@@ -44,6 +44,7 @@
#include "packet-ber.h"
#include "packet-q931.h"
#include "packet-gsm_map.h"
+#include "packet-gsm_a.h"
#define PNAME "GSM Mobile Application"
#define PSNAME "GSM_MAP"
@@ -108,6 +109,7 @@ dissector_handle_t map_handle;
static proto_tree *top_tree;
static int application_context_version;
gint protocolId;
+gint AccessNetworkProtocolId;
static int gsm_map_tap = -1;