LTE RRC: dissect requestedCapabilityCommon / appliedCapabilityFilterCommon IEs

Change-Id: I39198df9a048510d040d56a53183669bda176cdc
Reviewed-on: https://code.wireshark.org/review/33804
Petri-Dish: Pascal Quantin <pascal@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Pascal Quantin <pascal@wireshark.org>
This commit is contained in:
Pascal Quantin 2019-07-01 17:56:25 +02:00
parent 376d4c3595
commit 7af35b68bd
6 changed files with 84 additions and 12 deletions

View File

@ -217,6 +217,14 @@ SI-OrPSI-GERAN TYPE_PREFIX
dissect_nr_rrc_UE_CapabilityRequestFilterNR_PDU(ue_cap_req_filter_nr_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY UECapabilityEnquiry-v1560-IEs/requestedCapabilityCommon-r15 VAL_PTR = &ue_cap_req_filter_common_tvb
tvbuff_t *ue_cap_req_filter_common_tvb = NULL;
%(DEFAULT_BODY)s
if (ue_cap_req_filter_common_tvb) {
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_requestedCapabilityCommon_r15);
dissect_nr_rrc_UE_CapabilityRequestFilterCommon_PDU(ue_cap_req_filter_common_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY UE-CapabilityRAT-Container
/* Initialise to invalid value */
private_data_set_rat_type(actx, 0xFF);
@ -345,6 +353,14 @@ if(ue_cap_tvb){
dissect_lte_rrc_featureGroupIndRel9Add(featureGroupIndRel9Add_tvb, actx);
}
#.FN_BODY UE-EUTRA-Capability-v1560-IEs/appliedCapabilityFilterCommon-r15 VAL_PTR = &ue_cap_req_filter_common_tvb
tvbuff_t *ue_cap_req_filter_common_tvb = NULL;
%(DEFAULT_BODY)s
if (ue_cap_req_filter_common_tvb) {
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_requestedCapabilityCommon_r15);
dissect_nr_rrc_UE_CapabilityRequestFilterCommon_PDU(ue_cap_req_filter_common_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY UE-EUTRA-CapabilityAddXDD-Mode-r9/featureGroupIndicators-r9 VAL_PTR = &featureGroupIndicators_tvb
tvbuff_t *featureGroupIndicators_tvb=NULL;
%(DEFAULT_BODY)s

View File

@ -309,6 +309,7 @@ static gint ett_lte_rrc_measGapPatterns_r15 = -1;
static gint ett_lte_rrc_nas_Container_r15 = -1;
static gint ett_lte_rrc_sourceRB_ConfigIntra5GC_r15 = -1;
static gint ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540 = -1;
static gint ett_lte_rrc_requestedCapabilityCommon_r15 = -1;
static expert_field ei_lte_rrc_number_pages_le15 = EI_INIT;
static expert_field ei_lte_rrc_si_info_value_changed = EI_INIT;
@ -4345,7 +4346,8 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_measGapPatterns_r15,
&ett_lte_rrc_nas_Container_r15,
&ett_lte_rrc_sourceRB_ConfigIntra5GC_r15,
&ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540
&ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540,
&ett_lte_rrc_requestedCapabilityCommon_r15
};
static ei_register_info ei[] = {

View File

@ -71,6 +71,7 @@ SIB7_PDU
SIB8_PDU
SIB9_PDU
UE-CapabilityRAT-ContainerList_PDU
UE-CapabilityRequestFilterCommon_PDU
UE-CapabilityRequestFilterNR_PDU
UE-MRDC-Capability_PDU
UE-NR-Capability_PDU
@ -115,6 +116,7 @@ SIB7
SIB8
SIB9
UE-CapabilityRAT-ContainerList
UE-CapabilityRequestFilterCommon
UE-CapabilityRequestFilterNR
UE-MRDC-Capability @ue_mrdc_cap
UE-NR-Capability @ue_nr_cap

View File

@ -1848,7 +1848,7 @@ static int hf_lte_rrc_eutra_nr_only_r15 = -1; /* T_eutra_nr_only_r15 */
static int hf_lte_rrc_nonCriticalExtension_200 = -1; /* UECapabilityEnquiry_v1550_IEs */
static int hf_lte_rrc_requestedCapabilityNR_r15 = -1; /* T_requestedCapabilityNR_r15 */
static int hf_lte_rrc_nonCriticalExtension_201 = -1; /* UECapabilityEnquiry_v1560_IEs */
static int hf_lte_rrc_requestedCapabilityCommon_r15 = -1; /* OCTET_STRING */
static int hf_lte_rrc_requestedCapabilityCommon_r15 = -1; /* T_requestedCapabilityCommon_r15 */
static int hf_lte_rrc_nonCriticalExtension_202 = -1; /* T_nonCriticalExtension_62 */
static int hf_lte_rrc_UE_CapabilityRequest_item = -1; /* RAT_Type */
static int hf_lte_rrc_criticalExtensions_49 = -1; /* T_criticalExtensions_49 */
@ -5481,7 +5481,7 @@ static int hf_lte_rrc_tdd_Add_UE_EUTRA_Capabilities_v1550 = -1; /* UE_EUTRA_Cap
static int hf_lte_rrc_nonCriticalExtension_290 = -1; /* UE_EUTRA_Capability_v1560_IEs */
static int hf_lte_rrc_pdcp_ParametersNR_v1560 = -1; /* PDCP_ParametersNR_v1560 */
static int hf_lte_rrc_irat_ParametersNR_v1560 = -1; /* IRAT_ParametersNR_v1560 */
static int hf_lte_rrc_appliedCapabilityFilterCommon_r15 = -1; /* OCTET_STRING */
static int hf_lte_rrc_appliedCapabilityFilterCommon_r15 = -1; /* T_appliedCapabilityFilterCommon_r15 */
static int hf_lte_rrc_fdd_Add_UE_EUTRA_Capabilities_v1560 = -1; /* UE_EUTRA_CapabilityAddXDD_Mode_v1560 */
static int hf_lte_rrc_tdd_Add_UE_EUTRA_Capabilities_v1560 = -1; /* UE_EUTRA_CapabilityAddXDD_Mode_v1560 */
static int hf_lte_rrc_nonCriticalExtension_291 = -1; /* T_nonCriticalExtension_80 */
@ -11168,6 +11168,7 @@ static gint ett_lte_rrc_measGapPatterns_r15 = -1;
static gint ett_lte_rrc_nas_Container_r15 = -1;
static gint ett_lte_rrc_sourceRB_ConfigIntra5GC_r15 = -1;
static gint ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540 = -1;
static gint ett_lte_rrc_requestedCapabilityCommon_r15 = -1;
static expert_field ei_lte_rrc_number_pages_le15 = EI_INIT;
static expert_field ei_lte_rrc_si_info_value_changed = EI_INIT;
@ -68810,6 +68811,23 @@ dissect_lte_rrc_T_requestedCapabilityNR_r15(tvbuff_t *tvb _U_, int offset _U_, a
}
static int
dissect_lte_rrc_T_requestedCapabilityCommon_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
tvbuff_t *ue_cap_req_filter_common_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &ue_cap_req_filter_common_tvb);
if (ue_cap_req_filter_common_tvb) {
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_requestedCapabilityCommon_r15);
dissect_nr_rrc_UE_CapabilityRequestFilterCommon_PDU(ue_cap_req_filter_common_tvb, actx->pinfo, subtree, NULL);
}
return offset;
}
static const per_sequence_t T_nonCriticalExtension_62_sequence[] = {
{ NULL, 0, 0, NULL }
};
@ -68824,7 +68842,7 @@ dissect_lte_rrc_T_nonCriticalExtension_62(tvbuff_t *tvb _U_, int offset _U_, asn
static const per_sequence_t UECapabilityEnquiry_v1560_IEs_sequence[] = {
{ &hf_lte_rrc_requestedCapabilityCommon_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
{ &hf_lte_rrc_requestedCapabilityCommon_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_requestedCapabilityCommon_r15 },
{ &hf_lte_rrc_nonCriticalExtension_202, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_62 },
{ NULL, 0, 0, NULL }
};
@ -95101,6 +95119,23 @@ dissect_lte_rrc_IRAT_ParametersNR_v1560(tvbuff_t *tvb _U_, int offset _U_, asn1_
}
static int
dissect_lte_rrc_T_appliedCapabilityFilterCommon_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
tvbuff_t *ue_cap_req_filter_common_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &ue_cap_req_filter_common_tvb);
if (ue_cap_req_filter_common_tvb) {
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_requestedCapabilityCommon_r15);
dissect_nr_rrc_UE_CapabilityRequestFilterCommon_PDU(ue_cap_req_filter_common_tvb, actx->pinfo, subtree, NULL);
}
return offset;
}
static const per_sequence_t UE_EUTRA_CapabilityAddXDD_Mode_v1560_sequence[] = {
{ &hf_lte_rrc_pdcp_ParametersNR_v1560, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_PDCP_ParametersNR_v1560 },
{ NULL, 0, 0, NULL }
@ -95131,7 +95166,7 @@ dissect_lte_rrc_T_nonCriticalExtension_80(tvbuff_t *tvb _U_, int offset _U_, asn
static const per_sequence_t UE_EUTRA_Capability_v1560_IEs_sequence[] = {
{ &hf_lte_rrc_pdcp_ParametersNR_v1560, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_PDCP_ParametersNR_v1560 },
{ &hf_lte_rrc_irat_ParametersNR_v1560, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_IRAT_ParametersNR_v1560 },
{ &hf_lte_rrc_appliedCapabilityFilterCommon_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
{ &hf_lte_rrc_appliedCapabilityFilterCommon_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_appliedCapabilityFilterCommon_r15 },
{ &hf_lte_rrc_fdd_Add_UE_EUTRA_Capabilities_v1560, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1560 },
{ &hf_lte_rrc_tdd_Add_UE_EUTRA_Capabilities_v1560, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1560 },
{ &hf_lte_rrc_nonCriticalExtension_291, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_80 },
@ -111465,7 +111500,7 @@ static int dissect_UE_RadioPagingInfo_NB_r13_PDU(tvbuff_t *tvb _U_, packet_info
/*--- End of included file: packet-lte-rrc-fn.c ---*/
#line 3175 "./asn1/lte-rrc/packet-lte-rrc-template.c"
#line 3176 "./asn1/lte-rrc/packet-lte-rrc-template.c"
static int
dissect_lte_rrc_DL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
@ -118034,7 +118069,7 @@ void proto_register_lte_rrc(void) {
{ &hf_lte_rrc_requestedCapabilityCommon_r15,
{ "requestedCapabilityCommon-r15", "lte-rrc.requestedCapabilityCommon_r15",
FT_BYTES, BASE_NONE, NULL, 0,
"OCTET_STRING", HFILL }},
NULL, HFILL }},
{ &hf_lte_rrc_nonCriticalExtension_202,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
@ -132566,7 +132601,7 @@ void proto_register_lte_rrc(void) {
{ &hf_lte_rrc_appliedCapabilityFilterCommon_r15,
{ "appliedCapabilityFilterCommon-r15", "lte-rrc.appliedCapabilityFilterCommon_r15",
FT_BYTES, BASE_NONE, NULL, 0,
"OCTET_STRING", HFILL }},
NULL, HFILL }},
{ &hf_lte_rrc_fdd_Add_UE_EUTRA_Capabilities_v1560,
{ "fdd-Add-UE-EUTRA-Capabilities-v1560", "lte-rrc.fdd_Add_UE_EUTRA_Capabilities_v1560_element",
FT_NONE, BASE_NONE, NULL, 0,
@ -141181,7 +141216,7 @@ void proto_register_lte_rrc(void) {
"CarrierFreq_NB_r13", HFILL }},
/*--- End of included file: packet-lte-rrc-hfarr.c ---*/
#line 3550 "./asn1/lte-rrc/packet-lte-rrc-template.c"
#line 3551 "./asn1/lte-rrc/packet-lte-rrc-template.c"
{ &hf_lte_rrc_eutra_cap_feat_group_ind_1,
{ "Indicator 1", "lte-rrc.eutra_cap_feat_group_ind_1",
@ -145235,7 +145270,7 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_PCI_ARFCN_NB_r14,
/*--- End of included file: packet-lte-rrc-ettarr.c ---*/
#line 4309 "./asn1/lte-rrc/packet-lte-rrc-template.c"
#line 4310 "./asn1/lte-rrc/packet-lte-rrc-template.c"
&ett_lte_rrc_featureGroupIndicators,
&ett_lte_rrc_featureGroupIndRel9Add,
@ -145275,7 +145310,8 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_measGapPatterns_r15,
&ett_lte_rrc_nas_Container_r15,
&ett_lte_rrc_sourceRB_ConfigIntra5GC_r15,
&ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540
&ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540,
&ett_lte_rrc_requestedCapabilityCommon_r15
};
static ei_register_info ei[] = {
@ -145366,7 +145402,7 @@ void proto_register_lte_rrc(void) {
/*--- End of included file: packet-lte-rrc-dis-reg.c ---*/
#line 4403 "./asn1/lte-rrc/packet-lte-rrc-template.c"
#line 4405 "./asn1/lte-rrc/packet-lte-rrc-template.c"
lte_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);
lte_rrc_system_info_value_changed_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);

View File

@ -294,6 +294,7 @@ static int hf_nr_rrc_nr_rrc_RadioBearerConfig_PDU = -1; /* RadioBearerConfig */
static int hf_nr_rrc_nr_rrc_UplinkTxDirectCurrentList_PDU = -1; /* UplinkTxDirectCurrentList */
static int hf_nr_rrc_nr_rrc_FreqBandList_PDU = -1; /* FreqBandList */
static int hf_nr_rrc_nr_rrc_UE_CapabilityRAT_ContainerList_PDU = -1; /* UE_CapabilityRAT_ContainerList */
static int hf_nr_rrc_nr_rrc_UE_CapabilityRequestFilterCommon_PDU = -1; /* UE_CapabilityRequestFilterCommon */
static int hf_nr_rrc_nr_rrc_UE_CapabilityRequestFilterNR_PDU = -1; /* UE_CapabilityRequestFilterNR */
static int hf_nr_rrc_nr_rrc_UE_MRDC_Capability_PDU = -1; /* UE_MRDC_Capability */
static int hf_nr_rrc_nr_rrc_UE_NR_Capability_PDU = -1; /* UE_NR_Capability */
@ -43931,6 +43932,16 @@ int dissect_nr_rrc_UE_CapabilityRAT_ContainerList_PDU(tvbuff_t *tvb _U_, packet_
offset += 7; offset >>= 3;
return offset;
}
int dissect_nr_rrc_UE_CapabilityRequestFilterCommon_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
offset = dissect_nr_rrc_UE_CapabilityRequestFilterCommon(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_UE_CapabilityRequestFilterCommon_PDU);
offset += 7; offset >>= 3;
return offset;
}
int dissect_nr_rrc_UE_CapabilityRequestFilterNR_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
@ -44177,6 +44188,10 @@ proto_register_nr_rrc(void) {
{ "UE-CapabilityRAT-ContainerList", "nr-rrc.UE_CapabilityRAT_ContainerList",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_nr_rrc_nr_rrc_UE_CapabilityRequestFilterCommon_PDU,
{ "UE-CapabilityRequestFilterCommon", "nr-rrc.UE_CapabilityRequestFilterCommon_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_nr_rrc_nr_rrc_UE_CapabilityRequestFilterNR_PDU,
{ "UE-CapabilityRequestFilterNR", "nr-rrc.UE_CapabilityRequestFilterNR_element",
FT_NONE, BASE_NONE, NULL, 0,

View File

@ -56,6 +56,7 @@ int dissect_nr_rrc_RadioBearerConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _
int dissect_nr_rrc_UplinkTxDirectCurrentList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_FreqBandList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_UE_CapabilityRAT_ContainerList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_UE_CapabilityRequestFilterCommon_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_UE_CapabilityRequestFilterNR_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_UE_MRDC_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
int dissect_nr_rrc_UE_NR_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);