diff options
author | Anders Broman <anders.broman@ericsson.com> | 2005-08-22 16:19:31 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2005-08-22 16:19:31 +0000 |
commit | 1f0b3d1d384fae374cb896b9b2334221ab28e50c (patch) | |
tree | 41b2fba5498c2ae067a092da28e5641e2069682b /asn1/gsmmap/packet-gsm_map-template.c | |
parent | 86ea8b88f3b721e1001f898ed05d8ba5f1ecf20e (diff) |
Fix decoding of sendIdentificationArg/Res and ProvideSubscriberLocation
svn path=/trunk/; revision=15510
Diffstat (limited to 'asn1/gsmmap/packet-gsm_map-template.c')
-rw-r--r-- | asn1/gsmmap/packet-gsm_map-template.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/asn1/gsmmap/packet-gsm_map-template.c b/asn1/gsmmap/packet-gsm_map-template.c index 6dcd41638e..16a24e5b11 100644 --- a/asn1/gsmmap/packet-gsm_map-template.c +++ b/asn1/gsmmap/packet-gsm_map-template.c @@ -521,7 +521,7 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv offset=dissect_gsm_map_DeactivateTraceModeArg(FALSE, tvb, offset, pinfo, tree, -1); break; case 55: /*sendIdentification*/ - offset=dissect_gsm_map_TMSI(FALSE, tvb, offset, pinfo, tree, -1); + offset=dissect_gsm_map_SendIdentificationArg(FALSE, tvb, offset, pinfo, tree, -1); break; case 56: /*sendAuthenticationInfo*/ if (application_context_version < 3 ){ @@ -606,8 +606,6 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv offset=dissect_gsm_map_SecureTransportArg(FALSE, tvb, offset, pinfo, tree, -1); break; case 83: /*provideSubscriberLocation*/ - offset=dissect_gsm_map_EraseCC_EntryArg(FALSE, tvb, offset, pinfo, tree, -1); - break; offset=dissect_gsm_map_ProvideSubscriberLocation_Arg(FALSE, tvb, offset, pinfo, tree, -1); break; case 85: /*sendRoutingInfoForLCS*/ @@ -748,8 +746,15 @@ static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff case 51: /*deactivateTraceMode*/ offset=dissect_gsm_map_DeactivateTraceModeRes(FALSE, tvb, offset, pinfo, tree, -1); break; - case 55: /*sendIdentification*/ - offset=dissect_gsm_map_SendIdentificationRes(FALSE, tvb, offset, pinfo, tree, -1); + case 55: /*sendIdentification + * In newer versions IMSI and authenticationSetList is OPTIONAL and two new parameters added + * however if the tag (3) is stripped of it should work with the 'new' def.(?) + */ + octet = tvb_get_guint8(tvb,0) & 0xf; + if ( octet == 3){ /* This is a V3 message ??? */ + offset = offset +2; + } + offset=dissect_gsm_map_SendIdentificationRes(TRUE, tvb, offset, pinfo, tree, -1); break; case 56: /*sendAuthenticationInfo*/ octet = tvb_get_guint8(tvb,0) & 0xf; @@ -1385,7 +1390,9 @@ void proto_reg_handoff_gsm_map(void) { register_ber_oid_dissector_handle("0.4.0.0.1.0.14.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version3(3)" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.14.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version2(2)" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.14.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) infoRetrieval(14) version1(1)" ); - register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version2(2)" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.15.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version1(1)" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.15.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version2(2)" ); + register_ber_oid_dissector_handle("0.4.0.0.1.0.15.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) interVlrInfoRetrieval(15) version3(3)" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.16.3", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version3(3)" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.16.2", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version2(2)" ); register_ber_oid_dissector_handle("0.4.0.0.1.0.16.1", map_handle, proto_gsm_map,"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) subscriberDataMngt(16) version1(1)" ); |