aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2010-06-23 04:50:52 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2010-06-23 04:50:52 +0000
commitb883d46bea1e6ee0cdf3c0840ad26f27db97d7f1 (patch)
tree708213976713bbab9a39b15aab0fb64e930484ba /epan/dissectors
parentb3388f1d7807032326642a607dd9544fdbc8409d (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.c10
-rw-r--r--epan/dissectors/packet-lte-rrc.h2
-rw-r--r--epan/dissectors/packet-s1ap.c31
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, &parameter_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;