aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
authorLuca Melette <luca@srlabs.de>2015-07-10 22:55:27 +0200
committerAnders Broman <a.broman58@gmail.com>2015-07-29 07:27:33 +0000
commit5b856134f66f96d1073dd95df9c213cc41869706 (patch)
tree4bfc3201ba2593b6085c0e23e814db51cf520753 /asn1
parentb467f1c211eb34dba70842a9262827b1e7925cfc (diff)
GSM_MAP: adding dissector for sendParameters (MAPv1)
The current ASN.1 description of MAP (3GPP 29.002) is missing this operation. I recovered the needed code from an old MAP description (ets_300599e01p) and integrated the missing parts into the asn tree and C template file (via asn2wrs). Change-Id: Ibe05e6a99f3f95ac66740b5d319a7200fdb3e54b Reviewed-on: https://code.wireshark.org/review/9594 Petri-Dish: Anders Broman <a.broman58@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'asn1')
-rw-r--r--asn1/gsm_map/GSMMAP.asn49
-rw-r--r--asn1/gsm_map/MAP-MS-DataTypes.asn5
-rw-r--r--asn1/gsm_map/gsm_map.cnf2
-rw-r--r--asn1/gsm_map/packet-gsm_map-template.c11
4 files changed, 55 insertions, 12 deletions
diff --git a/asn1/gsm_map/GSMMAP.asn b/asn1/gsm_map/GSMMAP.asn
index fc43bf48db..d1334d4406 100644
--- a/asn1/gsm_map/GSMMAP.asn
+++ b/asn1/gsm_map/GSMMAP.asn
@@ -26,7 +26,8 @@ IMPORTS
LMSI,
ProtocolId,
SignalInfo,
- TeleserviceCode
+ TeleserviceCode,
+ SubscriberIdentity
FROM MAP-CommonDataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-CommonDataTypes (18) version11 (11)}
@@ -43,7 +44,9 @@ FROM MAP-CH-DataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-CH-DataTypes (13) version11 (11)}
- CUG-Interlock
+ CUG-Interlock,
+ SubscriberData,
+ AuthenticationSetList
FROM MAP-MS-DataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-MS-DataTypes (11) version15 (15)}
@@ -679,6 +682,48 @@ RoutingInfoForSM-ArgV1 ::= SEQUENCE {
--correlationID [15] CorrelationID OPTIONAL
}
+Ki ::= OCTET STRING (SIZE (16))
+
+SendParametersArg ::= SEQUENCE {
+ subscriberId SubscriberIdentity,
+ requestParameterList RequestParameterList}
+
+RequestParameter ::= ENUMERATED {
+ requestIMSI (0),
+ requestAuthenticationSet (1),
+ requestSubscriberData (2),
+ requestKi (4)}
+
+RequestParameterList ::= SEQUENCE SIZE (1..2) OF
+ RequestParameter
+
+SentParameter ::= CHOICE {
+ imsi [0] IMSI,
+ authenticationSet [1] AuthenticationSetList,
+ subscriberData [2] SubscriberData,
+ ki [4] Ki}
+
+maxNumOfSentParameter INTEGER ::= 6
+ -- This NamedValue corresponds to the maximum number of
+ -- authentication set which may be returned by a HLR plus 1
+
+SentParameterList ::= SEQUENCE SIZE (1..maxNumOfSentParameter) OF
+ SentParameter
+
+
+sendParameters OPERATION ::= {
+ ARGUMENT
+ SendParametersArg
+ RESULT
+ SentParameterList
+ -- optional
+ -- nothing is returned, if no requested parameter is
+ -- available or exists
+ ERRORS {
+ UnexpectedDataValue,
+ UnknownSubscriber,
+ UnidentifiedSubscriber}
+ CODE local:9 }
END
diff --git a/asn1/gsm_map/MAP-MS-DataTypes.asn b/asn1/gsm_map/MAP-MS-DataTypes.asn
index 55e33ad9c6..60b439b30c 100644
--- a/asn1/gsm_map/MAP-MS-DataTypes.asn
+++ b/asn1/gsm_map/MAP-MS-DataTypes.asn
@@ -159,8 +159,9 @@ NoteMM-EventArg,
-- VGCS / VBS types types
GroupId,
Long-GroupId,
-AdditionalSubscriptions
-
+AdditionalSubscriptions,
+-- WS adittion
+AuthenticationSetList
;
IMPORTS
diff --git a/asn1/gsm_map/gsm_map.cnf b/asn1/gsm_map/gsm_map.cnf
index 745ed7f700..53f7724776 100644
--- a/asn1/gsm_map/gsm_map.cnf
+++ b/asn1/gsm_map/gsm_map.cnf
@@ -39,8 +39,6 @@ DummyMAP gsm_old
EricssonMAP gsm_map.ericsson
Remote-Operations-Information-Objects ROS
-#.NO_EMIT
-SubscriberData
#.NO_EMIT ONLY_VALS
CallBarredParam
diff --git a/asn1/gsm_map/packet-gsm_map-template.c b/asn1/gsm_map/packet-gsm_map-template.c
index 586cd48b83..1bdeb7f9e3 100644
--- a/asn1/gsm_map/packet-gsm_map-template.c
+++ b/asn1/gsm_map/packet-gsm_map-template.c
@@ -1018,8 +1018,9 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
case 8: /*deleteSubscriberData*/
offset=dissect_gsm_map_ms_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
break;
- /* TODO find out why this isn't in the ASN1 file */
- /* reserved sendParameters (9) */
+ case 9: /*sendParameters*/
+ offset = dissect_gsm_old_SendParametersArg(FALSE, tvb, offset, actx, tree, -1);
+ break;
case 10: /*registerSS*/
offset=dissect_gsm_map_ss_RegisterSS_Arg(FALSE, tvb, offset, actx, tree, -1);
break;
@@ -1388,11 +1389,9 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,
case 8: /*deleteSubscriberData*/
offset=dissect_gsm_map_ms_DeleteSubscriberDataRes(FALSE, tvb, offset, actx, tree, -1);
break;
- /* TODO find out why this isn't in the ASN1 file
- case 9: sendParameters
- offset=dissect_gsm_map_DeleteSubscriberDataArg(FALSE, tvb, offset, actx, tree, -1);
+ case 9: /*sendParameters*/
+ offset = dissect_gsm_old_SentParameterList(FALSE, tvb, offset, actx, tree, -1);
break;
- */
case 10: /*registerSS*/
offset=dissect_gsm_map_ss_SS_Info(FALSE, tvb, offset, actx, tree, -1);
break;