aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/gsm_map
diff options
context:
space:
mode:
authordishadaniel <ddaniel@empirix.com>2018-06-01 06:11:23 -0400
committerAnders Broman <a.broman58@gmail.com>2018-06-04 12:17:18 +0000
commit236af95178ad127bfc5cdfebaa99260a10f8277b (patch)
treeae4fd900e1b119ec415123271ccb88d66452fd14 /epan/dissectors/asn1/gsm_map
parent79b12ab0713f6d7b6ce536f9ce1382f6901914e0 (diff)
Added support for new proprietary fields (private extensions) for Ericsson.
Change-Id: Ie97289527dbcef7e5d18e5e152659ebb5de9bc19 Reviewed-on: https://code.wireshark.org/review/27940 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/asn1/gsm_map')
-rw-r--r--epan/dissectors/asn1/gsm_map/Ericsson.asn146
-rw-r--r--epan/dissectors/asn1/gsm_map/Nokia.asn84
-rw-r--r--epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c18
3 files changed, 154 insertions, 94 deletions
diff --git a/epan/dissectors/asn1/gsm_map/Ericsson.asn b/epan/dissectors/asn1/gsm_map/Ericsson.asn
index 34a2cdc89b..b0206d7809 100644
--- a/epan/dissectors/asn1/gsm_map/Ericsson.asn
+++ b/epan/dissectors/asn1/gsm_map/Ericsson.asn
@@ -13,7 +13,11 @@ BEGIN
IMPORTS
IMSI,
- IMEI
+ IMEI,
+ ISDN-AddressString,
+ Ext-SS-Status,
+ SignalInfo,
+ TBCD-STRING
FROM MAP-CommonDataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-CommonDataTypes (18) version13 (13)}
@@ -23,7 +27,8 @@ FROM MAP-MS-DataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-MS-DataTypes (11) version13 (13)}
- ExtensionContainer
+ ExtensionContainer,
+ PrivateExtension
FROM MAP-ExtensionDataTypes {
itu-t identified-organization (4) etsi (0) mobileDomain (0)
gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version13 (13)}
@@ -38,5 +43,142 @@ EnhancedCheckIMEI-Arg ::= SEQUENCE {
extensionContainer ExtensionContainer OPTIONAL,
...}
+
+-- Start of adding Private Extensions for EricssonS
+
+ExtensionSet MAP-EXTENSION ::= {
+ { &ExtensionType; ExtensionType, &extensionId; {1 2 826 0 1249 58 1 0} },
+ ...}
+
+ExtensionType ::= CHOICE {
+ isdArgType [1] IsdArgType,
+ isdResType [2] IsdResType,
+ dsdArgType [3] DsdArgType,
+ sriArgType [4] SRIArgType,
+ sriResType [5] SRIResType,
+ prnArgType [6] PrnArgType,
+ ulArgType [7] UlArgType,
+ rdArgType [8] RdArgType,
+ saiArgType [9] SaiArgType,
+ saiResType [10] SaiResType,
+ atiArgType [11] AtiArgType,
+ atiResType [12] AtiResType,
+ extAtiArgType [13] ExtAtiArgType
+ }
+
+IsdArgType ::= SEQUENCE (SIZE(1..50)) OF
+ IsdArgData
+
+IsdArgData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ privateFeatureData PrivateFeatureData OPTIONAL,
+ ...}
+
+PrivateFeatureData ::= CHOICE {
+ subscriptionTypeInfo [3] SubscriptionTypeInfo,
+ oickInfo [7] OickInfo
+ }
+
+OickInfo ::= SEQUENCE {
+ ss-Status Ext-SS-Status,
+ inCategoryKey INCategoryKey }
+
+INCategoryKey ::= TBCD-STRING (SIZE(1..3))
+
+SubscriptionTypeInfo ::= SEQUENCE {
+ subscriptionType SubscriptionType }
+
+SubscriptionType ::= OCTET STRING (SIZE(1))
+
+IsdResType ::= SEQUENCE (SIZE(1..50)) OF
+ IsdResData
+
+IsdResData ::= SEQUENCE {
+ supportedPrivateFeature [1] PrivateFeatureCode OPTIONAL,
+ ... }
+
+DsdArgType ::= SEQUENCE (SIZE (1..50)) OF
+ DsdArgData
+
+DsdArgData ::= SEQUENCE {
+ privateFeatureWithdraw PrivateFeatureCode }
+
+SRIArgType ::= SEQUENCE (SIZE(1..50)) OF
+ SriArgData
+
+SriArgData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ extraNetworkInfo [2] ExtraSignalInfo OPTIONAL,
+ ... }
+
+SRIResType ::= SEQUENCE (SIZE(1..50)) OF
+ SriResData
+
+SriResData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ inCategoryKey [2] INCategoryKey OPTIONAL,
+ subscriptionType [5] SubscriptionType OPTIONAL,
+ ... }
+
+PrnArgType ::= SEQUENCE (SIZE(1..50)) OF
+ PrnArgData
+
+PrnArgData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ ...,
+ extraNetworkInfo [2] ExtraSignalInfo OPTIONAL }
+
+UlArgType ::= SEQUENCE (SIZE(1..50)) OF
+ UlArgData
+
+UlArgData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ privateFeatureUlArgData PrivateFeatureUlArgData OPTIONAL,
+ ... }
+
+PrivateFeatureUlArgData ::= CHOICE {
+ adc [3] IMEI }
+
+ExtraProtocolId ::= INTEGER { q763 (1)} (1..20)
+
+ExtraSignalInfo ::= [PRIVATE 1] SEQUENCE {
+ protocolId ExtraProtocolId,
+ signalInfo SignalInfo }
+
+SaiArgType ::= SEQUENCE {
+ msisdn [1] NULL OPTIONAL,
+ noAuthenVectorsRequested [2] NULL OPTIONAL
+ }
+
+SaiResType ::= SEQUENCE {
+ msIsdn [1] ISDN-AddressString OPTIONAL
+ }
+
+AtiArgType ::= SEQUENCE {
+ requestedInfoType [0] RequestedInfoType OPTIONAL
+ }
+
+AtiResType ::= SEQUENCE {
+ toBeDecided [1] NULL OPTIONAL
+ }
+
+RdArgType ::= SEQUENCE {
+ toBeDecidedOne [1] NULL OPTIONAL
+ }
+
+RequestedInfoType ::= SEQUENCE {
+ sgsnNumber [0] NULL OPTIONAL
+ }
+
+ExtAtiArgType ::= SEQUENCE (SIZE (1..50)) OF AtiArgData
+
+AtiArgData ::= SEQUENCE {
+ privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
+ ...}
+
+PrivateFeatureCode ::= OCTET STRING (SIZE (1))
+
+-- End of adding Private Extension for Ericsson
+
END
diff --git a/epan/dissectors/asn1/gsm_map/Nokia.asn b/epan/dissectors/asn1/gsm_map/Nokia.asn
index 75536232ab..032a72ac37 100644
--- a/epan/dissectors/asn1/gsm_map/Nokia.asn
+++ b/epan/dissectors/asn1/gsm_map/Nokia.asn
@@ -491,90 +491,6 @@ RoutingCategoryExt ::= [PRIVATE 0] SEQUENCE {
extRoutingCategory [1] ExtRoutingCategory OPTIONAL,
... }
-ExtensionType ::= CHOICE {
- isdArgType [1] IsdArgType,
- isdResType [2] IsdResType,
- dsdArgType [3] DsdArgType,
- sriArgType [4] SriArgType,
- sriResType [5] SriResType,
- prnArgType [6] PrnArgType,
- ulArgType [7] UlArgType }
-
-IsdArgType ::= SEQUENCE (SIZE(1..50)) OF
- IsdArgData
-
-IsdArgData ::= SEQUENCE {
- privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
- privateFeatureData PrivateFeatureData OPTIONAL,
- ...}
-
-PrivateFeatureCode ::= OCTET STRING (SIZE (1))
-
-PrivateFeatureData ::= CHOICE {
- oickInfo [7] OickInfo,
- subscriptionTypeInfo [3] SubscriptionTypeInfo }
-
-OickInfo ::= SEQUENCE {
- ss-Status Ext-SS-Status,
- inCategoryKey INCategoryKey }
-
-INCategoryKey ::= TBCD-STRING (SIZE(1..3))
-
-SubscriptionTypeInfo ::= SEQUENCE {
- subscriptionType SubscriptionType }
-
-SubscriptionType ::= OCTET STRING (SIZE(1))
-
-IsdResType ::= SEQUENCE (SIZE(1..50)) OF
- IsdResData
-
-IsdResData ::= SEQUENCE {
- supportedPrivateFeature [1] PrivateFeatureCode OPTIONAL,
- ... }
-
-DsdArgType ::= SEQUENCE (SIZE (1..50)) OF
- DsdArgData
-
-DsdArgData ::= SEQUENCE {
- privateFeatureWithdraw PrivateFeatureCode }
-
-SriArgType ::= SEQUENCE (SIZE(1..50)) OF
- SriArgData
-
-SriArgData ::= SEQUENCE {
- privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
- extraNetworkInfo [2] ExtraSignalInfo OPTIONAL,
- ... }
-
-SriResType ::= SEQUENCE (SIZE(1..50)) OF
- SriResData
-
-SriResData ::= SEQUENCE {
- privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
- inCategoryKey [2] INCategoryKey OPTIONAL,
- subscriptionType [5] SubscriptionType OPTIONAL,
- ... }
-
-PrnArgType ::= SEQUENCE (SIZE(1..50)) OF
- PrnArgData
-
-PrnArgData ::= SEQUENCE {
- privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
- ...,
- extraNetworkInfo [2] ExtraSignalInfo OPTIONAL }
-
-
-UlArgType ::= SEQUENCE (SIZE(1..50)) OF
- UlArgData
-
-UlArgData ::= SEQUENCE {
- privateFeatureCode [1] PrivateFeatureCode OPTIONAL,
- privateFeatureUlArgData PrivateFeatureUlArgData OPTIONAL,
- ... }
-
-PrivateFeatureUlArgData ::= CHOICE {
- adc [3] IMEI }
-
SriForSMArgExt ::= [PRIVATE 0] SEQUENCE {
cfuSMSCounter [0] CfuSMSCounter OPTIONAL,
cfusmcfo [2] NULL OPTIONAL,
diff --git a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
index d7fed1efb2..d36a83d6a9 100644
--- a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
+++ b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
@@ -2113,6 +2113,14 @@ static int dissect_gsm_mapext_PlmnContainer(tvbuff_t *tvb, packet_info *pinfo, p
return dissect_gsm_old_PlmnContainer(FALSE, tvb, 0, &asn1_ctx, tree, -1);
}
+static int dissect_gsm_map_ericsson_ext_ExtensionType(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
+ proto_tree *tree;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ tree = proto_tree_add_subtree(parent_tree, tvb, 0, -1, ett_gsm_map_ericsson_ExtensionType, NULL, "Ericsson Extension");
+ return dissect_gsm_map_ericsson_ExtensionType(FALSE, tvb, 0, &asn1_ctx, tree, -1);
+}
+
static int dissect_NokiaMAP_ext_SriResExtension(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
proto_tree *tree;
asn1_ctx_t asn1_ctx;
@@ -2256,12 +2264,6 @@ static int dissect_NokiaMAP_ext_AnyTimeModArgExt(tvbuff_t *tvb, packet_info *pin
return dissect_NokiaMAP_Extensions_AnyTimeModArgExt(FALSE, tvb, 0, &asn1_ctx, tree, -1);
}
-static int dissect_NokiaMAP_ext_ExtensionType(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
- asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
- return dissect_NokiaMAP_Extensions_ExtensionType(FALSE, tvb, 0, &asn1_ctx, parent_tree, -1);
-}
-
static int dissect_NokiaMAP_ext_AccessTypeExt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) {
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
@@ -3013,11 +3015,11 @@ void proto_reg_handoff_gsm_map(void) {
register_ber_oid_dissector("0.34.25",dissect_NokiaMAP_ext_RoutingCategoryExt,proto_gsm_map,"Nokia Routing Category Extension");
register_ber_oid_dissector("0.34.26",dissect_NokiaMAP_ext_AnyTimeModArgExt,proto_gsm_map,"Nokia AnyTimeMod Extension");
- register_ber_oid_dissector("1.2.826.0.1249.58.1.0",dissect_NokiaMAP_ext_ExtensionType,proto_gsm_map,"Nokia ExtensionType Extension");
-
register_ber_oid_dissector("1.3.12.2.1107.3.66.1.1",dissect_NokiaMAP_ext_AccessTypeExt,proto_gsm_map,"Nokia AccessTypeExt Extension");
register_ber_oid_dissector("1.3.12.2.1107.3.66.1.3",dissect_NokiaMAP_ext_AccessSubscriptionListExt,proto_gsm_map,"Nokia AccessSubscriptionListExt Extension");
register_ber_oid_dissector("1.3.12.2.1107.3.66.1.6",dissect_NokiaMAP_ext_AllowedServiceData,proto_gsm_map,"Nokia AllowedServiceData Extension");
+
+ register_ber_oid_dissector("1.2.826.0.1249.58.1.0",dissect_gsm_map_ericsson_ext_ExtensionType,proto_gsm_map,"Ericsson ExtensionType Extension");
}
else {
range_foreach(ssn_range, range_delete_callback, NULL);