diff options
author | Luca Melette <luca@srlabs.de> | 2015-07-10 22:55:27 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2015-07-29 07:27:33 +0000 |
commit | 5b856134f66f96d1073dd95df9c213cc41869706 (patch) | |
tree | 4bfc3201ba2593b6085c0e23e814db51cf520753 /asn1 | |
parent | b467f1c211eb34dba70842a9262827b1e7925cfc (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.asn | 49 | ||||
-rw-r--r-- | asn1/gsm_map/MAP-MS-DataTypes.asn | 5 | ||||
-rw-r--r-- | asn1/gsm_map/gsm_map.cnf | 2 | ||||
-rw-r--r-- | asn1/gsm_map/packet-gsm_map-template.c | 11 |
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; |