# lte-rrc.cnf # lte-rrc conformation file # Copyright 2008 Vincent Helfre, 2009-2016 Pascal Quantin #.OPT PER UNALIGNED #.END #.USE_VALS_EXT BandclassCDMA2000 DRX-Config/setup/drx-InactivityTimer PDCP-Config/eag_3/t-Reordering-r12 Q-OffsetRange RRM-Config/ue-InactiveTime SIB-Type SL-PeriodComm-r12 SupportedBandUTRA-FDD T-PollRetransmit T-Reordering T-StatusProhibit WLAN-backhaulRate-r12 #.EXPORTS HandoverCommand HandoverCommand_PDU HandoverPreparationInformation HandoverPreparationInformation_PDU HandoverPreparationInformation-NB HandoverPreparationInformation-NB_PDU UERadioAccessCapabilityInformation UERadioAccessCapabilityInformation_PDU UERadioAccessCapabilityInformation-NB UERadioAccessCapabilityInformation-NB_PDU UE-EUTRA-Capability UE-EUTRA-Capability_PDU #.END #.PDU HandoverCommand HandoverPreparationInformation HandoverPreparationInformation-NB UERadioAccessCapabilityInformation UERadioAccessCapabilityInformation-NB BCCH-BCH-Message @bcch.bch BCCH-DL-SCH-Message @bcch.dl.sch BCCH-DL-SCH-Message-BR @bcch.dl.sch.br MCCH-Message @mcch PCCH-Message @pcch DL-CCCH-Message @dl.ccch DL-DCCH-Message @dl.dcch UL-CCCH-Message @ul.ccch UL-DCCH-Message @ul.dcch SC-MCCH-Message-r13 @sc.mcch UECapabilityInformation @ue_cap_info UE-EUTRA-Capability @ue_eutra_cap SBCCH-SL-BCH-Message @sbcch.sl.bch BCCH-BCH-Message-NB @bcch.bch.nb BCCH-DL-SCH-Message-NB @bcch.dl.sch.nb PCCH-Message-NB @pcch.nb DL-CCCH-Message-NB @dl.ccch.nb DL-DCCH-Message-NB @dl.dcch.nb UL-CCCH-Message-NB @ul.ccch.nb UL-DCCH-Message-NB @ul.dcch.nb #.END #.OMIT_ASSIGNMENT # Get rid of unused code warnings Cell-ToAddMod-r12 CellsTriggeredList CSI-RS-TriggeredList-r12 DRB-InfoListSCG-r12 DRB-InfoSCG-r12 LogMeasInfoList2-r10 MeasResultServCellListSCG-r12 MeasResultServCellListSCG-Ext-r13 MeasResultServCellSCG-r12 RSRP-RangeSL3-r12 SCellToAddModListSCG-r12 SCellToAddModListSCG-Ext-r13 SCG-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs SCG-ConfigInfo-v1310-IEs SCG-ConfigRestrictInfo-r12 SL-PreconfigCommPool-r12 SL-PreconfigCommPoolList4-r12 SL-PreconfigCommRxPoolList-r13 SL-PreconfigCommTxPoolList-r13 SL-PreconfigDiscPool-r13 SL-PreconfigDiscRxPoolList-r13 SL-PreconfigDiscTxPoolList-r13 SL-PreconfigGeneral-r12 SL-PreconfigRelay-r13 SL-PreconfigSync-r12 SL-Preconfiguration-r12 SL-TxPoolIdentity-r13 UEPagingCoverageInformation UEPagingCoverageInformation-NB UEPagingCoverageInformation-NB-IEs UEPagingCoverageInformation-r13-IEs UERadioPagingInformation UERadioPagingInformation-NB UERadioPagingInformation-NB-IEs UERadioPagingInformation-r12-IEs UERadioPagingInformation-v1310-IEs VarConnEstFailReport-r11 VarLogMeasConfig-r10 VarLogMeasConfig-r11 VarLogMeasConfig-r12 VarLogMeasReport-r10 VarLogMeasReport-r11 VarMeasConfig VarMeasReportList VarMeasReportList-r12 VarMeasReport VarMobilityHistoryReport-r12 VarRLF-Report-r10 VarRLF-Report-r11 VarShortMAC-Input VarShortMAC-Input-NB-r13 VarShortResumeMAC-Input-NB-r13 VarShortResumeMAC-Input-r13 VarWLAN-MobilityConfig VarWLAN-Status-r13 #.NO_EMIT ONLY_VALS EAB-Config-r11/eab-Category-r11 AB-Config-NB-r13/ab-Category-r13 #.MAKE_ENUM RAT-Type TYPE_PREFIX Handover/targetRAT-Type TYPE_PREFIX SI-OrPSI-GERAN TYPE_PREFIX # # EUTRA-RRC-Definitions.asn # #.FN_HDR UL-DCCH-Message actx->pinfo->link_dir = P2P_DIR_UL; #.FN_HDR DL-DCCH-Message actx->pinfo->link_dir = P2P_DIR_DL; #.FN_BODY DedicatedInfoNAS VAL_PTR = &nas_eps_tvb tvbuff_t *nas_eps_tvb=NULL; proto_tree *subtree; %(DEFAULT_BODY)s if ((nas_eps_tvb)&&(nas_eps_handle)) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_dedicatedInfoNAS); lte_rrc_call_dissector(nas_eps_handle, nas_eps_tvb, actx->pinfo, subtree); } #.FN_BODY UE-CapabilityRAT-Container /* Initialise to invalid value */ private_data_set_rat_type(actx, 0xFF); %(DEFAULT_BODY)s #.FN_BODY RAT-Type VAL_PTR = &rat_type guint32 rat_type; %(DEFAULT_BODY)s private_data_set_rat_type(actx, (guint8)rat_type); #RAT-Type ::= ENUMERATED { # eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, # spare3, spare2, spare1, ...} # ueCapabilityRAT-Container # Container for the UE capabilities of the indicated RAT. The encoding is defined in the specification of each RAT: # For E-UTRA: the encoding of UE capabilities is defined in IE UE-EUTRA-Capability. # For UTRA: the octet string contains the INTER RAT HANDOVER INFO message defined in TS 25.331 [19]. # For GERAN CS: the octet string contains the concatenated string of the Mobile Station Classmark 2 and Mobile # Station Classmark 3. The first 5 octets correspond to Mobile Station Classmark 2 and the following octets correspond # to Mobile Station Classmark 3. The Mobile Station Classmark 2 is formatted as 'TLV' and is coded in the same way as # the Mobile Station Classmark 2 information element in TS 24.008 [49]. The first octet is the Mobile station classmark 2 # IEI and its value shall be set to 33H. The second octet is the Length of mobile station classmark 2 and its value shall # be set to 3. The octet 3 contains the first octet of the value part of the Mobile Station Classmark 2 information element, # the octet 4 contains the second octet of the value part of the Mobile Station Classmark 2 information element and so # on. For each of these octets, the first/ leftmost/ most significant bit of the octet contains b8 of the corresponding octet # of the Mobile Station Classmark 2. The Mobile Station Classmark 3 is formatted as 'V' and is coded in the same way # as the value part in the Mobile station classmark 3 information element in TS 24.008 [49]. The sixth octet of this octet # string contains octet 1 of the value part of Mobile station classmark 3, the seventh of octet of this octet string contains # octet 2 of the value part of Mobile station classmark 3 and so on. Note. # For GERAN PS: the encoding of UE capabilities is formatted as 'V' and is coded in the same way as the value part in # the MS Radio Access Capability information element in TS 24.008 [49]. # For CDMA2000-1XRTT: the octet string contains the A21 Mobile Subscription Information and the encoding of this is # defined in A.S0008 [33]. The A21 Mobile Subscription Information contains the supported CDMA2000 1xRTT band # class and band sub-class information. #.FN_BODY UE-CapabilityRAT-Container/ueCapabilityRAT-Container VAL_PTR = &ue_cap_tvb tvbuff_t *ue_cap_tvb=NULL; %(DEFAULT_BODY)s #.FN_FTR UE-CapabilityRAT-Container/ueCapabilityRAT-Container if(ue_cap_tvb){ guint32 length; proto_item *item; proto_tree *subtree, *subtree2; guint8 byte; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_UE_CapabilityRAT_Container); switch(private_data_get_rat_type(actx)){ case RAT_Type_eutra: /* eutra */ dissect_lte_rrc_UE_EUTRA_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); break; case RAT_Type_utra: /* utra */ dissect_rrc_InterRATHandoverInfo_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); break; case RAT_Type_geran_cs: /* geran-cs */ /* Mobile Station Classmark 2 is formatted as TLV with the two first bytes set to 0x33 0x03 */ subtree2 = proto_tree_add_subtree(subtree, ue_cap_tvb, 0, 5, ett_lte_rrc_UE_CapabilityRAT_Container, &item, "Mobile Station Classmark 2"); byte = tvb_get_guint8(ue_cap_tvb, 0); if (byte != 0x33) { expert_add_info_format(actx->pinfo, item, &ei_lte_rrc_unexpected_type_value, "Unexpected type value (found 0x%02X)", byte); } byte = tvb_get_guint8(ue_cap_tvb, 1); if (byte != 0x03) { expert_add_info_format(actx->pinfo, item, &ei_lte_rrc_unexpected_length_value, "Unexpected length value (found %d)", byte); } de_ms_cm_2(ue_cap_tvb, subtree2, actx->pinfo, 2, 3, NULL, 0); /* Mobile Station Classmark 3 is formatted as V */ length = tvb_reported_length_remaining(ue_cap_tvb, 5); subtree2 = proto_tree_add_subtree(subtree, ue_cap_tvb, 5, length, ett_lte_rrc_UE_CapabilityRAT_Container, NULL, "Mobile Station Classmark 3"); de_ms_cm_3(ue_cap_tvb, subtree2, actx->pinfo, 5, length, NULL, 0); break; case RAT_Type_geran_ps: /* geran-ps */ /* MS Radio Access Capability is formatted as V */ length = tvb_reported_length(ue_cap_tvb); subtree2 = proto_tree_add_subtree(subtree, ue_cap_tvb, 0, length, ett_lte_rrc_UE_CapabilityRAT_Container, NULL, "MS Radio Access Capability"); de_gmm_ms_radio_acc_cap(ue_cap_tvb, subtree2, actx->pinfo, 0, length, NULL, 0); break; case RAT_Type_cdma2000_1XRTT: /* cdma2000-1XRTT */ /* dissection of "A21 Mobile Subscription Information" could be added to packet-ansi_a.c */ break; default: break; } } #.FN_BODY UE-EUTRA-Capability/featureGroupIndicators VAL_PTR = &featureGroupIndicators_tvb tvbuff_t *featureGroupIndicators_tvb=NULL; %(DEFAULT_BODY)s if(featureGroupIndicators_tvb){ /* Dissect featureGroupIndicators */ dissect_lte_rrc_featureGroupIndicators(featureGroupIndicators_tvb, actx); } #.FN_BODY UE-EUTRA-Capability-v1020-IEs/featureGroupIndRel10-r10 VAL_PTR = &featureGroupIndRel10_tvb tvbuff_t *featureGroupIndRel10_tvb=NULL; %(DEFAULT_BODY)s if(featureGroupIndRel10_tvb){ /* Dissect featureGroupIndRel10-r10 */ dissect_lte_rrc_featureGroupIndRel10(featureGroupIndRel10_tvb, actx); } #.FN_BODY UE-EUTRA-Capability-v9a0-IEs/featureGroupIndRel9Add-r9 VAL_PTR = &featureGroupIndRel9Add_tvb tvbuff_t *featureGroupIndRel9Add_tvb=NULL; %(DEFAULT_BODY)s if(featureGroupIndRel9Add_tvb){ /* Dissect featureGroupIndRel9Add-r9 */ dissect_lte_rrc_featureGroupIndRel9Add(featureGroupIndRel9Add_tvb, actx); } #.FN_BODY UE-EUTRA-CapabilityAddXDD-Mode-r9/featureGroupIndicators-r9 VAL_PTR = &featureGroupIndicators_tvb tvbuff_t *featureGroupIndicators_tvb=NULL; %(DEFAULT_BODY)s if(featureGroupIndicators_tvb){ /* Dissect featureGroupIndicators-r9 */ dissect_lte_rrc_featureGroupIndicators(featureGroupIndicators_tvb, actx); } #.FN_BODY UE-EUTRA-CapabilityAddXDD-Mode-r9/featureGroupIndRel9Add-r9 VAL_PTR = &featureGroupIndRel9Add_tvb tvbuff_t *featureGroupIndRel9Add_tvb=NULL; %(DEFAULT_BODY)s if(featureGroupIndRel9Add_tvb){ /* Dissect featureGroupIndRel9Add-r9 */ dissect_lte_rrc_featureGroupIndRel9Add(featureGroupIndRel9Add_tvb, actx); } #.FN_BODY UE-EUTRA-CapabilityAddXDD-Mode-v1060/featureGroupIndRel10-v1060 VAL_PTR = &featureGroupIndRel10_tvb tvbuff_t *featureGroupIndRel10_tvb=NULL; %(DEFAULT_BODY)s if(featureGroupIndRel10_tvb){ /* Dissect featureGroupIndRel10-v1060 */ dissect_lte_rrc_featureGroupIndRel10(featureGroupIndRel10_tvb, actx); } #.FN_BODY PhyLayerParameters-v1170/interBandTDD-CA-WithDifferentConfig-r11 VAL_PTR = &inter_band_tdd_ca_tvb tvbuff_t *inter_band_tdd_ca_tvb=NULL; proto_tree *subtree; %(DEFAULT_BODY)s if (inter_band_tdd_ca_tvb) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_interBandTDD_CA_WithDifferentConfig); proto_tree_add_bits_item(subtree, hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1, inter_band_tdd_ca_tvb, 0, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2, inter_band_tdd_ca_tvb, 1, 1, ENC_BIG_ENDIAN); } #.FN_BODY PhyLayerParameters-v1250/tdd-FDD-CA-PCellDuplex-r12 VAL_PTR = &pcellduplex_tvb tvbuff_t *pcellduplex_tvb=NULL; proto_tree *subtree; %(DEFAULT_BODY)s if (pcellduplex_tvb) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12); proto_tree_add_bits_item(subtree, hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1, pcellduplex_tvb, 0, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2, pcellduplex_tvb, 1, 1, ENC_BIG_ENDIAN); } #.FN_BODY PhyLayerParameters-v1310/aperiodicCSI-Reporting-r13 VAL_PTR = &aperiodicCSI_tvb tvbuff_t *aperiodicCSI_tvb=NULL; proto_tree *subtree; %(DEFAULT_BODY)s if (aperiodicCSI_tvb) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_aperiodicCSI_Reporting_r13); proto_tree_add_bits_item(subtree, hf_lte_rrc_aperiodicCSI_Reporting_r13_bit1, aperiodicCSI_tvb, 0, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_aperiodicCSI_Reporting_r13_bit2, aperiodicCSI_tvb, 1, 1, ENC_BIG_ENDIAN); } #.FN_BODY PhyLayerParameters-v1310/codebook-HARQ-ACK-r13 VAL_PTR = &codebook_tvb tvbuff_t *codebook_tvb=NULL; proto_tree *subtree; %(DEFAULT_BODY)s if (codebook_tvb) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_codebook_HARQ_ACK_r13); proto_tree_add_bits_item(subtree, hf_lte_rrc_codebook_HARQ_ACK_r13_bit1, codebook_tvb, 0, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_codebook_HARQ_ACK_r13_bit2, codebook_tvb, 1, 1, ENC_BIG_ENDIAN); } #.FN_BODY RF-Parameters-v10f0/modifiedMPR-Behavior-r10 VAL_PTR = &modifiedMPR_Behavior_r10_tvb tvbuff_t *modifiedMPR_Behavior_r10_tvb=NULL; proto_tree *subtree; %(DEFAULT_BODY)s if (modifiedMPR_Behavior_r10_tvb) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_modifiedMPR_Behavior_r10); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_0, modifiedMPR_Behavior_r10_tvb, 0, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_1, modifiedMPR_Behavior_r10_tvb, 1, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_2, modifiedMPR_Behavior_r10_tvb, 2, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_3, modifiedMPR_Behavior_r10_tvb, 3, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_4, modifiedMPR_Behavior_r10_tvb, 4, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_5, modifiedMPR_Behavior_r10_tvb, 5, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_6, modifiedMPR_Behavior_r10_tvb, 6, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_7, modifiedMPR_Behavior_r10_tvb, 7, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_8, modifiedMPR_Behavior_r10_tvb, 8, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_9, modifiedMPR_Behavior_r10_tvb, 9, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_10, modifiedMPR_Behavior_r10_tvb, 10, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_11, modifiedMPR_Behavior_r10_tvb, 11, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_12, modifiedMPR_Behavior_r10_tvb, 12, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_13, modifiedMPR_Behavior_r10_tvb, 13, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_14, modifiedMPR_Behavior_r10_tvb, 14, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_15, modifiedMPR_Behavior_r10_tvb, 15, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_16, modifiedMPR_Behavior_r10_tvb, 16, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_17, modifiedMPR_Behavior_r10_tvb, 17, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_18, modifiedMPR_Behavior_r10_tvb, 18, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_19, modifiedMPR_Behavior_r10_tvb, 19, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_20, modifiedMPR_Behavior_r10_tvb, 20, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_21, modifiedMPR_Behavior_r10_tvb, 21, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_22, modifiedMPR_Behavior_r10_tvb, 22, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_23, modifiedMPR_Behavior_r10_tvb, 23, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_24, modifiedMPR_Behavior_r10_tvb, 24, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_25, modifiedMPR_Behavior_r10_tvb, 25, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_26, modifiedMPR_Behavior_r10_tvb, 26, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_27, modifiedMPR_Behavior_r10_tvb, 27, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_28, modifiedMPR_Behavior_r10_tvb, 28, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_29, modifiedMPR_Behavior_r10_tvb, 29, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_30, modifiedMPR_Behavior_r10_tvb, 30, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_31, modifiedMPR_Behavior_r10_tvb, 31, 1, ENC_BIG_ENDIAN); } #.TYPE_RENAME IRAT-ParametersWLAN-r13/supportedBandListWLAN-r13 supportedBandListWLAN_r13 #.TYPE_ATTR MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_schedulingInfoSIB1_BR_r13_vals_ext #.FN_BODY Handover /* Initialise to invalid value */ private_data_set_rat_target_type(actx, 0xFF); %(DEFAULT_BODY)s #.FN_BODY Handover/targetRAT-Type VAL_PTR = &target_rat_type guint32 target_rat_type; %(DEFAULT_BODY)s private_data_set_rat_target_type(actx, (guint8)target_rat_type); #.FN_BODY Handover/targetRAT-MessageContainer VAL_PTR = &target_rat_msg_cont_tvb tvbuff_t *target_rat_msg_cont_tvb = NULL; %(DEFAULT_BODY)s if(target_rat_msg_cont_tvb){ guint8 byte; proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_targetRAT_MessageContainer); switch (private_data_get_rat_target_type(actx)){ case T_targetRAT_Type_utra: /* utra */ if (rrc_irat_ho_to_utran_cmd_handle) lte_rrc_call_dissector(rrc_irat_ho_to_utran_cmd_handle, target_rat_msg_cont_tvb, actx->pinfo, subtree); break; case T_targetRAT_Type_geran: /* geran */ byte = tvb_get_guint8(target_rat_msg_cont_tvb, 0); if (byte == 0x06) { if (gsm_a_dtap_handle) { lte_rrc_call_dissector(gsm_a_dtap_handle, target_rat_msg_cont_tvb, actx->pinfo, subtree); } } else { if (gsm_rlcmac_dl_handle) { tvbuff_t *gsm_rlcmac_dl_tvb = tvb_new_composite(); guint8 *pd = (guint8 *) wmem_alloc(actx->pinfo->pool, 1); pd[0] = 0x40; tvb_composite_append(gsm_rlcmac_dl_tvb, tvb_new_real_data(pd, 1, 1)); tvb_composite_append(gsm_rlcmac_dl_tvb, target_rat_msg_cont_tvb); tvb_composite_finalize(gsm_rlcmac_dl_tvb); add_new_data_source(actx->pinfo, gsm_rlcmac_dl_tvb, "GPRS DL control block"); lte_rrc_call_dissector(gsm_rlcmac_dl_handle, gsm_rlcmac_dl_tvb, actx->pinfo, subtree); } } break; case T_targetRAT_Type_cdma2000_1XRTT: /* cdma2000-1XRTT */ break; case T_targetRAT_Type_cdma2000_HRPD: /* cdma2000-HRPD */ break; default: break; } } #.FN_BODY Handover/nas-SecurityParamFromEUTRA VAL_PTR = &nas_sec_param_from_eutra_tvb tvbuff_t *nas_sec_param_from_eutra_tvb = NULL; guint32 length; proto_tree *subtree; %(DEFAULT_BODY)s if (nas_sec_param_from_eutra_tvb) { length = tvb_reported_length(nas_sec_param_from_eutra_tvb); subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_nas_SecurityParam); de_emm_sec_par_from_eutra(nas_sec_param_from_eutra_tvb, subtree, actx->pinfo, 0, length, NULL, 0); } #.FN_BODY SecurityConfigHO/handoverType/interRAT/nas-SecurityParamToEUTRA VAL_PTR = &nas_sec_param_to_eutra_tvb tvbuff_t *nas_sec_param_to_eutra_tvb = NULL; guint32 length; proto_tree *subtree; %(DEFAULT_BODY)s if (nas_sec_param_to_eutra_tvb) { length = tvb_reported_length(nas_sec_param_to_eutra_tvb); subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_nas_SecurityParam); de_emm_sec_par_to_eutra(nas_sec_param_to_eutra_tvb, subtree, actx->pinfo, 0, length, NULL, 0); } #.FN_BODY SI-OrPSI-GERAN/si private_data_set_si_or_psi_geran(actx, (guint8)SI_OrPSI_GERAN_si); /* SI message */ %(DEFAULT_BODY)s #.FN_BODY SI-OrPSI-GERAN/psi private_data_set_si_or_psi_geran(actx, (guint8)SI_OrPSI_GERAN_psi); /* PSI message */ %(DEFAULT_BODY)s #.FN_BODY CellInfoGERAN-r9/systemInformation-r9 private_data_set_si_or_psi_geran(actx, (guint8)SI_OrPSI_GERAN_si); /* SI message */ %(DEFAULT_BODY)s #.FN_BODY SystemInfoListGERAN/_item VAL_PTR = &sys_info_list_tvb tvbuff_t *sys_info_list_tvb = NULL; proto_tree *subtree; %(DEFAULT_BODY)s if (sys_info_list_tvb) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_siPsiSibContainer); switch (private_data_get_si_or_psi_geran(actx)) { case SI_OrPSI_GERAN_si: /* SI message */ if (gsm_a_dtap_handle) { tvbuff_t *si_tvb = tvb_new_composite(); guint8 *pd = (guint8 *) wmem_alloc(actx->pinfo->pool, 1); pd[0] = 0x06; tvb_composite_append(si_tvb, tvb_new_real_data(pd, 1, 1)); tvb_composite_append(si_tvb, sys_info_list_tvb); tvb_composite_finalize(si_tvb); add_new_data_source(actx->pinfo, si_tvb, "System Information"); lte_rrc_call_dissector(gsm_a_dtap_handle, si_tvb, actx->pinfo, subtree); } break; case SI_OrPSI_GERAN_psi: /* PSI message */ if (gsm_rlcmac_dl_handle) { tvbuff_t *gsm_rlcmac_dl_tvb = tvb_new_composite(); guint8 *pd = (guint8 *) wmem_alloc(actx->pinfo->pool, 1); pd[0] = 0x40; tvb_composite_append(gsm_rlcmac_dl_tvb, tvb_new_real_data(pd, 1, 1)); tvb_composite_append(gsm_rlcmac_dl_tvb, sys_info_list_tvb); tvb_composite_finalize(gsm_rlcmac_dl_tvb); add_new_data_source(actx->pinfo, gsm_rlcmac_dl_tvb, "GPRS DL control block"); lte_rrc_call_dissector(gsm_rlcmac_dl_handle, sys_info_list_tvb, actx->pinfo, subtree); } break; default: break; } } #.FN_BODY SystemTimeInfoCDMA2000/cdma-SystemTime/asynchronousSystemTime VAL_PTR=&async_system_time_tvb tvbuff_t *async_system_time_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemTimeInfoCDMA2000/cdma-SystemTime/asynchronousSystemTime if (async_system_time_tvb) { guint64 bits; nstime_t ts; proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_timeInfo); bits = tvb_get_bits64(async_system_time_tvb, 0, 49, ENC_BIG_ENDIAN); ts.secs = (time_t)((bits*8)/1228800) + 315964800; /* CDMA2000 epoch is 00:00:00 (midnight) UTC on 1980-01-06 */ ts.nsecs = (int)(((bits%153600)*8*1000000000)/1228800); proto_tree_add_time(subtree, hf_lte_rrc_cdma_time, async_system_time_tvb, 0, 7, &ts); proto_tree_add_time(subtree, hf_lte_rrc_local_time, async_system_time_tvb, 0, 7,&ts); } #.FN_BODY SystemTimeInfoCDMA2000/cdma-SystemTime/synchronousSystemTime VAL_PTR=&sync_system_time_tvb tvbuff_t *sync_system_time_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemTimeInfoCDMA2000/cdma-SystemTime/synchronousSystemTime if (sync_system_time_tvb) { guint64 bits; nstime_t ts; proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_timeInfo); bits = tvb_get_bits64(sync_system_time_tvb, 0, 39, ENC_BIG_ENDIAN); ts.secs = (time_t)(bits/100) + 315964800; /* CDMA2000 epoch is 00:00:00 (midnight) UTC on 1980-01-06 */ ts.nsecs = (int)(bits%100)*10000000; proto_tree_add_time(subtree, hf_lte_rrc_cdma_time, sync_system_time_tvb, 0, 5, &ts); proto_tree_add_time(subtree, hf_lte_rrc_local_time, sync_system_time_tvb, 0, 5, &ts); } #.FN_BODY CellInfoUTRA-FDD-r9/utra-BCCH-Container-r9 VAL_PTR = &utra_bcch_cont_tvb tvbuff_t *utra_bcch_cont_tvb = NULL; proto_tree *subtree; %(DEFAULT_BODY)s if (utra_bcch_cont_tvb && rrc_sys_info_cont_handle) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_siPsiSibContainer); lte_rrc_call_dissector(rrc_sys_info_cont_handle, utra_bcch_cont_tvb, actx->pinfo, subtree); } #.FN_BODY CellInfoUTRA-TDD-r9/utra-BCCH-Container-r9 VAL_PTR = &utra_bcch_cont_tvb tvbuff_t *utra_bcch_cont_tvb = NULL; proto_tree *subtree; %(DEFAULT_BODY)s if (utra_bcch_cont_tvb && rrc_sys_info_cont_handle) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_siPsiSibContainer); lte_rrc_call_dissector(rrc_sys_info_cont_handle, utra_bcch_cont_tvb, actx->pinfo, subtree); } #.FN_BODY CellInfoUTRA-TDD-r10/utra-BCCH-Container-r10 VAL_PTR = &utra_bcch_cont_tvb tvbuff_t *utra_bcch_cont_tvb = NULL; proto_tree *subtree; %(DEFAULT_BODY)s if (utra_bcch_cont_tvb && rrc_sys_info_cont_handle) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_siPsiSibContainer); lte_rrc_call_dissector(rrc_sys_info_cont_handle, utra_bcch_cont_tvb, actx->pinfo, subtree); } #.TYPE_ATTR NeighCellConfig TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_neighCellConfig_vals) #.FN_BODY NeighCellConfig VAL_PTR = &neigh_cell_config_tvb HF_INDEX=-1 tvbuff_t *neigh_cell_config_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR NeighCellConfig if (neigh_cell_config_tvb) { actx->created_item = proto_tree_add_uint(tree, hf_index, neigh_cell_config_tvb, 0, 1, tvb_get_bits8(neigh_cell_config_tvb, 0, 2)); } #.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoid-Point-r10 VAL_PTR = &ellipsoid_point_tvb tvbuff_t *ellipsoid_point_tvb = NULL; %(DEFAULT_BODY)s if (ellipsoid_point_tvb) { dissect_lpp_Ellipsoid_Point_PDU(ellipsoid_point_tvb, actx->pinfo, tree, NULL); } #.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidPointWithAltitude-r10 VAL_PTR = &ellipsoid_point_with_alt_tvb tvbuff_t *ellipsoid_point_with_alt_tvb = NULL; %(DEFAULT_BODY)s if (ellipsoid_point_with_alt_tvb) { dissect_lpp_EllipsoidPointWithAltitude_PDU(ellipsoid_point_with_alt_tvb, actx->pinfo, tree, NULL); } #.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidPointWithUncertaintyCircle-r11 VAL_PTR = &ellipsoid_point_with_uncert_circ_tvb tvbuff_t *ellipsoid_point_with_uncert_circ_tvb = NULL; %(DEFAULT_BODY)s if (ellipsoid_point_with_uncert_circ_tvb) { dissect_lpp_Ellipsoid_PointWithUncertaintyCircle_PDU(ellipsoid_point_with_uncert_circ_tvb, actx->pinfo, tree, NULL); } #.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidPointWithUncertaintyEllipse-r11 VAL_PTR = &ellipsoid_point_with_uncert_ellipse_tvb tvbuff_t *ellipsoid_point_with_uncert_ellipse_tvb = NULL; %(DEFAULT_BODY)s if (ellipsoid_point_with_uncert_ellipse_tvb) { dissect_lpp_EllipsoidPointWithUncertaintyEllipse_PDU(ellipsoid_point_with_uncert_ellipse_tvb, actx->pinfo, tree, NULL); } #.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 VAL_PTR = &ellipsoid_point_with_alt_uncert_ellipsoid_tvb tvbuff_t *ellipsoid_point_with_alt_uncert_ellipsoid_tvb = NULL; %(DEFAULT_BODY)s if (ellipsoid_point_with_alt_uncert_ellipsoid_tvb) { dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_PDU(ellipsoid_point_with_alt_uncert_ellipsoid_tvb, actx->pinfo, tree, NULL); } #.FN_BODY LocationInfo-r10/locationCoordinates-r10/ellipsoidArc-r11 VAL_PTR = &ellipsoid_arc_tvb tvbuff_t *ellipsoid_arc_tvb = NULL; %(DEFAULT_BODY)s if (ellipsoid_arc_tvb) { dissect_lpp_EllipsoidArc_PDU(ellipsoid_arc_tvb, actx->pinfo, tree, NULL); } #.FN_BODY LocationInfo-r10/locationCoordinates-r10/polygon-r11 VAL_PTR = &polygon_tvb tvbuff_t *polygon_tvb = NULL; %(DEFAULT_BODY)s if (polygon_tvb) { dissect_lpp_Polygon_PDU(polygon_tvb, actx->pinfo, tree, NULL); } #.FN_BODY LocationInfo-r10/horizontalVelocity-r10 VAL_PTR = &horizontal_velocity_tvb tvbuff_t *horizontal_velocity_tvb = NULL; %(DEFAULT_BODY)s if (horizontal_velocity_tvb) { dissect_lpp_HorizontalVelocity_PDU(horizontal_velocity_tvb, actx->pinfo, tree, NULL); } #.FN_BODY LocationInfo-r10/gnss-TOD-msec-r10 VAL_PTR = &gnss_tod_msec_tvb tvbuff_t *gnss_tod_msec_tvb = NULL; %(DEFAULT_BODY)s if (gnss_tod_msec_tvb) { asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, actx->pinfo); dissect_per_constrained_integer(gnss_tod_msec_tvb, 0, &asn1_ctx, tree, hf_index, 0U, 3599999U, NULL, FALSE); proto_item_append_text(actx->created_item, "ms"); } #.FN_BODY AbsoluteTimeInfo-r10 VAL_PTR = &abs_time_info_tvb tvbuff_t *abs_time_info_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR AbsoluteTimeInfo-r10 if (abs_time_info_tvb) { const gchar *str, *hf_str; proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_absTimeInfo); str = tvb_bcd_dig_to_wmem_packet_str(abs_time_info_tvb, 0, 6, NULL, FALSE); hf_str = wmem_strdup_printf(wmem_packet_scope(), "%c%c-%c%c-%c%c %c%c:%c%c:%c%c", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], str[9], str[10], str[11]); proto_tree_add_string(subtree, hf_lte_rrc_absolute_time, abs_time_info_tvb, 0, 6, hf_str); } #.TYPE_RENAME CarrierFreqUTRA-FDD-Ext-r12/multiBandInfoList-r12 FreqBandIndicator_UTRA_FDD_r12 #.TYPE_ATTR SystemInformationBlockType9/hnb-Name TYPE=FT_STRING DISPLAY=STR_UNICODE #.FN_BODY SystemInformationBlockType9/hnb-Name VAL_PTR=&hnb_name_tvb HF_INDEX=-1 tvbuff_t *hnb_name_tvb = NULL; %(DEFAULT_BODY)s actx->created_item = proto_tree_add_item(tree, hf_index, hnb_name_tvb, 0, -1, ENC_UTF_8|ENC_NA); #.TYPE_ATTR SystemInformationBlockType10/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_messageIdentifier_vals_ext #.FN_BODY SystemInformationBlockType10/messageIdentifier VAL_PTR=&msg_id_tvb HF_INDEX=-1 tvbuff_t *msg_id_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType10/messageIdentifier if (msg_id_tvb) { actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN); } #.FN_BODY SystemInformationBlockType10/serialNumber VAL_PTR=&serial_nb_tvb tvbuff_t *serial_nb_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType10/serialNumber if (serial_nb_tvb) { proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_serialNumber); proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); } #.FN_BODY SystemInformationBlockType10/warningType VAL_PTR=&warning_type_tvb tvbuff_t *warning_type_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType10/warningType if (warning_type_tvb) { proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_warningType); proto_tree_add_item(subtree, hf_lte_rrc_warningType_value, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lte_rrc_warningType_emergency_user_alert, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lte_rrc_warningType_popup, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN); } #.TYPE_ATTR SystemInformationBlockType11/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_messageIdentifier_vals_ext #.FN_BODY SystemInformationBlockType11/messageIdentifier VAL_PTR=&msg_id_tvb HF_INDEX=-1 tvbuff_t *msg_id_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType11/messageIdentifier if (msg_id_tvb) { private_data_set_message_identifier(actx, tvb_get_ntohs(msg_id_tvb, 0) << 16); actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN); } #.FN_BODY SystemInformationBlockType11/serialNumber VAL_PTR=&serial_nb_tvb tvbuff_t *serial_nb_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType11/serialNumber if (serial_nb_tvb) { proto_tree *subtree; private_data_set_message_identifier(actx, private_data_get_message_identifier(actx) | tvb_get_ntohs(serial_nb_tvb, 0)); subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_serialNumber); proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); } #.FN_BODY SystemInformationBlockType11/warningMessageSegmentType VAL_PTR=&segment_type guint32 segment_type; %(DEFAULT_BODY)s private_data_set_warning_message_segment_type(actx, (guint8)segment_type); #.FN_BODY SystemInformationBlockType11/warningMessageSegmentNumber VAL_PTR=&segment_number guint32 segment_number; %(DEFAULT_BODY)s private_data_set_warning_message_segment_number(actx, (guint8)segment_number); #.FN_BODY SystemInformationBlockType11/dataCodingScheme VAL_PTR=&data_coding_scheme_tvb tvbuff_t *data_coding_scheme_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType11/dataCodingScheme if (data_coding_scheme_tvb) { proto_tree *subtree; guint32 dataCodingScheme; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_dataCodingScheme); dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0); g_hash_table_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)), GUINT_TO_POINTER(dataCodingScheme)); } #.FN_BODY SystemInformationBlockType11/warningMessageSegment VAL_PTR=&warning_msg_seg_tvb tvbuff_t *warning_msg_seg_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType11/warningMessageSegment if (warning_msg_seg_tvb) { proto_tree *subtree; tvbuff_t *frag_tvb; gpointer p_dcs; fragment_head *frag_data = fragment_add_seq_check(<e_rrc_sib11_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo, private_data_get_message_identifier(actx), NULL, private_data_get_warning_message_segment_number(actx), tvb_reported_length(warning_msg_seg_tvb), private_data_get_warning_message_segment_type(actx) ? FALSE : TRUE); subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_warningMessageSegment); frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB11 warning message", frag_data, <e_rrc_sib11_frag_items, NULL, subtree); p_dcs = g_hash_table_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx))); if (frag_tvb && p_dcs) { dissect_lte_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs)); } } #.TYPE_ATTR SystemInformationBlockType12-r9/messageIdentifier-r9 TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_messageIdentifier_vals_ext #.FN_BODY SystemInformationBlockType12-r9/messageIdentifier-r9 VAL_PTR=&msg_id_tvb HF_INDEX=-1 tvbuff_t *msg_id_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType12-r9/messageIdentifier-r9 if (msg_id_tvb) { private_data_set_message_identifier(actx, tvb_get_ntohs(msg_id_tvb, 0) << 16); actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN); } #.FN_BODY SystemInformationBlockType12-r9/serialNumber-r9 VAL_PTR=&serial_nb_tvb tvbuff_t *serial_nb_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType12-r9/serialNumber-r9 if (serial_nb_tvb) { proto_tree *subtree; private_data_set_message_identifier(actx, private_data_get_message_identifier(actx) | tvb_get_ntohs(serial_nb_tvb, 0)); subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_serialNumber); proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lte_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); } #.FN_BODY SystemInformationBlockType12-r9/warningMessageSegmentType-r9 VAL_PTR=&segment_type guint32 segment_type; %(DEFAULT_BODY)s private_data_set_warning_message_segment_type(actx, (guint8)segment_type); #.FN_BODY SystemInformationBlockType12-r9/warningMessageSegmentNumber-r9 VAL_PTR=&segment_number guint32 segment_number; %(DEFAULT_BODY)s private_data_set_warning_message_segment_number(actx, (guint8)segment_number); #.FN_BODY SystemInformationBlockType12-r9/dataCodingScheme-r9 VAL_PTR=&data_coding_scheme_tvb tvbuff_t *data_coding_scheme_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType12-r9/dataCodingScheme-r9 if (data_coding_scheme_tvb) { proto_tree *subtree; guint32 dataCodingScheme; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_dataCodingScheme); dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0); g_hash_table_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)), GUINT_TO_POINTER(dataCodingScheme)); } #.FN_BODY SystemInformationBlockType12-r9/warningMessageSegment-r9 VAL_PTR=&warning_msg_seg_tvb tvbuff_t *warning_msg_seg_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType12-r9/warningMessageSegment-r9 if (warning_msg_seg_tvb) { proto_tree *subtree; tvbuff_t *frag_tvb; gpointer p_dcs; fragment_head *frag_data = fragment_add_seq_check(<e_rrc_sib12_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo, private_data_get_message_identifier(actx), NULL, private_data_get_warning_message_segment_number(actx), tvb_reported_length(warning_msg_seg_tvb), private_data_get_warning_message_segment_type(actx) ? FALSE : TRUE); subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_warningMessageSegment); frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB12 warning message", frag_data, <e_rrc_sib12_frag_items, NULL, subtree); p_dcs = g_hash_table_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx))); if (frag_tvb && p_dcs) { dissect_lte_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs)); } } #.TYPE_ATTR EAB-Config-r11/eab-Category-r11 STRINGS=VALS(lte_rrc_eab_category_vals) #.TYPE_ATTR SystemInformationBlockType16-r11/timeInfo-r11/dayLightSavingTime-r11 TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_daylightSavingTime_vals) #.FN_BODY SystemInformationBlockType16-r11/timeInfo-r11/dayLightSavingTime-r11 VAL_PTR=&daylight_saving_time_tvb HF_INDEX=-1 tvbuff_t *daylight_saving_time_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType16-r11/timeInfo-r11/dayLightSavingTime-r11 if (daylight_saving_time_tvb) { actx->created_item = proto_tree_add_uint(tree, hf_index, daylight_saving_time_tvb, 0, 1, tvb_get_bits8(daylight_saving_time_tvb, 0, 2)); } #.FN_BODY SystemInformationBlockType16-r11/timeInfo-r11/leapSeconds-r11 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.TYPE_ATTR SystemInformationBlockType16-r11/timeInfo-r11/localTimeOffset-r11 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_localTimeOffset_fmt) #.FN_BODY SystemInformationBlockType16-r11/timeInfo-r11/timeInfoUTC-r11 VAL_PTR=&timeInfo guint64 timeInfo; proto_tree *subtree; nstime_t ts; guint32 old_offset = offset; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType16-r11/timeInfo-r11/timeInfoUTC-r11 subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_timeInfo); ts.secs = (time_t)(timeInfo/100)-2208988800U; /* epoch is 00:00:00 (midnight) UTC on 1900-01-01 */ ts.nsecs = (int)(timeInfo%100)*10000000; proto_tree_add_time(subtree, hf_lte_rrc_utc_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts); proto_tree_add_time(subtree, hf_lte_rrc_local_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts); #.TYPE_ATTR WLAN-Identifiers-r12/ssid-r12 TYPE=FT_STRING DISPLAY=STR_ASCII #.FN_BODY WLAN-Identifiers-r12/ssid-r12 VAL_PTR=&ssid_tvb HF_INDEX=-1 tvbuff_t *ssid_tvb = NULL; %(DEFAULT_BODY)s actx->created_item = proto_tree_add_item(tree, hf_index, ssid_tvb, 0, -1, ENC_ASCII|ENC_NA); #.TYPE_ATTR WLAN-Identifiers-r12/bssid-r12 TYPE=FT_ETHER #.TYPE_ATTR WLAN-Identifiers-r12/hessid-r12 TYPE=FT_ETHER #.FN_BODY RRCConnectionReject-r8-IEs/waitTime %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.FN_BODY RRCConnectionReject-v1020-IEs/extendedWaitTime-r10 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.FN_BODY RRCConnectionRelease-v1020-IEs/extendedWaitTime-r10 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.TYPE_ATTR SystemInformationBlockType1/cellSelectionInfo/q-RxLevMinOffset STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals) #.FN_BODY CellSelectionInfo-v920/q-QualMinOffset-r9 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.TYPE_ATTR RLF-Report-r9/eag_1/timeConnFailure-r10 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_timeConnFailure_r10_fmt) #.FN_BODY LogMeasInfo-r10/relativeTimeStamp-r10 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.FN_BODY BLER-Result-r12/blocksReceived-r12/n-r12 VAL_PTR = &n_r12_tvb HF_INDEX = -1 tvbuff_t *n_r12_tvb = NULL; %(DEFAULT_BODY)s if (n_r12_tvb) { actx->created_item = proto_tree_add_uint(tree, hf_index, n_r12_tvb, 0, 1, tvb_get_bits8(n_r12_tvb, 0, 3)); } #.TYPE_ATTR BLER-Result-r12/blocksReceived-r12/n-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_n_r12_vals) #.FN_BODY BLER-Result-r12/blocksReceived-r12/m-r12 VAL_PTR = &m_r12_tvb HF_INDEX = -1 tvbuff_t *m_r12_tvb = NULL; %(DEFAULT_BODY)s if (m_r12_tvb) { actx->created_item = proto_tree_add_item(tree, hf_index, m_r12_tvb, 0, 1, ENC_BIG_ENDIAN); } #.TYPE_ATTR BLER-Result-r12/blocksReceived-r12/m-r12 TYPE=FT_UINT8 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_m_r12_fmt) #.TYPE_ATTR BLER-Range-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_BLER_Range_r12_vals_ext #.FN_BODY TimeSinceFailure-r11 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.TYPE_ATTR CarrierFreqUTRA-FDD/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_utra_q_RxLevMin_vals_ext #.TYPE_ATTR CarrierFreqUTRA-FDD-Ext-r12/q-RxLevMin-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_utra_q_RxLevMin_vals_ext #.TYPE_ATTR CarrierFreqUTRA-TDD/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_utra_q_RxLevMin_vals_ext #.TYPE_ATTR CarrierFreqUTRA-TDD-r12/q-RxLevMin-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_utra_q_RxLevMin_vals_ext #.FN_BODY CarrierFreqUTRA-FDD/p-MaxUTRA %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY CarrierFreqUTRA-FDD-Ext-r12/p-MaxUTRA-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY CarrierFreqUTRA-TDD/p-MaxUTRA %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY CarrierFreqUTRA-TDD-r12/p-MaxUTRA-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY CarrierFreqUTRA-FDD/q-QualMin %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY CarrierFreqUTRA-FDD-Ext-r12/q-QualMin-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.TYPE_ATTR CarrierFreqsInfoGERAN/commonInfo/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_geran_q_RxLevMin_vals_ext #.FN_BODY CarrierFreqsInfoGERAN/commonInfo/p-MaxGERAN %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.TYPE_ATTR CQI-ReportConfig/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals) #.TYPE_ATTR CQI-ReportConfig-r10/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals) #.TYPE_ATTR CQI-ReportConfigSCell-r10/nomPDSCH-RS-EPRE-Offset-r10 STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals) #.FN_BODY P-C-AndCBSR-r11/p-C-r11 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY P-C-AndCBSR-r13/p-C-r13 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY CSI-RS-Config-r10/csi-RS-r10/setup/p-C-r10 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY IP-Address-r13/ipv4-r13 VAL_PTR=&ipv4_tvb HF_INDEX=-1 tvbuff_t *ipv4_tvb = NULL; %(DEFAULT_BODY)s if (ipv4_tvb) { actx->created_item = proto_tree_add_item(tree, hf_index, ipv4_tvb, 0, 4, ENC_BIG_ENDIAN); } #.TYPE_ATTR IP-Address-r13/ipv4-r13 TYPE=FT_IPv4 DISPLAY=BASE_NONE #.FN_BODY IP-Address-r13/ipv6-r13 VAL_PTR=&ipv6_tvb HF_INDEX=-1 tvbuff_t *ipv6_tvb = NULL; %(DEFAULT_BODY)s if (ipv6_tvb) { actx->created_item = proto_tree_add_item(tree, hf_index, ipv6_tvb, 0, 16, ENC_BIG_ENDIAN); } #.TYPE_ATTR IP-Address-r13/ipv6-r13 TYPE=FT_IPv6 DISPLAY=BASE_NONE #.FN_BODY MAC-MainConfig /* Accumulate values in drx_config while dissecting DRX config. Do this here rather than down in DRX-Config so that we will see fields overwritten in the R11 extension */ drx_config_t *drx_config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s if (drx_config->configured) { mac_lte_info* p_mac_lte_info; /* Verify that config is valid */ drx_check_config_sane(drx_config, actx); /* Look for UE identifier */ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* If found, configure MAC with DRX config */ set_mac_lte_drx_config(p_mac_lte_info->ueid, drx_config, actx->pinfo); } /* Clear out state */ drx_config->configured = FALSE; } #.FN_BODY MAC-MainConfig/eag_1/sr-ProhibitTimer-r9 VAL_PTR=&timer guint32 timer; %(DEFAULT_BODY)s #.FN_FTR MAC-MainConfig/eag_1/sr-ProhibitTimer-r9 proto_item_append_text(actx->created_item, " SR period%s", (timer > 1) ? "s" : ""); #.FN_BODY MAC-MainConfig/eag_2/mac-MainConfig-v1020/extendedBSR-Sizes-r10 mac_lte_info* p_mac_lte_info; %(DEFAULT_BODY)s /* Look for UE identifier */ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* Tell MAC to use extended BSR sizes configuration */ set_mac_lte_extended_bsr_sizes(p_mac_lte_info->ueid, TRUE, actx->pinfo); } #.FN_BODY PDSCH-ConfigCommon/referenceSignalPower %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY P-Max %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY SPS-ConfigUL/setup/p0-Persistent/p0-NominalPUSCH-Persistent %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY SPS-ConfigUL/setup/p0-Persistent/p0-UE-PUSCH-Persistent %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-NominalPUSCH-PersistentSubframeSet2-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-UE-PUSCH-PersistentSubframeSet2-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.TYPE_ATTR UplinkPowerControlCommon/deltaPreambleMsg3 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals) #.FN_BODY UplinkPowerControlCommon/p0-NominalPUSCH %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.TYPE_ATTR UplinkPowerControlCommonSCell-v1130/deltaPreambleMsg3-r11 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals) #.FN_BODY UplinkPowerControlCommon/p0-NominalPUCCH %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY UplinkPowerControlCommonPSCell-r12/p0-NominalPUCCH-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY UplinkPowerControlCommonSCell-v1310/p0-NominalPUCCH %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY UplinkPowerControlCommonSCell-r10/p0-NominalPUSCH-r10 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY UplinkPowerControlDedicated/p0-UE-PUSCH %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY UplinkPowerControlDedicated/p0-UE-PUCCH %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-NominalPUSCH-SubframeSet2-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-UE-PUSCH-SubframeSet2-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY UplinkPowerControlDedicatedSCell-r10/p0-UE-PUSCH-r10 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY UplinkPowerControlDedicatedSCell-v1310/p0-UE-PUCCH %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.TYPE_ATTR CellSelectionInfoNFreq-r13/q-RxLevMinOffset STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals) #.FN_BODY Q-QualMin-r9 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.TYPE_ATTR Q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_q_RxLevMin_vals_ext #.FN_BODY Q-OffsetRangeInterRAT %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.TYPE_ATTR ReselectionThreshold DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_ReselectionThreshold_vals_ext #.FN_BODY ReselectionThresholdQ-r9 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY T-Reselection %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.FN_BODY T-ReselectionEUTRA-CE-r13 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.TYPE_ATTR Hysteresis DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_Hysteresis_vals_ext #.TYPE_ATTR CSI-RSRP-Range-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_RSRP_Range_vals_ext #.TYPE_ATTR MBSFN-RSRQ-Range-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_MBSFN_RSRQ_Range_vals_ext #.TYPE_RENAME MeasConfig/s-Measure S_Measure #.TYPE_ATTR MeasConfig/s-Measure DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_s_Measure_vals_ext #.TYPE_ATTR MeasResultGERAN/measResult/rssi DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&gsm_a_rr_rxlev_vals_ext #.TYPE_ATTR MeasResultUTRA/measResult/utra-EcN0 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_utra_EcN0_vals_ext #.TYPE_ATTR MeasResultUTRA/measResult/utra-RSCP DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_utra_RSCP_vals_ext #.TYPE_ATTR ReportConfigEUTRA/triggerType/event/eventId/eventA3/a3-Offset DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_a3_a6_c2_Offset_vals_ext #.TYPE_ATTR ReportConfigEUTRA/triggerType/event/eventId/eventA6-r10/a6-Offset-r10 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_a3_a6_c2_Offset_vals_ext #.TYPE_ATTR ReportConfigEUTRA/triggerType/event/eventId/eventC2-r12/c2-Offset-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_a3_a6_c2_Offset_vals_ext #.TYPE_RENAME ThresholdEUTRA/threshold-RSRP Threshold_RSRP_Range #.TYPE_ATTR ThresholdEUTRA/threshold-RSRP DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_threshold_RSRP_vals_ext #.TYPE_RENAME ThresholdEUTRA/threshold-RSRQ Threshold_RSRQ_Range #.TYPE_ATTR ThresholdEUTRA/threshold-RSRQ DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_threshold_RSRQ_vals_ext #.TYPE_ATTR ThresholdGERAN DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_thresholdGERAN_vals_ext #.TYPE_RENAME ThresholdUTRA/utra-RSCP Threshold_utra_RSRP #.TYPE_ATTR ThresholdUTRA/utra-RSCP DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_thresholdUTRA_RSCP_vals_ext #.TYPE_RENAME ThresholdUTRA/utra-EcN0 Threshold_utra_EcN0 #.TYPE_ATTR ThresholdUTRA/utra-EcN0 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_thresholdUTRA_EcN0_vals_ext #.TYPE_ATTR RSRP-Range DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_RSRP_Range_vals_ext #.TYPE_ATTR RSRP-RangeSL-r12 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_RSRP_RangeSL_vals) #.TYPE_ATTR RSRP-RangeSL2-r12 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_RSRP_RangeSL2_vals) #.TYPE_ATTR RSRP-RangeSL3-r12 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_RSRP_RangeSL3_vals) #.TYPE_ATTR RSRP-RangeSL4-r13 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_RSRP_RangeSL4_vals_ext #.TYPE_ATTR RSRQ-Range DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_RSRQ_Range_vals_ext #.TYPE_ATTR RSRQ-Range-v1250 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_RSRQ_Range_vals_ext #.TYPE_ATTR RSRQ-Range-r13 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_RSRQ_Range_vals_ext #.TYPE_ATTR RS-SINR-Range-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_RS_SINR_Range_r13_fmt) #.TYPE_ATTR RSSI-Range-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_RSSI_Range_r13_fmt) #.TYPE_ATTR MeasResultWLAN-r13/availableAdmissionCapacityWLAN-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_availableAdmissionCapacityWLAN_fmt) #.TYPE_ATTR MeasResultForECID-r9/ue-RxTxTimeDiffResult-r9 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_ue_RxTxTimeDiffResult_fmt) #.FN_BODY MeasResultForRSSI-r13/channelOccupancy-r13 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, " percents"); #.TYPE_ATTR UL-PDCP-DelayResult-r13/excessDelay-r13 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_excessDelay_r13_vals_ext #.TYPE_ATTR MeasResultSSTD-r13/subframeBoundaryOffsetResult-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_subframeBoundaryOffsetResult_r13_fmt) #.FN_BODY SoundingRS-UL-ConfigDedicated/setup/duration actx->created_item = proto_tree_add_bits_item(tree, hf_index, tvb, offset, 1, ENC_BIG_ENDIAN); offset++; #.TYPE_ATTR SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) #.FN_HDR MasterInformationBlock col_append_str(actx->pinfo->cinfo, COL_INFO, "MasterInformationBlock"); #.FN_HDR SystemInformation if (private_data_get_bcch_dl_sch_msg_br(actx) == FALSE) { col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation [ "); } #.FN_BODY SystemInformation %(DEFAULT_BODY)s if (private_data_get_bcch_dl_sch_msg_br(actx) == FALSE) { col_append_str(actx->pinfo->cinfo, COL_INFO, "]"); } #.FN_HDR SystemInformationBlockType1 if (private_data_get_bcch_dl_sch_msg_br(actx) == FALSE) { col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationBlockType1"); } #.FN_HDR SystemInformation-BR-r13 private_data_set_bcch_dl_sch_msg_br(actx, TRUE); col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation-BR-r13 [ "); #.FN_BODY SystemInformation-BR-r13 %(DEFAULT_BODY)s col_append_str(actx->pinfo->cinfo, COL_INFO, "]"); #.FN_HDR SystemInformationBlockType1-BR-r13 private_data_set_bcch_dl_sch_msg_br(actx, TRUE); col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationBlockType1-BR-r13"); #.FN_HDR SystemInformationBlockType2 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB2 "); #.FN_HDR SystemInformationBlockType3 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB3 "); #.FN_HDR SystemInformationBlockType4 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB4 "); #.FN_HDR SystemInformationBlockType5 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB5 "); #.FN_HDR SystemInformationBlockType6 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB6 "); #.FN_HDR SystemInformationBlockType7 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB7 "); #.FN_HDR SystemInformationBlockType8 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB8 "); #.FN_HDR SystemInformationBlockType9 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB9 "); #.FN_HDR SystemInformationBlockType10 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB10 "); #.FN_HDR SystemInformationBlockType11 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB11 "); #.FN_HDR SystemInformationBlockType12-r9 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB12 "); #.FN_HDR SystemInformationBlockType13-r9 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB13 "); #.FN_HDR SystemInformationBlockType14-r11 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB14 "); #.FN_HDR SystemInformationBlockType15-r11 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB15 "); #.FN_HDR SystemInformationBlockType16-r11 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB16 "); #.FN_HDR SystemInformationBlockType17-r12 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB17 "); #.FN_HDR SystemInformationBlockType18-r12 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB18 "); #.FN_HDR SystemInformationBlockType19-r12 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB19 "); #.FN_HDR SystemInformationBlockType20-r13 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB20 "); #.FN_HDR MBSFNAreaConfiguration-r9 col_append_str(actx->pinfo->cinfo, COL_INFO, "MBSFNAreaConfiguration-r9"); #.FN_HDR MBMSCountingRequest-r10 col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCountingRequest-r10"); #.FN_HDR Paging col_append_str(actx->pinfo->cinfo, COL_INFO, "Paging"); #.FN_HDR RRCConnectionReestablishment col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishment"); #.FN_HDR RRCConnectionReestablishmentReject col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentReject"); #.FN_HDR RRCConnectionReject col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReject"); #.FN_HDR RRCConnectionSetup mac_lte_info* p_mac_lte_info; col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup"); #.FN_HDR CSFBParametersResponseCDMA2000 col_append_str(actx->pinfo->cinfo, COL_INFO, "CSFBParametersResponseCDMA2000"); #.FN_HDR DLInformationTransfer col_append_str(actx->pinfo->cinfo, COL_INFO, "DLInformationTransfer"); #.FN_HDR HandoverFromEUTRAPreparationRequest col_append_str(actx->pinfo->cinfo, COL_INFO, "HandoverFromEUTRAPreparationRequest"); #.FN_HDR MobilityFromEUTRACommand col_append_str(actx->pinfo->cinfo, COL_INFO, "MobilityFromEUTRACommand"); #.FN_HDR RRCConnectionReconfiguration col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfiguration"); #.FN_HDR RRCConnectionRelease col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease"); #.FN_HDR SecurityModeCommand col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeCommand"); #.FN_HDR UECapabilityEnquiry col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityEnquiry"); #.FN_HDR CounterCheck col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheck"); #.FN_HDR UEInformationRequest-r9 col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationRequest-r9"); #.FN_HDR LoggedMeasurementConfiguration-r10 col_append_str(actx->pinfo->cinfo, COL_INFO, "LoggedMeasurementConfiguration-r10"); #.FN_HDR RNReconfiguration-r10 col_append_str(actx->pinfo->cinfo, COL_INFO, "RNReconfiguration-r10"); #.FN_HDR RRCConnectionResume-r13 col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionResume-r13"); #.FN_HDR RRCConnectionReestablishmentRequest col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentRequest"); #.FN_HDR RRCConnectionRequest col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRequest"); #.FN_HDR CSFBParametersRequestCDMA2000 col_append_str(actx->pinfo->cinfo, COL_INFO, "CSFBParametersRequestCDMA2000"); #.FN_HDR MeasurementReport col_append_str(actx->pinfo->cinfo, COL_INFO, "MeasurementReport"); #.FN_HDR RRCConnectionReconfigurationComplete col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfigurationComplete"); #.FN_HDR RRCConnectionReestablishmentComplete col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentComplete"); #.FN_HDR RRCConnectionSetupComplete col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetupComplete"); #.FN_HDR SecurityModeComplete col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeComplete"); #.FN_BODY SecurityModeFailure mac_lte_info *p_mac_lte_info; %(DEFAULT_BODY)s /* Look for UE identifier */ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* Inform PDCP that the UE failed to execute the securityModeCommand */ set_pdcp_lte_security_algorithms_failed(p_mac_lte_info->ueid); } col_append_str(actx->pinfo->cinfo, COL_INFO, "SecurityModeFailure"); #.FN_HDR UECapabilityInformation col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformation"); #.FN_HDR ULHandoverPreparationTransfer col_append_str(actx->pinfo->cinfo, COL_INFO, "ULHandoverPreparationTransfer"); #.FN_HDR ULInformationTransfer col_append_str(actx->pinfo->cinfo, COL_INFO, "ULInformationTransfer"); #.FN_HDR CounterCheckResponse col_append_str(actx->pinfo->cinfo, COL_INFO, "CounterCheckResponse"); #.FN_HDR UEInformationResponse-r9 col_append_str(actx->pinfo->cinfo, COL_INFO, "UEInformationResponse-r9"); #.FN_HDR ProximityIndication-r9 col_append_str(actx->pinfo->cinfo, COL_INFO, "ProximityIndication-r9"); #.FN_HDR RNReconfigurationComplete-r10 col_append_str(actx->pinfo->cinfo, COL_INFO, "RNReconfigurationComplete-r10"); #.FN_HDR MBMSCountingResponse-r10 col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSCountingResponse-r10"); #.FN_HDR InterFreqRSTDMeasurementIndication-r10 col_append_str(actx->pinfo->cinfo, COL_INFO, "InterFreqRSTDMeasurementIndication-r10"); #.FN_HDR UEAssistanceInformation-r11 col_append_str(actx->pinfo->cinfo, COL_INFO, "UEAssistanceInformation-r11"); #.FN_HDR InDeviceCoexIndication-r11 col_append_str(actx->pinfo->cinfo, COL_INFO, "InDeviceCoexIndication-r11"); #.FN_HDR MBMSInterestIndication-r11 col_append_str(actx->pinfo->cinfo, COL_INFO, "MBMSInterestIndication-r11"); #.FN_HDR SCGFailureInformation-r12 col_append_str(actx->pinfo->cinfo, COL_INFO, "SCGFailureInformation-r12"); #.FN_HDR SidelinkUEInformation-r12 col_append_str(actx->pinfo->cinfo, COL_INFO, "SidelinkUEInformation-r12"); #.FN_HDR WLANConnectionStatusReport-r13 col_append_str(actx->pinfo->cinfo, COL_INFO, "WLANConnectionStatusReport-r13"); #.FN_HDR RRCConnectionResumeComplete-r13 col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionResumeComplete-r13"); #.FN_HDR SCPTMConfiguration-r13 col_append_str(actx->pinfo->cinfo, COL_INFO, "SCPTMConfiguration-r13"); #.FN_BODY Paging/systemInfoModification %(DEFAULT_BODY)s col_append_str(actx->pinfo->cinfo, COL_INFO, " (systemInfoModification)"); expert_add_info(actx->pinfo, actx->created_item, &ei_lte_rrc_sibs_changing); #.FN_BODY Paging/pagingRecordList /* Number of items is (last 3 bits of first byte and first bit of second) + 1 */ guint16 number_of_records = ((tvb_get_ntohs(tvb, 0) >> 7) & 0x0f) + 1; %(DEFAULT_BODY)s col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%u PagingRecords)", number_of_records); #.FN_BODY Paging-v1310-IEs/systemInfoModification-eDRX-r13 %(DEFAULT_BODY)s col_append_str(actx->pinfo->cinfo, COL_INFO, " (systemInfoModification-eDRX-r13)"); expert_add_info(actx->pinfo, actx->created_item, &ei_lte_rrc_sibs_changing_edrx); #.FN_BODY MasterInformationBlock/systemFrameNumber VAL_PTR=&value_tvb tvbuff_t *value_tvb = NULL; guint32 sfn; %(DEFAULT_BODY)s /* Show SFN in info column */ sfn = tvb_get_guint8(value_tvb, 0); col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (SFN=%%u)", sfn); #.FN_BODY SystemInformationBlockType1/systemInfoValueTag VAL_PTR=&value guint32 value; %(DEFAULT_BODY)s /* Track whether systemInfoValue has changed since last seen, indicating new SI config TODO: add link back to previous config and (if known) time since previous config was first seen */ if (!actx->pinfo->fd->flags.visited) { if (system_info_value_current_set && (value != system_info_value_current)) { /* Add entry to the hash table. Offset by one to distinguish 0 from lookup failure */ g_hash_table_insert(lte_rrc_system_info_value_changed_hash, GUINT_TO_POINTER(actx->pinfo->num), GUINT_TO_POINTER(system_info_value_current+1)); } system_info_value_current_set = TRUE; system_info_value_current = value; } else { /* Look up indication of changed info value from hash table */ gpointer p_previous = g_hash_table_lookup(lte_rrc_system_info_value_changed_hash, GUINT_TO_POINTER(actx->pinfo->num)); if (p_previous != NULL) { /* Subtract one from stored result to get previous value */ guint32 previous = GPOINTER_TO_UINT(p_previous) - 1; expert_add_info_format(actx->pinfo, actx->created_item, &ei_lte_rrc_si_info_value_changed, "SI Info Value changed (now %%u, was %%u)", value, previous); } } #.FN_BODY Paging/etws-Indication %(DEFAULT_BODY)s col_append_str(actx->pinfo->cinfo, COL_INFO, " (ETWS)"); expert_add_info(actx->pinfo, actx->created_item, &ei_lte_rrc_earthquake_warning_sys); #.FN_BODY Paging-v920-IEs/cmas-Indication-r9 %(DEFAULT_BODY)s col_append_str(actx->pinfo->cinfo, COL_INFO, " (CMAS)"); expert_add_info(actx->pinfo, actx->created_item, &ei_lte_rrc_commercial_mobile_alert_sys); #.FN_BODY RadioResourceConfigDedicated private_data_set_simult_pucch_pusch_cell_type(actx, SIMULT_PUCCH_PUSCH_PCELL); %(DEFAULT_BODY)s #.FN_BODY RadioResourceConfigDedicatedPSCell-r12 private_data_set_simult_pucch_pusch_cell_type(actx, SIMULT_PUCCH_PUSCH_PSCELL); %(DEFAULT_BODY)s #.FN_BODY DRB-ToAddMod struct mac_lte_info *p_mac_lte_info; struct rlc_lte_info *p_rlc_lte_info; /* Get the struct and clear it out */ drb_mapping_t *drb_mapping = private_data_get_drb_mapping(actx); memset(drb_mapping, 0, sizeof(*drb_mapping)); %(DEFAULT_BODY)s /* Need UE identifier */ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info) { drb_mapping->ueid = p_mac_lte_info->ueid; /* Tell MAC about this mapping */ set_mac_lte_channel_mapping(drb_mapping); } /* Also tell RLC how many PDCP sequence number bits and whether it should use extended LI */ p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rlc_lte, 0); if (p_rlc_lte_info) { if (drb_mapping->pdcp_sn_size_present) { set_rlc_lte_drb_pdcp_seqnum_length(actx->pinfo, p_rlc_lte_info->ueid, drb_mapping->drbid, drb_mapping->pdcp_sn_size); } if (drb_mapping->rlcMode_present) { set_rlc_lte_drb_li_field(actx->pinfo, p_rlc_lte_info->ueid, drb_mapping->drbid, drb_mapping->rlc_ul_ext_li_field, drb_mapping->rlc_dl_ext_li_field); } } /* Clear out the struct again */ memset(&drb_mapping, 0, sizeof(drb_mapping)); #.FN_BODY DRB-Identity VAL_PTR=&value guint32 value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->drbid = (guint8)value; } #.FN_BODY RLC-Config VAL_PTR=&value guint32 value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlcMode = (value==0) ? RLC_AM_MODE : RLC_UM_MODE; mapping->rlcMode_present = TRUE; if (mapping->rlcMode == RLC_AM_MODE) { mapping->pdcp_sn_size = 12; mapping->pdcp_sn_size_present = TRUE; } } #.FN_BODY RLC-Config-v1250/ul-extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field gboolean ext_li_field; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlc_ul_ext_li_field = ext_li_field; } #.FN_BODY RLC-Config-v1250/dl-extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field gboolean ext_li_field; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlc_dl_ext_li_field = ext_li_field; } #.FN_BODY RLC-Config-v1310/ul-extended-RLC-AM-SN-r13 VAL_PTR=&ext_am_sn gboolean ext_am_sn; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlc_ul_ext_am_sn = ext_am_sn; } #.FN_BODY RLC-Config-v1310/dl-extended-RLC-AM-SN-r13 VAL_PTR=&ext_am_sn gboolean ext_am_sn; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlc_dl_ext_am_sn = ext_am_sn; } #.FN_BODY DRB-ToAddMod/logicalChannelIdentity VAL_PTR=&value guint32 value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->lcid = (guint8)value; mapping->lcid_present = TRUE; } #.FN_BODY SN-FieldLength VAL_PTR=&value guint32 value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->um_sn_length = (value==0) ? 5 : 10; mapping->um_sn_length_present = TRUE; } #.FN_BODY LogicalChannelConfig/ul-SpecificParameters/priority VAL_PTR=&value guint32 value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->ul_priority = value; mapping->ul_priority_present = TRUE; } #.FN_BODY PDCP-Config/rlc-UM/pdcp-SN-Size VAL_PTR=&value guint32 value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->pdcp_sn_size = (value==0) ? 7 : 12; mapping->pdcp_sn_size_present = TRUE; } #.FN_BODY PDCP-Config/eag_2/pdcp-SN-Size-v1130 drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->pdcp_sn_size = 15; mapping->pdcp_sn_size_present = TRUE; } #.FN_BODY PDCP-Config/eag_4/pdcp-SN-Size-v1310 drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->pdcp_sn_size = 18; mapping->pdcp_sn_size_present = TRUE; } #.FN_BODY NeighCellsInfo-r12/transmissionModeList-r12 VAL_PTR=&tm_list_tvb tvbuff_t *tm_list_tvb=NULL; proto_tree *subtree; %(DEFAULT_BODY)s if (tm_list_tvb) { subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_transmissionModeList_r12); proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm1, tm_list_tvb, 0, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm2, tm_list_tvb, 1, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm3, tm_list_tvb, 2, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm4, tm_list_tvb, 3, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm6, tm_list_tvb, 4, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm8, tm_list_tvb, 5, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm9, tm_list_tvb, 6, 1, ENC_BIG_ENDIAN); proto_tree_add_bits_item(subtree, hf_lte_rrc_transmissionModeList_r12_tm10, tm_list_tvb, 7, 1, ENC_BIG_ENDIAN); } #.FN_BODY PUCCH-ConfigDedicated-v1020/simultaneousPUCCH-PUSCH-r10 mac_lte_info* p_mac_lte_info; %(DEFAULT_BODY)s /* Look for UE identifier */ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* Tell MAC to use simultaneous PUCCH/PUSCH configuration */ set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, private_data_get_simult_pucch_pusch_cell_type(actx), TRUE, actx->pinfo); } #.TYPE_RENAME PUCCH-ConfigDedicated-r13/pucch-Format-r13/channelSelection-r13/n1PUCCH-AN-CS-r13/setup/n1PUCCH-AN-CS-List-r13 n1PUCCH_AN_CS_List_r13 #.FN_BODY RACH-ConfigCommon/preambleInfo %(DEFAULT_BODY)s /* Initialise to invalid value */ private_data_set_ra_preambles(actx, 0); #.FN_BODY RACH-ConfigCommon/preambleInfo/numberOfRA-Preambles VAL_PTR=&value guint value; %(DEFAULT_BODY)s /* This is mandatory, store value */ private_data_set_ra_preambles(actx, value); #.FN_BODY RACH-ConfigCommon/preambleInfo/preamblesGroupAConfig/sizeOfRA-PreamblesGroupA VAL_PTR=&value guint ra_value, value; %(DEFAULT_BODY)s /* Retrived stored value for RA (both Group A & Group B) */ ra_value = private_data_get_ra_preambles(actx); if (value > ra_value) { /* Something is wrong if A has more RAPIDs than A & B combined! */ expert_add_info_format(actx->pinfo, actx->created_item, &ei_lte_rrc_too_many_group_a_rapids, "Group A size (%%s) > Total RA size (%%s)!", val_to_str_const(value, lte_rrc_T_sizeOfRA_PreamblesGroupA_vals, "Unknown"), val_to_str_const(ra_value, lte_rrc_T_numberOfRA_Preambles_vals, "Unknown")); } /* Tell MAC dissector so that it can say for RAPIDs whether A, B, non-RA */ set_mac_lte_rapid_ranges((value+1)*4, (ra_value+1)*4); /* Reset again */ private_data_set_ra_preambles(actx, 0); #.FN_BODY RACH-ConfigCommon-v1250/txFailParams-r12/connEstFailOffset-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY DRX-Config/setup/onDurationTimer VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s /* Set 'configured' state so that config can be examine once complete! */ config->configured = TRUE; config->onDurationTimer = drx_lookup_onDurationTimer(value); #.FN_BODY DRX-Config/setup/drx-InactivityTimer VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->inactivityTimer = drx_lookup_inactivityTimer(value); #.FN_BODY DRX-Config/setup/drx-RetransmissionTimer VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->retransmissionTimer = drx_lookup_retransmissionTimer(value); #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->longCycle = drx_lookup_longCycle(value); #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf10 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf20 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf32 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf40 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf64 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf80 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf128 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf160 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf256 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf320 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf512 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf640 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf1024 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf1280 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf2048 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf2560 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/shortDRX/shortDRX-Cycle VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->shortCycleConfigured = TRUE; config->shortCycle = drx_lookup_shortCycle(value); #.FN_BODY DRX-Config/setup/shortDRX/drxShortCycleTimer VAL_PTR=&timer guint32 timer; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->shortCycleTimer = timer; #.FN_FTR DRX-Config/setup/shortDRX/drxShortCycleTimer proto_item_append_text(actx->created_item, " shortDRX-Cycle%s", plurality(timer, "", "s")); #.FN_BODY DRX-Config-v1130/drx-RetransmissionTimer-v1130 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->retransmissionTimer = 0; #.FN_BODY DRX-Config-v1130/longDRX-CycleStartOffset-v1130 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->longCycle = drx_lookup_longCycle_v1130(value); #.FN_BODY DRX-Config-v1130/longDRX-CycleStartOffset-v1130/sf60-v1130 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config-v1130/longDRX-CycleStartOffset-v1130/sf70-v1130 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config-v1130/shortDRX-Cycle-v1130 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s /* Presumably config->shortCycleConfigured will be set... */ config->shortCycle = 4; #.FN_BODY DRX-Config-v1310/longDRX-CycleStartOffset-v1310 drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->longCycle = 60; #.FN_BODY DRX-Config-v1310/longDRX-CycleStartOffset-v1310/sf60-v1310 VAL_PTR=&value guint32 value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/release mac_lte_info* p_mac_lte_info; %(DEFAULT_BODY)s /* Look for UE identifier */ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* If found, tell MAC to release DRX config */ set_mac_lte_drx_config_release(p_mac_lte_info->ueid, actx->pinfo); } #.FN_BODY RRCConnectionSetup /* Look for UE identifier */ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* If found, tell MAC to release DRX config coming from a previous RRC connection */ /* We do release the configuration here instead of RRC Connection Release message */ /* as the UE could have locally dropped the previous RRC Connection */ set_mac_lte_drx_config_release(p_mac_lte_info->ueid, actx->pinfo); /* Also tell MAC to release extended BSR sizes configuration */ set_mac_lte_extended_bsr_sizes(p_mac_lte_info->ueid, FALSE, actx->pinfo); /* Also tell MAC to release simutaneous PUCCH/PUSCH configuration */ set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, SIMULT_PUCCH_PUSCH_PCELL, FALSE, actx->pinfo); set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, SIMULT_PUCCH_PUSCH_PSCELL, FALSE, actx->pinfo); /* TODO: also release PDCP security config here */ } %(DEFAULT_BODY)s #.FN_BODY SecurityAlgorithmConfig pdcp_lte_info *p_pdcp_lte_info; pdcp_security_info_t *p_security_algorithms; %(DEFAULT_BODY)s p_security_algorithms = private_data_pdcp_security_algorithms(actx); p_security_algorithms->configuration_frame = actx->pinfo->num; p_security_algorithms->previous_configuration_frame = 0; p_security_algorithms->previous_integrity = eia0; p_security_algorithms->previous_ciphering = eea0; /* Look for UE identifier */ p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_pdcp_lte, 0); if (p_pdcp_lte_info != NULL) { /* Configure algorithms */ set_pdcp_lte_security_algorithms(p_pdcp_lte_info->ueid, p_security_algorithms); } #.FN_BODY CipheringAlgorithm-r12 VAL_PTR=&value guint32 value; pdcp_security_info_t *p_security_algorithms; %(DEFAULT_BODY)s p_security_algorithms = private_data_pdcp_security_algorithms(actx); p_security_algorithms->ciphering = (enum security_ciphering_algorithm_e)value; #.FN_BODY SecurityAlgorithmConfig/integrityProtAlgorithm VAL_PTR=&value guint32 value; pdcp_security_info_t *p_security_algorithms; %(DEFAULT_BODY)s p_security_algorithms = private_data_pdcp_security_algorithms(actx); p_security_algorithms->integrity = (enum security_integrity_algorithm_e)value; #.FN_BODY SchedulingRequestConfig/setup/sr-ConfigIndex VAL_PTR=&value guint32 value; guint16 periodicity, subframe_offset; proto_item *ti; proto_tree *subtree; gint index_offset = offset; %(DEFAULT_BODY)s /* Break config index into its parts */ sr_lookup_configindex(value, &periodicity, &subframe_offset); /* Show parts as generated fields */ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_sr_ConfigIndex); ti = proto_tree_add_uint(subtree, hf_lte_rrc_sr_config_periodicity, tvb, index_offset>>3, 1, periodicity); PROTO_ITEM_SET_GENERATED(ti); ti = proto_tree_add_uint(subtree, hf_lte_rrc_sr_config_subframe_offset, tvb, index_offset>>3, 1, subframe_offset); PROTO_ITEM_SET_GENERATED(ti); #.FN_BODY SchedulingRequestConfigSCell-r13/setup/sr-ConfigIndex-r13 VAL_PTR=&value guint32 value; guint16 periodicity, subframe_offset; proto_item *ti; proto_tree *subtree; gint index_offset = offset; %(DEFAULT_BODY)s /* Break config index into its parts */ sr_lookup_configindex(value, &periodicity, &subframe_offset); /* Show parts as generated fields */ subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_sr_ConfigIndex); ti = proto_tree_add_uint(subtree, hf_lte_rrc_sr_config_periodicity, tvb, index_offset>>3, 1, periodicity); PROTO_ITEM_SET_GENERATED(ti); ti = proto_tree_add_uint(subtree, hf_lte_rrc_sr_config_subframe_offset, tvb, index_offset>>3, 1, subframe_offset); PROTO_ITEM_SET_GENERATED(ti); #.FN_BODY FreqBandIndicator VAL_PTR=&value guint32 value; %(DEFAULT_BODY)s set_freq_band_indicator(value, actx); #.FN_FTR BandParameters-r10/bandEUTRA-r10 remove_last_freq_band_indicator(actx); #.FN_BODY InterFreqBandInfo meas_capabilities_item_band_mappings_t *mappings; proto_item *it; %(DEFAULT_BODY)s mappings = private_data_meas_capabilities_item_band_mappings(actx); if (mappings->number_of_interfreq_serving_read < mappings->number_of_bands_set) { guint16 serving_band = mappings->band_by_item[mappings->number_of_interfreq_serving_read]; guint16 target_band = mappings->band_by_item[mappings->number_of_interfreq_target_read++]; if (mappings->number_of_interfreq_target_read == mappings->number_of_bands_set) { mappings->number_of_interfreq_target_read = 0; mappings->number_of_interfreq_serving_read++; } /* Add a generated item showing serving & target band for this entry */ it = proto_tree_add_uint(tree, hf_lte_rrc_bandEUTRA, tvb, 0, 0, serving_band); proto_item_append_text(it, " -> band %%u", target_band); PROTO_ITEM_SET_GENERATED(it); } #.FN_BODY UE-EUTRA-Capability/measParameters meas_capabilities_item_band_mappings_t *mappings; %(DEFAULT_BODY)s /* Clear band mapping once measParameters IE has been decoded */ mappings = private_data_meas_capabilities_item_band_mappings(actx); mappings->number_of_bands_set = 0; #.FN_BODY ReleaseCause VAL_PTR=&value guint32 value; %(DEFAULT_BODY)s col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [cause=%%s]", val_to_str(value, lte_rrc_ReleaseCause_vals, "Unknown")); #.TYPE_ATTR LWA-Parameters-r13/wlan-MAC-Address-r13 TYPE=FT_ETHER #.FN_BODY VisitedCellInfo-r12/timeSpent-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.FN_BODY WLAN-OffloadConfig-r12/thresholdChannelUtilization-r12/thresholdChannelUtilizationLow-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, " (BSS load)"); #.FN_BODY WLAN-OffloadConfig-r12/thresholdChannelUtilization-r12/thresholdChannelUtilizationHigh-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, " (BSS load)"); #.TYPE_ATTR WLAN-OffloadConfig-r12/thresholdWLAN-RSSI-r12/thresholdWLAN-RSSI-Low-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_thresholdWLAN_RSSI_fmt) #.TYPE_ATTR WLAN-OffloadConfig-r12/thresholdWLAN-RSSI-r12/thresholdWLAN-RSSI-High-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_thresholdWLAN_RSSI_fmt) #.FN_BODY WLAN-backhaulRate-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, " Kbps"); #.FN_BODY SL-DiscResourcePool-r12/eag_1/txParamsAddNeighFreq-r13/setup/referenceSignalPower %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.TYPE_ATTR SL-DiscSysInfoReport-r13/cellSelectionInfo-r13/q-RxLevMinOffset-r13 STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals) #.FN_BODY SL-DiscSysInfoReport-r13/referenceSignalPower-r13 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY P0-SL-r12 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); # # PC5-RRC-Definitions # #.FN_HDR MasterInformationBlock-SL col_append_str(actx->pinfo->cinfo, COL_INFO, "MasterInformationBlock-SL"); # # NBIOT-RRC-Definitions # #.FN_HDR UL-DCCH-Message-NB actx->pinfo->link_dir = P2P_DIR_UL; #.FN_HDR DL-DCCH-Message-NB actx->pinfo->link_dir = P2P_DIR_DL; #.FN_HDR MasterInformationBlock-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "MasterInformationBlock-NB"); #.FN_HDR SystemInformation-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformation-NB [ "); #.FN_BODY SystemInformation-NB %(DEFAULT_BODY)s col_append_str(actx->pinfo->cinfo, COL_INFO, "]"); #.FN_HDR SystemInformationBlockType1-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "SystemInformationBlockType1-NB"); #.FN_HDR SystemInformationBlockType2-NB-r13 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB2 "); #.FN_HDR SystemInformationBlockType3-NB-r13 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB3 "); #.FN_HDR SystemInformationBlockType4-NB-r13 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB4 "); #.FN_HDR SystemInformationBlockType5-NB-r13 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB5 "); #.FN_HDR SystemInformationBlockType14-NB-r13 col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB14 "); #.FN_HDR Paging-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "Paging-NB"); #.FN_HDR RRCConnectionReestablishment-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishment-NB"); #.FN_HDR RRCConnectionReestablishmentReject col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentReject"); #.FN_HDR RRCConnectionReject-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReject-NB"); #.FN_HDR RRCConnectionSetup-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetup-NB"); #.FN_HDR DLInformationTransfer-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "DLInformationTransfer-NB"); #.FN_HDR RRCConnectionReconfiguration-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfiguration-NB"); #.FN_HDR RRCConnectionRelease-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRelease-NB"); #.FN_HDR UECapabilityEnquiry-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityEnquiry-NB"); #.FN_HDR RRCConnectionResume-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionResume-NB"); #.FN_HDR RRCConnectionReestablishmentRequest-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentRequest-NB"); #.FN_HDR RRCConnectionRequest-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionRequest-NB"); #.FN_HDR RRCConnectionResumeRequest-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionResumeRequest-NB"); #.FN_HDR RRCConnectionReconfigurationComplete-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReconfigurationComplete-NB"); #.FN_HDR RRCConnectionReestablishmentComplete-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionReestablishmentComplete-NB"); #.FN_HDR RRCConnectionSetupComplete-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionSetupComplete-NB"); #.FN_HDR UECapabilityInformation-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "UECapabilityInformation-NB"); #.FN_HDR ULInformationTransfer-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "ULInformationTransfer-NB"); #.FN_HDR RRCConnectionResumeComplete-NB col_append_str(actx->pinfo->cinfo, COL_INFO, "RRCConnectionResumeComplete-NB"); #.TYPE_ATTR MasterInformationBlock-NB/schedulingInfoSIB1-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_schedulingInfoSIB1_NB_r13_vals_ext #.FN_BODY RRCConnectionReject-NB-r13-IEs/extendedWaitTime-r13 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.FN_BODY RRCConnectionRelease-NB-r13-IEs/extendedWaitTime-r13 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "s"); #.TYPE_RENAME SystemInformationBlockType2-NB-r13/multiBandInfoList-r13 AdditionalSpectrumEmission_r13 #.TYPE_ATTR AB-Config-NB-r13/ab-Category-r13 STRINGS=VALS(lte_rrc_eab_category_vals) #.FN_BODY NPDSCH-ConfigCommon-NB-r13/nrs-Power-r13 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.FN_BODY RACH-ConfigCommon-NB-r13/connEstFailOffset-r13 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB"); #.FN_BODY DRB-ToAddMod-NB-r13 struct mac_lte_info *p_mac_lte_info; struct rlc_lte_info *p_rlc_lte_info; /* Get the struct and clear it out */ drb_mapping_t *drb_mapping = private_data_get_drb_mapping(actx); memset(drb_mapping, 0, sizeof(*drb_mapping)); %(DEFAULT_BODY)s /* Need UE identifier */ p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info) { drb_mapping->ueid = p_mac_lte_info->ueid; /* Tell MAC about this mapping */ set_mac_lte_channel_mapping(drb_mapping); } /* Also tell RLC how many PDCP sequence number bits and whether it should use extended LI */ p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rlc_lte, 0); if (p_rlc_lte_info) { if (drb_mapping->pdcp_sn_size_present) { set_rlc_lte_drb_pdcp_seqnum_length(actx->pinfo, p_rlc_lte_info->ueid, drb_mapping->drbid, drb_mapping->pdcp_sn_size); } if (drb_mapping->rlcMode_present) { set_rlc_lte_drb_li_field(actx->pinfo, p_rlc_lte_info->ueid, drb_mapping->drbid, drb_mapping->rlc_ul_ext_li_field, drb_mapping->rlc_dl_ext_li_field); } } /* Clear out the struct again */ memset(&drb_mapping, 0, sizeof(drb_mapping)); #.FN_BODY RLC-Config-NB-r13 drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlcMode = RLC_AM_MODE; mapping->rlcMode_present = TRUE; mapping->pdcp_sn_size = 7; mapping->pdcp_sn_size_present = TRUE; } #.FN_BODY DRB-ToAddMod-NB-r13/logicalChannelIdentity-r13 VAL_PTR=&value guint32 value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->lcid = (guint8)value; mapping->lcid_present = TRUE; } #.FN_BODY LogicalChannelConfig-NB-r13/priority-r13 VAL_PTR=&value guint32 value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->ul_priority = value; mapping->ul_priority_present = TRUE; } #.FN_BODY UplinkPowerControlCommon-NB-r13/p0-NominalNPUSCH-r13 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dBm"); #.TYPE_ATTR UplinkPowerControlCommon-NB-r13/deltaPreambleMsg3-r13 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals) #.FN_BODY UplinkPowerControlDedicated-NB-r13/p0-UE-NPUSCH-r13 %(DEFAULT_BODY)s proto_item_append_text(actx->created_item, "dB");