diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2010-06-23 04:50:52 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2010-06-23 04:50:52 +0000 |
commit | b883d46bea1e6ee0cdf3c0840ad26f27db97d7f1 (patch) | |
tree | 708213976713bbab9a39b15aab0fb64e930484ba /epan/dissectors | |
parent | b3388f1d7807032326642a607dd9544fdbc8409d (diff) |
FromToshihiro Kataoka:
Dissect 3GPP S1AP UE Capability Info Indication.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4904
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@33294 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-lte-rrc.c | 10 | ||||
-rw-r--r-- | epan/dissectors/packet-lte-rrc.h | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-s1ap.c | 31 |
3 files changed, 32 insertions, 11 deletions
diff --git a/epan/dissectors/packet-lte-rrc.c b/epan/dissectors/packet-lte-rrc.c index 05f3ebce58..ea517e7cf4 100644 --- a/epan/dissectors/packet-lte-rrc.c +++ b/epan/dissectors/packet-lte-rrc.c @@ -112,7 +112,7 @@ static int hf_lte_rrc_UECapabilityInformation_PDU = -1; /* UECapabilityInformat static int hf_lte_rrc_UE_EUTRA_Capability_PDU = -1; /* UE_EUTRA_Capability */ static int hf_lte_rrc_lte_rrc_HandoverCommand_PDU = -1; /* HandoverCommand */ static int hf_lte_rrc_lte_rrc_HandoverPreparationInformation_PDU = -1; /* HandoverPreparationInformation */ -static int hf_lte_rrc_UERadioAccessCapabilityInformation_PDU = -1; /* UERadioAccessCapabilityInformation */ +static int hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_PDU = -1; /* UERadioAccessCapabilityInformation */ static int hf_lte_rrc_SystemInformationBlockType1_v890_IEs_PDU = -1; /* SystemInformationBlockType1_v890_IEs */ static int hf_lte_rrc_message = -1; /* BCCH_BCH_MessageType */ static int hf_lte_rrc_message_01 = -1; /* BCCH_DL_SCH_MessageType */ @@ -18185,7 +18185,7 @@ static const per_sequence_t UERadioAccessCapabilityInformation_sequence[] = { { NULL, 0, 0, NULL } }; -static int +int dissect_lte_rrc_UERadioAccessCapabilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_lte_rrc_UERadioAccessCapabilityInformation, UERadioAccessCapabilityInformation_sequence); @@ -18291,11 +18291,11 @@ int dissect_lte_rrc_HandoverPreparationInformation_PDU(tvbuff_t *tvb _U_, packet offset += 7; offset >>= 3; return offset; } -static int dissect_UERadioAccessCapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +int dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); - offset = dissect_lte_rrc_UERadioAccessCapabilityInformation(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_UERadioAccessCapabilityInformation_PDU); + offset = dissect_lte_rrc_UERadioAccessCapabilityInformation(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_PDU); offset += 7; offset >>= 3; return offset; } @@ -18436,7 +18436,7 @@ void proto_register_lte_rrc(void) { { "HandoverPreparationInformation", "lte-rrc.HandoverPreparationInformation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_lte_rrc_UERadioAccessCapabilityInformation_PDU, + { &hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_PDU, { "UERadioAccessCapabilityInformation", "lte-rrc.UERadioAccessCapabilityInformation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, diff --git a/epan/dissectors/packet-lte-rrc.h b/epan/dissectors/packet-lte-rrc.h index 98d5ca3974..b015eab263 100644 --- a/epan/dissectors/packet-lte-rrc.h +++ b/epan/dissectors/packet-lte-rrc.h @@ -38,8 +38,10 @@ #line 1 "packet-lte-rrc-exp.h" int dissect_lte_rrc_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); int dissect_lte_rrc_HandoverPreparationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); +int dissect_lte_rrc_UERadioAccessCapabilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); int dissect_lte_rrc_HandoverCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_); int dissect_lte_rrc_HandoverPreparationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_); +int dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_); /*--- End of included file: packet-lte-rrc-exp.h ---*/ #line 29 "packet-lte-rrc-template.h" diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c index a5fdc55859..5c7be12927 100644 --- a/epan/dissectors/packet-s1ap.c +++ b/epan/dissectors/packet-s1ap.c @@ -700,6 +700,7 @@ static int ett_s1ap_TransportLayerAddress = -1; static int ett_s1ap_ToTargetTransparentContainer = -1; static int ett_s1ap_ToSourceTransparentContainer = -1; static int ett_s1ap_RRCContainer = -1; +static int ett_s1ap_UERadioCapability = -1; /*--- Included file: packet-s1ap-ett.c ---*/ @@ -914,7 +915,7 @@ static gint ett_s1ap_SuccessfulOutcome = -1; static gint ett_s1ap_UnsuccessfulOutcome = -1; /*--- End of included file: packet-s1ap-ett.c ---*/ -#line 80 "packet-s1ap-template.c" +#line 81 "packet-s1ap-template.c" enum{ INITIATING_MESSAGE, @@ -3657,6 +3658,7 @@ dissect_s1ap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ + return offset; } @@ -4483,8 +4485,24 @@ dissect_s1ap_UEPagingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 418 "s1ap.cnf" + + gint32 start_offset; + tvbuff_t *parameter_tvb; + proto_tree *subtree; + + start_offset = offset; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, NULL); + NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); + + if (!parameter_tvb) + return offset; + + subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioCapability); + dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree); + + + return offset; } @@ -7753,7 +7771,7 @@ static int dissect_S1AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto /*--- End of included file: packet-s1ap-fn.c ---*/ -#line 122 "packet-s1ap-template.c" +#line 123 "packet-s1ap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -8026,7 +8044,7 @@ proto_reg_handoff_s1ap(void) /*--- End of included file: packet-s1ap-dis-tab.c ---*/ -#line 192 "packet-s1ap-template.c" +#line 193 "packet-s1ap-template.c" } else { if (SctpPort != 0) { dissector_delete("sctp.port", SctpPort, s1ap_handle); @@ -9639,7 +9657,7 @@ void proto_register_s1ap(void) { "UnsuccessfulOutcome_value", HFILL }}, /*--- End of included file: packet-s1ap-hfarr.c ---*/ -#line 220 "packet-s1ap-template.c" +#line 221 "packet-s1ap-template.c" }; /* List of subtrees */ @@ -9649,6 +9667,7 @@ void proto_register_s1ap(void) { &ett_s1ap_ToTargetTransparentContainer, &ett_s1ap_ToSourceTransparentContainer, &ett_s1ap_RRCContainer, + &ett_s1ap_UERadioCapability, /*--- Included file: packet-s1ap-ettarr.c ---*/ #line 1 "packet-s1ap-ettarr.c" @@ -9862,7 +9881,7 @@ void proto_register_s1ap(void) { &ett_s1ap_UnsuccessfulOutcome, /*--- End of included file: packet-s1ap-ettarr.c ---*/ -#line 230 "packet-s1ap-template.c" +#line 232 "packet-s1ap-template.c" }; module_t *s1ap_module; |