LTE RRC: register dissectors for UERadioAccessCapabilityInformation(-NB) and UERadioPagingInformation(-NB)

Change-Id: Idb3c3fe2cab4ce7aff2bfe108a6bd4fb07fe44b3
Reviewed-on: https://code.wireshark.org/review/25426
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Pascal Quantin 2018-01-23 11:37:25 +01:00 committed by Anders Broman
parent 3a9da2e707
commit c2daa6bc73
6 changed files with 206 additions and 178 deletions

View File

@ -43,11 +43,7 @@ SCG-ConfigInfo-r12_PDU
UECapabilityInformation_PDU
UEPagingCoverageInformation_PDU
UEPagingCoverageInformation-NB_PDU
UERadioAccessCapabilityInformation_PDU
UERadioAccessCapabilityInformation-NB_PDU
UE-EUTRA-Capability_PDU
UERadioPagingInformation_PDU
UERadioPagingInformation-NB_PDU
VisitedCellInfoList-r12_PDU
#.END
@ -60,10 +56,10 @@ RLF-Report-v9e0
SCG-ConfigInfo-r12
UEPagingCoverageInformation
UEPagingCoverageInformation-NB
UERadioAccessCapabilityInformation
UERadioAccessCapabilityInformation-NB
UERadioPagingInformation
UERadioPagingInformation-NB
UERadioAccessCapabilityInformation @ue_radio_access_cap_info
UERadioAccessCapabilityInformation-NB @ue_radio_access_cap_info.nb
UERadioPagingInformation @ue_radio_paging_info
UERadioPagingInformation-NB @ue_radio_paging_info.nb
VisitedCellInfoList-r12
BCCH-BCH-Message @bcch.bch
BCCH-DL-SCH-Message @bcch.dl.sch

View File

@ -64,6 +64,10 @@ void proto_reg_handoff_s1ap(void);
static dissector_handle_t nas_eps_handle;
static dissector_handle_t lppa_handle;
static dissector_handle_t bssgp_handle;
static dissector_handle_t lte_rrc_ue_radio_access_cap_info_handle;
static dissector_handle_t lte_rrc_ue_radio_access_cap_info_nb_handle;
static dissector_handle_t lte_rrc_ue_radio_paging_info_handle;
static dissector_handle_t lte_rrc_ue_radio_paging_info_nb_handle;
#include "packet-s1ap-val.h"
@ -467,6 +471,10 @@ proto_reg_handoff_s1ap(void)
nas_eps_handle = find_dissector_add_dependency("nas-eps", proto_s1ap);
lppa_handle = find_dissector_add_dependency("lppa", proto_s1ap);
bssgp_handle = find_dissector_add_dependency("bssgp", proto_s1ap);
lte_rrc_ue_radio_access_cap_info_handle = find_dissector_add_dependency("lte-rrc.ue_radio_access_cap_info", proto_s1ap);
lte_rrc_ue_radio_access_cap_info_nb_handle = find_dissector_add_dependency("lte-rrc.ue_radio_access_cap_info.nb", proto_s1ap);
lte_rrc_ue_radio_paging_info_handle = find_dissector_add_dependency("lte-rrc.ue_radio_paging_info", proto_s1ap);
lte_rrc_ue_radio_paging_info_nb_handle = find_dissector_add_dependency("lte-rrc.ue_radio_paging_info.nb", proto_s1ap);
dissector_add_for_decode_as("sctp.port", s1ap_handle);
dissector_add_uint("sctp.ppi", S1AP_PAYLOAD_PROTOCOL_ID, s1ap_handle);
Initialized=TRUE;

View File

@ -579,12 +579,16 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC
return offset;
if (g_s1ap_dissect_container) {
dissector_handle_t handle;
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioCapability);
if ((s1ap_is_nbiot_ue(actx->pinfo) && (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_AUTOMATIC)) ||
(g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_NBIOT)) {
dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
handle = lte_rrc_ue_radio_access_cap_info_nb_handle;
} else {
dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
handle = lte_rrc_ue_radio_access_cap_info_handle;
}
if (handle) {
call_dissector(handle, parameter_tvb, actx->pinfo, subtree);
}
}
@ -657,12 +661,16 @@ if (gcsna_handle) {
return offset;
if (g_s1ap_dissect_container) {
dissector_handle_t handle;
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UERadioPagingInformation);
if ((s1ap_is_nbiot_ue(actx->pinfo) && (g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_AUTOMATIC)) ||
(g_s1ap_dissect_lte_container_as == S1AP_LTE_CONTAINER_NBIOT)) {
dissect_lte_rrc_UERadioPagingInformation_NB_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
handle = lte_rrc_ue_radio_paging_info_nb_handle;
} else {
dissect_lte_rrc_UERadioPagingInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
handle = lte_rrc_ue_radio_paging_info_handle;
}
if (handle) {
call_dissector(handle, parameter_tvb, actx->pinfo, subtree);
}
}

