FromToshihiro Kataoka:
Dissect 3GPP S1AP UE Capability Info Indication. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4904 svn path=/trunk/; revision=33294
This commit is contained in:
parent
c3f91fd021
commit
6f754a1f1b
3
AUTHORS
3
AUTHORS
|
@ -1734,6 +1734,8 @@ Anders Broman <anders.broman [AT] ericsson.com> {
|
|||
MP4V-ES dissection
|
||||
NAS EPS dissection
|
||||
GTPv2 dissection
|
||||
Work on the initial version of the new packet list
|
||||
Miscellaneous enhancements and fixes
|
||||
}
|
||||
|
||||
Christian Falckenberg <christian.falckenberg [AT] nortelnetworks.com> {
|
||||
|
@ -3270,6 +3272,7 @@ Hadar Shoham <hadar [AT] ti.com>
|
|||
Robert Bullen <robert [AT] bitcricket.com>
|
||||
Chuck Kristofek <chuck.kristofek [AT] ngc.com>
|
||||
Markus Renz <Markus.Renz [AT] hirschmann.de>
|
||||
Toshihiro Kataoka <kataoka.toshihiro [AT] gmail.com>
|
||||
|
||||
Dan Lasley <dlasley[AT]promus.com> gave permission for his
|
||||
dumpit() hex-dump routine to be used.
|
||||
|
|
|
@ -16,6 +16,8 @@ HandoverCommand
|
|||
HandoverCommand_PDU
|
||||
HandoverPreparationInformation
|
||||
HandoverPreparationInformation_PDU
|
||||
UERadioAccessCapabilityInformation
|
||||
UERadioAccessCapabilityInformation_PDU
|
||||
#UEInformationResponse
|
||||
|
||||
#.PDU_NEW
|
||||
|
|
|
@ -75,6 +75,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;
|
||||
|
||||
#include "packet-s1ap-ett.c"
|
||||
|
||||
|
@ -226,6 +227,7 @@ void proto_register_s1ap(void) {
|
|||
&ett_s1ap_ToTargetTransparentContainer,
|
||||
&ett_s1ap_ToSourceTransparentContainer,
|
||||
&ett_s1ap_RRCContainer,
|
||||
&ett_s1ap_UERadioCapability,
|
||||
#include "packet-s1ap-ettarr.c"
|
||||
};
|
||||
|
||||
|
|
|
@ -413,6 +413,22 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
|
|||
|
||||
|
||||
|
||||
|
||||
#.FN_BODY UERadioCapability VAL_PTR = ¶meter_tvb
|
||||
|
||||
gint32 start_offset;
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree;
|
||||
|
||||
start_offset = offset;
|
||||
%(DEFAULT_BODY)s
|
||||
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);
|
||||
|
||||
|
||||
#.TYPE_ATTR
|
||||
ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(s1ap_ProtocolIE_ID_vals)
|
||||
|
||||
|
|
|
@ -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 }},
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue