813 lines
28 KiB
INI
813 lines
28 KiB
INI
# nr-rrc.cnf
|
|
# nr-rrc conformation file
|
|
# Copyright 2018 Pascal Quantin
|
|
|
|
#.OPT
|
|
PER
|
|
UNALIGNED
|
|
#.END
|
|
|
|
#.USE_VALS_EXT
|
|
CA-BandwidthClassNR
|
|
ConfiguredGrantConfig/periodicity
|
|
CSI-ReportConfig/reportFreqConfiguration/csi-ReportingBand
|
|
CSI-RS-IM-ReceptionForFeedback/maxNumberPortsAcrossNZP-CSI-RS-PerCC
|
|
CSI-RS-IM-ReceptionForFeedback/maxNumberSimultaneousCSI-RS-ActBWP-AllCC
|
|
CSI-RS-IM-ReceptionForFeedback/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-Info/drx-LongCycleStartOffset
|
|
DRX-Info/shortDRX/drx-ShortCycle
|
|
EUTRA-Q-OffsetRange
|
|
PDCP-Config/t-Reordering
|
|
PollByte
|
|
PollPDU
|
|
RangeToBestCell
|
|
RRM-Config/ue-InactiveTime
|
|
Q-OffsetRange
|
|
ServingCellConfig/bwp-InactivityTimer
|
|
SPS-Config/periodicity
|
|
SRS-PeriodicityAndOffset
|
|
T-PollRetransmit
|
|
T-Reassembly
|
|
T-StatusProhibit
|
|
UL-DataSplitThreshold
|
|
|
|
#.EXPORTS
|
|
CellGroupConfig_PDU
|
|
CG-Config_PDU
|
|
CG-ConfigInfo_PDU
|
|
ConfigRestrictInfoSCG_PDU
|
|
FreqBandList_PDU
|
|
HandoverCommand_PDU
|
|
HandoverPreparationInformation_PDU
|
|
MeasConfig_PDU
|
|
MeasGapConfig_PDU
|
|
MeasResults_PDU
|
|
MeasurementReport_PDU
|
|
MeasurementTimingConfiguration_PDU
|
|
MIB_PDU
|
|
P-Max_PDU
|
|
RadioBearerConfig_PDU
|
|
RRCReconfiguration_PDU
|
|
RRCReconfigurationComplete_PDU
|
|
SIB1_PDU
|
|
UE-CapabilityRAT-ContainerList_PDU
|
|
UE-MRDC-Capability_PDU
|
|
UE-NR-Capability_PDU
|
|
UL-DCCH-Message_PDU
|
|
|
|
#.PDU
|
|
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
|
|
FreqBandList
|
|
HandoverCommand
|
|
HandoverPreparationInformation
|
|
MeasConfig
|
|
MeasGapConfig
|
|
MeasurementReport
|
|
MeasResults
|
|
MeasurementTimingConfiguration
|
|
MIB
|
|
P-Max
|
|
PCCH-Message @pcch
|
|
RadioBearerConfig
|
|
RRCReconfiguration @rrc_reconf
|
|
RRCReconfigurationComplete
|
|
SIB1
|
|
UE-CapabilityRAT-ContainerList
|
|
UE-CapabilityRequestFilterNR
|
|
UE-MRDC-Capability @ue_mrdc_cap
|
|
UE-NR-Capability @ue_nr_cap
|
|
UL-CCCH-Message @ul.ccch
|
|
UL-CCCH1-Message @ul.ccch1
|
|
UL-DCCH-Message @ul.dcch
|
|
UERadioAccessCapabilityInformation @ue_radio_access_cap_info
|
|
UERadioPagingInformation @ue_radio_paging_info
|
|
#.END
|
|
|
|
#.OMIT_ASSIGNMENT
|
|
CellsTriggeredList
|
|
VarMeasConfig
|
|
VarMeasReportList
|
|
VarMeasReport
|
|
VarPendingRNA-Update
|
|
VarResumeMAC-Input
|
|
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_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 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 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
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Counter Check Response");
|
|
|
|
#.FN_HDR
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Assistance Information");
|
|
|
|
#.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_rr_rrc_targetRAT_MessageContainer);
|
|
switch (nr_priv->target_rat_type) {
|
|
case T_targetRAT_Type_eutra:
|
|
/* eutra */
|
|
if (lte_rrc_conn_reconf_handle)
|
|
nr_rrc_call_dissector(lte_rrc_conn_reconf_handle, target_rat_msg_cont_tvb, actx->pinfo, subtree);
|
|
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 && nas_5gs_handle) {
|
|
subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_nas_Container);
|
|
nr_rrc_call_dissector(nas_5gs_handle, nas_5gs_tvb, actx->pinfo, subtree);
|
|
}
|
|
|
|
#.TYPE_ATTR
|
|
RejectWaitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
|
|
|
|
#.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
|
|
|
|
#.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=<e_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=<e_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=<e_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)-2208988800U; /* 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
|
|
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
|
|
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
|
|
MeasTriggerQuantityOffset/rsrp DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
|
|
|
|
#.TYPE_ATTR
|
|
MeasTriggerQuantityOffset/rsrq DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
|
|
|
|
#.TYPE_ATTR
|
|
MeasTriggerQuantityOffset/sinr DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels
|
|
|
|
#.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
|
|
T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
|
|
|
|
#.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;
|
|
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:
|
|
dissect_UE_CapabilityRequestFilterNR_PDU(cap_req_filter_tvb, actx->pinfo, subtree, NULL);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
#.TYPE_ATTR
|
|
EUTRA-NS-PmaxValue/additionalPmax DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
|