diff options
author | Anders Broman <anders.broman@ericsson.com> | 2006-04-05 18:54:43 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2006-04-05 18:54:43 +0000 |
commit | 5426b944ee4af306b87abc66935e6eaa18791620 (patch) | |
tree | 5b6a84b004e1a914eec6bffb9f78f695403e7526 /epan | |
parent | d66ccda16a25f391eeb7b0fb9bceeeab7481797c (diff) |
Expand some value strings, get map_error from gsm_map use the added IE's.
svn path=/trunk/; revision=17818
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-gsm_map.c | 52 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_map.h | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-gtp.c | 99 |
3 files changed, 89 insertions, 64 deletions
diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c index 47445819c8..2e1952546b 100644 --- a/epan/dissectors/packet-gsm_map.c +++ b/epan/dissectors/packet-gsm_map.c @@ -1696,7 +1696,7 @@ static const value_string gsm_map_OperationLocalvalue_vals[] = { static int dissect_gsm_map_OperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 138 "gsmmap.cnf" +#line 139 "gsmmap.cnf" offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &opcode); @@ -1757,7 +1757,7 @@ static int dissect_opCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, i static int dissect_gsm_map_InvokeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 125 "gsmmap.cnf" +#line 126 "gsmmap.cnf" offset = dissect_invokeData(pinfo, tree, tvb, offset); @@ -1792,7 +1792,7 @@ static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *t static int dissect_gsm_map_ReturnResultParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 128 "gsmmap.cnf" +#line 129 "gsmmap.cnf" offset = dissect_returnResultData(pinfo, tree, tvb, offset); @@ -1840,7 +1840,7 @@ static int dissect_returnResultLast_impl(packet_info *pinfo, proto_tree *tree, t } -static const value_string gsm_map_LocalErrorcode_vals[] = { +const value_string gsm_map_LocalErrorcode_vals[] = { { 34, "systemFailure" }, { 35, "dataMissing" }, { 36, "unexpectedDataValue" }, @@ -1901,7 +1901,7 @@ static const value_string gsm_map_LocalErrorcode_vals[] = { }; -static int +int dissect_gsm_map_LocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &errorCode); @@ -1941,7 +1941,7 @@ static int dissect_errorCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb static int dissect_gsm_map_ReturnErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 131 "gsmmap.cnf" +#line 132 "gsmmap.cnf" offset = dissect_returnErrorData(pinfo, tree, tvb, offset); @@ -2520,7 +2520,7 @@ static int dissect_protocolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv static int dissect_gsm_map_SignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 334 "gsmmap.cnf" +#line 335 "gsmmap.cnf" tvbuff_t *parameter_tvb; guint8 octet; @@ -2576,7 +2576,7 @@ static int dissect_diagnosticInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t static int dissect_gsm_map_T_extType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 447 "gsmmap.cnf" +#line 448 "gsmmap.cnf" proto_tree_add_text(tree, tvb, offset, -1, "Extension Data"); @@ -2739,7 +2739,7 @@ static int dissect_supportedCAMELPhases_impl(packet_info *pinfo, proto_tree *tre int dissect_gsm_map_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 172 "gsmmap.cnf" +#line 173 "gsmmap.cnf" tvbuff_t *parameter_tvb; char *digit_str; @@ -2772,7 +2772,7 @@ static int dissect_imsi_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb int dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 219 "gsmmap.cnf" +#line 220 "gsmmap.cnf" tvbuff_t *parameter_tvb; char *digit_str; @@ -3084,7 +3084,7 @@ static int dissect_vlr_Capability_impl(packet_info *pinfo, proto_tree *tree, tvb int dissect_gsm_map_GSN_Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 531 "gsmmap.cnf" +#line 532 "gsmmap.cnf" tvbuff_t *parameter_tvb; guint8 octet; @@ -3480,7 +3480,7 @@ static int dissect_numberOfRequestedVectors(packet_info *pinfo, proto_tree *tree int dissect_gsm_map_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 579 "gsmmap.cnf" +#line 580 "gsmmap.cnf" tvbuff_t *parameter_tvb; proto_item *item; @@ -3917,7 +3917,7 @@ static int dissect_accessNetworkProtocolId(packet_info *pinfo, proto_tree *tree, static int dissect_gsm_map_LongSignalInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 378 "gsmmap.cnf" +#line 379 "gsmmap.cnf" tvbuff_t *parameter_tvb; guint8 octet; @@ -5508,7 +5508,7 @@ static int dissect_BasicServiceCriteria_item(packet_info *pinfo, proto_tree *tre static int dissect_gsm_map_Ext_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 296 "gsmmap.cnf" +#line 297 "gsmmap.cnf" /* Note Ext-SS-Status can have more than one byte */ tvbuff_t *parameter_tvb; @@ -5575,7 +5575,7 @@ static int dissect_gsm_map_T_forwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_gsm_map_Ext_ForwOptions(implicit_tag, tvb, offset, pinfo, tree, hf_index); -#line 466 "gsmmap.cnf" +#line 467 "gsmmap.cnf" proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE); @@ -5606,7 +5606,7 @@ static int dissect_ext_noReplyConditionTime_impl(packet_info *pinfo, proto_tree int dissect_gsm_map_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 246 "gsmmap.cnf" +#line 247 "gsmmap.cnf" tvbuff_t *parameter_tvb; char *digit_str; @@ -7004,7 +7004,7 @@ static int dissect_pdp_ContextIdentifier_impl(packet_info *pinfo, proto_tree *tr static int dissect_gsm_map_PDP_Type(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 477 "gsmmap.cnf" +#line 478 "gsmmap.cnf" guint8 pdp_type_org; tvbuff_t *parameter_tvb; @@ -7053,7 +7053,7 @@ static int dissect_pdp_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff int dissect_gsm_map_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 503 "gsmmap.cnf" +#line 504 "gsmmap.cnf" tvbuff_t *parameter_tvb; @@ -7099,7 +7099,7 @@ static int dissect_lcsAPN_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *t int dissect_gsm_map_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 517 "gsmmap.cnf" +#line 518 "gsmmap.cnf" tvbuff_t *parameter_tvb; @@ -8200,7 +8200,7 @@ dissect_gsm_map_DeleteSubscriberDataRes(gboolean implicit_tag _U_, tvbuff_t *tvb int dissect_gsm_map_SS_Status(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 269 "gsmmap.cnf" +#line 270 "gsmmap.cnf" tvbuff_t *parameter_tvb; guint8 octet; @@ -8329,7 +8329,7 @@ dissect_gsm_map_ForwardingOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); -#line 460 "gsmmap.cnf" +#line 461 "gsmmap.cnf" proto_tree_add_item(tree, hf_gsm_map_notification_to_forwarding_party, tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_redirecting_presentation, tvb, 0,1,FALSE); @@ -9211,7 +9211,7 @@ static int dissect_subscriberState(packet_info *pinfo, proto_tree *tree, tvbuff_ int dissect_gsm_map_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 561 "gsmmap.cnf" +#line 562 "gsmmap.cnf" tvbuff_t *parameter_tvb; proto_item *item; @@ -10555,7 +10555,7 @@ dissect_gsm_map_InterrogateSS_Res(gboolean implicit_tag _U_, tvbuff_t *tvb, int int dissect_gsm_map_USSD_DataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 410 "gsmmap.cnf" +#line 411 "gsmmap.cnf" guint8 octet; guint8 length; @@ -10583,7 +10583,7 @@ static int dissect_dataCodingScheme_impl(packet_info *pinfo, proto_tree *tree, t int dissect_gsm_map_USSD_String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 425 "gsmmap.cnf" +#line 426 "gsmmap.cnf" guint8 octet; guint8 length; @@ -10881,7 +10881,7 @@ dissect_gsm_map_EraseCC_EntryRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int o static int dissect_gsm_map_ServiceCentreAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 194 "gsmmap.cnf" +#line 195 "gsmmap.cnf" tvbuff_t *parameter_tvb; char *digit_str; @@ -11087,7 +11087,7 @@ static int dissect_sm_RP_OA(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, static int dissect_gsm_map_Sm_RP_UI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { -#line 153 "gsmmap.cnf" +#line 154 "gsmmap.cnf" tvbuff_t *tpdu_tvb; diff --git a/epan/dissectors/packet-gsm_map.h b/epan/dissectors/packet-gsm_map.h index 9fb3fae17c..f67a7a50a2 100644 --- a/epan/dissectors/packet-gsm_map.h +++ b/epan/dissectors/packet-gsm_map.h @@ -53,12 +53,14 @@ extern const value_string gsm_map_etsi_defined_pdp_vals[]; /*--- Included file: packet-gsm_map-exp.h ---*/ #line 1 "packet-gsm_map-exp.h" +extern const value_string gsm_map_LocalErrorcode_vals[]; extern const value_string gsm_map_NotificationToMSUser_vals[]; extern const value_string gsm_map_SubscriberState_vals[]; extern const value_string gsm_map_SS_Info_vals[]; extern const value_string gsm_map_InterrogateSS_Res_vals[]; extern const value_string gsm_map_GetPasswordArg_vals[]; extern const value_string gsm_map_Ext_BasicServiceCode_vals[]; +int dissect_gsm_map_LocalErrorcode(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_QoS_Subscribed(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c index 4de19a7132..c9077c94d3 100644 --- a/epan/dissectors/packet-gtp.c +++ b/epan/dissectors/packet-gtp.c @@ -43,6 +43,7 @@ #include "packet-radius.h" #include "packet-bssap.h" #include "packet-gsm_a.h" +#include "packet-gsm_map.h" static dissector_table_t ppp_subdissector_table; @@ -690,28 +691,8 @@ static const value_string cause_type[] = { /* GPRS: 9.02 v7.7.0 * UMTS: 29.002 v4.2.1, chapter 17.5, page 268 - * TODO: Check if all map_cause values are included + * Imported gsm_map_LocalErrorcode_vals from gsm_map */ -static const value_string map_cause_type[] = { - { 1, "Unknown subscriber" }, - { 8, "Roaming not allowed" }, - { 10, "Bearer service not provisioned" }, - { 11, "Teleservice not provisioned" }, - { 13, "Call barred" }, - { 21, "Facility not supported" }, - { 23, "Update GPRS location" }, - { 24, "Send routing info for GPRS" }, - { 26, "Note MS present for GPRS" }, - { 27, "Absent subscriber" }, - { 34, "System failure" }, - { 35, "Data missing" }, - { 36, "Unexpected data value" }, - { 44, "Number chenged" }, - { 45, "Busy subscriber" }, - { 46, "No subscriber reply" }, - { 48, "Facility not allowed" }, - { 0, NULL } -}; static const value_string gsn_addr_type[] = { { 0x00, "IPv4" }, @@ -1080,6 +1061,24 @@ static const value_string ranap_cause_type[] = { { 44, "Relocation not supported in Target RNC or Target System" }, { 45, "Directed Retry" }, { 46, "Radio Connection With UE Lost" }, + { 47, "rNC-unable-to-establish-all-RFCs" }, + { 48, "deciphering-keys-not-available" }, + { 49, "dedicated-assistance-data-not-available" }, + { 50, "relocation-target-not-allowed" }, + { 51, "location-reporting-congestion" }, + { 52, "reduce-load-in-serving-cell" }, + { 53, "no-radio-resources-available-in-target-cell" }, + { 54, "gERAN-Iumode-failure" }, + { 55, "access-restricted-due-to-shared-networks" }, + { 56, "incoming-relocation-not-supported-due-to-PUESBINE-feature" }, + { 57, "traffic-load-in-the-target-cell-higher-than-in-the-source-cell" }, + { 58, "mBMS-no-multicast-service-for-this-UE" }, + { 59, "mBMS-unknown-UE-ID" }, + { 60, "successful-MBMS-session-start-no-data-bearer-necessary" }, + { 61, "mBMS-superseded-due-to-NNSF" }, + { 62, "mBMS-UE-linking-already-done" }, + { 63, "mBMS-UE-de-linking-failure-no-existing-UE-linking" }, + { 64, "tMGI-unknown" }, /* Transport Layer Cause (65-->80) */ { 65, "Signalling Transport Resource Failure" }, { 66, "Iu Transport Connection Failed to Establish" }, @@ -1100,6 +1099,15 @@ static const value_string ranap_cause_type[] = { { 115, "Unspecified Failure" }, { 116, "Network Opimisation" }, /* Non-standard Cause (129-->255) */ + +/* ranap_CauseRadioNetworkExtension ?? + { 257, "iP-multicast-address-and-APN-not-valid" }, + { 258, "mBMS-de-registration-rejected-due-to-implicit-registration" }, + { 259, "mBMS-request-superseded" }, + { 260, "mBMS-de-registration-during-session-not-allowed" }, + { 261, "mBMS-no-data-bearer-necessary" }, + */ + { 0, NULL } }; @@ -1858,31 +1866,34 @@ static _gtp_mess_items umts_mess_items[] = { /* TS 29.060 V6.11.0 */ { GTP_EXT_APN_RES, GTP_OPTIONAL }, { GTP_EXT_RAT_TYPE, GTP_OPTIONAL }, - /* User Location infor,ation */ - /* MS Time zone */ + { GTP_EXT_USR_LOC_INF, GTP_OPTIONAL }, + { GTP_EXT_MS_TIME_ZONE, GTP_OPTIONAL }, { GTP_EXT_IMEISV, GTP_OPTIONAL }, - /* CAMEL Charging information Container */ - /* Additionaö Trace Info */ - + { GTP_EXT_CAMEL_CHG_INF_CON, GTP_OPTIONAL }, + { GTP_EXT_ADD_TRS_INF, GTP_OPTIONAL }, { GTP_EXT_PRIV_EXT, GTP_OPTIONAL }, { 0, 0 } } }, { GTP_MSG_CREATE_PDP_RESP, { - { GTP_EXT_CAUSE, GTP_MANDATORY }, - { GTP_EXT_REORDER, GTP_CONDITIONAL }, - { GTP_EXT_RECOVER, GTP_OPTIONAL }, - { GTP_EXT_TEID, GTP_CONDITIONAL }, - { GTP_EXT_TEID_CP, GTP_CONDITIONAL }, - { GTP_EXT_CHRG_ID, GTP_CONDITIONAL }, + { GTP_EXT_CAUSE, GTP_MANDATORY }, + { GTP_EXT_REORDER, GTP_CONDITIONAL }, + { GTP_EXT_RECOVER, GTP_OPTIONAL }, + { GTP_EXT_TEID, GTP_CONDITIONAL }, + { GTP_EXT_TEID_CP, GTP_CONDITIONAL }, + { GTP_EXT_CHRG_ID, GTP_CONDITIONAL }, { GTP_EXT_USER_ADDR, GTP_CONDITIONAL }, { GTP_EXT_PROTO_CONF, GTP_OPTIONAL }, - { GTP_EXT_GSN_ADDR, GTP_CONDITIONAL }, - { GTP_EXT_GSN_ADDR, GTP_CONDITIONAL }, - { GTP_EXT_QOS_UMTS, GTP_CONDITIONAL }, + { GTP_EXT_GSN_ADDR, GTP_CONDITIONAL }, + { GTP_EXT_GSN_ADDR, GTP_CONDITIONAL }, + { GTP_EXT_QOS_UMTS, GTP_CONDITIONAL }, { GTP_EXT_CHRG_ADDR, GTP_OPTIONAL }, - { GTP_EXT_PRIV_EXT, GTP_OPTIONAL }, + /* TS 29.060 V6.11.0 */ + /* Alternative Charging Gateway Address Optional 7.7.44 */ + { GTP_EXT_PRIV_EXT, GTP_OPTIONAL }, + /* Common Flags Optional 7.7.48 */ + { GTP_EXT_APN_RES, GTP_OPTIONAL }, /* APN Restriction Optional 7.7.49 */ { 0, 0 } } }, @@ -1902,6 +1913,10 @@ static _gtp_mess_items umts_mess_items[] = { { GTP_EXT_TRIGGER_ID, GTP_OPTIONAL }, { GTP_EXT_OMC_ID, GTP_OPTIONAL }, { GTP_EXT_PRIV_EXT, GTP_OPTIONAL }, + { GTP_EXT_RAT_TYPE, GTP_OPTIONAL }, /* RAT Type Optional 7.7.50 */ + { GTP_EXT_USR_LOC_INF, GTP_OPTIONAL }, /* User Location Information Optional 7.7.51 */ + { GTP_EXT_MS_TIME_ZONE, GTP_OPTIONAL }, /* MS Time Zone Optional 7.7.52 */ + { GTP_EXT_ADD_TRS_INF, GTP_OPTIONAL }, /* Additonal Trace Info Optional 7.7.62 */ { 0, 0 } } }, @@ -1916,7 +1931,10 @@ static _gtp_mess_items umts_mess_items[] = { { GTP_EXT_GSN_ADDR, GTP_CONDITIONAL }, { GTP_EXT_QOS_UMTS, GTP_CONDITIONAL }, { GTP_EXT_CHRG_ADDR, GTP_OPTIONAL }, + /* Alternative Charging Gateway Address Optional 7.7.44 */ { GTP_EXT_PRIV_EXT, GTP_OPTIONAL }, + /* Common Flags Optional 7.7.48 */ + /* APN Restriction Optional 7.7.49 */ { 0, 0 } } }, @@ -1924,6 +1942,7 @@ static _gtp_mess_items umts_mess_items[] = { GTP_MSG_DELETE_PDP_REQ, { { GTP_EXT_TEAR_IND, GTP_CONDITIONAL }, { GTP_EXT_NSAPI, GTP_MANDATORY }, + /* Protocol Configuration Options Optional 7.7.31 */ { GTP_EXT_PRIV_EXT, GTP_OPTIONAL }, { 0, 0 } } @@ -1931,6 +1950,7 @@ static _gtp_mess_items umts_mess_items[] = { { GTP_MSG_DELETE_PDP_RESP, { { GTP_EXT_CAUSE, GTP_MANDATORY }, + /* Protocol Configuration Options Optional 7.7.31 */ { GTP_EXT_PRIV_EXT, GTP_OPTIONAL }, { 0, 0 } } @@ -1938,6 +1958,7 @@ static _gtp_mess_items umts_mess_items[] = { { GTP_MSG_ERR_IND, { { GTP_EXT_TEID, GTP_MANDATORY }, + /* GSN Address Mandatory 7.7.32 */ { GTP_EXT_PRIV_EXT, GTP_OPTIONAL }, { 0, 0 } } @@ -1948,6 +1969,7 @@ static _gtp_mess_items umts_mess_items[] = { { GTP_EXT_TEID_CP, GTP_MANDATORY }, { GTP_EXT_USER_ADDR, GTP_MANDATORY }, { GTP_EXT_APN, GTP_MANDATORY }, + /* Protocol Configuration Options Optional 7.7.31 */ { GTP_EXT_GSN_ADDR, GTP_MANDATORY }, { GTP_EXT_PRIV_EXT, GTP_OPTIONAL }, { 0, 0 } @@ -1966,6 +1988,7 @@ static _gtp_mess_items umts_mess_items[] = { { GTP_EXT_TEID_CP, GTP_MANDATORY }, { GTP_EXT_USER_ADDR, GTP_MANDATORY }, { GTP_EXT_APN, GTP_MANDATORY }, + /* Protocol Configuration Options Optional 7.7.31 */ { GTP_EXT_PRIV_EXT, GTP_OPTIONAL }, { 0, 0 } } @@ -4043,7 +4066,7 @@ decode_gtp_omc_id(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree } /* GPRS: 9.60 v7.6.0, chapter 7.9.25 - * UMTS: 29.060 v4.0, chapter 7.7.43 + * UMTS: 29.060 v4.0, chapter 7.7.43 ( 7.7.44 in v6 ). */ static int decode_gtp_chrg_addr(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree) { @@ -5330,7 +5353,7 @@ proto_register_gtp(void) { &hf_gtp_gsn_ipv6, { "GSN address IPv6", "gtp.gsn_ipv6", FT_IPv6, BASE_DEC, NULL, 0, "GSN address IPv6", HFILL }}, { &hf_gtp_imsi, { "IMSI", "gtp.imsi", FT_STRING, BASE_DEC, NULL, 0, "International Mobile Subscriber Identity number", HFILL }}, { &hf_gtp_length, { "Length", "gtp.length", FT_UINT16, BASE_DEC, NULL, 0, "Length (i.e. number of octets after TID or TEID)", HFILL }}, - { &hf_gtp_map_cause, { "MAP cause", "gtp.map_cause", FT_UINT8, BASE_DEC, VALS(map_cause_type), 0, "MAP cause", HFILL }}, + { &hf_gtp_map_cause, { "MAP cause", "gtp.map_cause", FT_UINT8, BASE_DEC, VALS(gsm_map_LocalErrorcode_vals), 0, "MAP cause", HFILL }}, { &hf_gtp_message_type, { "Message Type", "gtp.message", FT_UINT8, BASE_HEX, VALS(message_type), 0x0, "GTP Message Type", HFILL }}, { &hf_gtp_ms_reason, { "MS not reachable reason", "gtp.ms_reason", FT_UINT8, BASE_DEC, VALS(ms_not_reachable_type), 0, "MS Not Reachable Reason", HFILL }}, { &hf_gtp_ms_valid, { "MS validated", "gtp.ms_valid", FT_BOOLEAN, BASE_NONE,NULL, 0, "MS validated", HFILL }}, |