From Florent DROUIN:
I have made some changes to the final patch to have the operation code decoded as ForwardSM. A change for TCAP is included too, to be sure that the application context is not overwritten by the User Info OID (this was the case, when a MAP open dialog was included in the request). Fix bug: http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1498 svn path=/trunk/; revision=21543
This commit is contained in:
parent
d6fc852779
commit
c0dc340d5d
|
@ -3542,6 +3542,16 @@ Mt-forwardSM-Res ::= SEQUENCE {
|
||||||
-- absentsubscriberSM localValue : 6}
|
-- absentsubscriberSM localValue : 6}
|
||||||
-- ::= localValue : 44
|
-- ::= localValue : 44
|
||||||
|
|
||||||
|
--ForwardSM OPERATION
|
||||||
|
-- ARGUMENT
|
||||||
|
ForwardSM-Arg ::= SEQUENCE {
|
||||||
|
sm-RP-DA Sm-RP-DA,
|
||||||
|
sm-RP-OA Sm-RP-OA,
|
||||||
|
sm-RP-UI Sm-RP-UI,
|
||||||
|
moreMessagesToSend NULL OPTIONAL,
|
||||||
|
... }
|
||||||
|
-- RESULT
|
||||||
|
|
||||||
-- not used
|
-- not used
|
||||||
-- StoredMSISDN ::= ISDN-AddressString
|
-- StoredMSISDN ::= ISDN-AddressString
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ Component
|
||||||
|
|
||||||
%(DEFAULT_BODY)s
|
%(DEFAULT_BODY)s
|
||||||
if (check_col(pinfo->cinfo, COL_INFO)){
|
if (check_col(pinfo->cinfo, COL_INFO)){
|
||||||
col_append_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, gsm_map_opr_code_strings, "Unknown GSM-MAP (%%u)"));
|
col_append_fstr(pinfo->cinfo, COL_INFO, gsm_map_opr_code(opcode));
|
||||||
}
|
}
|
||||||
|
|
||||||
#.FN_PARS GSMMAPLocalErrorcode
|
#.FN_PARS GSMMAPLocalErrorcode
|
||||||
|
|
|
@ -172,6 +172,7 @@ static int gsm_map_tap = -1;
|
||||||
static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
||||||
static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
||||||
static int dissect_returnErrorData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
static int dissect_returnErrorData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
||||||
|
const gchar* gsm_map_opr_code(guint32 val);
|
||||||
|
|
||||||
/* Value strings */
|
/* Value strings */
|
||||||
|
|
||||||
|
@ -556,6 +557,13 @@ dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
|
||||||
}
|
}
|
||||||
#include "packet-gsm_map-fn.c"
|
#include "packet-gsm_map-fn.c"
|
||||||
|
|
||||||
|
/* Specific translation for MAP V3 */
|
||||||
|
const value_string gsm_map_V3_opr_code_strings[] = {
|
||||||
|
{ 44, "mt-forwardSM" },
|
||||||
|
{ 46, "mo-forwardSM" },
|
||||||
|
{ 0, NULL }
|
||||||
|
};
|
||||||
|
/* Generic translation for MAP operation */
|
||||||
const value_string gsm_map_opr_code_strings[] = {
|
const value_string gsm_map_opr_code_strings[] = {
|
||||||
{ 2, "updateLocation" },
|
{ 2, "updateLocation" },
|
||||||
{ 3, "cancelLocation" },
|
{ 3, "cancelLocation" },
|
||||||
|
@ -596,9 +604,9 @@ const value_string gsm_map_opr_code_strings[] = {
|
||||||
{ 41, "processGroupCallSignalling" },
|
{ 41, "processGroupCallSignalling" },
|
||||||
{ 42, "forwardGroupCallSignalling" },
|
{ 42, "forwardGroupCallSignalling" },
|
||||||
{ 43, "checkIMEI" },
|
{ 43, "checkIMEI" },
|
||||||
{ 44, "mt-forwardSM" },
|
{ 44, "forwardSM" },
|
||||||
{ 45, "sendRoutingInfoForSM" },
|
{ 45, "sendRoutingInfoForSM" },
|
||||||
{ 46, "mo-forwardSM" },
|
{ 46, "forwardSM" },
|
||||||
{ 47, "reportSM-DeliveryStatus" },
|
{ 47, "reportSM-DeliveryStatus" },
|
||||||
{ 48, "noteSubscriberPresent" }, /* map-ac mwdMngt (24) version1 (1) */
|
{ 48, "noteSubscriberPresent" }, /* map-ac mwdMngt (24) version1 (1) */
|
||||||
{ 49, "alertServiceCentreWithoutResult" }, /* map-ac shortMsgAlert (23) version1 (1) */
|
{ 49, "alertServiceCentreWithoutResult" }, /* map-ac shortMsgAlert (23) version1 (1) */
|
||||||
|
@ -755,6 +763,24 @@ static const true_false_string gsm_map_Ss_Status_a_values = {
|
||||||
"not Active"
|
"not Active"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Translate the MAP operation code value to a text string
|
||||||
|
* Take into account the MAP version for ForwardSM
|
||||||
|
*/
|
||||||
|
const gchar* gsm_map_opr_code(guint32 val) {
|
||||||
|
switch (val) {
|
||||||
|
case 44: /*mt-forwardSM*/
|
||||||
|
case 46: /*mo-forwardSM*/
|
||||||
|
if (application_context_version == 3) {
|
||||||
|
return val_to_str(val, gsm_map_V3_opr_code_strings, "Unknown GSM-MAP (%%u)");
|
||||||
|
}
|
||||||
|
/* Else use the default map operation translation */
|
||||||
|
default:
|
||||||
|
return val_to_str(val, gsm_map_opr_code_strings, "Unknown GSM-MAP (%%u)");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Prototype for a decoding function */
|
/* Prototype for a decoding function */
|
||||||
typedef int (* dissect_function_t)( gboolean,
|
typedef int (* dissect_function_t)( gboolean,
|
||||||
tvbuff_t *,
|
tvbuff_t *,
|
||||||
|
@ -961,14 +987,22 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
|
||||||
FALSE, dissect_gsm_map_CheckIMEIArgV3, -1,
|
FALSE, dissect_gsm_map_CheckIMEIArgV3, -1,
|
||||||
TRUE , NULL, -1); /* no [3] SEQUENCE */
|
TRUE , NULL, -1); /* no [3] SEQUENCE */
|
||||||
break;
|
break;
|
||||||
case 44: /*mt-forwardSM*/
|
case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
|
||||||
offset=dissect_gsm_map_Mt_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
if (application_context_version == 3)
|
||||||
|
offset=dissect_gsm_map_Mt_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
|
else {
|
||||||
|
offset=dissect_gsm_map_ForwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 45: /*sendRoutingInfoForSM*/
|
case 45: /*sendRoutingInfoForSM*/
|
||||||
offset=dissect_gsm_map_RoutingInfoForSMArg(FALSE, tvb, offset, pinfo, tree, -1);
|
offset=dissect_gsm_map_RoutingInfoForSMArg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
break;
|
break;
|
||||||
case 46: /*mo-forwardSM*/
|
case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
|
||||||
offset=dissect_gsm_map_Mo_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
if (application_context_version == 3)
|
||||||
|
offset=dissect_gsm_map_Mo_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
|
else {
|
||||||
|
offset=dissect_gsm_map_ForwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 47: /*reportSM-DeliveryStatus*/
|
case 47: /*reportSM-DeliveryStatus*/
|
||||||
offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
|
offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
|
@ -1561,9 +1595,6 @@ dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
|
dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
|
||||||
{
|
{
|
||||||
|
|
|
@ -117,10 +117,12 @@ dissect_tcap_TheComponent(implicit_tag, tvb, offset, pinfo, tree, hf_index);
|
||||||
tcap_private.oid= (void*) cur_oid;
|
tcap_private.oid= (void*) cur_oid;
|
||||||
tcap_private.acv=TRUE;
|
tcap_private.acv=TRUE;
|
||||||
|
|
||||||
#.FN_BODY UserInfoOID FN_VARIANT = _str VAL_PTR = &tcapext_oid
|
# Do not overwrite the ApplicationContext with the UserInfoOID !
|
||||||
%(DEFAULT_BODY)s
|
#
|
||||||
tcap_private.oid= (void*)tcapext_oid;
|
# .FN_BODY UserInfoOID FN_VARIANT = _str VAL_PTR = &tcapext_oid
|
||||||
tcap_private.acv=TRUE;
|
# %(DEFAULT_BODY)s
|
||||||
|
# tcap_private.oid= (void*)tcapext_oid;
|
||||||
|
# tcap_private.acv=TRUE;
|
||||||
|
|
||||||
#.FN_BODY ExternUserInfo
|
#.FN_BODY ExternUserInfo
|
||||||
dissect_tcap_TheExternUserInfo(implicit_tag, tvb, offset, pinfo, tree, hf_index);
|
dissect_tcap_TheExternUserInfo(implicit_tag, tvb, offset, pinfo, tree, hf_index);
|
||||||
|
|
|
@ -1356,6 +1356,7 @@ static gint ett_gsm_map_Sm_RP_OA = -1;
|
||||||
static gint ett_gsm_map_Sm_RP_DA = -1;
|
static gint ett_gsm_map_Sm_RP_DA = -1;
|
||||||
static gint ett_gsm_map_Mt_forwardSM_Arg = -1;
|
static gint ett_gsm_map_Mt_forwardSM_Arg = -1;
|
||||||
static gint ett_gsm_map_Mt_forwardSM_Res = -1;
|
static gint ett_gsm_map_Mt_forwardSM_Res = -1;
|
||||||
|
static gint ett_gsm_map_ForwardSM_Arg = -1;
|
||||||
static gint ett_gsm_map_ReportSM_DeliveryStatusArg = -1;
|
static gint ett_gsm_map_ReportSM_DeliveryStatusArg = -1;
|
||||||
static gint ett_gsm_map_ReportSM_DeliveryStatusRes = -1;
|
static gint ett_gsm_map_ReportSM_DeliveryStatusRes = -1;
|
||||||
static gint ett_gsm_map_InformServiceCentreArg = -1;
|
static gint ett_gsm_map_InformServiceCentreArg = -1;
|
||||||
|
@ -1554,6 +1555,7 @@ static int gsm_map_tap = -1;
|
||||||
static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
||||||
static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
||||||
static int dissect_returnErrorData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
static int dissect_returnErrorData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
|
||||||
|
const gchar* gsm_map_opr_code(guint32 val);
|
||||||
|
|
||||||
/* Value strings */
|
/* Value strings */
|
||||||
|
|
||||||
|
@ -2058,7 +2060,7 @@ dissect_gsm_map_GSMMAPOperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *t
|
||||||
&opcode);
|
&opcode);
|
||||||
|
|
||||||
if (check_col(pinfo->cinfo, COL_INFO)){
|
if (check_col(pinfo->cinfo, COL_INFO)){
|
||||||
col_append_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, gsm_map_opr_code_strings, "Unknown GSM-MAP (%u)"));
|
col_append_fstr(pinfo->cinfo, COL_INFO, gsm_map_opr_code(opcode));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -11927,6 +11929,23 @@ dissect_gsm_map_Mt_forwardSM_Res(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static const ber_sequence_t ForwardSM_Arg_sequence[] = {
|
||||||
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_DA },
|
||||||
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_sm_RP_OA },
|
||||||
|
{ BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_sm_RP_UI },
|
||||||
|
{ BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_moreMessagesToSend },
|
||||||
|
{ 0, 0, 0, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
|
static int
|
||||||
|
dissect_gsm_map_ForwardSM_Arg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
|
offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
|
||||||
|
ForwardSM_Arg_sequence, hf_index, ett_gsm_map_ForwardSM_Arg);
|
||||||
|
|
||||||
|
return offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static const value_string gsm_map_Sm_DeliveryOutcome_vals[] = {
|
static const value_string gsm_map_Sm_DeliveryOutcome_vals[] = {
|
||||||
{ 0, "memoryCapacityExceeded" },
|
{ 0, "memoryCapacityExceeded" },
|
||||||
{ 1, "absentSubscriber" },
|
{ 1, "absentSubscriber" },
|
||||||
|
@ -15652,8 +15671,15 @@ static void dissect_Component_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
|
||||||
|
|
||||||
|
|
||||||
/*--- End of included file: packet-gsm_map-fn.c ---*/
|
/*--- End of included file: packet-gsm_map-fn.c ---*/
|
||||||
#line 558 "packet-gsm_map-template.c"
|
#line 559 "packet-gsm_map-template.c"
|
||||||
|
|
||||||
|
/* Specific translation for MAP V3 */
|
||||||
|
const value_string gsm_map_V3_opr_code_strings[] = {
|
||||||
|
{ 44, "mt-forwardSM" },
|
||||||
|
{ 46, "mo-forwardSM" },
|
||||||
|
{ 0, NULL }
|
||||||
|
};
|
||||||
|
/* Generic translation for MAP operation */
|
||||||
const value_string gsm_map_opr_code_strings[] = {
|
const value_string gsm_map_opr_code_strings[] = {
|
||||||
{ 2, "updateLocation" },
|
{ 2, "updateLocation" },
|
||||||
{ 3, "cancelLocation" },
|
{ 3, "cancelLocation" },
|
||||||
|
@ -15694,9 +15720,9 @@ const value_string gsm_map_opr_code_strings[] = {
|
||||||
{ 41, "processGroupCallSignalling" },
|
{ 41, "processGroupCallSignalling" },
|
||||||
{ 42, "forwardGroupCallSignalling" },
|
{ 42, "forwardGroupCallSignalling" },
|
||||||
{ 43, "checkIMEI" },
|
{ 43, "checkIMEI" },
|
||||||
{ 44, "mt-forwardSM" },
|
{ 44, "forwardSM" },
|
||||||
{ 45, "sendRoutingInfoForSM" },
|
{ 45, "sendRoutingInfoForSM" },
|
||||||
{ 46, "mo-forwardSM" },
|
{ 46, "forwardSM" },
|
||||||
{ 47, "reportSM-DeliveryStatus" },
|
{ 47, "reportSM-DeliveryStatus" },
|
||||||
{ 48, "noteSubscriberPresent" }, /* map-ac mwdMngt (24) version1 (1) */
|
{ 48, "noteSubscriberPresent" }, /* map-ac mwdMngt (24) version1 (1) */
|
||||||
{ 49, "alertServiceCentreWithoutResult" }, /* map-ac shortMsgAlert (23) version1 (1) */
|
{ 49, "alertServiceCentreWithoutResult" }, /* map-ac shortMsgAlert (23) version1 (1) */
|
||||||
|
@ -15853,6 +15879,24 @@ static const true_false_string gsm_map_Ss_Status_a_values = {
|
||||||
"not Active"
|
"not Active"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Translate the MAP operation code value to a text string
|
||||||
|
* Take into account the MAP version for ForwardSM
|
||||||
|
*/
|
||||||
|
const gchar* gsm_map_opr_code(guint32 val) {
|
||||||
|
switch (val) {
|
||||||
|
case 44: /*mt-forwardSM*/
|
||||||
|
case 46: /*mo-forwardSM*/
|
||||||
|
if (application_context_version == 3) {
|
||||||
|
return val_to_str(val, gsm_map_V3_opr_code_strings, "Unknown GSM-MAP (%%u)");
|
||||||
|
}
|
||||||
|
/* Else use the default map operation translation */
|
||||||
|
default:
|
||||||
|
return val_to_str(val, gsm_map_opr_code_strings, "Unknown GSM-MAP (%%u)");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Prototype for a decoding function */
|
/* Prototype for a decoding function */
|
||||||
typedef int (* dissect_function_t)( gboolean,
|
typedef int (* dissect_function_t)( gboolean,
|
||||||
tvbuff_t *,
|
tvbuff_t *,
|
||||||
|
@ -16059,14 +16103,22 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
|
||||||
FALSE, dissect_gsm_map_CheckIMEIArgV3, -1,
|
FALSE, dissect_gsm_map_CheckIMEIArgV3, -1,
|
||||||
TRUE , NULL, -1); /* no [3] SEQUENCE */
|
TRUE , NULL, -1); /* no [3] SEQUENCE */
|
||||||
break;
|
break;
|
||||||
case 44: /*mt-forwardSM*/
|
case 44: /*mt-forwardSM(v3) or ForwardSM(v1/v2)*/
|
||||||
offset=dissect_gsm_map_Mt_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
if (application_context_version == 3)
|
||||||
|
offset=dissect_gsm_map_Mt_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
|
else {
|
||||||
|
offset=dissect_gsm_map_ForwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 45: /*sendRoutingInfoForSM*/
|
case 45: /*sendRoutingInfoForSM*/
|
||||||
offset=dissect_gsm_map_RoutingInfoForSMArg(FALSE, tvb, offset, pinfo, tree, -1);
|
offset=dissect_gsm_map_RoutingInfoForSMArg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
break;
|
break;
|
||||||
case 46: /*mo-forwardSM*/
|
case 46: /*mo-forwardSM(v3) or ForwardSM(v1/v2)*/
|
||||||
offset=dissect_gsm_map_Mo_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
if (application_context_version == 3)
|
||||||
|
offset=dissect_gsm_map_Mo_forwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
|
else {
|
||||||
|
offset=dissect_gsm_map_ForwardSM_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 47: /*reportSM-DeliveryStatus*/
|
case 47: /*reportSM-DeliveryStatus*/
|
||||||
offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
|
offset=dissect_gsm_map_ReportSM_DeliveryStatusArg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||||
|
@ -16659,9 +16711,6 @@ dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
|
dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
|
||||||
{
|
{
|
||||||
|
@ -21102,7 +21151,7 @@ void proto_register_gsm_map(void) {
|
||||||
"", HFILL }},
|
"", HFILL }},
|
||||||
|
|
||||||
/*--- End of included file: packet-gsm_map-hfarr.c ---*/
|
/*--- End of included file: packet-gsm_map-hfarr.c ---*/
|
||||||
#line 2247 "packet-gsm_map-template.c"
|
#line 2278 "packet-gsm_map-template.c"
|
||||||
};
|
};
|
||||||
|
|
||||||
/* List of subtrees */
|
/* List of subtrees */
|
||||||
|
@ -21381,6 +21430,7 @@ void proto_register_gsm_map(void) {
|
||||||
&ett_gsm_map_Sm_RP_DA,
|
&ett_gsm_map_Sm_RP_DA,
|
||||||
&ett_gsm_map_Mt_forwardSM_Arg,
|
&ett_gsm_map_Mt_forwardSM_Arg,
|
||||||
&ett_gsm_map_Mt_forwardSM_Res,
|
&ett_gsm_map_Mt_forwardSM_Res,
|
||||||
|
&ett_gsm_map_ForwardSM_Arg,
|
||||||
&ett_gsm_map_ReportSM_DeliveryStatusArg,
|
&ett_gsm_map_ReportSM_DeliveryStatusArg,
|
||||||
&ett_gsm_map_ReportSM_DeliveryStatusRes,
|
&ett_gsm_map_ReportSM_DeliveryStatusRes,
|
||||||
&ett_gsm_map_InformServiceCentreArg,
|
&ett_gsm_map_InformServiceCentreArg,
|
||||||
|
@ -21553,7 +21603,7 @@ void proto_register_gsm_map(void) {
|
||||||
&ett_gsm_map_ExtensionContainer,
|
&ett_gsm_map_ExtensionContainer,
|
||||||
|
|
||||||
/*--- End of included file: packet-gsm_map-ettarr.c ---*/
|
/*--- End of included file: packet-gsm_map-ettarr.c ---*/
|
||||||
#line 2269 "packet-gsm_map-template.c"
|
#line 2300 "packet-gsm_map-template.c"
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Register protocol */
|
/* Register protocol */
|
||||||
|
|
|
@ -368,6 +368,7 @@ dissect_tcap_Applicationcontext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
static int dissect_application_context_name(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
|
static int dissect_application_context_name(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
|
||||||
|
@ -686,13 +687,7 @@ offset = dissect_ber_length(pinfo, tree, tvb, offset, &len, &ind_field);
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_UserInfoOID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_UserInfoOID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 121 "tcap.cnf"
|
offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
|
||||||
offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_index, &tcapext_oid);
|
|
||||||
|
|
||||||
tcap_private.oid= (void*)tcapext_oid;
|
|
||||||
tcap_private.acv=TRUE;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
@ -704,7 +699,7 @@ static int dissect_useroid(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_ExternUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_ExternUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 126 "tcap.cnf"
|
#line 128 "tcap.cnf"
|
||||||
dissect_tcap_TheExternUserInfo(implicit_tag, tvb, offset, pinfo, tree, hf_index);
|
dissect_tcap_TheExternUserInfo(implicit_tag, tvb, offset, pinfo, tree, hf_index);
|
||||||
|
|
||||||
|
|
||||||
|
@ -1367,7 +1362,7 @@ static int dissect_unidirectional_impl(packet_info *pinfo _U_, proto_tree *tree
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_OrigTransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_OrigTransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 157 "tcap.cnf"
|
#line 159 "tcap.cnf"
|
||||||
tvbuff_t *parameter_tvb;
|
tvbuff_t *parameter_tvb;
|
||||||
guint8 len, i;
|
guint8 len, i;
|
||||||
proto_item *tid_item;
|
proto_item *tid_item;
|
||||||
|
@ -1423,7 +1418,7 @@ static const ber_sequence_t Begin_sequence[] = {
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_Begin(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_Begin(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 230 "tcap.cnf"
|
#line 232 "tcap.cnf"
|
||||||
gp_tcapsrt_info->ope=TC_BEGIN;
|
gp_tcapsrt_info->ope=TC_BEGIN;
|
||||||
|
|
||||||
if (check_col(pinfo->cinfo, COL_INFO))
|
if (check_col(pinfo->cinfo, COL_INFO))
|
||||||
|
@ -1445,7 +1440,7 @@ static int dissect_begin_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbu
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_DestTransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_DestTransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 195 "tcap.cnf"
|
#line 197 "tcap.cnf"
|
||||||
tvbuff_t *parameter_tvb;
|
tvbuff_t *parameter_tvb;
|
||||||
guint8 len , i;
|
guint8 len , i;
|
||||||
proto_item *tid_item;
|
proto_item *tid_item;
|
||||||
|
@ -1498,7 +1493,7 @@ static const ber_sequence_t End_sequence[] = {
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_End(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_End(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 238 "tcap.cnf"
|
#line 240 "tcap.cnf"
|
||||||
gp_tcapsrt_info->ope=TC_END;
|
gp_tcapsrt_info->ope=TC_END;
|
||||||
|
|
||||||
if (check_col(pinfo->cinfo, COL_INFO))
|
if (check_col(pinfo->cinfo, COL_INFO))
|
||||||
|
@ -1527,7 +1522,7 @@ static const ber_sequence_t Continue_sequence[] = {
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_Continue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_Continue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 246 "tcap.cnf"
|
#line 248 "tcap.cnf"
|
||||||
gp_tcapsrt_info->ope=TC_CONT;
|
gp_tcapsrt_info->ope=TC_CONT;
|
||||||
|
|
||||||
if (check_col(pinfo->cinfo, COL_INFO))
|
if (check_col(pinfo->cinfo, COL_INFO))
|
||||||
|
@ -1601,7 +1596,7 @@ static const ber_sequence_t Abort_sequence[] = {
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_Abort(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_Abort(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 254 "tcap.cnf"
|
#line 256 "tcap.cnf"
|
||||||
gp_tcapsrt_info->ope=TC_ABORT;
|
gp_tcapsrt_info->ope=TC_ABORT;
|
||||||
|
|
||||||
if (check_col(pinfo->cinfo, COL_INFO))
|
if (check_col(pinfo->cinfo, COL_INFO))
|
||||||
|
@ -1623,7 +1618,7 @@ static int dissect_abort_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbu
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_TransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_TransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 286 "tcap.cnf"
|
#line 288 "tcap.cnf"
|
||||||
|
|
||||||
tvbuff_t *next_tvb;
|
tvbuff_t *next_tvb;
|
||||||
|
|
||||||
|
@ -1835,7 +1830,7 @@ static int dissect_operationCode(packet_info *pinfo _U_, proto_tree *tree _U_, t
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_ANSIParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_ANSIParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 129 "tcap.cnf"
|
#line 131 "tcap.cnf"
|
||||||
/* we are doing the ParamSet here so need to look at the tags*/
|
/* we are doing the ParamSet here so need to look at the tags*/
|
||||||
guint32 len;
|
guint32 len;
|
||||||
len = tvb_length_remaining(tvb, offset);
|
len = tvb_length_remaining(tvb, offset);
|
||||||
|
@ -2101,7 +2096,7 @@ static const ber_choice_t ComponentPDU_choice[] = {
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 140 "tcap.cnf"
|
#line 142 "tcap.cnf"
|
||||||
tvbuff_t *next_tvb;
|
tvbuff_t *next_tvb;
|
||||||
dissector_handle_t subdissector_handle;
|
dissector_handle_t subdissector_handle;
|
||||||
|
|
||||||
|
@ -2171,7 +2166,7 @@ static const ber_sequence_t TransactionPDU_sequence[] = {
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_TransactionPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_TransactionPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 268 "tcap.cnf"
|
#line 270 "tcap.cnf"
|
||||||
if ((hf_index == hf_tcap_ansiqueryWithPerm)&&(check_col(pinfo->cinfo, COL_INFO)))
|
if ((hf_index == hf_tcap_ansiqueryWithPerm)&&(check_col(pinfo->cinfo, COL_INFO)))
|
||||||
col_append_fstr(pinfo->cinfo, COL_INFO, " QueryWithPerm");
|
col_append_fstr(pinfo->cinfo, COL_INFO, " QueryWithPerm");
|
||||||
|
|
||||||
|
@ -2273,7 +2268,7 @@ static const ber_sequence_t AbortPDU_sequence[] = {
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dissect_tcap_AbortPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
dissect_tcap_AbortPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||||
#line 262 "tcap.cnf"
|
#line 264 "tcap.cnf"
|
||||||
if (check_col(pinfo->cinfo, COL_INFO))
|
if (check_col(pinfo->cinfo, COL_INFO))
|
||||||
col_append_fstr(pinfo->cinfo, COL_INFO, " Abort ");
|
col_append_fstr(pinfo->cinfo, COL_INFO, " Abort ");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue