aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2019-03-01 14:41:00 +0100
committerAnders Broman <a.broman58@gmail.com>2019-03-01 14:15:17 +0000
commit0bf337749e9a388e030543c60ff6412e481b32e0 (patch)
tree7adcfd1450e0257bd68101bec49521cc0ed0ea66
parent349735613dc3e02340dc73a1dd5397310c4552c5 (diff)
IMSI based filtering for SCCP/RANAP
Bug: 9074 Change-Id: Iae7e233d03367678a6925c732bf4b6d78c211cd8 Reviewed-on: https://code.wireshark.org/review/32286 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/dissectors/asn1/ranap/ranap.cnf2
-rw-r--r--epan/dissectors/packet-e212.c12
-rw-r--r--epan/dissectors/packet-ranap.c206
-rw-r--r--epan/dissectors/packet-sccp.c14
-rw-r--r--epan/dissectors/packet-sccp.h2
5 files changed, 132 insertions, 104 deletions
diff --git a/epan/dissectors/asn1/ranap/ranap.cnf b/epan/dissectors/asn1/ranap/ranap.cnf
index 7148e4e9dd..823ce4bda5 100644
--- a/epan/dissectors/asn1/ranap/ranap.cnf
+++ b/epan/dissectors/asn1/ranap/ranap.cnf
@@ -203,6 +203,8 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
sccp_info->data.co.assoc->calling_party =
wmem_strdup_printf(wmem_file_scope(), "IMSI: %%s", digit_str );
+
+ sccp_info->data.co.assoc->imsi = wmem_strdup(wmem_file_scope(), digit_str );
}
#.END
diff --git a/epan/dissectors/packet-e212.c b/epan/dissectors/packet-e212.c
index 18b8f380df..40970bcb9d 100644
--- a/epan/dissectors/packet-e212.c
+++ b/epan/dissectors/packet-e212.c
@@ -2873,6 +2873,7 @@ value_string_ext mcc_mnc_3digits_codes_ext = VALUE_STRING_EXT_INIT(mcc_mnc_3digi
static int proto_e212 = -1;
static int hf_E212_imsi = -1;
+static int hf_e212_assoc_imsi = -1;
static int hf_E212_mcc = -1;
static int hf_E212_mcc_lai = -1;
static int hf_E212_mcc_sai = -1;
@@ -3331,7 +3332,8 @@ dissect_e212_imsi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offse
if (!is_imsi_string_valid(imsi_str)) {
expert_add_info(pinfo, item, &ei_E212_imsi_malformed);
}
-
+ item = proto_tree_add_string(tree, hf_e212_assoc_imsi, tvb, offset, length, imsi_str);
+ PROTO_ITEM_SET_GENERATED(item);
subtree = proto_item_add_subtree(item, ett_e212_imsi);
if(skip_first) {
@@ -3356,6 +3358,8 @@ dissect_e212_utf8_imsi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
if (!is_imsi_string_valid(imsi_str)) {
expert_add_info(pinfo, item, &ei_E212_imsi_malformed);
}
+ item = proto_tree_add_string(tree, hf_e212_assoc_imsi, tvb, offset, length, imsi_str);
+ PROTO_ITEM_SET_GENERATED(item);
subtree = proto_item_add_subtree(item, ett_e212_imsi);
@@ -3383,6 +3387,12 @@ proto_register_e212(void)
FT_STRING, BASE_NONE, NULL, 0x0,
"International mobile subscriber identity(IMSI)", HFILL }
},
+ { &hf_e212_assoc_imsi,
+ { "Association IMSI", "e212.assoc.imsi",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Used to tie MSGs related to the same IMSI", HFILL}
+ },
+
{ &hf_E212_mcc,
{ "Mobile Country Code (MCC)","e212.mcc",
FT_UINT16, BASE_DEC|BASE_EXT_STRING, &E212_codes_ext, 0x0,
diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c
index a9cfcb73a6..5fb494a7f2 100644
--- a/epan/dissectors/packet-ranap.c
+++ b/epan/dissectors/packet-ranap.c
@@ -2449,7 +2449,7 @@ dissect_ranap_AccuracyFulfilmentIndicator(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_ranap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 287 "./asn1/ranap/ranap.cnf"
+#line 289 "./asn1/ranap/ranap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -3304,7 +3304,7 @@ dissect_ranap_TracePropagationParameters(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_ranap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 310 "./asn1/ranap/ranap.cnf"
+#line 312 "./asn1/ranap/ranap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_item *item;
proto_tree *subtree, *nsap_tree;
@@ -3853,7 +3853,7 @@ dissect_ranap_BarometricPressure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_ranap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 394 "./asn1/ranap/ranap.cnf"
+#line 396 "./asn1/ranap/ranap.cnf"
tvbuff_t *value_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4, 4, FALSE, &value_tvb);
@@ -5293,7 +5293,7 @@ dissect_ranap_GlobalRNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_ranap_GTP_TEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 344 "./asn1/ranap/ranap.cnf"
+#line 346 "./asn1/ranap/ranap.cnf"
tvbuff_t *parameter_tvb=NULL;
int saved_hf;
@@ -5498,6 +5498,8 @@ dissect_ranap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
sccp_info->data.co.assoc->calling_party =
wmem_strdup_printf(wmem_file_scope(), "IMSI: %s", digit_str );
+
+ sccp_info->data.co.assoc->imsi = wmem_strdup(wmem_file_scope(), digit_str );
}
@@ -5812,7 +5814,7 @@ dissect_ranap_IntegrityProtectionInformation(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_ranap_RIMInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 447 "./asn1/ranap/ranap.cnf"
+#line 449 "./asn1/ranap/ranap.cnf"
tvbuff_t *value_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -6349,7 +6351,7 @@ dissect_ranap_LocationReportingTransferInformation(tvbuff_t *tvb _U_, int offset
static int
dissect_ranap_L3_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 275 "./asn1/ranap/ranap.cnf"
+#line 277 "./asn1/ranap/ranap.cnf"
tvbuff_t *l3_info_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -6900,7 +6902,7 @@ dissect_ranap_MSISDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_ranap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 211 "./asn1/ranap/ranap.cnf"
+#line 213 "./asn1/ranap/ranap.cnf"
tvbuff_t *nas_pdu_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -6938,7 +6940,7 @@ dissect_ranap_NAS_SynchronisationIndicator(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_ranap_NewBSS_To_OldBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 267 "./asn1/ranap/ranap.cnf"
+#line 269 "./asn1/ranap/ranap.cnf"
tvbuff_t *bss_info_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -7037,7 +7039,7 @@ dissect_ranap_Offload_RAB_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_ranap_OldBSS_ToNewBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 259 "./asn1/ranap/ranap.cnf"
+#line 261 "./asn1/ranap/ranap.cnf"
tvbuff_t *bss_info_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -8202,7 +8204,7 @@ dissect_ranap_RNSAPRelocationParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_ranap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 220 "./asn1/ranap/ranap.cnf"
+#line 222 "./asn1/ranap/ranap.cnf"
tvbuff_t *rrc_message_tvb=NULL;
guint8 container_choice=0;
@@ -8436,7 +8438,7 @@ dissect_ranap_Service_Handover(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_ranap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 379 "./asn1/ranap/ranap.cnf"
+#line 381 "./asn1/ranap/ranap.cnf"
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
@@ -8513,7 +8515,7 @@ static const per_sequence_t SourceRNC_ToTargetRNC_TransparentContainer_sequence[
static int
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 356 "./asn1/ranap/ranap.cnf"
+#line 358 "./asn1/ranap/ranap.cnf"
/* If SourceRNC-ToTargetRNC-TransparentContainer is called through
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU
ProtocolIE_ID may be unset
@@ -8776,7 +8778,7 @@ dissect_ranap_SRVCC_Operation_Possible(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_ranap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 389 "./asn1/ranap/ranap.cnf"
+#line 391 "./asn1/ranap/ranap.cnf"
dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU );
@@ -8830,7 +8832,7 @@ static const per_sequence_t TargetRNC_ToSourceRNC_TransparentContainer_sequence[
static int
dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 365 "./asn1/ranap/ranap.cnf"
+#line 367 "./asn1/ranap/ranap.cnf"
/* If TargetRNC-ToSourceRNC-TransparentContainer is called through
dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU
ProtocolIE_ID may be unset
@@ -9015,7 +9017,7 @@ dissect_ranap_UE_AggregateMaximumBitRate(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_ranap_UE_History_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 405 "./asn1/ranap/ranap.cnf"
+#line 407 "./asn1/ranap/ranap.cnf"
tvbuff_t *value_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -9430,7 +9432,7 @@ static const per_sequence_t Iu_ReleaseCommand_sequence[] = {
static int
dissect_ranap_Iu_ReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 457 "./asn1/ranap/ranap.cnf"
+#line 459 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Iu-ReleaseCommand ");
@@ -9449,7 +9451,7 @@ static const per_sequence_t Iu_ReleaseComplete_sequence[] = {
static int
dissect_ranap_Iu_ReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 461 "./asn1/ranap/ranap.cnf"
+#line 463 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Iu-ReleaseComplete ");
@@ -9549,7 +9551,7 @@ static const per_sequence_t RelocationRequired_sequence[] = {
static int
dissect_ranap_RelocationRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 465 "./asn1/ranap/ranap.cnf"
+#line 467 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RelocationRequired ");
@@ -9568,7 +9570,7 @@ static const per_sequence_t RelocationCommand_sequence[] = {
static int
dissect_ranap_RelocationCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 469 "./asn1/ranap/ranap.cnf"
+#line 471 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RelocationCommand ");
@@ -9637,7 +9639,7 @@ static const per_sequence_t RelocationPreparationFailure_sequence[] = {
static int
dissect_ranap_RelocationPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 473 "./asn1/ranap/ranap.cnf"
+#line 475 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RelocationPreparationFailure ");
@@ -9656,7 +9658,7 @@ static const per_sequence_t RelocationRequest_sequence[] = {
static int
dissect_ranap_RelocationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 477 "./asn1/ranap/ranap.cnf"
+#line 479 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RelocationRequest ");
@@ -9768,7 +9770,7 @@ static const per_sequence_t RelocationRequestAcknowledge_sequence[] = {
static int
dissect_ranap_RelocationRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 481 "./asn1/ranap/ranap.cnf"
+#line 483 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RelocationRequestAcknowledge ");
@@ -9838,7 +9840,7 @@ static const per_sequence_t RelocationFailure_sequence[] = {
static int
dissect_ranap_RelocationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 485 "./asn1/ranap/ranap.cnf"
+#line 487 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RelocationFailure ");
@@ -9857,7 +9859,7 @@ static const per_sequence_t RelocationCancel_sequence[] = {
static int
dissect_ranap_RelocationCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 489 "./asn1/ranap/ranap.cnf"
+#line 491 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RelocationCancel ");
@@ -9876,7 +9878,7 @@ static const per_sequence_t RelocationCancelAcknowledge_sequence[] = {
static int
dissect_ranap_RelocationCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 493 "./asn1/ranap/ranap.cnf"
+#line 495 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RelocationCancelAcknowledge ");
@@ -9895,7 +9897,7 @@ static const per_sequence_t SRNS_ContextRequest_sequence[] = {
static int
dissect_ranap_SRNS_ContextRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 497 "./asn1/ranap/ranap.cnf"
+#line 499 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SRNS-ContextRequest ");
@@ -9938,7 +9940,7 @@ static const per_sequence_t SRNS_ContextResponse_sequence[] = {
static int
dissect_ranap_SRNS_ContextResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 501 "./asn1/ranap/ranap.cnf"
+#line 503 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SRNS-ContextResponse ");
@@ -10010,7 +10012,7 @@ static const per_sequence_t SecurityModeCommand_sequence[] = {
static int
dissect_ranap_SecurityModeCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 505 "./asn1/ranap/ranap.cnf"
+#line 507 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SecurityModeCommand ");
@@ -10029,7 +10031,7 @@ static const per_sequence_t SecurityModeComplete_sequence[] = {
static int
dissect_ranap_SecurityModeComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 509 "./asn1/ranap/ranap.cnf"
+#line 511 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SecurityModeComplete ");
@@ -10048,7 +10050,7 @@ static const per_sequence_t SecurityModeReject_sequence[] = {
static int
dissect_ranap_SecurityModeReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 513 "./asn1/ranap/ranap.cnf"
+#line 515 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SecurityModeReject ");
@@ -10067,7 +10069,7 @@ static const per_sequence_t DataVolumeReportRequest_sequence[] = {
static int
dissect_ranap_DataVolumeReportRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 517 "./asn1/ranap/ranap.cnf"
+#line 519 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DataVolumeReportRequest ");
@@ -10110,7 +10112,7 @@ static const per_sequence_t DataVolumeReport_sequence[] = {
static int
dissect_ranap_DataVolumeReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 521 "./asn1/ranap/ranap.cnf"
+#line 523 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DataVolumeReport ");
@@ -10154,7 +10156,7 @@ static const per_sequence_t Reset_sequence[] = {
static int
dissect_ranap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 525 "./asn1/ranap/ranap.cnf"
+#line 527 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Reset ");
@@ -10173,7 +10175,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = {
static int
dissect_ranap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 529 "./asn1/ranap/ranap.cnf"
+#line 531 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ResetAcknowledge ");
@@ -10192,7 +10194,7 @@ static const per_sequence_t ResetResource_sequence[] = {
static int
dissect_ranap_ResetResource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 609 "./asn1/ranap/ranap.cnf"
+#line 611 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ResetResource ");
@@ -10235,7 +10237,7 @@ static const per_sequence_t ResetResourceAcknowledge_sequence[] = {
static int
dissect_ranap_ResetResourceAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 613 "./asn1/ranap/ranap.cnf"
+#line 615 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ResetResourceAcknowledge ");
@@ -10278,7 +10280,7 @@ static const per_sequence_t RAB_ReleaseRequest_sequence[] = {
static int
dissect_ranap_RAB_ReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 533 "./asn1/ranap/ranap.cnf"
+#line 535 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RAB-ReleaseRequest ");
@@ -10322,7 +10324,7 @@ static const per_sequence_t Iu_ReleaseRequest_sequence[] = {
static int
dissect_ranap_Iu_ReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 537 "./asn1/ranap/ranap.cnf"
+#line 539 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Iu-ReleaseRequest ");
@@ -10341,7 +10343,7 @@ static const per_sequence_t RelocationDetect_sequence[] = {
static int
dissect_ranap_RelocationDetect(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 541 "./asn1/ranap/ranap.cnf"
+#line 543 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RelocationDetect ");
@@ -10360,7 +10362,7 @@ static const per_sequence_t RelocationComplete_sequence[] = {
static int
dissect_ranap_RelocationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 545 "./asn1/ranap/ranap.cnf"
+#line 547 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RelocationComplete ");
@@ -10379,7 +10381,7 @@ static const per_sequence_t EnhancedRelocationCompleteRequest_sequence[] = {
static int
dissect_ranap_EnhancedRelocationCompleteRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 745 "./asn1/ranap/ranap.cnf"
+#line 747 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"EnhancedRelocationCompleteRequest ");
@@ -10425,7 +10427,7 @@ static const per_sequence_t EnhancedRelocationCompleteResponse_sequence[] = {
static int
dissect_ranap_EnhancedRelocationCompleteResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 749 "./asn1/ranap/ranap.cnf"
+#line 751 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"EnhancedRelocationCompleteResponse ");
@@ -10498,7 +10500,7 @@ static const per_sequence_t EnhancedRelocationCompleteFailure_sequence[] = {
static int
dissect_ranap_EnhancedRelocationCompleteFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 753 "./asn1/ranap/ranap.cnf"
+#line 755 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"EnhancedRelocationCompleteFailure ");
@@ -10517,7 +10519,7 @@ static const per_sequence_t EnhancedRelocationCompleteConfirm_sequence[] = {
static int
dissect_ranap_EnhancedRelocationCompleteConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 757 "./asn1/ranap/ranap.cnf"
+#line 759 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"EnhancedRelocationCompleteConfirm ");
@@ -10536,7 +10538,7 @@ static const per_sequence_t Paging_sequence[] = {
static int
dissect_ranap_Paging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 549 "./asn1/ranap/ranap.cnf"
+#line 551 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Paging ");
@@ -10555,7 +10557,7 @@ static const per_sequence_t CommonID_sequence[] = {
static int
dissect_ranap_CommonID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 553 "./asn1/ranap/ranap.cnf"
+#line 555 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonID ");
@@ -10574,7 +10576,7 @@ static const per_sequence_t CN_InvokeTrace_sequence[] = {
static int
dissect_ranap_CN_InvokeTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 557 "./asn1/ranap/ranap.cnf"
+#line 559 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CN-InvokeTrace ");
@@ -10593,7 +10595,7 @@ static const per_sequence_t CN_DeactivateTrace_sequence[] = {
static int
dissect_ranap_CN_DeactivateTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 561 "./asn1/ranap/ranap.cnf"
+#line 563 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CN-DeactivateTrace ");
@@ -10612,7 +10614,7 @@ static const per_sequence_t LocationReportingControl_sequence[] = {
static int
dissect_ranap_LocationReportingControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 565 "./asn1/ranap/ranap.cnf"
+#line 567 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"LocationReportingControl ");
@@ -10631,7 +10633,7 @@ static const per_sequence_t LocationReport_sequence[] = {
static int
dissect_ranap_LocationReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 569 "./asn1/ranap/ranap.cnf"
+#line 571 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"LocationReport ");
@@ -10650,7 +10652,7 @@ static const per_sequence_t InitialUE_Message_sequence[] = {
static int
dissect_ranap_InitialUE_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 573 "./asn1/ranap/ranap.cnf"
+#line 575 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"InitialUE-Message ");
@@ -10669,7 +10671,7 @@ static const per_sequence_t DirectTransfer_sequence[] = {
static int
dissect_ranap_DirectTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 577 "./asn1/ranap/ranap.cnf"
+#line 579 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DirectTransfer ");
@@ -10697,7 +10699,7 @@ static const per_sequence_t Overload_sequence[] = {
static int
dissect_ranap_Overload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 581 "./asn1/ranap/ranap.cnf"
+#line 583 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Overload ");
@@ -10716,7 +10718,7 @@ static const per_sequence_t ErrorIndication_sequence[] = {
static int
dissect_ranap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 585 "./asn1/ranap/ranap.cnf"
+#line 587 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ErrorIndication ");
@@ -10735,7 +10737,7 @@ static const per_sequence_t SRNS_DataForwardCommand_sequence[] = {
static int
dissect_ranap_SRNS_DataForwardCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 589 "./asn1/ranap/ranap.cnf"
+#line 591 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SRNS-DataForwardCommand ");
@@ -10754,7 +10756,7 @@ static const per_sequence_t ForwardSRNS_Context_sequence[] = {
static int
dissect_ranap_ForwardSRNS_Context(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 593 "./asn1/ranap/ranap.cnf"
+#line 595 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ForwardSRNS-Context ");
@@ -10773,7 +10775,7 @@ static const per_sequence_t RAB_AssignmentRequest_sequence[] = {
static int
dissect_ranap_RAB_AssignmentRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 597 "./asn1/ranap/ranap.cnf"
+#line 599 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RAB-AssignmentRequest ");
@@ -10822,7 +10824,7 @@ static const per_sequence_t RAB_SetupOrModifyItemFirst_sequence[] = {
static int
dissect_ranap_RAB_SetupOrModifyItemFirst(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 412 "./asn1/ranap/ranap.cnf"
+#line 414 "./asn1/ranap/ranap.cnf"
address ipv4_addr;
guint32 transportLayerAddress_ipv4;
guint16 binding_id;
@@ -10875,7 +10877,7 @@ static const per_sequence_t RAB_AssignmentResponse_sequence[] = {
static int
dissect_ranap_RAB_AssignmentResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 601 "./asn1/ranap/ranap.cnf"
+#line 603 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RAB-AssignmentResponse ");
@@ -10906,7 +10908,7 @@ static const per_sequence_t RAB_SetupOrModifiedItem_sequence[] = {
static int
dissect_ranap_RAB_SetupOrModifiedItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 429 "./asn1/ranap/ranap.cnf"
+#line 431 "./asn1/ranap/ranap.cnf"
address ipv4_addr;
guint32 transportLayerAddress_ipv4;
guint16 binding_id;
@@ -11024,7 +11026,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
static int
dissect_ranap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 605 "./asn1/ranap/ranap.cnf"
+#line 607 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PrivateMessage ");
@@ -11043,7 +11045,7 @@ static const per_sequence_t RANAP_RelocationInformation_sequence[] = {
static int
dissect_ranap_RANAP_RelocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 617 "./asn1/ranap/ranap.cnf"
+#line 619 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RANAP-RelocationInformation ");
@@ -11116,7 +11118,7 @@ static const per_sequence_t RANAP_EnhancedRelocationInformationRequest_sequence[
static int
dissect_ranap_RANAP_EnhancedRelocationInformationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 761 "./asn1/ranap/ranap.cnf"
+#line 763 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RANAP-EnhancedRelocationInformationRequest ");
@@ -11184,7 +11186,7 @@ static const per_sequence_t RANAP_EnhancedRelocationInformationResponse_sequence
static int
dissect_ranap_RANAP_EnhancedRelocationInformationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 765 "./asn1/ranap/ranap.cnf"
+#line 767 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RANAP-EnhancedRelocationInformationResponse ");
@@ -11272,7 +11274,7 @@ static const per_sequence_t RAB_ModifyRequest_sequence[] = {
static int
dissect_ranap_RAB_ModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 621 "./asn1/ranap/ranap.cnf"
+#line 623 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RAB-ModifyRequest ");
@@ -11316,7 +11318,7 @@ static const per_sequence_t LocationRelatedDataRequest_sequence[] = {
static int
dissect_ranap_LocationRelatedDataRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 625 "./asn1/ranap/ranap.cnf"
+#line 627 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"LocationRelatedDataRequest ");
@@ -11335,7 +11337,7 @@ static const per_sequence_t LocationRelatedDataResponse_sequence[] = {
static int
dissect_ranap_LocationRelatedDataResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 629 "./asn1/ranap/ranap.cnf"
+#line 631 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"LocationRelatedDataResponse ");
@@ -11354,7 +11356,7 @@ static const per_sequence_t LocationRelatedDataFailure_sequence[] = {
static int
dissect_ranap_LocationRelatedDataFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 633 "./asn1/ranap/ranap.cnf"
+#line 635 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"LocationRelatedDataFailure ");
@@ -11373,7 +11375,7 @@ static const per_sequence_t InformationTransferIndication_sequence[] = {
static int
dissect_ranap_InformationTransferIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 637 "./asn1/ranap/ranap.cnf"
+#line 639 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"InformationTransferIndication ");
@@ -11392,7 +11394,7 @@ static const per_sequence_t InformationTransferConfirmation_sequence[] = {
static int
dissect_ranap_InformationTransferConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 641 "./asn1/ranap/ranap.cnf"
+#line 643 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"InformationTransferConfirmation ");
@@ -11411,7 +11413,7 @@ static const per_sequence_t InformationTransferFailure_sequence[] = {
static int
dissect_ranap_InformationTransferFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 645 "./asn1/ranap/ranap.cnf"
+#line 647 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"InformationTransferFailure ");
@@ -11430,7 +11432,7 @@ static const per_sequence_t UESpecificInformationIndication_sequence[] = {
static int
dissect_ranap_UESpecificInformationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 649 "./asn1/ranap/ranap.cnf"
+#line 651 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UESpecificInformationIndication ");
@@ -11449,7 +11451,7 @@ static const per_sequence_t DirectInformationTransfer_sequence[] = {
static int
dissect_ranap_DirectInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 653 "./asn1/ranap/ranap.cnf"
+#line 655 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DirectInformationTransfer ");
@@ -11468,7 +11470,7 @@ static const per_sequence_t UplinkInformationExchangeRequest_sequence[] = {
static int
dissect_ranap_UplinkInformationExchangeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 657 "./asn1/ranap/ranap.cnf"
+#line 659 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UplinkInformationExchangeRequest ");
@@ -11487,7 +11489,7 @@ static const per_sequence_t UplinkInformationExchangeResponse_sequence[] = {
static int
dissect_ranap_UplinkInformationExchangeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 661 "./asn1/ranap/ranap.cnf"
+#line 663 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UplinkInformationExchangeResponse ");
@@ -11506,7 +11508,7 @@ static const per_sequence_t UplinkInformationExchangeFailure_sequence[] = {
static int
dissect_ranap_UplinkInformationExchangeFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 665 "./asn1/ranap/ranap.cnf"
+#line 667 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UplinkInformationExchangeFailure ");
@@ -11525,7 +11527,7 @@ static const per_sequence_t MBMSSessionStart_sequence[] = {
static int
dissect_ranap_MBMSSessionStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 669 "./asn1/ranap/ranap.cnf"
+#line 671 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSSessionStart ");
@@ -11561,7 +11563,7 @@ static const per_sequence_t MBMSSessionStartResponse_sequence[] = {
static int
dissect_ranap_MBMSSessionStartResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 673 "./asn1/ranap/ranap.cnf"
+#line 675 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSSessionStartResponse ");
@@ -11580,7 +11582,7 @@ static const per_sequence_t MBMSSessionStartFailure_sequence[] = {
static int
dissect_ranap_MBMSSessionStartFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 677 "./asn1/ranap/ranap.cnf"
+#line 679 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSSessionStartFailure ");
@@ -11599,7 +11601,7 @@ static const per_sequence_t MBMSSessionUpdate_sequence[] = {
static int
dissect_ranap_MBMSSessionUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 681 "./asn1/ranap/ranap.cnf"
+#line 683 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSSessionUpdate ");
@@ -11618,7 +11620,7 @@ static const per_sequence_t MBMSSessionUpdateResponse_sequence[] = {
static int
dissect_ranap_MBMSSessionUpdateResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 685 "./asn1/ranap/ranap.cnf"
+#line 687 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSSessionUpdateResponse ");
@@ -11637,7 +11639,7 @@ static const per_sequence_t MBMSSessionUpdateFailure_sequence[] = {
static int
dissect_ranap_MBMSSessionUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 689 "./asn1/ranap/ranap.cnf"
+#line 691 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSSessionUpdateFailure ");
@@ -11656,7 +11658,7 @@ static const per_sequence_t MBMSSessionStop_sequence[] = {
static int
dissect_ranap_MBMSSessionStop(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 693 "./asn1/ranap/ranap.cnf"
+#line 695 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSSessionStop ");
@@ -11675,7 +11677,7 @@ static const per_sequence_t MBMSSessionStopResponse_sequence[] = {
static int
dissect_ranap_MBMSSessionStopResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 697 "./asn1/ranap/ranap.cnf"
+#line 699 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSSessionStopResponse ");
@@ -11694,7 +11696,7 @@ static const per_sequence_t MBMSUELinkingRequest_sequence[] = {
static int
dissect_ranap_MBMSUELinkingRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 701 "./asn1/ranap/ranap.cnf"
+#line 703 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSUELinkingRequest ");
@@ -11742,7 +11744,7 @@ static const per_sequence_t MBMSUELinkingResponse_sequence[] = {
static int
dissect_ranap_MBMSUELinkingResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 705 "./asn1/ranap/ranap.cnf"
+#line 707 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSUELinkingResponse ");
@@ -11791,7 +11793,7 @@ static const per_sequence_t MBMSRegistrationRequest_sequence[] = {
static int
dissect_ranap_MBMSRegistrationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 709 "./asn1/ranap/ranap.cnf"
+#line 711 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSRegistrationRequest ");
@@ -11810,7 +11812,7 @@ static const per_sequence_t MBMSRegistrationResponse_sequence[] = {
static int
dissect_ranap_MBMSRegistrationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 713 "./asn1/ranap/ranap.cnf"
+#line 715 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSRegistrationResponse ");
@@ -11829,7 +11831,7 @@ static const per_sequence_t MBMSRegistrationFailure_sequence[] = {
static int
dissect_ranap_MBMSRegistrationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 717 "./asn1/ranap/ranap.cnf"
+#line 719 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSRegistrationFailure ");
@@ -11848,7 +11850,7 @@ static const per_sequence_t MBMSCNDe_RegistrationRequest_sequence[] = {
static int
dissect_ranap_MBMSCNDe_RegistrationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 721 "./asn1/ranap/ranap.cnf"
+#line 723 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSCNDe-RegistrationRequest ");
@@ -11867,7 +11869,7 @@ static const per_sequence_t MBMSCNDe_RegistrationResponse_sequence[] = {
static int
dissect_ranap_MBMSCNDe_RegistrationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 725 "./asn1/ranap/ranap.cnf"
+#line 727 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSCNDe-RegistrationResponse ");
@@ -11886,7 +11888,7 @@ static const per_sequence_t MBMSRABEstablishmentIndication_sequence[] = {
static int
dissect_ranap_MBMSRABEstablishmentIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 729 "./asn1/ranap/ranap.cnf"
+#line 731 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSRABEstablishmentIndication ");
@@ -11905,7 +11907,7 @@ static const per_sequence_t MBMSRABReleaseRequest_sequence[] = {
static int
dissect_ranap_MBMSRABReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 733 "./asn1/ranap/ranap.cnf"
+#line 735 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSRABReleaseRequest ");
@@ -11924,7 +11926,7 @@ static const per_sequence_t MBMSRABRelease_sequence[] = {
static int
dissect_ranap_MBMSRABRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 737 "./asn1/ranap/ranap.cnf"
+#line 739 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSRABRelease ");
@@ -11943,7 +11945,7 @@ static const per_sequence_t MBMSRABReleaseFailure_sequence[] = {
static int
dissect_ranap_MBMSRABReleaseFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 741 "./asn1/ranap/ranap.cnf"
+#line 743 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMSRABReleaseFailure ");
@@ -11962,7 +11964,7 @@ static const per_sequence_t SRVCC_CSKeysRequest_sequence[] = {
static int
dissect_ranap_SRVCC_CSKeysRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 769 "./asn1/ranap/ranap.cnf"
+#line 771 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SRVCC-CSKeysRequest ");
@@ -11981,7 +11983,7 @@ static const per_sequence_t SRVCC_CSKeysResponse_sequence[] = {
static int
dissect_ranap_SRVCC_CSKeysResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 773 "./asn1/ranap/ranap.cnf"
+#line 775 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SRVCC-CSKeysResponse ");
@@ -12000,7 +12002,7 @@ static const per_sequence_t UeRadioCapabilityMatchRequest_sequence[] = {
static int
dissect_ranap_UeRadioCapabilityMatchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 777 "./asn1/ranap/ranap.cnf"
+#line 779 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UeRadioCapabilityMatchRequest ");
@@ -12019,7 +12021,7 @@ static const per_sequence_t UeRadioCapabilityMatchResponse_sequence[] = {
static int
dissect_ranap_UeRadioCapabilityMatchResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 781 "./asn1/ranap/ranap.cnf"
+#line 783 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UeRadioCapabilityMatchResponse ");
@@ -12038,7 +12040,7 @@ static const per_sequence_t UeRegistrationQueryRequest_sequence[] = {
static int
dissect_ranap_UeRegistrationQueryRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 785 "./asn1/ranap/ranap.cnf"
+#line 787 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UeRegistrationQueryRequest ");
@@ -12057,7 +12059,7 @@ static const per_sequence_t UeRegistrationQueryResponse_sequence[] = {
static int
dissect_ranap_UeRegistrationQueryResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 789 "./asn1/ranap/ranap.cnf"
+#line 791 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UeRegistrationQueryResponse ");
@@ -12076,7 +12078,7 @@ static const per_sequence_t RerouteNASRequest_sequence[] = {
static int
dissect_ranap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 793 "./asn1/ranap/ranap.cnf"
+#line 795 "./asn1/ranap/ranap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RerouteNASRequest ");
diff --git a/epan/dissectors/packet-sccp.c b/epan/dissectors/packet-sccp.c
index a0b946c2da..f6035c4019 100644
--- a/epan/dissectors/packet-sccp.c
+++ b/epan/dissectors/packet-sccp.c
@@ -566,6 +566,8 @@ static const value_string sccp_isni_ti_values [] = {
{ ANSI_ISNI_TYPE_1, "Type one ISNI parameter format" },
{ 0, NULL } };
+/* Laded from e212 hf*/
+static int hf_assoc_imsi = -1;
/* Initialize the protocol and registered fields */
static int proto_sccp = -1;
@@ -797,7 +799,7 @@ static heur_dissector_list_t heur_subdissector_list;
static dissector_table_t sccp_ssn_dissector_table;
static wmem_tree_t *assocs = NULL;
-static sccp_assoc_info_t no_assoc = {0,0,0,INVALID_SSN,INVALID_SSN,FALSE,FALSE,NULL,NULL,SCCP_PLOAD_NONE,NULL,NULL,NULL,0};
+static sccp_assoc_info_t no_assoc = { 0,0,0,INVALID_SSN,INVALID_SSN,FALSE,FALSE,NULL,NULL,SCCP_PLOAD_NONE,NULL,NULL,NULL, NULL, 0 };
static guint32 next_assoc_id = 0;
static const value_string assoc_protos[] = {
@@ -1443,6 +1445,7 @@ new_assoc(guint32 calling, guint32 called)
a->calling_party = NULL;
a->called_party = NULL;
a->extra_info = NULL;
+ a->imsi = NULL;
return a;
}
@@ -1642,6 +1645,7 @@ get_sccp_assoc(packet_info *pinfo, guint offset, sccp_decode_context_t* value)
msg->data.co.assoc = value->assoc;
msg->data.co.label = NULL;
msg->data.co.comment = NULL;
+ msg->data.co.imsi = NULL;
msg->type = value->message_type;
if (value->assoc->msgs) {
@@ -1659,6 +1663,9 @@ get_sccp_assoc(packet_info *pinfo, guint offset, sccp_decode_context_t* value)
sccp_msg_info_t *m;
for (m = value->assoc->msgs; m; m = m->data.co.next) {
+ if (m->data.co.imsi != NULL && value->assoc->imsi == NULL) {
+ value->assoc->imsi = wmem_strdup(wmem_epan_scope(), m->data.co.imsi);
+ }
if ((m->framenum == framenum) && (m->offset == offset)) {
value->assoc->curr_msg = m;
break;
@@ -2817,7 +2824,9 @@ static void build_assoc_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *sccp
if (trace_sccp && sccp_info->assoc && (sccp_info->assoc != &no_assoc)) {
proto_item *pi = proto_tree_add_uint(sccp_tree, hf_sccp_assoc_id, tvb, 0, 0, sccp_info->assoc->id);
proto_tree *pt = proto_item_add_subtree(pi, ett_sccp_assoc);
+ proto_item *pi2 = proto_tree_add_string(sccp_tree, hf_assoc_imsi, tvb, 0, 0, sccp_info->assoc->imsi);
PROTO_ITEM_SET_GENERATED(pi);
+ PROTO_ITEM_SET_GENERATED(pi2);PROTO_ITEM_SET_GENERATED(pi2);
if (sccp_info->assoc->msgs) {
sccp_msg_info_t *m;
for(m = sccp_info->assoc->msgs; m ; m = m->data.co.next) {
@@ -2828,6 +2837,8 @@ static void build_assoc_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *sccp
if (m->data.co.label)
proto_item_append_text(pi," %s", m->data.co.label);
+ if (m->data.co.imsi)
+ proto_item_append_text(pi, " %s", m->data.co.imsi);
if ((m->framenum == pinfo->num) && (m->offset == msg_offset) ) {
tap_queue_packet(sccp_tap, pinfo, m);
@@ -4219,6 +4230,7 @@ proto_reg_handoff_sccp(void)
ss7pc_address_type = address_type_get_by_name("AT_SS7PC");
initialised = TRUE;
+ hf_assoc_imsi = proto_registrar_get_id_byname("e212.assoc.imsi");
}
default_handle = find_dissector(default_payload);
diff --git a/epan/dissectors/packet-sccp.h b/epan/dissectors/packet-sccp.h
index 868e727fe1..be84b9c2ab 100644
--- a/epan/dissectors/packet-sccp.h
+++ b/epan/dissectors/packet-sccp.h
@@ -60,6 +60,7 @@ typedef struct _sccp_msg_info_t {
struct {
gchar* label;
gchar* comment;
+ gchar* imsi;
struct _sccp_assoc_info_t* assoc;
struct _sccp_msg_info_t* next;
} co;
@@ -87,6 +88,7 @@ typedef struct _sccp_assoc_info_t {
gchar* calling_party;
gchar* called_party;
gchar* extra_info;
+ gchar* imsi;
guint32 app_info; /* used only by dissectors of protocols above SCCP */
} sccp_assoc_info_t;