wireshark/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf

1594 lines
58 KiB
INI

# nr-rrc.cnf
# nr-rrc conformation file
# Copyright 2018-2020 Pascal Quantin
#.OPT
PER
UNALIGNED
PROTO_ROOT_NAME proto_nr_rrc
#.END
#.USE_VALS_EXT
BandSidelinkEUTRA-r16/gnb-ScheduledMode3SidelinkEUTRA-r16/gnb-ScheduledMode3DelaySidelinkEUTRA-r16
CA-BandwidthClassNR
ConfiguredGrantConfig/periodicity
ConfiguredGrantConfig/eag_1/cg-minDFI-Delay-r16
CSI-ReportConfig/reportFreqConfiguration/csi-ReportingBand
DummyA/maxNumberPortsAcrossNZP-CSI-RS-PerCC
DummyA/maxNumberSimultaneousCSI-RS-ActBWP-AllCC
DummyA/totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC
DelayBudgetReport/type1
DRX-Config/drx-onDurationTimer/milliSeconds
DRX-Config/drx-InactivityTimer
DRX-Config/drx-RetransmissionTimerDL
DRX-Config/drx-RetransmissionTimerUL
DRX-Config/drx-LongCycleStartOffset
DRX-Config/shortDRX/drx-ShortCycle
DRX-ConfigSecondaryGroup/drx-onDurationTimer/milliSeconds
DRX-ConfigSecondaryGroup/drx-InactivityTimer
DRX-Info/drx-LongCycleStartOffset
DRX-Info/shortDRX/drx-ShortCycle
DRX-Info2/drx-onDurationTimer/milliSeconds
DRX-Preference-r16/preferredDRX-InactivityTimer-r16
DRX-Preference-r16/preferredDRX-LongCycle-r16
DRX-Preference-r16/preferredDRX-ShortCycle-r16
EUTRA-Q-OffsetRange
PDCP-Config/t-Reordering
PollByte
PollPDU
RangeToBestCell
RRM-Config/ue-InactiveTime
Q-OffsetRange
ServingCellConfig/bwp-InactivityTimer
SL-PDCP-Config-r16/sl-DiscardTimer-r16
SL-RadioBearerConfig-r16/sl-TransRange-r16
SL-TimeOffsetEUTRA-r16
SL-ZoneConfigMCR-r16/sl-TransRange-r16
SPS-Config/periodicity
SRS-PeriodicityAndOffset
SRS-PeriodicityAndOffset-r16
SupportedBandUTRA-FDD-r16
T-PollRetransmit
T-Reassembly
T-StatusProhibit
UL-DataSplitThreshold
UTRA-FDD-Q-OffsetRange-r16
#.EXPORTS
BandCombinationIndex_PDU
BandCombinationInfoSN_PDU
BandParametersSidelink-r16_PDU
CellGroupConfig_PDU
DRX-Config_PDU
CG-Config_PDU
CG-ConfigInfo_PDU
ConfigRestrictInfoSCG_PDU
FeatureSetEntryIndex_PDU
FreqBandList_PDU
HandoverCommand_PDU
HandoverPreparationInformation_PDU
MeasConfig_PDU
MeasGapConfig_PDU
MeasGapSharingConfig_PDU
MeasResultSCG-Failure_PDU
MeasurementTimingConfiguration_PDU
MIB_PDU
NZP-CSI-RS-Resource_PDU
P-Max_PDU
PDCCH-ConfigSIB1_PDU
PH-TypeListMCG_PDU
PH-TypeListSCG_PDU
RA-ReportList-r16_PDU
RACH-ConfigCommon_PDU
RadioBearerConfig_PDU
ReferenceTime-r16_PDU
RRCReconfiguration_PDU
RRCReconfigurationComplete_PDU
SchedulingRequestResourceConfig_PDU
SIB1_PDU
SIB2_PDU
SIB3_PDU
SIB4_PDU
SIB5_PDU
SIB6_PDU
SIB7_PDU
SIB8_PDU
SIB9_PDU
SIB10-r16_PDU
SIB11-r16_PDU
SIB12-r16_PDU
SIB13-r16_PDU
SIB14-r16_PDU
SidelinkParametersNR-r16_PDU
SidelinkUEInformationNR-r16_PDU
SL-PHY-MAC-RLC-Config-r16_PDU
TDD-UL-DL-ConfigCommon_PDU
UE-CapabilityRAT-ContainerList_PDU
UE-CapabilityRequestFilterCommon_PDU
UE-CapabilityRequestFilterNR_PDU
UE-MRDC-Capability_PDU
UE-NR-Capability_PDU
UEAssistanceInformation_PDU
UERadioPagingInformation_PDU
UL-DCCH-Message_PDU
UplinkTxDirectCurrentList_PDU
VisitedCellInfoList-r16_PDU
#.PDU
BandCombinationIndex
BandCombinationInfoSN
BandParametersSidelink-r16
BCCH-BCH-Message @bcch.bch
BCCH-DL-SCH-Message @bcch.dl.sch
CellGroupConfig
CG-Config
CG-ConfigInfo
ConfigRestrictInfoSCG
DL-CCCH-Message @dl.ccch
DL-DCCH-Message @dl.dcch
DRX-Config
FeatureSetEntryIndex
FreqBandList
HandoverCommand
HandoverPreparationInformation
MeasConfig
MeasGapConfig
MeasGapSharingConfig
MeasResultSCG-Failure
MeasurementTimingConfiguration
MIB
NZP-CSI-RS-Resource
P-Max
PCCH-Message @pcch
PDCCH-ConfigSIB1
PH-TypeListMCG
PH-TypeListSCG
RA-ReportList-r16
RACH-ConfigCommon
RadioBearerConfig
ReferenceTime-r16
RRCReconfiguration @rrc_reconf
RRCReconfigurationComplete
SBCCH-SL-BCH-Message @sbcch.sl.bch
SCCH-Message @scch
SchedulingRequestResourceConfig
SidelinkParametersNR-r16
SidelinkUEInformationNR-r16
SL-PHY-MAC-RLC-Config-r16
SIB1
SIB2
SIB3
SIB4
SIB5
SIB6
SIB7
SIB8
SIB9
SIB10-r16
SIB11-r16
SIB12-r16
SIB13-r16
SIB14-r16
TDD-UL-DL-ConfigCommon
UE-CapabilityRAT-ContainerList
UE-CapabilityRequestFilterCommon
UE-CapabilityRequestFilterNR
UE-MRDC-Capability @ue_mrdc_cap
UE-NR-Capability @ue_nr_cap
UEAssistanceInformation
UECapabilityInformationSidelink
UERadioAccessCapabilityInformation @ue_radio_access_cap_info
UERadioPagingInformation @ue_radio_paging_info
UL-CCCH-Message @ul.ccch
UL-CCCH1-Message @ul.ccch1
UL-DCCH-Message @ul.dcch
UplinkTxDirectCurrentList
VisitedCellInfoList-r16
#.END
#.OMIT_ASSIGNMENT
CellsTriggeredList
CLI-RSSI-TriggeredList-r16
CLI-TriggeredList-r16
PLMN-IdentityList-r16
SIB12-IEs-r16
SidelinkPreconfigNR-r16
SL-BWP-ConfigCommon-r16
SL-BWP-PoolConfigCommon-r16
SL-ConfigCommonNR-r16
SL-EUTRA-AnchorCarrierFreqList-r16
SL-FreqConfigCommon-r16
SL-MeasConfigCommon-r16
SL-NR-AnchorCarrierFreqList-r16
SL-PreconfigGeneral-r16
SL-PreconfigurationNR-r16
SL-RoHC-Profiles-r16
SRS-RSRP-TriggeredList-r16
VarConditionalReconfig
VarConnEstFailReport-r16
VarLogMeasConfig-r16-IEs
VarLogMeasReport-r16
VarMeasConfig
VarMeasConfigSL-r16
VarMeasIdleConfig-r16
VarMeasIdleReport-r16
VarMeasReport
VarMeasReportList
VarMeasReportListSL-r16
VarMeasReportSL-r16
VarMobilityHistoryReport-r16
VarPendingRNA-Update
VarRA-Report-r16
VarResumeMAC-Input
VarRLF-Report-r16
VarShortMAC-Input
#.NO_EMIT ONLY_VALS
#.MAKE_ENUM
MobilityFromNRCommand-IEs/targetRAT-Type TYPE_PREFIX
RAT-Type TYPE_PREFIX
#.FN_HDR BCCH-BCH-Message
proto_item *ti;
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
col_clear(actx->pinfo->cinfo, COL_INFO);
ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(ti, ett_nr_rrc);
#.FN_HDR BCCH-DL-SCH-Message
proto_item *ti;
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
col_clear(actx->pinfo->cinfo, COL_INFO);
ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(ti, ett_nr_rrc);
#.FN_HDR DL-CCCH-Message
proto_item *ti;
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
col_clear(actx->pinfo->cinfo, COL_INFO);
actx->pinfo->link_dir = P2P_DIR_DL;
ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(ti, ett_nr_rrc);
#.FN_HDR DL-DCCH-Message
proto_item *ti;
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
col_clear(actx->pinfo->cinfo, COL_INFO);
ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(ti, ett_nr_rrc);
actx->pinfo->link_dir = P2P_DIR_DL;
#.FN_HDR PCCH-Message
proto_item *ti;
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
col_clear(actx->pinfo->cinfo, COL_INFO);
ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(ti, ett_nr_rrc);
#.FN_HDR UL-CCCH-Message
proto_item *ti;
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
col_clear(actx->pinfo->cinfo, COL_INFO);
ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(ti, ett_nr_rrc);
actx->pinfo->link_dir = P2P_DIR_UL;
#.FN_HDR UL-CCCH1-Message
proto_item *ti;
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
col_clear(actx->pinfo->cinfo, COL_INFO);
ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(ti, ett_nr_rrc);
actx->pinfo->link_dir = P2P_DIR_UL;
#.FN_HDR UL-DCCH-Message
proto_item *ti;
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
col_clear(actx->pinfo->cinfo, COL_INFO);
ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(ti, ett_nr_rrc);
actx->pinfo->link_dir = P2P_DIR_UL;
#.FN_BODY DLInformationTransferMRDC-r16-IEs/dl-DCCH-MessageNR-r16 VAL_PTR = &dl_dcch_msg_nr_tvb
tvbuff_t *dl_dcch_msg_nr_tvb = NULL;
%(DEFAULT_BODY)s
if (dl_dcch_msg_nr_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_dl_DCCH_MessageNR);
dissect_DL_DCCH_Message_PDU(dl_dcch_msg_nr_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY DLInformationTransferMRDC-r16-IEs/dl-DCCH-MessageEUTRA-r16 VAL_PTR = &dl_dcch_msg_eutra_tvb
tvbuff_t *dl_dcch_msg_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (dl_dcch_msg_eutra_tvb && lte_rrc_dl_dcch_handle) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_dl_DCCH_MessageEUTRA);
nr_rrc_call_dissector(lte_rrc_dl_dcch_handle, dl_dcch_msg_eutra_tvb, actx->pinfo, subtree);
}
#.FN_BODY FailureReportMCG-r16/measResultSCG-EUTRA-r16 VAL_PTR = &meas_result_scg_fail_mrdc_tvb
tvbuff_t *meas_result_scg_fail_mrdc_tvb = NULL;
%(DEFAULT_BODY)s
if (meas_result_scg_fail_mrdc_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_measResultSCG_FailureMRDC);
dissect_lte_rrc_MeasResultSCG_FailureMRDC_r15_PDU(meas_result_scg_fail_mrdc_tvb, actx->pinfo, subtree, NULL);
}
#.FN_HDR MIB
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MIB");
#.FN_HDR SystemInformation
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "System Information [");
#.FN_FTR SystemInformation
col_append_str(actx->pinfo->cinfo, COL_INFO, " ]");
#.FN_HDR SIB2
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB2");
#.FN_HDR SIB3
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB3");
#.FN_HDR SIB4
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB4");
#.FN_HDR SIB5
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB5");
#.FN_HDR SIB6
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB6");
#.FN_HDR SIB7
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB7");
#.FN_HDR SIB8
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB8");
#.FN_HDR SIB9
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB9");
#.FN_HDR SIB10-r16
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB10");
#.FN_HDR SIB11-r16
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB11");
#.FN_HDR SIB12-r16
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB12");
#.FN_HDR SIB13-r16
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB13");
#.FN_HDR SIB14-r16
col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB14");
#.FN_HDR SIB1
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1");
#.FN_HDR RRCReject
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reject");
#.FN_HDR RRCSetup
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Setup");
#.FN_HDR RRCReconfiguration
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration");
#.FN_HDR RRCResume
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Resume");
#.FN_HDR RRCRelease
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Release");
#.FN_HDR RRCReestablishment
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reestablishment");
#.FN_HDR SecurityModeCommand
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Security Mode Command");
#.FN_HDR DLInformationTransfer
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DL Information Transfer");
#.FN_HDR UECapabilityEnquiry
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Capability Enquiry");
#.FN_HDR CounterCheck
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Counter Check");
#.FN_HDR MobilityFromNRCommand
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Mobility From NR Command");
#.FN_HDR DLDedicatedMessageSegment-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DL Dedicated MessageSegment");
#.FN_HDR UEInformationRequest-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Information Request");
#.FN_HDR DLInformationTransferMRDC-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DL InformationTransfer MRDC");
#.FN_HDR LoggedMeasurementConfiguration-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Logged Measurement Configuration");
#.FN_HDR Paging
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging");
#.FN_HDR RRCSetupRequest
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Setup Request");
#.FN_HDR RRCResumeRequest
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Resume Request");
#.FN_HDR RRCReestablishmentRequest
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reestablishment Request");
#.FN_HDR RRCSystemInfoRequest
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC System Info Request");
#.FN_HDR RRCResumeRequest1
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Resume Request 1");
#.FN_HDR MeasurementReport
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Measurement Report");
#.FN_HDR RRCReconfigurationComplete
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration Complete");
#.FN_HDR RRCSetupComplete
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Setup Complete");
#.FN_HDR RRCReestablishmentComplete
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reestablishment Complete");
#.FN_HDR RRCResumeComplete
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Resume Complete");
#.FN_HDR SecurityModeComplete
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Security Mode Complete");
#.FN_HDR SecurityModeFailure
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Security Mode Failure");
#.FN_HDR ULInformationTransfer
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UL Information Transfer");
#.FN_HDR LocationMeasurementIndication
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Location Measurement Indication");
#.FN_HDR UECapabilityInformation
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Capability Information");
#.FN_HDR CounterCheckResponse
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Counter Check Response");
#.FN_HDR UEAssistanceInformation
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Assistance Information");
#.FN_HDR FailureInformation
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Failure Information");
#.FN_HDR ULInformationTransferMRDC
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UL Information Transfer MRDC");
#.FN_HDR SCGFailureInformation
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SCG Failure Information");
#.FN_HDR SCGFailureInformationEUTRA
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SCG Failure Information EUTRA");
#.FN_HDR ULDedicatedMessageSegment-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UL Dedicated MessageSegment");
#.FN_HDR DedicatedSIBRequest-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Dedicated SIB Request");
#.FN_HDR MCGFailureInformation-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MCG Failure Information");
#.FN_HDR UEInformationResponse-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Information Response");
#.FN_HDR SidelinkUEInformationNR-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Sidelink UE Information NR");
#.FN_HDR ULInformationTransferIRAT-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UL Information Transfer IRAT");
#.FN_HDR IABOtherInformation-r16
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "IAB Other Information");
#.FN_BODY MRDC-SecondaryCellGroupConfig/mrdc-SecondaryCellGroup/eutra-SCG VAL_PTR = &eutra_scg_tvb
tvbuff_t *eutra_scg_tvb = NULL;
%(DEFAULT_BODY)s
if (eutra_scg_tvb && lte_rrc_conn_reconf_handle) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_eutra_SCG);
nr_rrc_call_dissector(lte_rrc_conn_reconf_handle, eutra_scg_tvb, actx->pinfo, subtree);
}
#.FN_BODY RRCReconfigurationComplete-v1560-IEs/scg-Response/eutra-SCG-Response VAL_PTR = &eutra_scg_response_tvb
tvbuff_t *eutra_scg_response_tvb = NULL;
%(DEFAULT_BODY)s
if (eutra_scg_response_tvb && lte_rrc_conn_reconf_compl_handle) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_eutra_SCG_Response);
nr_rrc_call_dissector(lte_rrc_conn_reconf_compl_handle, eutra_scg_response_tvb, actx->pinfo, subtree);
}
#.FN_BODY RRCResume-v1610-IEs/mrdc-SecondaryCellGroup-r16/eutra-SCG-r16 VAL_PTR = &eutra_scg_tvb
tvbuff_t *eutra_scg_tvb = NULL;
%(DEFAULT_BODY)s
if (eutra_scg_tvb && lte_rrc_conn_reconf_handle) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_eutra_SCG);
nr_rrc_call_dissector(lte_rrc_conn_reconf_handle, eutra_scg_tvb, actx->pinfo, subtree);
}
#.FN_BODY RRCResumeComplete-v1610-IEs/scg-Response-r16/eutra-SCG-Response VAL_PTR = &eutra_scg_response_tvb
tvbuff_t *eutra_scg_response_tvb = NULL;
%(DEFAULT_BODY)s
if (eutra_scg_response_tvb && lte_rrc_conn_reconf_compl_handle) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_eutra_SCG_Response);
nr_rrc_call_dissector(lte_rrc_conn_reconf_compl_handle, eutra_scg_response_tvb, actx->pinfo, subtree);
}
#.FN_BODY FailureReportSCG-EUTRA/measResultSCG-FailureMRDC VAL_PTR = &meas_result_scg_fail_mrdc_tvb
tvbuff_t *meas_result_scg_fail_mrdc_tvb = NULL;
%(DEFAULT_BODY)s
if (meas_result_scg_fail_mrdc_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_measResultSCG_FailureMRDC);
dissect_lte_rrc_MeasResultSCG_FailureMRDC_r15_PDU(meas_result_scg_fail_mrdc_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY ULInformationTransferMRDC-IEs/ul-DCCH-MessageNR VAL_PTR = &ul_dcch_msg_nr_tvb
tvbuff_t *ul_dcch_msg_nr_tvb = NULL;
%(DEFAULT_BODY)s
if (ul_dcch_msg_nr_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_ul_DCCH_MessageNR);
dissect_nr_rrc_UL_DCCH_Message_PDU(ul_dcch_msg_nr_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY ULInformationTransferMRDC-IEs/ul-DCCH-MessageEUTRA VAL_PTR = &ul_dcch_msg_eutra_tvb
tvbuff_t *ul_dcch_msg_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (ul_dcch_msg_eutra_tvb && lte_rrc_ul_dcch_handle) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_ul_DCCH_MessageEUTRA);
nr_rrc_call_dissector(lte_rrc_ul_dcch_handle, ul_dcch_msg_eutra_tvb, actx->pinfo, subtree);
}
#.FN_BODY DedicatedNAS-Message VAL_PTR = &nas_5gs_tvb
tvbuff_t *nas_5gs_tvb = NULL;
proto_tree *subtree;
%(DEFAULT_BODY)s
if (nas_5gs_tvb && nas_5gs_handle) {
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_DedicatedNAS_Message);
nr_rrc_call_dissector(nas_5gs_handle, nas_5gs_tvb, actx->pinfo, subtree);
}
#.FN_BODY MobilityFromNRCommand-IEs/targetRAT-Type VAL_PTR = &target_rat_type
guint32 target_rat_type;
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
%(DEFAULT_BODY)s
nr_priv->target_rat_type = (guint8)target_rat_type;
#.FN_BODY MobilityFromNRCommand-IEs/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) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_targetRAT_MessageContainer);
switch (nr_priv->target_rat_type) {
case T_targetRAT_Type_eutra:
/* eutra */
if (lte_rrc_dl_dcch_handle)
nr_rrc_call_dissector(lte_rrc_dl_dcch_handle, target_rat_msg_cont_tvb, actx->pinfo, subtree);
break;
case T_targetRAT_Type_utra_fdd_v1610:
/* utra-fdd */
dissect_rrc_HandoverToUTRANCommand_PDU(target_rat_msg_cont_tvb, actx->pinfo, subtree, NULL);
break;
default:
break;
}
}
#.FN_BODY MobilityFromNRCommand-IEs/nas-SecurityParamFromNR VAL_PTR = &nas_sec_param_tvb
tvbuff_t *nas_sec_param_tvb = NULL;
%(DEFAULT_BODY)s
if (nas_sec_param_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_rr_rrc_nas_SecurityParamFromNR);
switch (nr_priv->target_rat_type) {
case T_targetRAT_Type_eutra:
/* eutra */
de_nas_5gs_n1_mode_to_s1_mode_nas_transparent_cont(nas_sec_param_tvb, subtree, actx->pinfo);
break;
default:
break;
}
}
#.FN_BODY MasterKeyUpdate/nas-Container VAL_PTR = &nas_5gs_tvb
tvbuff_t *nas_5gs_tvb = NULL;
proto_tree *subtree;
%(DEFAULT_BODY)s
if (nas_5gs_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_nas_Container);
de_nas_5gs_s1_mode_to_n1_mode_nas_transparent_cont(nas_5gs_tvb, subtree, actx->pinfo);
}
#.FN_BODY SL-ConfigDedicatedEUTRA-Info-r16/sl-ConfigDedicatedEUTRA-r16 VAL_PTR = &sl_config_ded_eutra_tvb
tvbuff_t *sl_config_ded_eutra_tvb = NULL;
proto_tree *subtree;
%(DEFAULT_BODY)s
if (sl_config_ded_eutra_tvb && lte_rrc_conn_reconf_handle) {
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sl_ConfigDedicatedEUTRA);
nr_rrc_call_dissector(lte_rrc_conn_reconf_handle, sl_config_ded_eutra_tvb, actx->pinfo, subtree);
}
#.TYPE_ATTR
RejectWaitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
#.TYPE_RENAME
MeasTriggerQuantityUTRA-FDD-r16/utra-FDD-RSCP-r16 MeasTriggerQuantityUTRA_FDD_RSCP_r16
#.TYPE_ATTR
MeasTriggerQuantityUTRA-FDD-r16/utra-FDD-RSCP-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_measTriggerQuantity_utra_FDD_RSCP_r16_fmt)
#.TYPE_RENAME
MeasTriggerQuantityUTRA-FDD-r16/utra-FDD-EcN0-r16 MeasTriggerQuantityUTRA_FDD_EcN0_r16
#.TYPE_ATTR
MeasTriggerQuantityUTRA-FDD-r16/utra-FDD-EcN0-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_measTriggerQuantity_utra_FDD_EcN0_r16_fmt)
#.TYPE_ATTR
SIB1/cellSelectionInfo/q-RxLevMinOffset DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
SIB1/cellSelectionInfo/q-QualMinOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.FN_BODY SL-TxResourceReq-r16/sl-CapabilityInformationSidelink-r16 VAL_PTR = &sl_cap_info_sidelink_tvb
tvbuff_t *sl_cap_info_sidelink_tvb = NULL;
%(DEFAULT_BODY)s
if (sl_cap_info_sidelink_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sl_CapabilityInformationSidelink);
dissect_UECapabilityInformationSidelink_PDU(sl_cap_info_sidelink_tvb, actx->pinfo, subtree, NULL);
}
#.TYPE_ATTR
LogMeasInfo-r16/relativeTimeStamp-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
#.TYPE_ATTR
RLF-Report-r16/nr-RLF-Report-r16/timeConnFailure-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_timeConnFailure_r16_fmt)
#.FN_BODY RLF-Report-r16/eutra-RLF-Report-r16/measResult-RLF-Report-EUTRA-r16 VAL_PTR = &meas_result_rlf_report_eutra_tvb
tvbuff_t *meas_result_rlf_report_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (meas_result_rlf_report_eutra_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_measResult_RLF_Report_EUTRA);
dissect_lte_rrc_RLF_Report_r9_PDU(meas_result_rlf_report_eutra_tvb, actx->pinfo, subtree, NULL);
}
#.TYPE_ATTR
TimeSinceFailure-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
#.TYPE_ATTR
TimeUntilReconnection-16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
#.FN_BODY ULInformationTransferIRAT-r16-IEs/ul-DCCH-MessageEUTRA-r16 VAL_PTR = &ul_dcch_msg_eutra_tvb
tvbuff_t *ul_dcch_msg_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (ul_dcch_msg_eutra_tvb && lte_rrc_ul_dcch_handle) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_ul_DCCH_MessageEUTRA);
nr_rrc_call_dissector(lte_rrc_ul_dcch_handle, ul_dcch_msg_eutra_tvb, actx->pinfo, subtree);
}
#.TYPE_ATTR
IntraFreqNeighCellInfo/q-RxLevMinOffsetCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
IntraFreqNeighCellInfo/q-RxLevMinOffsetCellSUL DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
IntraFreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
InterFreqNeighCellInfo/q-RxLevMinOffsetCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
InterFreqNeighCellInfo/q-RxLevMinOffsetCellSUL DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
InterFreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
CarrierFreqEUTRA/q-RxLevMin DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
CarrierFreqEUTRA/q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
CarrierFreqEUTRA/p-MaxEUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
EUTRA-FreqNeighCellInfo/q-RxLevMinOffsetCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt)
#.TYPE_ATTR
EUTRA-FreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
SIB6/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_messageIdentifier_vals_ext
#.FN_BODY SIB6/messageIdentifier VAL_PTR=&msg_id_tvb HF_INDEX=-1
tvbuff_t *msg_id_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB6/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 SIB6/serialNumber VAL_PTR=&serial_nb_tvb
tvbuff_t *serial_nb_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB6/serialNumber
if (serial_nb_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_serialNumber);
proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
}
#.FN_BODY SIB6/warningType VAL_PTR=&warning_type_tvb
tvbuff_t *warning_type_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB6/warningType
if (warning_type_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningType);
proto_tree_add_item(subtree, hf_nr_rrc_warningType_value, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_nr_rrc_warningType_emergency_user_alert, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_nr_rrc_warningType_popup, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN);
}
#.TYPE_ATTR
SIB7/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_messageIdentifier_vals_ext
#.FN_BODY SIB7/messageIdentifier VAL_PTR=&msg_id_tvb HF_INDEX=-1
tvbuff_t *msg_id_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB7/messageIdentifier
if (msg_id_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
nr_priv->message_identifier = 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 SIB7/serialNumber VAL_PTR=&serial_nb_tvb
tvbuff_t *serial_nb_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB7/serialNumber
if (serial_nb_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
nr_priv->message_identifier |= tvb_get_ntohs(serial_nb_tvb, 0);
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_serialNumber);
proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
}
#.FN_BODY SIB7/warningMessageSegmentType VAL_PTR=&segment_type
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
guint32 segment_type;
%(DEFAULT_BODY)s
nr_priv->warning_message_segment_type = (guint8)segment_type;
#.FN_BODY SIB7/warningMessageSegmentNumber VAL_PTR=&segment_number
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
guint32 segment_number;
%(DEFAULT_BODY)s
nr_priv->warning_message_segment_number = (guint8)segment_number;
#.FN_BODY SIB7/dataCodingScheme VAL_PTR=&data_coding_scheme_tvb
tvbuff_t *data_coding_scheme_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB7/dataCodingScheme
if (data_coding_scheme_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
guint32 dataCodingScheme;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_dataCodingScheme);
dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0);
wmem_map_insert(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier),
GUINT_TO_POINTER(dataCodingScheme));
}
#.FN_BODY SIB7/warningMessageSegment VAL_PTR=&warning_msg_seg_tvb
tvbuff_t *warning_msg_seg_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB7/warningMessageSegment
if (warning_msg_seg_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
tvbuff_t *frag_tvb;
gpointer p_dcs;
fragment_head *frag_data = fragment_add_seq_check(&nr_rrc_sib7_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo,
nr_priv->message_identifier, NULL,
nr_priv->warning_message_segment_number,
tvb_reported_length(warning_msg_seg_tvb),
nr_priv->warning_message_segment_type ? FALSE : TRUE);
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningMessageSegment);
frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB7 warning message",
frag_data, &nr_rrc_sib7_frag_items, NULL, subtree);
p_dcs = wmem_map_lookup(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier));
if (frag_tvb && p_dcs) {
dissect_nr_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs));
}
}
#.TYPE_ATTR
SIB8/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lte_rrc_messageIdentifier_vals_ext
#.FN_BODY SIB8/messageIdentifier VAL_PTR=&msg_id_tvb HF_INDEX=-1
tvbuff_t *msg_id_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB8/messageIdentifier
if (msg_id_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
nr_priv->message_identifier = 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 SIB8/serialNumber VAL_PTR=&serial_nb_tvb
tvbuff_t *serial_nb_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB8/serialNumber
if (serial_nb_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
nr_priv->message_identifier |= tvb_get_ntohs(serial_nb_tvb, 0);
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_serialNumber);
proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN);
}
#.FN_BODY SIB8/warningMessageSegmentType VAL_PTR=&segment_type
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
guint32 segment_type;
%(DEFAULT_BODY)s
nr_priv->warning_message_segment_type = (guint8)segment_type;
#.FN_BODY SIB8/warningMessageSegmentNumber VAL_PTR=&segment_number
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
guint32 segment_number;
%(DEFAULT_BODY)s
nr_priv->warning_message_segment_number = (guint8)segment_number;
#.FN_BODY SIB8/dataCodingScheme VAL_PTR=&data_coding_scheme_tvb
tvbuff_t *data_coding_scheme_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB8/dataCodingScheme
if (data_coding_scheme_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
guint32 dataCodingScheme;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_dataCodingScheme);
dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0);
wmem_map_insert(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier),
GUINT_TO_POINTER(dataCodingScheme));
}
#.FN_BODY SIB8/warningMessageSegment VAL_PTR=&warning_msg_seg_tvb
tvbuff_t *warning_msg_seg_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB8/warningMessageSegment
if (warning_msg_seg_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
tvbuff_t *frag_tvb;
gpointer p_dcs;
fragment_head *frag_data = fragment_add_seq_check(&nr_rrc_sib8_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo,
nr_priv->message_identifier, NULL,
nr_priv->warning_message_segment_number,
tvb_reported_length(warning_msg_seg_tvb),
nr_priv->warning_message_segment_type ? FALSE : TRUE);
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningMessageSegment);
frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB8 warning message",
frag_data, &nr_rrc_sib8_frag_items, NULL, subtree);
p_dcs = wmem_map_lookup(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier));
if (frag_tvb && p_dcs) {
dissect_nr_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs));
}
}
#.FN_BODY SIB9/timeInfo/timeInfoUTC VAL_PTR=&timeInfo
guint64 timeInfo;
proto_tree *subtree;
nstime_t ts;
guint32 old_offset = offset;
%(DEFAULT_BODY)s
#.FN_FTR SIB9/timeInfo/timeInfoUTC
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_timeInfo);
ts.secs = (time_t)(timeInfo/100)-EPOCH_DELTA_1900_01_01_00_00_00_UTC; /* epoch is 00:00:00 (midnight) UTC on 1900-01-01 */
ts.nsecs = (int)(timeInfo%100)*10000000;
proto_tree_add_time(subtree, hf_nr_rrc_utc_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts);
proto_tree_add_time(subtree, hf_nr_rrc_local_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts);
#.TYPE_ATTR
SIB9/timeInfo/dayLightSavingTime TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(nr_rrc_daylightSavingTime_vals)
#.FN_BODY SIB9/timeInfo/dayLightSavingTime VAL_PTR=&daylight_saving_time_tvb HF_INDEX=-1
tvbuff_t *daylight_saving_time_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR SIB9/timeInfo/dayLightSavingTime
if (daylight_saving_time_tvb) {
guint bitvalue = tvb_get_bits8(daylight_saving_time_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, daylight_saving_time_tvb, 0, 1, bitvalue);
}
#.TYPE_ATTR
SIB9/timeInfo/leapSeconds DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
#.TYPE_ATTR
SIB9/timeInfo/localTimeOffset DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_localTimeOffset_fmt)
#.TYPE_ATTR
CLI-RSSI-Range-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSSI_Range_r16_fmt)
#.TYPE_ATTR
RSSI-Range-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSSI_Range_r16_fmt)
#.FN_BODY CommonLocationInfo-r16/locationTimestamp-r16 VAL_PTR = &location_timestamp_tvb
tvbuff_t *location_timestamp_tvb = NULL;
%(DEFAULT_BODY)s
if (location_timestamp_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_locationTimestamp_r16);
dissect_lpp_DisplacementTimeStamp_r15_PDU(location_timestamp_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY CommonLocationInfo-r16/locationCoordinate-r16 VAL_PTR = &location_coordinate_tvb
tvbuff_t *location_coordinate_tvb = NULL;
%(DEFAULT_BODY)s
if (location_coordinate_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_locationCoordinate_r16);
dissect_lpp_LocationCoordinates_PDU(location_coordinate_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY CommonLocationInfo-r16/locationError-r16 VAL_PTR = &location_error_tvb
tvbuff_t *location_error_tvb = NULL;
%(DEFAULT_BODY)s
if (location_error_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_locationError_r16);
dissect_lpp_LocationError_PDU(location_error_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY CommonLocationInfo-r16/locationSource-r16 VAL_PTR = &location_source_tvb
tvbuff_t *location_source_tvb = NULL;
%(DEFAULT_BODY)s
if (location_source_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_locationSource_r16);
dissect_lpp_LocationSource_r13_PDU(location_source_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY CommonLocationInfo-r16/velocityEstimate-r16 VAL_PTR = &velocity_estimate_tvb
tvbuff_t *velocity_estimate_tvb = NULL;
%(DEFAULT_BODY)s
if (velocity_estimate_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_velocityEstimate_r16);
dissect_lpp_Velocity_PDU(velocity_estimate_tvb, actx->pinfo, subtree, NULL);
}
#.TYPE_ATTR
ConfiguredGrantConfig/configuredGrantTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_periodicities
#.TYPE_ATTR
ConnEstFailureControl/connEstFailOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
DRX-Config/drx-SlotOffset DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_drx_SlotOffset_fmt)
#.TYPE_ATTR
FrequencyInfoDL-SIB/offsetToPointA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_prbs
#.TYPE_ATTR
Hysteresis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_Hysteresis_fmt)
#.TYPE_ATTR
RSRQ-RangeEUTRA-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRQ_RangeEUTRA_r16_fmt)
#.FN_BODY Sensor-LocationInfo-r16/sensor-MeasurementInformation-r16 VAL_PTR = &sensor_meas_info_tvb
tvbuff_t *sensor_meas_info_tvb = NULL;
%(DEFAULT_BODY)s
if (sensor_meas_info_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sensor_MeasurementInformation_r16);
dissect_lpp_Sensor_MeasurementInformation_r13_PDU(sensor_meas_info_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY Sensor-LocationInfo-r16/sensor-MotionInformation-r16 VAL_PTR = &sensor_motion_info_tvb
tvbuff_t *sensor_motion_info_tvb = NULL;
%(DEFAULT_BODY)s
if (sensor_motion_info_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sensor_MotionInformation_r16);
dissect_lpp_Sensor_MotionInformation_r15_PDU(sensor_motion_info_tvb, actx->pinfo, subtree, NULL);
}
#.TYPE_ATTR
ChannelAccessConfig-r16/maxEnergyDetectionThreshold-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
ChannelAccessConfig-r16/energyDetectionThresholdOffset-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
MeasResultUTRA-FDD-r16/measResult-r16/utra-FDD-RSCP-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_utra_FDD_RSCP_r16_fmt)
#.TYPE_ATTR
MeasResultUTRA-FDD-r16/measResult-r16/utra-FDD-EcN0-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_utra_FDD_EcN0_r16_fmt)
#.TYPE_ATTR
MeasResultForRSSI-r16/channelOccupancy-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
#.TYPE_ATTR
UL-PDCP-DelayValueResult-r16/averageDelay-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_averageDelay_r16_fmt)
#.TYPE_ATTR
NZP-CSI-RS-Resource/powerControlOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
P-Max DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
PUCCH-ResourceSet/maxPayloadMinus1 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_bits
#.TYPE_ATTR
PUCCH-ConfigCommon/p0-nominal DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
PUCCH-PowerControl/deltaF-PUCCH-f0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
PUCCH-PowerControl/deltaF-PUCCH-f1 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
PUCCH-PowerControl/deltaF-PUCCH-f2 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
PUCCH-PowerControl/deltaF-PUCCH-f3 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
PUCCH-PowerControl/deltaF-PUCCH-f4 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
P0-PUCCH/p0-PUCCH-Value DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
PUSCH-ConfigCommon/msg3-DeltaPreamble DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_msg3_DeltaPreamble_fmt)
#.TYPE_ATTR
PUSCH-ConfigCommon/p0-NominalWithGrant DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
PUSCH-PowerControl/p0-NominalWithoutGrant DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
P0-PUSCH-AlphaSet/p0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
Q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
Q-RxLevMin DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_Q_RxLevMin_fmt)
#.TYPE_ATTR
RACH-ConfigGeneric/preambleReceivedTargetPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
RSRP-RangeEUTRA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRP_RangeEUTRA_fmt)
#.TYPE_ATTR
RSRQ-RangeEUTRA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRQ_RangeEUTRA_fmt)
#.TYPE_ATTR
SINR-RangeEUTRA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_SINR_RangeEUTRA_fmt)
#.TYPE_ATTR
MsgA-PUSCH-Config-r16/msgA-DeltaPreamble-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
MeasTriggerQuantityOffset/rsrp DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_MeasTriggerQuantityOffset_fmt)
#.TYPE_ATTR
MeasTriggerQuantityOffset/rsrq DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_MeasTriggerQuantityOffset_fmt)
#.TYPE_ATTR
MeasTriggerQuantityOffset/sinr DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_MeasTriggerQuantityOffset_fmt)
#.TYPE_ATTR
ReselectionThreshold DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_ReselectionThreshold_fmt)
#.TYPE_ATTR
ReselectionThresholdQ DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
#.TYPE_ATTR
RSRP-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRP_Range_fmt)
#.TYPE_ATTR
RSRQ-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRQ_Range_fmt)
#.TYPE_ATTR
SearchSpace/duration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_slots
#.TYPE_ATTR
ServingCellConfigCommon/ss-PBCH-BlockPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
ServingCellConfigCommonSIB/ss-PBCH-BlockPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
SINR-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_SINR_Range_fmt)
#.TYPE_ATTR
SRS-ResourceSet/p0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
SRS-PosResourceSet-r16/p0-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
SRS-RSRP-Range-r16 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_SRS_RSRP_r16_fmt)
#.TYPE_ATTR
T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
#.FN_BODY BandParametersSidelinkEUTRA-NR-r16/eutra/bandParametersSidelinkEUTRA1-r16 VAL_PTR = &band_params_sl_tvb
tvbuff_t *band_params_sl_tvb = NULL;
%(DEFAULT_BODY)s
if (band_params_sl_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_bandParametersSidelinkEUTRA1_r16);
dissect_lte_rrc_V2X_BandParameters_r14_PDU(band_params_sl_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY BandParametersSidelinkEUTRA-NR-r16/eutra/bandParametersSidelinkEUTRA2-r16 VAL_PTR = &band_params_sl_tvb
tvbuff_t *band_params_sl_tvb = NULL;
%(DEFAULT_BODY)s
if (band_params_sl_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_bandParametersSidelinkEUTRA2_r16);
dissect_lte_rrc_V2X_BandParameters_v1530_PDU(band_params_sl_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY SidelinkParametersEUTRA-r16/sl-ParametersEUTRA1-r16 VAL_PTR = &sl_params_tvb
tvbuff_t *sl_params_tvb = NULL;
%(DEFAULT_BODY)s
if (sl_params_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sl_ParametersEUTRA1_r16);
dissect_lte_rrc_SL_Parameters_v1430_PDU(sl_params_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY SidelinkParametersEUTRA-r16/sl-ParametersEUTRA2-r16 VAL_PTR = &sl_params_tvb
tvbuff_t *sl_params_tvb = NULL;
%(DEFAULT_BODY)s
if (sl_params_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sl_ParametersEUTRA2_r16);
dissect_lte_rrc_SL_Parameters_v1530_PDU(sl_params_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY SidelinkParametersEUTRA-r16/sl-ParametersEUTRA3-r16 VAL_PTR = &sl_params_tvb
tvbuff_t *sl_params_tvb = NULL;
%(DEFAULT_BODY)s
if (sl_params_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sl_ParametersEUTRA3_r16);
dissect_lte_rrc_SL_Parameters_v1540_PDU(sl_params_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY UE-CapabilityRAT-Container
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
/* Initialise to invalid value */
nr_priv->rat_type = 0xFF;
%(DEFAULT_BODY)s
#.FN_BODY RAT-Type VAL_PTR = &rat_type
guint32 rat_type;
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
%(DEFAULT_BODY)s
nr_priv->rat_type = (guint8)rat_type;
#.FN_BODY UE-CapabilityRAT-Container/ue-CapabilityRAT-Container VAL_PTR = &ue_cap_tvb
tvbuff_t *ue_cap_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR UE-CapabilityRAT-Container/ue-CapabilityRAT-Container
if (ue_cap_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_UE_CapabilityRAT_Container);
switch(nr_priv->rat_type){
case RAT_Type_nr:
dissect_nr_rrc_UE_NR_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL);
break;
case RAT_Type_eutra_nr:
dissect_nr_rrc_UE_MRDC_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL);
break;
case RAT_Type_eutra:
dissect_lte_rrc_UE_EUTRA_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL);
break;
case RAT_Type_utra_fdd_v1610:
dissect_rrc_InterRATHandoverInfo_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL);
break;
default:
break;
}
}
#.FN_BODY UE-CapabilityRAT-Request
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
/* Initialise to invalid value */
nr_priv->rat_type = 0xFF;
%(DEFAULT_BODY)s
#.FN_BODY UE-CapabilityRAT-Request/capabilityRequestFilter VAL_PTR = &cap_req_filter_tvb
tvbuff_t *cap_req_filter_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR UE-CapabilityRAT-Request/capabilityRequestFilter
if (cap_req_filter_tvb) {
nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx);
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_capabilityRequestFilter);
switch(nr_priv->rat_type){
case RAT_Type_nr:
case RAT_Type_eutra_nr:
dissect_nr_rrc_UE_CapabilityRequestFilterNR_PDU(cap_req_filter_tvb, actx->pinfo, subtree, NULL);
break;
case RAT_Type_eutra:
dissect_lte_rrc_UECapabilityEnquiry_PDU(cap_req_filter_tvb, actx->pinfo, subtree, NULL);
break;
default:
break;
}
}
#.FN_BODY AbsoluteTimeInfo-r16 VAL_PTR = &abs_time_info_tvb
tvbuff_t *abs_time_info_tvb = NULL;
%(DEFAULT_BODY)s
#.FN_FTR AbsoluteTimeInfo-r16
if (abs_time_info_tvb) {
const gchar *str, *hf_str;
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_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_nr_rrc_absolute_time, abs_time_info_tvb, 0, 6, hf_str);
}
#.TYPE_ATTR
EUTRA-NS-PmaxValue/additionalPmax DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
WLAN-Identifiers-r16/ssid-r16 TYPE=FT_STRING DISPLAY=STR_ASCII
#.FN_BODY WLAN-Identifiers-r16/ssid-r16 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-r16/bssid-r16 TYPE=FT_ETHER
#.TYPE_ATTR
WLAN-Identifiers-r16/hessid-r16 TYPE=FT_ETHER
#.TYPE_ATTR
VisitedCellInfo-r16/timeSpent-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
#.FN_BODY RLC-BearerConfig
struct mac_nr_info *p_mac_nr_info;
/* Get the struct and clear it out */
nr_drb_mapping_t *drb_mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
memset(drb_mapping, 0, sizeof(nr_drb_mapping_t));
%(DEFAULT_BODY)s
/* Need UE identifier */
p_mac_nr_info = (mac_nr_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_nr, 0);
if (p_mac_nr_info) {
drb_mapping->ueid = p_mac_nr_info->ueid;
/* Tell MAC about this mapping */
set_mac_nr_bearer_mapping(drb_mapping);
}
#.FN_BODY DRB-Identity VAL_PTR=&value
guint32 value;
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
%(DEFAULT_BODY)s
mapping->drbid = (guint8)value;
#.FN_BODY RLC-Config VAL_PTR=&value
guint32 value;
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
%(DEFAULT_BODY)s
mapping->rlcMode = (value==0) ? RLC_AM_MODE : RLC_UM_MODE;
mapping->rlcMode_present = TRUE;
#.FN_BODY LogicalChannelIdentity VAL_PTR=&value
guint32 value;
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
%(DEFAULT_BODY)s
mapping->lcid = (guint8)value;
mapping->lcid_present = TRUE;
#.FN_BODY UL-UM-RLC
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
mapping->tempDirection = DIRECTION_UPLINK;
%(DEFAULT_BODY)s
#.FN_BODY DL-UM-RLC
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
mapping->tempDirection = DIRECTION_DOWNLINK;
%(DEFAULT_BODY)s
#.FN_BODY UL-AM-RLC
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
mapping->tempDirection = DIRECTION_UPLINK;
%(DEFAULT_BODY)s
#.FN_BODY DL-AM-RLC
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
mapping->tempDirection = DIRECTION_DOWNLINK;
%(DEFAULT_BODY)s
#.FN_BODY SN-FieldLengthUM VAL_PTR=&value
guint32 value;
%(DEFAULT_BODY)s
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
if (mapping->tempDirection == DIRECTION_UPLINK) {
mapping->rlcUlSnLength_present = TRUE;
mapping->rlcUlSnLength = (value=0) ? 6 : 12;
}
else {
mapping->rlcDlSnLength_present = TRUE;
mapping->rlcDlSnLength = (value=0) ? 6 : 12;
}
#.FN_BODY SN-FieldLengthAM VAL_PTR=&value
guint32 value;
%(DEFAULT_BODY)s
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
if (mapping->tempDirection == DIRECTION_UPLINK) {
mapping->rlcUlSnLength_present = TRUE;
mapping->rlcUlSnLength = (value=0) ? 12 : 18;
}
else {
mapping->rlcDlSnLength_present = TRUE;
mapping->rlcDlSnLength = (value=0) ? 12 : 18;
}
#.FN_BODY DRB-ToAddMod
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
memset(mapping, 0, sizeof(*mapping));
%(DEFAULT_BODY)s
/* Need UE identifier */
mac_nr_info *p_mac_nr_info = (mac_nr_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_nr, 0);
if (p_mac_nr_info) {
/* Configure PDCP SN length(s) for this DRB */
if (mapping->pdcpUlSnLength_present || mapping->pdcpDlSnLength_present) {
set_rlc_nr_drb_pdcp_seqnum_length(actx->pinfo, p_mac_nr_info->ueid, mapping->drbid,
mapping->pdcpUlSnLength, mapping->pdcpDlSnLength);
}
}
#.FN_BODY PDCP-Config/drb/pdcp-SN-SizeUL VAL_PTR=&value
guint32 value;
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
%(DEFAULT_BODY)s
mapping->pdcpUlSnLength_present = TRUE;
mapping->pdcpUlSnLength = (value) ? 18 : 12;
#.FN_BODY PDCP-Config/drb/pdcp-SN-SizeDL VAL_PTR=&value
guint32 value;
nr_drb_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_mapping;
%(DEFAULT_BODY)s
mapping->pdcpDlSnLength_present = TRUE;
mapping->pdcpDlSnLength = (value) ? 18 : 12;
#.TYPE_ATTR
CA-ParametersEUTRA-v1570/dl-1024QAM-TotalWeightedLayers DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_dl_1024QAM_TotalWeightedLayers_fmt)
#.FN_BODY AS-Config/eag_1/sourceSCG-EUTRA-Config VAL_PTR = &src_scg_eutra_config_tvb
tvbuff_t *src_scg_eutra_config_tvb = NULL;
%(DEFAULT_BODY)s
if (src_scg_eutra_config_tvb && lte_rrc_conn_reconf_handle) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_targetRAT_MessageContainer);
nr_rrc_call_dissector(lte_rrc_conn_reconf_handle, src_scg_eutra_config_tvb, actx->pinfo, subtree);
}
#.FN_BODY AS-Context/eag_4/sidelinkUEInformationNR-r16 VAL_PTR = &sidelink_ue_info_nr_tvb
tvbuff_t *sidelink_ue_info_nr_tvb = NULL;
%(DEFAULT_BODY)s
if (sidelink_ue_info_nr_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sidelinkUEInformationNR);
dissect_nr_rrc_SidelinkUEInformationNR_r16_PDU(sidelink_ue_info_nr_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY AS-Context/eag_4/sidelinkUEInformationEUTRA-r16 VAL_PTR = &sidelink_ue_info_eutra_tvb
tvbuff_t *sidelink_ue_info_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (sidelink_ue_info_eutra_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sidelinkUEInformationEUTRA);
dissect_lte_rrc_SidelinkUEInformation_r12_PDU(sidelink_ue_info_eutra_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY AS-Context/eag_4/ueAssistanceInformationEUTRA-r16 VAL_PTR = &ue_assist_info_eutra_tvb
tvbuff_t *ue_assist_info_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (ue_assist_info_eutra_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_ueAssistanceInformationEUTRA);
dissect_lte_rrc_UEAssistanceInformation_r11_PDU(ue_assist_info_eutra_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY CG-Config-v1560-IEs/scg-CellGroupConfigEUTRA VAL_PTR = &scg_cell_group_config_eutra_tvb
tvbuff_t *scg_cell_group_config_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (scg_cell_group_config_eutra_tvb && lte_rrc_conn_reconf_handle) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_scg_CellGroupConfigEUTRA);
nr_rrc_call_dissector(lte_rrc_conn_reconf_handle, scg_cell_group_config_eutra_tvb, actx->pinfo, subtree);
}
#.FN_BODY CG-Config-v1560-IEs/candidateCellInfoListSN-EUTRA VAL_PTR = &cand_cell_info_list_sn_eutra_tvb
tvbuff_t *cand_cell_info_list_sn_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (cand_cell_info_list_sn_eutra_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_candidateCellInfoListSN_EUTRA);
dissect_lte_rrc_MeasResultList3EUTRA_r15_PDU(cand_cell_info_list_sn_eutra_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY CG-ConfigInfo-v1560-IEs/candidateCellInfoListMN-EUTRA VAL_PTR = &cand_cell_info_list_mn_eutra_tvb
tvbuff_t *cand_cell_info_list_mn_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (cand_cell_info_list_mn_eutra_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_candidateCellInfoListMN_EUTRA);
dissect_lte_rrc_MeasResultList3EUTRA_r15_PDU(cand_cell_info_list_mn_eutra_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY CG-ConfigInfo-v1560-IEs/candidateCellInfoListSN-EUTRA VAL_PTR = &cand_cell_info_list_sn_eutra_tvb
tvbuff_t *cand_cell_info_list_sn_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (cand_cell_info_list_sn_eutra_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_candidateCellInfoListSN_EUTRA);
dissect_lte_rrc_MeasResultList3EUTRA_r15_PDU(cand_cell_info_list_sn_eutra_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY CG-ConfigInfo-v1560-IEs/sourceConfigSCG-EUTRA VAL_PTR = &source_config_scg_eutra_tvb
tvbuff_t *source_config_scg_eutra_tvb = NULL;
%(DEFAULT_BODY)s
if (source_config_scg_eutra_tvb && lte_rrc_conn_reconf_handle) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_sourceConfigSCG_EUTRA);
nr_rrc_call_dissector(lte_rrc_conn_reconf_handle, source_config_scg_eutra_tvb, actx->pinfo, subtree);
}
#.FN_BODY CG-ConfigInfo-v1560-IEs/scgFailureInfoEUTRA/measResultSCG-EUTRA VAL_PTR = &meas_result_scg_fail_mrdc_tvb
tvbuff_t *meas_result_scg_fail_mrdc_tvb = NULL;
%(DEFAULT_BODY)s
if (meas_result_scg_fail_mrdc_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_measResultSCG_FailureMRDC);
dissect_lte_rrc_MeasResultSCG_FailureMRDC_r15_PDU(meas_result_scg_fail_mrdc_tvb, actx->pinfo, subtree, NULL);
}
#.FN_BODY CG-ConfigInfo-v1610-IEs/scgFailureInfoEUTRA-r16/measResultSCG-EUTRA-r16 VAL_PTR = &meas_result_scg_fail_mrdc_tvb
tvbuff_t *meas_result_scg_fail_mrdc_tvb = NULL;
%(DEFAULT_BODY)s
if (meas_result_scg_fail_mrdc_tvb) {
proto_tree *subtree;
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_measResultSCG_FailureMRDC);
dissect_lte_rrc_MeasResultSCG_FailureMRDC_r15_PDU(meas_result_scg_fail_mrdc_tvb, actx->pinfo, subtree, NULL);
}
#.FN_HDR SBCCH-SL-BCH-Message
proto_item *ti;
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
col_clear(actx->pinfo->cinfo, COL_INFO);
ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(ti, ett_nr_rrc);
#.FN_HDR SCCH-Message
proto_item *ti;
col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC");
col_clear(actx->pinfo->cinfo, COL_INFO);
ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
tree = proto_item_add_subtree(ti, ett_nr_rrc);
#.FN_HDR MasterInformationBlockSidelink
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Master Information Block Sidelink");
#.FN_HDR MeasurementReportSidelink
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Measurement Report Sidelink");
#.FN_HDR RRCReconfigurationSidelink
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration Sidelink");
#.FN_HDR RRCReconfigurationCompleteSidelink
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration Complete Sidelink");
#.FN_HDR RRCReconfigurationFailureSidelink
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration Failure Sidelink");
#.FN_HDR UECapabilityEnquirySidelink
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Capability Enquiry Sidelink");
#.FN_HDR UECapabilityInformationSidelink
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Capability Information Sidelink");