View File

@ -277,8 +277,8 @@ 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_lte_rrc_SCG_ConfigInfo_r12_PDU = -1; /* SCG_ConfigInfo_r12 */
static int hf_lte_rrc_lte_rrc_UEPagingCoverageInformation_PDU = -1; /* UEPagingCoverageInformation */
static int hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_PDU = -1; /* UERadioAccessCapabilityInformation */
static int hf_lte_rrc_lte_rrc_UERadioPagingInformation_PDU = -1; /* UERadioPagingInformation */
static int hf_lte_rrc_UERadioAccessCapabilityInformation_PDU = -1; /* UERadioAccessCapabilityInformation */
static int hf_lte_rrc_UERadioPagingInformation_PDU = -1; /* UERadioPagingInformation */
static int hf_lte_rrc_BCCH_BCH_Message_PDU = -1; /* BCCH_BCH_Message */
static int hf_lte_rrc_BCCH_BCH_Message_MBMS_PDU = -1; /* BCCH_BCH_Message_MBMS */
static int hf_lte_rrc_BCCH_DL_SCH_Message_PDU = -1; /* BCCH_DL_SCH_Message */
@ -300,8 +300,8 @@ static int hf_lte_rrc_SBCCH_SL_BCH_Message_PDU = -1; /* SBCCH_SL_BCH_Message */
static int hf_lte_rrc_SBCCH_SL_BCH_Message_V2X_r14_PDU = -1; /* SBCCH_SL_BCH_Message_V2X_r14 */
static int hf_lte_rrc_lte_rrc_HandoverPreparationInformation_NB_PDU = -1; /* HandoverPreparationInformation_NB */
static int hf_lte_rrc_lte_rrc_UEPagingCoverageInformation_NB_PDU = -1; /* UEPagingCoverageInformation_NB */
static int hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU = -1; /* UERadioAccessCapabilityInformation_NB */
static int hf_lte_rrc_lte_rrc_UERadioPagingInformation_NB_PDU = -1; /* UERadioPagingInformation_NB */
static int hf_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU = -1; /* UERadioAccessCapabilityInformation_NB */
static int hf_lte_rrc_UERadioPagingInformation_NB_PDU = -1; /* UERadioPagingInformation_NB */
static int hf_lte_rrc_BCCH_BCH_Message_NB_PDU = -1; /* BCCH_BCH_Message_NB */
static int hf_lte_rrc_BCCH_DL_SCH_Message_NB_PDU = -1; /* BCCH_DL_SCH_Message_NB */
static int hf_lte_rrc_PCCH_Message_NB_PDU = -1; /* PCCH_Message_NB */
@ -87273,19 +87273,19 @@ int dissect_lte_rrc_UEPagingCoverageInformation_PDU(tvbuff_t *tvb _U_, packet_in
offset += 7; offset >>= 3;
return offset;
}
int dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
static int dissect_UERadioAccessCapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _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_lte_rrc_UERadioAccessCapabilityInformation_PDU);
offset = dissect_lte_rrc_UERadioAccessCapabilityInformation(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_UERadioAccessCapabilityInformation_PDU);
offset += 7; offset >>= 3;
return offset;
}
int dissect_lte_rrc_UERadioPagingInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
static int dissect_UERadioPagingInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
offset = dissect_lte_rrc_UERadioPagingInformation(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_lte_rrc_UERadioPagingInformation_PDU);
offset = dissect_lte_rrc_UERadioPagingInformation(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_UERadioPagingInformation_PDU);
offset += 7; offset >>= 3;
return offset;
}
@ -87457,19 +87457,19 @@ int dissect_lte_rrc_UEPagingCoverageInformation_NB_PDU(tvbuff_t *tvb _U_, packet
offset += 7; offset >>= 3;
return offset;
}
int dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
static int dissect_UERadioAccessCapabilityInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
offset = dissect_lte_rrc_UERadioAccessCapabilityInformation_NB(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU);
offset = dissect_lte_rrc_UERadioAccessCapabilityInformation_NB(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU);
offset += 7; offset >>= 3;
return offset;
}
int dissect_lte_rrc_UERadioPagingInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
static int dissect_UERadioPagingInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
offset = dissect_lte_rrc_UERadioPagingInformation_NB(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_lte_rrc_UERadioPagingInformation_NB_PDU);
offset = dissect_lte_rrc_UERadioPagingInformation_NB(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_UERadioPagingInformation_NB_PDU);
offset += 7; offset >>= 3;
return offset;
}
@ -88119,11 +88119,11 @@ void proto_register_lte_rrc(void) {
{ "UEPagingCoverageInformation", "lte-rrc.UEPagingCoverageInformation_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_PDU,
{ &hf_lte_rrc_UERadioAccessCapabilityInformation_PDU,
{ "UERadioAccessCapabilityInformation", "lte-rrc.UERadioAccessCapabilityInformation_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_lte_rrc_lte_rrc_UERadioPagingInformation_PDU,
{ &hf_lte_rrc_UERadioPagingInformation_PDU,
{ "UERadioPagingInformation", "lte-rrc.UERadioPagingInformation_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
@ -88211,11 +88211,11 @@ void proto_register_lte_rrc(void) {
{ "UEPagingCoverageInformation-NB", "lte-rrc.UEPagingCoverageInformation_NB_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_lte_rrc_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU,
{ &hf_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU,
{ "UERadioAccessCapabilityInformation-NB", "lte-rrc.UERadioAccessCapabilityInformation_NB_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_lte_rrc_lte_rrc_UERadioPagingInformation_NB_PDU,
{ &hf_lte_rrc_UERadioPagingInformation_NB_PDU,
{ "UERadioPagingInformation-NB", "lte-rrc.UERadioPagingInformation_NB_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
@ -114395,6 +114395,8 @@ void proto_register_lte_rrc(void) {
/*--- Included file: packet-lte-rrc-dis-reg.c ---*/
#line 1 "./asn1/lte-rrc/packet-lte-rrc-dis-reg.c"
register_dissector("lte-rrc.ue_radio_access_cap_info", dissect_UERadioAccessCapabilityInformation_PDU, proto_lte_rrc);
register_dissector("lte-rrc.ue_radio_paging_info", dissect_UERadioPagingInformation_PDU, proto_lte_rrc);
register_dissector("lte-rrc.bcch.bch", dissect_BCCH_BCH_Message_PDU, proto_lte_rrc);
register_dissector("lte-rrc.bcch.bch.mbms", dissect_BCCH_BCH_Message_MBMS_PDU, proto_lte_rrc);
register_dissector("lte-rrc.bcch.dl.sch", dissect_BCCH_DL_SCH_Message_PDU, proto_lte_rrc);
@ -114411,6 +114413,8 @@ void proto_register_lte_rrc(void) {
register_dissector("lte-rrc.ue_eutra_cap", dissect_lte_rrc_UE_EUTRA_Capability_PDU, proto_lte_rrc);
register_dissector("lte-rrc.sbcch.sl.bch", dissect_SBCCH_SL_BCH_Message_PDU, proto_lte_rrc);
register_dissector("lte-rrc.sbcch.sl.bch.v2x", dissect_SBCCH_SL_BCH_Message_V2X_r14_PDU, proto_lte_rrc);
register_dissector("lte-rrc.ue_radio_access_cap_info.nb", dissect_UERadioAccessCapabilityInformation_NB_PDU, proto_lte_rrc);
register_dissector("lte-rrc.ue_radio_paging_info.nb", dissect_UERadioPagingInformation_NB_PDU, proto_lte_rrc);
register_dissector("lte-rrc.bcch.bch.nb", dissect_BCCH_BCH_Message_NB_PDU, proto_lte_rrc);
register_dissector("lte-rrc.bcch.dl.sch.nb", dissect_BCCH_DL_SCH_Message_NB_PDU, proto_lte_rrc);
register_dissector("lte-rrc.pcch.nb", dissect_PCCH_Message_NB_PDU, proto_lte_rrc);

View File

@ -28,8 +28,6 @@ int dissect_lte_rrc_HandoverCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U
int dissect_lte_rrc_HandoverPreparationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_SCG_ConfigInfo_r12_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_UEPagingCoverageInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_UERadioAccessCapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_UERadioPagingInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_RLF_Report_r9_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_RLF_Report_v9e0_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
@ -37,8 +35,6 @@ int dissect_lte_rrc_UE_EUTRA_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinf
int dissect_lte_rrc_VisitedCellInfoList_r12_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_HandoverPreparationInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_UEPagingCoverageInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_lte_rrc_UERadioPagingInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
/*--- End of included file: packet-lte-rrc-exp.h ---*/
#line 17 "./asn1/lte-rrc/packet-lte-rrc-template.h"

File diff suppressed because it is too large Load Diff