diff options
author | Anders Broman <anders.broman@ericsson.com> | 2010-06-23 04:50:52 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2010-06-23 04:50:52 +0000 |
commit | 6f754a1f1b74ac3210692889b9c26e29383f11f2 (patch) | |
tree | 708213976713bbab9a39b15aab0fb64e930484ba /epan/dissectors/packet-s1ap.c | |
parent | c3f91fd021ab376145f91c3c201bffb5aa2e8620 (diff) |
FromToshihiro Kataoka:
Dissect 3GPP S1AP UE Capability Info Indication.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4904
svn path=/trunk/; revision=33294
Diffstat (limited to 'epan/dissectors/packet-s1ap.c')
-rw-r--r-- | epan/dissectors/packet-s1ap.c | 31 |
1 files changed, 25 insertions, 6 deletions
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; |