diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2018-01-09 23:38:47 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-01-10 05:31:33 +0000 |
commit | 88abff68df5fcea46e1f7f0a32d7fe8718fd67c0 (patch) | |
tree | 802e75b2a344129a51605e451e0cba45913536e7 /epan/dissectors/asn1 | |
parent | fb4953a13c1ac6e5b54a347769c5f05e8fd6ab28 (diff) |
NR RRC: add initial dissector based on v15.0.0
ASN.1 prose imported from the specification and heavily modified
manually to workaround its poor quality.
Some of them are marked with -- WS modification comment, some are not.
Probably useless as-is, but it is an initial start until an updated
version is available.
Change-Id: I19ab6cedb6aa23c8ed57bae525ee4a3391494e32
Reviewed-on: https://code.wireshark.org/review/25235
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/asn1')
-rw-r--r-- | epan/dissectors/asn1/CMakeLists.txt | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/Makefile.am | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/lte-rrc/lte-rrc.cnf | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/CMakeLists.txt | 51 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/Makefile.am | 43 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn | 183 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn | 3061 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/nr-rrc.cnf | 202 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c | 108 |
10 files changed, 3651 insertions, 1 deletions
diff --git a/epan/dissectors/asn1/CMakeLists.txt b/epan/dissectors/asn1/CMakeLists.txt index 692c2f5956..02fc68ff0c 100644 --- a/epan/dissectors/asn1/CMakeLists.txt +++ b/epan/dissectors/asn1/CMakeLists.txt @@ -79,6 +79,7 @@ set(ASN1_SRC_DIRS mpeg-pes mudurl nbap + nr-rrc ns_cert_exts novell_pkis ocsp diff --git a/epan/dissectors/asn1/Makefile.am b/epan/dissectors/asn1/Makefile.am index 9c94673ac9..77694ff969 100644 --- a/epan/dissectors/asn1/Makefile.am +++ b/epan/dissectors/asn1/Makefile.am @@ -81,6 +81,7 @@ SUBDIRS = \ mudurl \ nbap \ novell_pkis \ + nr-rrc \ ns_cert_exts \ ocsp \ p1 \ diff --git a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf index 6afc23d060..ff018d37ed 100644 --- a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf +++ b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf @@ -28,6 +28,7 @@ HandoverPreparationInformation-NB_PDU RLF-Report-r9_PDU RLF-Report-v9e0_PDU SCG-ConfigInfo-r12_PDU +UECapabilityInformation_PDU UEPagingCoverageInformation_PDU UEPagingCoverageInformation-NB_PDU UERadioAccessCapabilityInformation_PDU diff --git a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c index 9666d1289c..148a1975d9 100644 --- a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c +++ b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c @@ -350,7 +350,6 @@ static const fragment_items lte_rrc_sib12_frag_items = { /* Forward declarations */ static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); -static int dissect_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); static const true_false_string lte_rrc_eutra_cap_feat_group_ind_1_val = { "Intra-subframe freq hopping for PUSCH scheduled by UL grant; DCI format 3a; Aperiodic CQI/PMI/RI report on PUSCH: Mode 2-0 & 2-2 - Supported", diff --git a/epan/dissectors/asn1/nr-rrc/CMakeLists.txt b/epan/dissectors/asn1/nr-rrc/CMakeLists.txt new file mode 100644 index 0000000000..5d728e72e0 --- /dev/null +++ b/epan/dissectors/asn1/nr-rrc/CMakeLists.txt @@ -0,0 +1,51 @@ +# CMakeLists.txt +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +set( PROTOCOL_NAME nr-rrc ) + +set( PROTO_OPT ) + +set( EXPORT_FILES + ${PROTOCOL_NAME}-exp.cnf +) + +set( EXT_ASN_FILE_LIST +) + +set( ASN_FILE_LIST + NR-InterNodeDefinitions.asn + NR-RRC-Definitions.asn +) + +set( EXTRA_DIST + ${ASN_FILE_LIST} + packet-${PROTOCOL_NAME}-template.c + ${PROTOCOL_NAME}.cnf +) + +set( SRC_FILES + ${EXTRA_DIST} + ${EXT_ASN_FILE_LIST} +) + +set( A2W_FLAGS -L ) + +ASN2WRS() diff --git a/epan/dissectors/asn1/nr-rrc/Makefile.am b/epan/dissectors/asn1/nr-rrc/Makefile.am new file mode 100644 index 0000000000..8831281284 --- /dev/null +++ b/epan/dissectors/asn1/nr-rrc/Makefile.am @@ -0,0 +1,43 @@ +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +include ../Makefile.inc + +PROTOCOL_NAME = nr-rrc + +EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf + +EXT_ASN_FILE_LIST = + +ASN_FILE_LIST = \ + NR-InterNodeDefinitions.asn \ + NR-RRC-Definitions.asn + +EXTRA_DIST = \ + $(EXTRA_DIST_COMMON) \ + $(ASN_FILE_LIST) \ + packet-$(PROTOCOL_NAME)-template.c \ + $(PROTOCOL_NAME).cnf + +SRC_FILES = \ + $(EXTRA_DIST) \ + $(EXT_ASN_FILE_LIST) + +A2W_FLAGS = -L + +EXTRA_CNF = diff --git a/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn b/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn new file mode 100644 index 0000000000..d7241a8d6d --- /dev/null +++ b/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn @@ -0,0 +1,183 @@ +-- 3GPP TS 38.331 V15.0.0 (2017-12) + +NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + RRCReconfiguration, + UE-CapabilityRAT-ContainerList +FROM NR-RRC-Definitions; + +-- TAG-HANDOVER-COMMAND-START + +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand-r15 HandoverCommand-r15-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverCommand-r15-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING RRCReconfiguration), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- TAG-HANDOVER-COMMAND-STOP +-- TAG-HANDOVER-PREPARATION-INFORMATION-START + +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation-r15 HandoverPreparationInformation-r15-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +HandoverPreparationInformation-r15-IEs ::= SEQUENCE { + ue-CapabilityRAT-List UE-CapabilityRAT-ContainerList, + sourceConfig OCTET STRING (CONTAINING RRCReconfiguration), + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +AS-Context ::= SEQUENCE { + reestablishmentInfo SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList AdditionalReestabInfoList OPTIONAL + } OPTIONAL, + -- FFS Whether to change e.g. move all re-establishment info to Xx + configRestrictInfo ConfigRestrictInfoSCG OPTIONAL, + ... +} + +ReestabNCellInfoList ::= SEQUENCE ( SIZE (1..maxCellPrep) ) OF ReestabNCellInfo + +ReestabNCellInfo::= SEQUENCE{ + cellIdentity CellIdentity, + key-gNodeB-Star BIT STRING (SIZE (256)), + shortMAC-I ShortMAC-I +} + +RRM-Config ::= SEQUENCE { + ue-InactiveTime INTEGER, + candidateCellInfoList CandidateCellInfoList OPTIONAL, + ... +} + +-- TAG-HANDOVER-PREPARATION-INFORMATION-STOP +-- TAG-SCG-CONFIG-START + +SCG-Config ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-Config-r15 SCG-Config-r15-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-Config-r15-IEs ::= SEQUENCE { + scg-CellGroupdConfig OCTET STRING (CONTAINING RRCReconfiguration) OPTIONAL, + p-maxFR1 P-Max OPTIONAL, + scg-RB-Config OCTET STRING (CONTAINING RadioBearerConfiguration) OPTIONAL, + configRestrictModReq ConfigRestrictModReqSCG OPTIONAL, + candidateCellInfoList CandidateCellInfoList OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ConfigRestrictModReqSCG ::= SEQUENCE { + requestedBC-List-NR SEQUENCE OF INTEGER OPTIONAL, + requestedBPC-List-NR SEQUENCE OF INTEGER OPTIONAL, + -- FFS Signalling details of BC and BPC restrictions requested by SgNB to be alleviated + ... +} + +-- TAG-SCG-CONFIG-STOP +-- TAG-SCG-CONFIG-INFO-START + +SCG-ConfigInfo ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + scg-ConfigInfo-r15 SCG-ConfigInfo-r15-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +SCG-ConfigInfo-r15-IEs ::= SEQUENCE { + eutra-CapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL, + candidateCellInfoList CandidateCellInfoList OPTIONAL, + measResultSSTD MeasResultSSTD OPTIONAL, + configRestrictInfo ConfigRestrictInfoSCG OPTIONAL, + drx-InfoMCG DRX-Info OPTIONAL, + sourceConfigSCG OCTET STRING (CONTAINING RRCReconfiguration) OPTIONAL, + p-maxFR1 P-Max OPTIONAL, + mcg-RB-Config OCTET STRING (CONTAINING RadioBearerConfiguration) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ConfigRestrictInfoSCG ::= SEQUENCE { + restrictedBandCombinationNR INTEGER OPTIONAL, + restrictedBasebandCombinationNR-NR SEQUENCE OF INTEGER OPTIONAL, + -- FFS Signalling details of BC and BPC restrictions to be observed by SgNB + -- FFS Signalling details regarding power coordination + maxMeasFreqsSCG-NR INTEGER OPTIONAL, + ... +} + +DRX-Info ::= SEQUENCE { + cycle INTEGER, + offset INTEGER +} + +-- TAG-SCG-CONFIG-INFO-STOP +-- TAG-CANDIDATE-CELL-INFO-LIST-START + +CandidateCellInfoList ::= SEQUENCE (SIZE (1..maxCellSCG)) OF CandidateCellInfo + +CandidateCellInfo ::= SEQUENCE { + -- FFS whether to introduce something additional for transfer of SN configured measurements + cellIdentification SEQUENCE { + physCellId PhysCellId, + dl-CarrierFreq ARFCN-ValueNR + }, + measResultCell SEQUENCE { + rsrpResultCell RSRP-Range, + rsrqResultCell RSRQ-Range + -- FFS whether to support SINR + } OPTIONAL, + candidateRS-IndexList CandidateRS-IndexInfoList OPTIONAL, + ... +} + +CandidateRS-IndexInfoList ::= SEQUENCE (SIZE (1..maxRS-IndexReport)) OF CandidateRS-IndexInfo -- WS modification: was CandidateBeamInfoList + +CandidateRS-IndexInfo ::= SEQUENCE { + -- FFS whether to support CSI RS based beam results also + ssb-Index SSB-Index, + measResultSSB SEQUENCE { + rsrpResultCell RSRP-Range, + rsrqResultCell RSRQ-Range + -- FFS whether to support SINR + } OPTIONAL, + ... +} + +-- TAG-CANDIDATE-CELL-INFO-LIST-STOP + +-- WS modification: fake definitions for missing entries in ASN.1 +maxCellPrep INTEGER ::= 1 +maxCellSCG INTEGER ::= 1 +maxRS-IndexReport INTEGER ::= 1 + +END diff --git a/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn b/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn new file mode 100644 index 0000000000..c0b5713544 --- /dev/null +++ b/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn @@ -0,0 +1,3061 @@ +-- 3GPP TS 38.331 V15.0.0 (2017-12) + +NR-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- TAG-NR-RRC-DEFINITIONS-STOP +-- TAG-BCCH-BCH-MESSAGE-START + +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType +} + +BCCH-BCH-MessageType ::= CHOICE { + mib MIB, + messageClassExtension SEQUENCE {} +} + +-- TAG-BCCH-BCH-MESSAGE-STOP +-- TAG-DL-DCCH-MESSAGE-START + +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType +} + +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcReconfiguration RRCReconfiguration, + spare15 NULL, spare14 NULL, spare13 NULL, + spare12 NULL, spare11 NULL, spare10 NULL, + spare9 NULL, spare8 NULL, spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + +-- TAG-DL-DCCH-MESSAGE-STOP +-- TAG-UL-DCCH-MESSAGE-START + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + measurementReport MeasurementReport, + rrcReconfigurationComplete RRCReconfigurationComplete, + spare14 NULL, spare13 NULL, spare12 NULL, + spare11 NULL, spare10 NULL, spare9 NULL, + spare8 NULL, spare7 NULL, spare6 NULL, + spare5 NULL, spare4 NULL, spare3 NULL, + spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + +-- TAG-UL-DCCH-MESSAGE-STOP +-- TAG-MIB-START + +MIB ::= SEQUENCE { + -- Part of the SSB index transmitted explicitly in the MasterInformationBlock (see 38.213, section 4.1). + -- The SSB-Index identifies this SSB in the SS-Burst-Set. + -- The field is only present for carrier frequencies >6 GHz. FFS whether to create a separate MIB for >6 GHz or move optional field to the end. + ssb-IndexExplicit INTEGER (1..7) OPTIONAL, -- Cond Above6Ghz + + -- Indication of whether the SS block is in the first or second 5 ms of a radio frame. + -- Corresponds to L1 parameter 'half-frame-index' (see 38,211, section 4.3.1) + halfFrameIndex ENUMERATED {firstHalf,secondHalf}, + + systemFrameNumber BIT STRING (SIZE (10)), + + -- Subcarrier spacing for SIB1, Msg.2/4 for initial access and SI-messages. + -- Values 15 and 30 kHz are applicable for carrier frequencies <6GHz; Values 60 and 120 kHz are applicable for carrier frequencies >6GHz + subCarrierSpacingCommon SubcarrierSpacing, + + -- The frequency domain offset between SSB and the overall resource block grid in number of subcarriers. See 38.211, section 7.4.3.1) + ssb-subcarrierOffset INTEGER (0..11), + + -- Position of (first) DL DM-RS (see 38.211, section 7.4.1.1.1) + dmrs-TypeA-Position ENUMERATED {pos2, pos3}, + + -- Determines a bandwidth for PDCCH/SIB, a common ControlResourceSet (CORESET) a common search space and necessary PDCCH parameters + -- Corresponds to L1 parameter 'RMSI-PDCCH-Config' (see FFS_Specification, section FFS_Section) + -- FFS: Make optional and omit e.g. in EN-DC or in other cells not broadcasting SIB1? Or make it mandatory to avoid optional fields in MIB? + pdcchConfigSIB1 INTEGER(0..255), + + -- Indicates that UE shall not campe on this cell + cellBarred ENUMERATED {barred, notBarred}, + -- Indicates that intraFreqReselection is not allowed when cellBarred is set to barred. + intraFreqReselection ENUMERATED {allowed, notAllowed}, + + -- FFS: How many spare values to keep in MIB? + spare BIT STRING (SIZE (0)) -- WS modification; was ffsValue +} + +-- TAG-MIB-STOP +-- TAG-MEASUREMENTREPORT-START + +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + measurementReport MeasurementReport-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementReport-IEs ::= SEQUENCE { + measResults MeasResults +-- FFS +} + +-- TAG-MEASUREMENTREPORT-STOP +-- TAG-RRCRECONFIGURATION-START + +RRCReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcReconfiguration RRCReconfiguration-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCReconfiguration-IEs ::= SEQUENCE { + -- Configuration of Radio Bearers (DRBs, SRBs) including SDAP/PDCP. + -- In In EN-DC this field may only be present if the RRCReconfiguration + -- is transmitted over SRB3. + radioBearerConfig RadioBearerConfig OPTIONAL, -- Need M + + -- Configuration of primary and secondary cell groups (Dual Connectivity): + masterCellGroupConfig CellGroupConfig OPTIONAL, -- Need M + secondaryCellGroupToAddModList SEQUENCE (SIZE (1..maxSCellGroups)) OF CellGroupConfig OPTIONAL, -- Need M + secondaryCellGroupToReleaseList SEQUENCE (SIZE (1..maxSCellGroups)) OF CellGroupId OPTIONAL, -- Need M + + measConfig MeasConfig OPTIONAL, -- Need M + + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +-- TAG-RRCRECONFIGURATION-STOP +-- TAG-RRCRECONFIGURATIONCOMPLETE-START + +RRCReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcReconfigurationComplete RRCReconfigurationComplete-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCReconfigurationComplete-IEs ::= SEQUENCE { + -- FFS +} + +-- TAG-RRCRECONFIGURATIONCOMPLETE-STOP +-- TAG-SIB1-START + +SIB1 ::= SEQUENCE { + + -- FFS / TODO: Add other parameters. + + -- Time domain positions of the transmitted SS-blocks in an SS-Burst-Set (see 38.213, section 4.1) + ssb-PositionsInBurst SEQUENCE { + -- Indicates the presence of the up to 8 SSBs in one group + inOneGroup BIT STRING (SIZE (8)), + -- For above 6 GHz: indicates which groups of SSBs is present + groupPresence BIT STRING (SIZE (8)) OPTIONAL -- Cond above6GHzOnly + }, + + -- The SSB periodicity in msec for the rate matching purpose (see 38.211, section [7.4.3.1]) + ssb-periodicityServingCell ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, spare1, spare2 }, + + -- TX power that the NW used for SSB transmission. The UE uses it to estimate the RA preamble TX power. + -- (see 38.213, section 7.4) + ss-PBCH-BlockPower INTEGER (-60..50), + + frequencyInfoUL FrequencyInfoUL OPTIONAL, -- Cond FDD + + -- FFS: How to indicate the FrequencyInfoUL for the SUL + supplementaryUplink SEQUENCE { + frequencyInfoUL FrequencyInfoUL + -- FFS: Add additional (selection) criteria determining when/whether the UE shall use the SUL frequency + } OPTIONAL, -- Cond SUL + + tdd-UL-DL-configuration NULL OPTIONAL, -- Cond TDD WS modification: was TYPE_FFS! + + -- Enables hopping of base sequence of PUCCH Format 0 when transmitted in different slots. + -- Corresponds to L1 parameter 'PUCCH-F0-Base-sequence-hopping' (see 38.211, section 6.4.1.3) + pucch-Format0-BaseSequenceHopping ENUMERATED {true} OPTIONAL, + -- Enabling hopping of base sequence of PUCCH Format 1 when transmitted in different slots + -- Corresponds to L1 parameter 'PUCCH-F1-Base-sequence-hopping' (see 38.211, section 6.4.1.3) + pucch-Format1-BaseSequenceHopping ENUMERATED {true} OPTIONAL +} + +-- TAG-SIB1-STOP +-- TAG-SETUP-RELEASE-START + +--SetupRelease { ElementTypeParam } ::= CHOICE { +-- release NULL, +-- setup ElementTypeParam +--} + +-- TAG-SETUP-RELEASE-STOP +-- TAG-DRB-IDENTITY-START + +DRB-Identity ::= INTEGER (4..32) + +-- TAG-DRB-IDENTITY-STOP +-- TAG-BANDWIDTH-PART-START + +BandwidthPart-Config ::= SEQUENCE { + + -- FFS: Conditions! What to do when certain fields or the entire bandwidth part is omitted? Assume parameters of the carrier instead? + -- Or use the initialBWP derived from SIB1 or ServingCellConfigCommon? Or make it mandatory to provide at least one BWP. + -- FFS: How can a BandiwdthPart be changed? Only via synchronousReconfiguration or also without? + + -- NOTE: The changes in this section are based on RAN1 agreements (not from the official L1 parameter list): + + -- The bandwidth parts for downlink. (see 38.211, 38.213, section 12) + downlinkBandwidthPartsToReleaseList SEQUENCE (SIZE (1..maxNrofBandwidthParts)) OF BandiwdthPartId OPTIONAL, + downlinkBandwidthPartsToAddModList SEQUENCE (SIZE (1..maxNrofBandwidthParts)) OF BandwidthPart OPTIONAL, + -- ID of the downlink bandwidth part to be used upon MAC-activation of an SCell. If not provided, the UE uses the default BWP + firstActiveDownlinkBwp-Id BandiwdthPartId OPTIONAL, -- Cond SCellOnly + + -- Corresponds to L1 parameter 'default-DL-BWP'. + -- ID of the downlink bandwidth part to be used upon expiry of txxx. + -- This field is UE specific. When the field is absent the UE the initial BWP as default BWP. + -- (see 38.211, 38.213, section 12) + -- FFS: May the NW change the default BWP with a regular RRC reconfiguration or only with Reconfiguration with sync? + -- FFS: Whether to add a default uplink BWP + defaultDownlinkBwp-Id BandiwdthPartId OPTIONAL, + + -- The bandwidth parts for uplink. In case of TDD uplink- and downlink BWP with the same bandwidthPartId are considered + -- as a BWP pair and must have the same center frequency. + uplinkBandwidthPartsToReleaseList SEQUENCE (SIZE (1..maxNrofBandwidthParts)) OF BandiwdthPartId OPTIONAL, + uplinkBandwidthPartsToAddModList SEQUENCE (SIZE (1..maxNrofBandwidthParts)) OF BandwidthPart OPTIONAL, + -- ID of the uplink bandwidth part to be used upon MAC-activation of an SCell. If not provided, the UE uses the FFS: default BWP + firstActiveUplinkBwp-Id BandiwdthPartId OPTIONAL, -- Cond SCellOnly + + -- The duration in ms after which the UE falls back to the default Bandwidth Part. (see 38.321, section FFS_Section) + -- The UE starts the timer when it switches its active downlink BWP to a downlink BWP other than the default downlink BWP. + -- The UE restarts the timer to the initial value when it successfully decodes a DCI to schedule PDSCH(s) in its active downlink BWP. + -- When the timer expires, the UE switches its active downlink BWP to the default downlink (FFS: and uplink?) BWP. + -- FFS: For TDD the UE switches also the paired uplink BWP to the one with the defaultDownlinkBwp-Id. + -- FFS: For FDD the UE switches the uplink BWP????? + -- When the network releases the timer configuration, the UE stops the timer without swithching to the default (FFS: and uplink?) BWP. + bandwidthPartInactivityTimer CHOICE { + release NULL, + setup ENUMERATED { + null }} OPTIONAL -- Need M + +} + +BandwidthPart ::= SEQUENCE { + -- An identifier for this bandwidth part. + -- Corresponds to L1 parameter 'UL-BWP-index'. (see 38.211, 38.213, section 12) + bandwidthPartId BandwidthPartId, + -- Frequency domain location of this bandwidth part as a distance in number of PRBs in relation to the reference PRB (PRB 0) + -- of the associated carrier. Corresponds to L1 parameter 'DL-BWP-loc'. (see 38.211, section FFS_Section). + -- In case of TDD, a BWP-pair (UL BWP and DL BWP with the same bandwidthPartId) must have the same location (see 38.211, section REF) + -- FFS_Value: RAN1 seems to discuss the final range. + location INTEGER (0.. maxNrofPhysicalResourceBlocksTimes4) OPTIONAL, + -- Bandwidth of this bandwidth part (see 38.211, section REF) + bandwidth INTEGER (1.. maxNrofPhysicalResourceBlocks) OPTIONAL, + -- Subcarrier spacing to be used in this BWP. It is applied to at least PDCCH, PDSCH and corresponding DMRS. + -- The values provided here are converted into a subcarrier spacing as indicated in 38.211, Table 4.1-2. + subcarrierSpacing ENUMERATED {n0, n1, n2, n3, n4} OPTIONAL, + -- Indicates whether to use the extended cyclic prefix for this bandwidth part. If not set, the UE uses the normal cyclic prefix. + -- Normal CP is supported for all numerologies and slot formats. Extended CP is supported only for 60 kHz subcarrier spacing. + -- (see 38.211, section 4.2.2) + cyclicPrefix ENUMERATED { extended } OPTIONAL, + + -- Frequency location of the uplink "direct current" frequency. + -- Corresponds to L1 parameter 'UL-BWP-DC'. (see 38.211, section FFS_Section) + directCurrentLocation INTEGER (0..3299) OPTIONAL -- Cond UplinkOnly +} + +BandwidthPartId ::= INTEGER (0..maxNrofBandwidthParts-1) + +-- TAG-BANDWIDTH-PART-STOP +-- TAG-CELL-GROUP-CONFIG-START + +-- Configuration of one Cell-Group: +CellGroupConfig ::= SEQUENCE { + cellGroupId CellGroupId, + + -- Logical Channel configuration and association with radio bearers: + rlc-BearerToAddModList SEQUENCE (SIZE(1..maxLCH)) OF LCH-Config OPTIONAL, + rlc-BearerToReleaseList SEQUENCE (SIZE(1..maxLCH)) OF LogicalChannelIdentity OPTIONAL, + + -- Parameters applicable for the entire cell group: + mac-CellGroupConfig MAC-CellGroupConfig OPTIONAL, -- Need M + rlf-TimersAndConstants RLF-TimersAndConstants OPTIONAL, -- Need M + physical-CellGroupConfig PhysicalCellGroupConfig OPTIONAL, -- Need M + + -- Serving Cell specific parameters (PCell and SCells) + spCellConfig SpCellConfig OPTIONAL, -- Need M + sCellToAddModList SCellToAddModList OPTIONAL, -- Need M + sCellToReleaseList SCellToReleaseList OPTIONAL -- Need M +} + +CellGroupId ::= INTEGER (1.. maxSCellGroups) + + +-- Configuration of one logical channel: +LCH-Config ::= SEQUENCE { + logicalChannelIdentity LogicalChannelIdentity, + + -- Associate the logical channel with an SRB or a DRB: + servedRadioBearer INTEGER (1..32) OPTIONAL, -- Cond LCH-SetupOnly + + reestablishRLC ENUMERATED {true} OPTIONAL, -- Need N + rlc-Config RLC-Config OPTIONAL, -- Cond LCH-Setup + + mac-LogicalChannelConfig LogicalChannelConfig OPTIONAL -- Cond LCH-Setup +} + +LogicalChannelIdentity ::= INTEGER (1..32) -- WS modification: was FFS but 38.321 defines max value as 32 + +-- Cell-Group specific L1 parameters +PhysicalCellGroupConfig ::= SEQUENCE { + -- Enables spatial bundling of HARQ ACKs. It is configured per cell group, i.e. for all the cells within the cell group. + -- It is only applicable when more than 4 layers are possible to schedule. + -- Corresponds to L1 parameter 'HARQ-ACK-spatial-bundling' (see 38.213, section FFS_Section) + -- Absence indicates that spatial bundling is disabled. + harq-ACK-Spatial-Bundling ENUMERATED {true} OPTIONAL -- Need R, +} + + +-- Serving cell specific MAC and PHY parameters for a SpCell: +SpCellConfig ::= SEQUENCE { + -- Parameters for the synchronous reconfiguration to the target SpCell: + reconfigurationWithSync SEQUENCE { + spCellConfigCommon ServingCellConfigCommon, + newUE-Identity C-RNTI, + t304 ENUMERATED {ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, ms10000-v1310}, + rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL -- Need M + } OPTIONAL, -- Cond SpCellChange + + spCellConfigDedicated ServingCellConfigDedicated OPTIONAL -- Need M +} + +C-RNTI ::= BIT STRING (SIZE (16)) +SCellToReleaseList ::= SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex +SCellToAddModList ::= SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig + +SCellConfig ::= SEQUENCE { + sCellIndex SCellIndex, + sCellConfigCommon ServingCellConfigCommon OPTIONAL, -- Cond SCellAdd + sCellConfigDedicated ServingCellConfigDedicated OPTIONAL -- Cond SCellAddMod +} + +-- TAG-CELL-GROUP-CONFIG-STOP +-- TAG-CELL-INDEX-LIST-START + +CellIndexList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellIndex + +CellIndex ::= INTEGER (1..maxNrofCellMeas) + +-- TAG-CELL-INDEX-LIST-STOP +-- TAG-CONTROL-RESOURCE-INDEX-START + +ControlResourceIndex ::= INTEGER (1..maxNrofControlResourceSets) + +-- TAG-CONTROL-RESOURCE-INDEX-STOP + +CrossCarrierSchedulingConfig ::= SEQUENCE { + + -- FFS: Indicate this separately for UL and DL (as done in LTE for LAA) + schedulingCellInfo CHOICE { + own SEQUENCE { -- No cross carrier scheduling + cif-Presence BOOLEAN + }, + other SEQUENCE { -- Cross carrier scheduling + schedulingCellId ServCellIndex, + -- FFS: pdsch-start is probably not needed since RAN1 agreed that the scheduling DCI can provide (an index into a + -- UE-specific table giving) the OFDM symbols used for the PDSCH (or PUSCH) transmission. But what does "can provide" mean? + pdsch-Start INTEGER (1..4), + -- FFS: cif-InSchedulingCell is probably still needed since RAN1 agreed that "If CIF is present in DCI, the bitwidth is fixed at 3 bit". + cif-InSchedulingCell INTEGER (1..7) + } + } +} + +-- TAG-CSI-MEAS-CONFIG-START + +-- Top level parameter for CSI/BM framework. Contains lists of reporting, resource, and link configurations (see 38.214, section 5.2) +CSI-MeasConfig ::= SEQUENCE { + csi-ResourceConfigs SEQUENCE (SIZE (1..maxNrofCSI-ResourceConfigurations)) OF CSI-ResourceConfig OPTIONAL, + csi-ReportConfigs SEQUENCE (SIZE (1..maxNrofCSI-Reports)) OF CSI-ReportConfig OPTIONAL, + csi-MeasIdToAddModList SEQUENCE (SIZE (1..maxNrofCSI-MeasId)) OF CSI-MeasIdToAddMod OPTIONAL, + + -- Contains trigger states for dynamically selecting one or more aperiodic and semi-persistent reporting configurations + -- and/or triggering one or more aperiodic CSI-RS resource sets for channel and/or interference measurement. + -- FFS_CHECK: Is this the appropriate place for the IE or should it be inside the resource configuration or in a set? + reportTrigger SEQUENCE { + -- Size of CSI request field in DCI (bits). Corresponds to L1 parameter 'ReportTriggerSize' (see 38.214, section 5.2) + reportTriggerSize INTEGER (0..6) OPTIONAL -- WS modification: was FFS but 38.214 defines max value as 6 + } +} + + +-- One CSI resource configuration comprising of one or more resource sets +CSI-ResourceConfig ::= SEQUENCE { + -- FFS: Where is the CSI-ResourceConfigId used? + csi-ResourceConfigId CSI-ResourceConfigId, + -- Contains up to maxNrofCSI-ResourceSets resource CSI-ReosurceSets if ResourceConfigType is 'aperiodic' and maxNrofCSI-ResourceSets otherwise. + -- Corresponds to L1 parameter 'ResourceSetConfigList' (see 38.214, section 5.2.1.3.1) + csi-ResourceSets SEQUENCE (SIZE (1..maxNrofCSI-ResourceSets)) OF CSI-ResourceSet, + + -- List of SSB resources used for beam measurement and reporting in a resource set + -- Corresponds to L1 parameter 'SSBResourceMeasList' (see 38,214, section FFS_Section) + ssb-Resources SEQUENCE (SIZE (1..maxNrofSSB-Resources-1)) OF CSI-SSB-Resource OPTIONAL, + + -- Time domain behavior of resource configuration. Corresponds to L1 parameter 'ResourceConfigType' (see 38.214, section 5.2.2.3.5) + resourceType CHOICE { + aperiodic NULL, + semiPersistent NULL, + periodic NULL + }} + +CSI-ResourceConfigId ::= INTEGER (0..maxNrofCSI-ResourceConfigurations-1) + +-- A set of CSI-RS resources (their IDs) for which DCI indicates whether or not these CSI-RS resources are currently present or not. +-- Corresponds to L1 parameter 'ResourceSetConfig' (see 38.214, section 5.2) +CSI-ResourceSet ::= SEQUENCE { + -- FFS: Where is the CSI-ResourceSetId used? + csi-ResourceSetId CSI-ResourceSetId, + -- Contains up to maxNrofCSI-RS-ResourcesPerSet CSI-RS-Resource configurations. + -- Corresponds to L1 parameter 'CSI-RS-ResourceConfigList' (see 38.214, section 5.2) + -- FFS: Better make the csi-rs-Resources a common pool on CSI-MeasConfig level? + csi-rs-Resources SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesPerSet)) OF NZP-CSI-RS-Resource, + -- Indicates whether repetition is on/off. Repetition on (off), means that The UE can (cannot) assume that + -- the network maintains a fixed TX beam over the resources in the set. + -- Corresponds to L1 parameter 'ResourceRep' (see 38.214, section FFS_Section) + repetition BOOLEAN +} + +CSI-ResourceSetId ::= INTEGER (0..maxNrofCSI-ResourceSets-1) + +-- A CSI-RS (reference signal) resource which the UE may be configured to measure on (see 38.214, section 5.2.1.3.1) +NZP-CSI-RS-Resource ::= SEQUENCE { + nzp-csi-rs-ResourceId NZP-CSI-RS-ResourceId, + -- Number of ports (see 38.214, section 5.2.1.2) + nrofPorts ENUMERATED {p1,p2,p4,p8,p12,p16,p24,p32}, + -- OFDM symbol location(s) in a slot and subcarrier occupancy in a PRB of the CSI-RS resource + -- FFS: how to configure CSI-RS in different slots for fine time/frequency tracking (see 38.214, section 5.2.1.3.1) + resourceMapping NULL, -- WS modification: was TYPE_FFS! + -- CDM value (1, 2, 4, or 8), CDM pattern (freq only, time and freq, time only) (see 38.214, section 5.2.1.3.1) + cdm-Value ENUMERATED {n1, n2, n4, n8}, + cdm-Pattern ENUMERATED {freqOnly, timeAndFreq, timeOnly}, + -- Density of CSI-RS resource measured in RE/port/PRB (see 38.214, section 5.2.1.3.1) + -- Values 0.5 (dot5), 1 (one) and 3 (three) are allowed for X=1, + -- values 0.5 (dot5) and 1 (one) are allowed for X=2, 16, 24 and 32, + -- value 1 (one) is allowed for X=4, 8, 12. + csi-RS-Density ENUMERATED {dot5, one, three, spare}, + -- Wideband or partial band CSI-RS (see 38.214, section 5.2.1.3.1) + csi-RS-FreqBand NULL, -- WS modification: was TYPE_FFS! + -- Power offset of NZP CSI-RS RE to PDSCH RE, corresponds to parameter Pc (see 38.214, section 5.2.1.3.1) + powerControlOffset NULL, -- WS modification: was TYPE_FFS! + -- Power offset of NZP CSI-RS RE to SS RE. Corresponds to L1 parameter 'Pc_SS' (see 38.214, section FFS_Section) + powerControlOffsetSS NULL OPTIONAL, -- WS modification: was FFS_Value + -- Scrambling ID (see 38.214, section 5.2.1.3.1) + scramblingID INTEGER(0), -- WS modification: was TYPE_FFS! + -- Periodicity and slot offset + csi-RS-timeConfig CHOICE { + sl5 INTEGER (0..4), + sl10 INTEGER (0..9), + sl20 INTEGER (0..19), + sl40 INTEGER (0..39), + sl80 INTEGER (0..79), + sl160 INTEGER (0..159), + sl320 INTEGER (0..319), + sl640 INTEGER (0..639) + } +} + +NZP-CSI-RS-ResourceId ::= INTEGER (0..maxNrofNZP-CSI-RS-Resources-1) + +ZP-CSI-RS-Resource ::= SEQUENCE { + zp-csi-rs-ResourceId ZP-CSI-RS-ResourceId, + -- OFDM symbol and subcarrier occupancy of the CSI-RS resource within a slot (see 38.214, section REF) + resourceMapping NULL -- WS modification: was TYPE_FFS! + +} + +ZP-CSI-RS-ResourceId ::= INTEGER (0..maxNrofZP-CSI-RS-Resources-1) + +CSI-IM-ResourceConfig ::= SEQUENCE { + csi-IM-ResourceConfigId CSI-IM-ResourceConfigId, + + -- The resource element pattern for the CSI-IM resource + -- Corresponds to L1 parameter 'CSI-IM-RE-pattern' (see 38.214, section 5.2.2.3.4) + csi-IM-ResourceElementPattern ENUMERATED {pattern2-2, pattern4-1}, + + -- OFDM symbol and subcarrier occupancy of the CSI-IM resource within a slot + -- Corresponds to L1 parameter 'CSI-IM-ResourceMapping' (see 38.214, section 5.2.2.3.4) + -- FFS_Values: RAN1 indicated "symbol locations: [0..13] and subcarrier locations: [0..9]" -> Should this be a bitmap of 9x13? Or two separate? + resourceMapping NULL OPTIONAL -- WS modification: was TYPE_FFS! +} + +CSI-IM-ResourceConfigId ::= INTEGER (0..maxNrofCSI-IM-Resources-1) + +CSI-SSB-Resource ::= SEQUENCE { + -- FFS: Undefined what the IE CSI-SSB-Resource contains. +} + +-- Configuration of a CSI-Report sent on L1 (e.g. PUCCH) (see 38.214, section 5.2.1) +CSI-ReportConfig ::= SEQUENCE { + reportConfigId CSI-ReportConfigId, + -- Time domain behavior of reporting configuration + reportConfigType CHOICE { + periodic SEQUENCE { + -- Periodicity and slot offset . Corresponds to L1 parameter 'ReportPeriodicity'and 'ReportSlotOffset' + -- (see 38.214, section section 5.2.1.4). + reportSlotConfig CHOICE { + sl5 INTEGER(0..4), + sl10 INTEGER(0..9), + sl20 INTEGER(0..19), + sl40 INTEGER(0..39), + sl80 INTEGER(0..79), + sl160 INTEGER(0..159), + sl320 INTEGER(0..319) + }, + -- Indicates which PUCCH resource to use for reporting on PUCCH. + pucch-CSI-ResourceIndex NULL -- WS modification: was TYPE_FFS! + }, + semiPersistent SEQUENCE { + -- Periodicity and slot offset. Corresponds to L1 parameter 'ReportPeriodicity' and 'ReportSlotOffset' + -- (see 38.214, section section 5.2.1.4). + reportSlotConfig CHOICE { + sl5 INTEGER(0..4), + sl10 INTEGER(0..9), + sl20 INTEGER(0..19), + sl40 INTEGER(0..39), + sl80 INTEGER(0..79), + sl160 INTEGER(0..159), + sl320 INTEGER(0..319) + }, + -- Indicates which PUCCH resource to use for reporting on PUCCH. + pucch-CSI-ResourceIndex NULL -- WS modification: was TYPE_FFS! + }, + aperiodic SEQUENCE { + -- Timing offset Y for aperiodic reporting. A particular value is indicated in DCI. (see 38.214, section 5.2.1.1) + aperiodicReportSlotOffset NULL -- WS modification: was TYPE_FFS! + } + }, + -- The CSI related quanities to report (see 38.214, section REF) + reportQuantity CHOICE { + cRI-RI-PMI-CQI NULL, + cRI-RI-i1 NULL, + cRI-RI-i1-CQI SEQUENCE { + -- PRB bundling size to assume for CQI calcuation when reportQuantity is CRI/RI/i1/CQI + -- Corresponds to L1 parameter 'PDSCH-bundle-size-for-CSI' (see 38.214, section FFS_Section) + pdsch-BundleSizeForCSI ENUMERATED {n2, n4} OPTIONAL + }, + cRI-RI-CQI NULL, + cRI NULL, + cRI-RSRP NULL, + spare1 NULL, + spare0 NULL + }, + -- Reporting configuration in the frequency domain. (see 38.214, section 5.2.1) + reportFreqConfiguration SEQUENCE { + -- Indicates whether the UE shall report a single (wideband) or multiple (subband) CQI. (see 38.214, section 5.2.1.4) + cqi-FormatIndicator ENUMERATED { widebandCQI, subbandCQI }, + -- Indicates whether the UE shall report a single (wideband) or multiple (subband) PMI. (see 38.214, section 5.2.1.4) + pmi-FormatIndicator ENUMERATED { widebandPMI, subbandPMI }, + -- Indicates a contiguous or non-contigous subset of subbands in the bandwidth part which CSI shall be reported + -- for. FFS: Each bit in the bit-string represents one subband. The right-most bit in the bit string represents the + -- lowest subband in the BWP. (see 38.214, section 5.2.1.4) + -- FFS: Size of the bitmap. Introduce a CHOICE with different bitmap lengths depening on number of subbands in carrier/BWP? + csi-ReportingBand BIT STRING (SIZE (FFS)) + }, + -- Time domain measurement restriction for the channel (signal) measurements. (see 38.214, section 5.2.1.1) + measRestrictionTimeForChannel NULL, -- WS modification: was TYPE_FFS! + -- Time domain measurement restriction for interference measurements. (see 38.214, section 5.2.1.1) + measRestrictionTimeForInterference NULL, -- WS modification: was TYPE_FFS! + -- Codebook configuration for Type-1 or Type-II including codebook subset restriction + codebookConfig CodebookConfig, + -- Maximum number of CQIs per CSI report (cf. 1 for 1-CW, 2 for 2-CW) + nrofCQIsPerReport ENUMERATED {n1, n2}, + -- Turning on/off group beam based reporting (see 38.214, section FFS_Section) + groupBasedBeamReporting CHOICE { + enabled SEQUENCE { + -- Number of beams to report for group based beam reporting (see 38.214, section REF) + nrofBeamsToReport INTEGER (2..4) -- WS modification: was TYPE_FFS! but 38.214 suggests this range + }, + disabled SEQUENCE { + -- The number (N) of measured RS resources to be reported per report setting in a non-group-based report. + -- N <= N_max, where N_max is either 2 or 4 depending on UE capability. + -- FFS: The signaling mechanism for the gNB to select a subset of N beams for the UE to measure and report. + -- FFS: Note: this parameter may not be needed for certain resource and/or report settings + -- FFS_ASN1: Change groupBasedBeamReporting into a CHOICE and include this field into the "no" option? + -- (see 38.214, section FFS_Section) + -- When the field is absent the UE applies the value 1 + nrofReportedRS ENUMERATED {n1, n2, n3, n4} OPTIONAL + } + }, + + -- Which CQI table to use for CQI calculation. Corresponds to L1 parameter 'CQI-Table' (see 38.214, section FFS_Section) + -- FFS: Whether URLLC2 should be added as one option + cqi-Table ENUMERATED {dl-64QAM, dl-256QAM, urllc1, urllc2} OPTIONAL, + -- Indicates one out of two possible BWP-dependent values for the subband size + -- Corresponds to L1 parameter 'SubbandSize' (see 38.214, section FFS_Section) + -- FFS_Value: Clarify what value1 and value2 mean. + subbandSize ENUMERATED {value1, value2}, + -- BLER target that the UE shall be assume in its CQI calculation. + -- Corresponds to L1 parameter 'BLER-Target' (see 38.214, section FFS_Section) + -- FFS_Values (now filled with spares) + bler-Target ENUMERATED {v0dot1, spare3, space2, spare1} OPTIONAL + +} + +CSI-ReportConfigId ::= INTEGER (0..maxNrofCSI-ReportConfig-1) + +-- Codebook configuration for Type-I and Type-II (see 38.214, section 5.2.2.2) +CodebookConfig ::= SEQUENCE { + -- Number of antenna ports in first dimension + codebookConfig-N1 ENUMERATED {n1,n2,n3,n4,n6,n8,n12,n16}, + -- Number of antenna ports in second dimension + codebookConfig-N2 ENUMERATED {n1,n2,n3,n4}, + -- Codebook subset restriction for the different codebooks + + -- CodebookType including possibly sub-types and the corresponding parameters for each. Corresponds to L1 parameter 'CodebookType' + -- (see 38.214, section 5.2.2.2) + codebookType CHOICE { + type1 SEQUENCE { + subType ENUMERATED {typeI-SinglePanel, typeI-MultiPanel}, + -- Switch between Config 1 and Config 2 + codebookMode ENUMERATED {config1, config2}, + -- Number of panels, Ng, used in multi-panel codebook + numberOfPanels ENUMERATED {panels2, panels4} OPTIONAL, -- Cond TypeI-MultiPanel + codebookSubsetRestrictionType1 CHOICE { + -- Codebook subset restriction for Type I Single-panel codebook + -- Corresponds to L1 parameter 'TypeI-SinglePanel-CodebookSubsetRestriction' (see 38.214, section FFS_Section) + -- FFS_Value: RAN1 indicated Bitmap of size N1*N2*O1*O2 + singlePanel BIT STRING (SIZE (FFS)), + + -- Codebook subset restriction for 2TX codebook + -- Corresponds to L1 parameter 'TypeI-SinglePanel-2Tx-CodebookSubsetRestriction' (see 38.214, section FFS_Section) + singlePanel2TX BIT STRING (SIZE (6)), + + -- Codebook subset restriction for Type I Multi-panel codebook + -- Corresponds to L1 parameter 'TypeI-MultiPanel-CodebookSubsetRestriction' (see 38.214, section FFS_Section) + multiPanel BIT STRING (SIZE (FFS)), + -- i2 codebook subset restriction for Type I Single-panel codebook used when reportQuantity is CRI/Ri/i1/CQI + -- Corresponds to L1 parameter 'TypeI-SinglePanel-CodebookSubsetRestriction-i2' (see 38.214, section FFS_Section) + singlePanelCodebookSubsetRestriction-i2 BIT STRING (SIZE (16)) + }, + ri-Restriction CHOICE { + -- Restriction for RI for TypeI-SinglePanel-RI-Restriction + -- Corresponds to L1 parameter 'TypeI-SinglePanel-RI-Restriction' (see 38.214, section FFS_Section) + typeI-SinglePanelRI-Restriction BIT STRING (SIZE (8)), + -- Restriction for RI for TypeI-MultiPanel-RI-Restriction + -- Corresponds to L1 parameter 'TypeI-MultiPanel-RI-Restriction' (see 38.214, section FFS_Section) + typeI-MultiPanelRI-Restriction BIT STRING (SIZE (4)) + } + }, + type2 SEQUENCE { + subType ENUMERATED {typeII, typeII-PortSelection}, + -- The size of the PSK alphabet, QPSK or 8-PSK + phaseAlphabetSize ENUMERATED {n4, n8}, + -- If subband amplitude reporting is activated (true) + subbandAmplitude BOOLEAN, + -- Number of beams, L, used for linear combination + numberOfBeams ENUMERATED {beams2, beams3, beams4}, + -- The size of the port selection codebook (parameter d) + portSelectionSamplingSize ENUMERATED {n1, n2, n3, n4} OPTIONAL, -- Cond TypeII-PortSelection + -- Codebook subset restriction for Type II codebook. + -- FFS: Clarify the meaning of the bitmap + -- FFS: The size of the bitmap is ceil(log2(nchoosek(O1*O2,4)))+8*N1*N2 ==> Clarify size. Present different bitmap sizes by CHOICE? + codebookSubsetRestrictionType2 BIT STRING (SIZE (FFS)), + ri-Restriction CHOICE { + -- Restriction for RI for TypeII-RI-Restriction + -- Corresponds to L1 parameter 'TypeII-RI-Restriction' (see 38.214, section FFS_Section) + typeII-RI-Restriction BIT STRING (SIZE (2)), + -- Restriction for RI for TypeII-PortSelection-RI-Restriction + -- Corresponds to L1 parameter 'TypeII-PortSelection-RI-Restriction' (see 38.214, section FFS_Section) + typeII-PortSelectionRI-Restriction BIT STRING (SIZE (2)) + } + } + } +} + + +-- Linking a CSI-RS-ResourceConfig with a CSI-ReportConfig (see 38.214, section 5.2) +CSI-MeasIdToAddMod ::= SEQUENCE { + csi-measId CSI-MeasId, + csi-RS-resourceConfigId CSI-RS-ConfigurationId, + csi-reportConfigId CSI-ReportConfigId, + + -- For CQI-Emulation, i.e., how to measure and compute the CQI. + -- CHECK: Clarify further what the values mean. + -- CHECK: Is there a need to inform the UE which resource to use for which measurement (signal, interference, ...)? + measQuantity ENUMERATED {channel, interference} +} + +CSI-MeasId ::= INTEGER (0..maxNrofCSI-MeasId-1) + +-- CHECK: Do the BeamManagement parameters really belong into the CSI context? Or rather to RLF/RLM? +-- FFS_FIXME: BeamManagement IE is not used anywhere. +BeamManagement ::= SEQUENCE { + -- Use of PRACH or/and PUSCH for beam in some combination, details FFS + linkReconfigurationRequest NULL OPTIONAL, -- WS modification: was FFS_Value + -- List of CSI-RS resouces used for beam failure detection + -- Corresponds to L1 parameter 'Beam-Failure-Detection-RS-ResourceConfig' (see 38.213, section 6) + failureDetectionResources NULL OPTIONAL, -- WS modification: was FFS_Value + + -- Number of beam failure instances before the UE declares beam failure + -- Corresponds to L1 parameter 'Beam-Failure-Instance-MaxCount' (see 38.321, section FFS_Section) + beamFailureInstanceMaxCount NULL OPTIONAL, -- WS modification: was FFS_Value + + -- Reference signal used to identify candidate beam + -- Corresponds to L1 parameter 'Candidate-Beam-RS-Identification-Resource' (see 38.213, section 6) + beamFailureCandidateBeamResource NULL OPTIONAL, -- WS modification: was FFS_Value + + -- The candidate beam can be considered identified when metric X (FFS) of candidate beam is higher than a threshold" + -- Corresponds to L1 parameter 'Beam-failure-candidate-beam-threshold' (see 38.213, section 6) + beamFailureCandidateBeamThreshold NULL OPTIONAL, -- WS modification: was FFS_Value + + -- RACH resource to send the beam failure recovery request + -- Corresponds to L1 parameter 'Beam-failure-recovery-request-RACH-Resource' (see 38.213, section 6) + beamFailureRecoveryRACH-Resource NULL OPTIONAL, -- WS modification: was FFS_Value + + -- Window for beamfailure recovery + -- Corresponds to L1 parameter 'Beam-failure-recovery-request-window' (see 38.213, section 6) + beamFailureRecoveryRequestWindow NULL OPTIONAL, -- WS modification: was FFS_Value + + -- CORESET configured to receive the Beam Failure Recovery Response. FFS: parameter name to be updated + -- Corresponds to L1 parameter 'Beam-Failure-Recovery-Response-CORESET' (see 38.213, section 6) + -- When the field is absent the UE applies the value FFS_DefaultValue + -- FFS_Value: Is this the ID of a CORESET defined elsewhere? Or is it really a ControlResourceSet IE? + recoveryControlResourceSet NULL OPTIONAL -- WS modification: was FFS_Value + +} + +-- TAG-CSI-MEAS-CONFIG-STOP +-- TAG-FAILURE-REPORT-SCG-TO-OTHER-RAT-START +-- FFS if failureType is needed + +FailureReportSCG-ToOtherRAT ::= SEQUENCE { + failureType ENUMERATED { t313-Expiry, randomAccessProblem, + rlc-MaxNumRetx, maxUL-TimingDiff, + scg-ChangeFailure, scg-reconfigFailure, + srb3-IntegrityFailure}, + measResultServingFreqList MeasResultServFreqList2NR, + measResultNeighCells MeasResultList2NR, + ... +} + +MeasResultServFreqList2NR ::= SEQUENCE (SIZE (1..maxServCell)) OF MeasResultServFreq2NR + +MeasResultServFreq2NR ::= SEQUENCE { + carrierFreq ARFCN-ValueNR, + measResultServingCell MeasResultNR, + measResultBestNeighServingCell MeasResultNR OPTIONAL +} + +MeasResultList2NR ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2NR + +MeasResult2NR ::= SEQUENCE { + carrierFreq ARFCN-ValueNR, + measResult MeasResultListNR +} + +-- TAG-FAILURE-REPORT-SCG-TO-OTHER-RAT-STOP +-- TAG-FREQUENCY-INFO-UL-START + +FrequencyInfoUL ::= SEQUENCE { + -- FFS_FIXME: Frequency Information parameters need corrections (currently just inherited from LTE). + carrierFreqUL ARFCN-ValueNR OPTIONAL, -- Need OP + carrierBandwidthUL CarrierBandwidthNR OPTIONAL, -- Need OP + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Need OP + p-Max P-Max OPTIONAL, -- Need OP + -- Enable or disable the NR UL transmission with a 7.5KHz shift to the LTE raster + frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD + + -- The initial uplink BWP configuration for a SpCell. Corresponds to L1 parameter 'initial-UL-BWP'. + -- (see 38.331, section FFS_Section). + initialUplinkBandwidthPart BandwidthPart OPTIONAL -- Cond FDD-PCell +} + +-- TAG-FREQUENCY-INFO-UL-STOP +-- TAG-LOGICAL-CHANNEL-CONFIG-START + +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED {kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, kBps256, kBps512, + kBps1024, kBps2048, kBps4096, kBps8192, kBps16384, kBps32768, kBps65536, infinity}, + bucketSizeDuration ENUMERATED {ms50, ms100, ms150, ms300, ms500, ms1000, spare2, spare1}, + + -- FFS: Detailed handling of restrictions (UP email discussion) + -- Defined in L1 parameters but the value range must be checked. + allowedSubCarrierSpacing SubcarrierSpacing OPTIONAL, + + allowedTiming NULL OPTIONAL, -- WS modification: was TYPE_FFS + logicalChannelGroup INTEGER (0..maxLCid) OPTIONAL, + + logicalChannelSR-Mask BOOLEAN, + + logicalChannelSR-DelayTimerApplied BOOLEAN + } OPTIONAL -- Cond UL + + -- other parameters +} + +-- TAG-LOGICAL-CHANNEL-CONFIG-STOP +-- TAG-MAC-CELL-GROUP-CONFIG-START + +MAC-CellGroupConfig ::= SEQUENCE { + drx-Config DRX-Config OPTIONAL, -- Need R + + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, + bsr-Config BSR-Configuration OPTIONAL, -- Need N + tag-Config TAG-Configuration OPTIONAL, -- Need N + phr-Config PHR-Config OPTIONAL, -- Need N + sCellDeactivationTimer ENUMERATED { + ms20, ms40, ms80, ms160, ms200, ms240, ms320, ms400, ms480, ms520, ms640, ms720, ms840, ms1280, spare2, + spare1} OPTIONAL, -- Cond ServingCellWithoutPUCCH + -- FFS : configurable per SCell? + skipUplinkTxDynamic BOOLEAN +} + +DRX-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + drx-onDurationTimer ENUMERATED { + ms1-32, ms2-32, ms3-32, ms4-32, ms5-32, ms6-32, ms7-32, ms8-32, ms9-32, ms10-32, ms11-32, + ms12-32, ms13-32, ms14-32, ms15-32, ms16-32, ms17-32, ms18-32, ms19-32, ms-20-32, ms21-32, + ms22-32, ms23-32, ms24-32, ms25-32, ms26-32, ms27-32, ms28-32, ms29-32, ms30-32, ms31-32, + ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60, + ms80, ms100, ms200, ms300, ms400, ms500, ms600, ms800, ms1000, ms1200, + ms1600, spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }, + drx-InactivityTimer ENUMERATED { + ms0, ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40,ms50, ms60, ms80, + ms100, ms200, ms300, ms500, ms750, ms1280, ms1920, ms2560, spare9, spare8, + spare7, spare6, spare5, spare4, spare3, spare2, spare1}, + drx-HARQ-RTT-TimerDL INTEGER (0..56), + drx-HARQ-RTT-TimerUL INTEGER (0..56), + drx-RetransmissionTimerDL ENUMERATED { + sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64, sl80, sl96, sl112, sl128, + spare15, spare14, spare13, spare12, spare11, spare10, spare9, + spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1}, + drx-RetransmissionTimerUL ENUMERATED { + sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64, sl80, sl96, sl112, sl1128, + u160sl160, u320sl320, spare15, spare14, spare13, spare12, spare11, spare10, spare9, + spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }, + -- FFS units and dependency on numerology for DL and UL retransmission timers + drx-LongCycleStartOffset CHOICE { + ms10 INTEGER(0..9), + ms20 INTEGER(0..19), + ms32 INTEGER(0..31), + ms40 INTEGER(0..39), + ms60 INTEGER(0..59), + ms64 INTEGER(0..63), + ms70 INTEGER(0..69), + ms80 INTEGER(0..79), + ms128 INTEGER(0..127), + ms160 INTEGER(0..159), + ms256 INTEGER(0..255), + ms320 INTEGER(0..319), + ms512 INTEGER(0..511), + ms640 INTEGER(0..639), + ms1024 INTEGER(0..1023), + ms1280 INTEGER(0..1279), + ms2048 INTEGER(0..2047), + ms2560 INTEGER(0..2559), + ms5120 INTEGER(0..5119), + ms10240 INTEGER(0..10239) + }, + -- FFS need for finer offset granulary + -- FFS need for shorter values for long and short cycles + shortDRX SEQUENCE { + drx-ShortCycle ENUMERATED { + ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32, + ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, spare9, + spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }, + drx-ShortCycleTimer INTEGER (1..16) + } OPTIONAL, -- Need R + drx-SlotOffset ENUMERATED { + ms0, ms1-32,ms2-32, ms3-32, ms4-32, ms5-32, ms6-32, ms7-32, ms8-32, ms9-32, ms10-32, ms11-32, + ms12-32, ms13-32, ms14-32, ms15-32, ms16-32, ms17-32, ms18-32, ms19-32, ms-20-32, ms21-32, + ms22-32, ms23-32, ms24-32, ms25-32, ms26-32, ms27-32, ms28-32, ms29-32, ms30-32, ms31-32 } } +} + +PHR-Config ::= CHOICE { + release NULL, + setup SEQUENCE { + phr-PeriodicTimer ENUMERATED {sf10, sf20, sf50, sf100, sf200,sf500, sf1000, infinity}, + phr-ProhibitTimer ENUMERATED {sf0, sf10, sf20, sf50, sf100,sf200, sf500, sf1000}, + phr-Tx-PowerFactorChange ENUMERATED {dB1, dB3, dB6, infinity}, + multiplePHR BOOLEAN, + phr-Type2PCell BOOLEAN, + phr-Type2OtherCell BOOLEAN, + phr-ModeOtherCG ENUMERATED {real, virtual} + } +} + + +TAG-Config ::= SEQUENCE { + tag-ToReleaseList TAG-ToReleaseList OPTIONAL, -- Need N + tag-ToAddModList TAG-ToAddModList OPTIONAL -- Need N +} + +TAG-ToReleaseList ::= SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-Id +TAG-ToAddModList ::= SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-ToAddMod +TAG-ToAddMod ::= SEQUENCE { + tag-Id TAG-Id, + timeAlignmentTimer TimeAlignmentTimer, + ... +} + +TAG-Id ::= INTEGER (0.. maxNrofTAGs-1) + +TimeAlignmentTimer ::= ENUMERATED {ms500, ms750, ms1280, ms1920, ms2560, ms5120,ms10240, infinity} + +BSR-Config ::= SEQUENCE { + -- FFS: other values for periodicBSR-Timer, "every PDU" value + periodicBSR-Timer ENUMERATED { + sf1, sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, sf128, sf160, sf320, sf640, sf1280, sf2560, infinity}, + retxBSR-Timer ENUMERATED { sf10, sf20, sf40, sf80, sf160, sf320, sf640, sf1280, sf2560, sf5120, sf10240}, + logicaChannelSR-DelayTimer ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} OPTIONAL +} + + + +-- TAG-MAC-CELL-GROUP-CONFIG-STOP +-- TAG-MEAS-CONFIG-START + +MeasConfig ::= SEQUENCE { + -- Measurement objects + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, + measObjectToAddModList MeasObjectToAddModList OPTIONAL, + + -- Reporting configurations + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, + + -- Measurement identities + measIdToRemoveList MeasIdToRemoveList OPTIONAL, + measIdToAddModList MeasIdToAddModList OPTIONAL, + + -- Other parameters + -- s-Measure config + s-MeasureConfig CHOICE { + ssb-rsrp RSRP-Range, + csi-rsrp RSRP-Range + } OPTIONAL, + + quantityConfig QuantityConfig OPTIONAL, + + -- Placehold for measGapConfig + measGapConfig MeasGapConfig OPTIONAL +} + +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectId + +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasId + +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxNrofReportConfigId)) OF ReportConfigId + +-- TAG-MEAS-CONFIG-STOP +-- TAG-MEAS-ID-START + +MeasId ::= INTEGER (1..maxNrofMeasId) + +-- TAG-MEAS-ID-STOP +-- TAG-MEAS-ID-TO-ADD-MOD-LIST-START + +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasIdToAddMod + +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId OPTIONAL, + reportConfigId ReportConfigId +} + +-- TAG-MEAS-ID-TO-ADD-MOD-LIST-STOP +-- TAG-MEAS-OBJECT-ID-START + +MeasObjectId ::= INTEGER (1..maxNrofObjectId) + +-- TAG-MEAS-OBJECT-ID-STOP +-- TAG-MEAS-OBJECT-NR-START + +MeasObjectNR ::= SEQUENCE { + carrierFreq ARFCN-ValueNR, + + --RS configuration (e.g. SMTC window, CSI-RS resource, etc.) + referenceSignalConfig ReferenceSignalConfig OPTIONAL, + + --Consolidation of L1 measurements per RS index + absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL, + absThreshCSI-RS-Consolidation ThresholdNR OPTIONAL, + + --Config for cell measurement derivation + nroSS-BlocksToAverage INTEGER (2..maxNroSS-BlocksToAverage) OPTIONAL, + nroCSI-RS-ResourcesToAverage INTEGER (2..maxNroCSI-RS-ResourcesToAverage) OPTIONAL, + + -- Filter coefficients applicable to this measurement object + quantityConfigIndex INTEGER (1..maxQuantityConfigId), + + --Frequency-specific offsets (only for events A3, A6) + offsetFreq Q-OffsetRangeList, + + -- Cell list + cellsToRemoveList CellIndexList OPTIONAL, + cellsToAddModList CellsToAddModList OPTIONAL, + + -- Black list + blackCellsToRemoveList CellIndexList OPTIONAL, + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, + + -- White list + whiteCellsToRemoveList CellIndexList OPTIONAL, + whiteCellsToAddModList WhiteCellsToAddModList OPTIONAL +} + +-- FFS / TODO: To be updated based on email discussion[99#31][NR] Additional information for SSB and CSI-RS config (Ericsson) +ReferenceSignalConfig::= SEQUENCE { + + ssb-MeasurementTimingConfiguration SSB-MeasurementTimingConfiguration OPTIONAL, + + ssbPresence CHOICE { + present SEQUENCE { + frequencyOffset NULL, -- WS modification: was TYPE_FFS! + subcarrierSpacing SubcarrierSpacing + }, + notPresent SEQUENCE { + -- FFS: How to inform the UE where else to find the SSB. FFS whether to indicate here a carrier or a cell ID or multiple cell IDs + } + }, + + -- CSI-RS resources to be used for for CSI-RS based RRM measurements + csi-rs-ResourceConfig-Mobility CSI-RS-ResourceConfig-Mobility OPTIONAL, -- Need N + + -- Indicates whether the UE can utilize serving cell timing to derive the index of SS block transmitted by neighbour cell: + useServingCellTimingForSync BOOLEAN +} + +-- A measurement timing configuration +SSB-MeasurementTimingConfiguration ::= SEQUENCE { + -- Primary measurement timing configuration. Applicable for intra- and inter-frequency measurements. + smtc1 SEQUENCE { + -- Periodicity and offset of the measurement window in which to receive SS/PBCH blocks. + -- Periodicity and offset are given in number of subframes. + -- FFS_FIXME: This does not match the L1 parameter table! + -- (see 38.213, section REF): + periodicityAndOffset CHOICE { + sf5 INTEGER (0..4), + sf10 INTEGER (0..9), + sf20 INTEGER (0..19), + sf40 INTEGER (0..39), + sf80 INTEGER (0..79), + sf160 INTEGER (0..159) + }, + -- Duration of the measurement window in which to receive SS/PBCH blocks. It is given in number of subframes + -- (see 38.213, section 4.1) + -- FFS: RAN1 discusses additional allowed durations: + duration ENUMERATED { sf1, sf5 }, + + -- The set of SS blocks to be measured within the SMTC measurement duration. + -- Corresponds to L1 parameter 'SSB-measured' (see FFS_Spec, section FFS_Section) + -- When the field is absent the UE measures on all SS-blocks + -- FFS_CHECK: Is this IE placed correctly. + ssb-ToMeasure CHOICE { + release NULL, + setup CHOICE { + -- bitmap for sub 3 GHz + shortBitmap BIT STRING (SIZE (4)), + -- bitmap for 3-6 GHz + mediumBitmap BIT STRING (SIZE (8)), + -- bitmap for above 6 GHz + longBitmap BIT STRING (SIZE (64)) + } + } OPTIONAL -- Need M + }, + + -- Secondary measurement timing confguration for explicitly signalled PCIs. It uses the offset and duration from smtc1. + -- It is supported only for intra-frequency measurements in RRC CONNECTED. + smtc2 SEQUENCE { + -- PCIs that are known to follow this SMTC. + pci-List SEQUENCE (SIZE (1..maxNrofPCIsPerSMTC)) OF PhysicalCellId OPTIONAL, + -- Periodicity for the given PCIs. Timing offset and Duration as provided in smtc1. + periodicty NULL -- WS modification: was TYPE_FFS! + } OPTIONAL -- Cond IntraFreqConnected +} + +CSI-RS-ResourceConfig-Mobility ::= SEQUENCE { + -- MO specific values +csi-rs-MeasurementBW SEQUENCE { + csi-rs-measurementBW-size ENUMERATED { size24, size48, size96, size192, size268}, + csi-rs-measurement-BW-start ENUMERATED {ffsTypeAndValue}, + associated-SSB ENUMERATED {ffsTypeAndValue}, + qcled-SSB BOOLEAN, + isServingCellMO BOOLEAN +}, + -- subcarrier spacing of CSI-RS. It can take the same values available also for the data channels and for SSB + subcarrierSpacing SubcarrierSpacing, + + -- List of resources + csi-rs-ResourceList-Mobility SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesRRM)) OF CSI-RS-Resource-Mobility +} + +CSI-RS-Resource-Mobility ::= SEQUENCE { + csi-rs-ResourceId-RRM CSI-RS-ResourceId-RRM, + cellId PhysicalCellId, + -- Contains periodicity and slot offset for periodic/semi-persistent CSI-RS (see 38.211, section x.x.x.x)FFS_Ref + -- FFS: Whether ms80 and ms160 are supported + slotConfig CHOICE { + ms5 INTEGER (0..4), + ms10 INTEGER (0..9), + ms20 INTEGER (0..19), + ms40 INTEGER (0..39), + ms80 INTEGER (0..79), + ms160 INTEGER (0..159) + }, + -- Resource Element mapping pattern for CSI-RS (see 38.211, section x.x.x.x) FFS_Ref + resourceElementMappingPattern NULL, -- WS modification: was TYPE_FFS! + -- FFS / TODO: ADD DESCRIPTION (see 38.211, section x.x.x.x) FFS_Ref + sequenceGenerationConfig NULL -- WS modification: was TYPE_FFS! +} + +CSI-RS-ResourceId-RRM ::= INTEGER (0..maxNrofCSI-RS-ResourcesRRM-1) + +Q-OffsetRangeList ::= SEQUENCE { + rsrpOffsetSSB Q-OffsetRange DEFAULT dB0, + rsrqOffsetSSB Q-OffsetRange DEFAULT dB0, + sinrOffsetSSB Q-OffsetRange DEFAULT dB0, + rsrpOffsetCSI-RS Q-OffsetRange DEFAULT dB0, + rsrqOffsetCSI-RS Q-OffsetRange DEFAULT dB0, + sinrOffsetCSI-RS Q-OffsetRange DEFAULT dB0 +} + +ThresholdNR ::= SEQUENCE{ + threshold-RSRP RSRP-Range OPTIONAL, + threshold-RSRQ RSRQ-Range OPTIONAL, + threshold-SINR SINR-Range OPTIONAL +} + +CellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellsToAddMod + +CellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxNrofCellMeas), + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRangeList +} + +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF BlackCellsToAddMod + +BlackCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxNrofCellMeas), + physCellIdRange PhysCellIdRange +} + + +WhiteCellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF WhiteCellsToAddMod + +WhiteCellsToAddMod ::= SEQUENCE { + cellIndex INTEGER (1..maxNrofCellMeas), + physCellIdRange PhysCellIdRange +} + +-- TAG-MEAS-OBJECT-NR-STOP +-- TAG-MEAS-OBJECT-TO-ADD-MOD-LIST-START + +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectToAddMod + +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectNR MeasObjectNR, + measObjectEUTRA MeasObjectEUTRA + } +} + +-- TAG-MEAS-OBJECT-TO-ADD-MOD-LIST-STOP +-- TAG-MEAS-RESULTS-START + +MeasResults ::= SEQUENCE { + measId MeasId, + measResultServingFreqList MeasResultServFreqList, + measResultNeighCells CHOICE { + measResultListNR MeasResultListNR, + measResultListEUTRA MeasResultListEUTRA, + ... + } OPTIONAL +} + +MeasResultServFreqList ::= SEQUENCE (SIZE (1..maxServCell)) OF MeasResultServFreq + +MeasResultServFreq ::= SEQUENCE { + servFreqId ServCellIndex OPTIONAL, + measResultServingCell MeasResultNR, + measResultBestNeighCell MeasResultNR } + +MeasResultListNR ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultNR + +MeasResultNR ::= SEQUENCE { + physCellId PhysCellId OPTIONAL, + --FFS: Details of cgi info + cgi-Info NULL, -- WS modification: was TYPE_FFS! + measResult SEQUENCE { + cellResults SEQUENCE{ + resultsSSBCell ResultsSSBCell OPTIONAL, + resultsCSI-RSCell ResultsCSI-RSCell OPTIONAL + }, + rsIndexResults SEQUENCE{ + resultsSSBIndexes ResultsPerSSBIndexList OPTIONAL, + resultsCSI-RSIndexes ResultsPerCSI-RSIndexList OPTIONAL + } OPTIONAL + } +} + +ResultsSSBCell ::= SEQUENCE { + ssb-Cellrsrp RSRP-Range OPTIONAL, + ssb-Cellrsrq RSRQ-Range OPTIONAL, + ssb-Cellsinr SINR-Range OPTIONAL +} + +ResultsCSI-RSCell ::= SEQUENCE { + csi-rs-Cellrsrp RSRP-Range OPTIONAL, + csi-rs-Cellrsrq RSRQ-Range OPTIONAL, + csi-rs-Cellsinr SINR-Range OPTIONAL +} + +ResultsPerSSBIndexList ::= SEQUENCE (SIZE (1..maxNroSSBs)) OF ResultsPerSSBIndex + +ResultsPerSSBIndex ::= SEQUENCE { + ssb-Index SSB-Index, + ss-rsrp RSRP-Range OPTIONAL, + ss-rsrq RSRQ-Range OPTIONAL, + ss-sinr SINR-Range OPTIONAL +} + +ResultsPerCSI-RSIndexList ::= SEQUENCE (SIZE (1..maxNroCSI-RS)) OF ResultsPerCSI-RSIndex + +ResultsPerCSI-RSIndex ::= SEQUENCE { + csi-rsIndex CSI-RSIndex, + csi-rsrp RSRP-Range OPTIONAL, + csi-rsrq RSRQ-Range OPTIONAL, + csi-sinr SINR-Range OPTIONAL +} + +-- TAG-MEAS-RESULTS-STOP +-- TAG-PDCCH-CONFIG-START + +-- Downlink control channel related parameters +PDCCH-Config ::= SEQUENCE { + -- List of Control Resource Sets (CORESETs) to be used by the UE + controlResourceSetToAddModList SEQUENCE(SIZE (1..maxNrofControlResourceSets)) OF ControlResourceSet OPTIONAL, + controlResourceSetToReleaseList SEQUENCE(SIZE (1..maxNrofControlResourceSets)) OF ControlResourceId OPTIONAL, + + searchSpacesToAddModList SEQUENCE(SIZE (1..maxNrofSearchSpaces)) OF SearchSpace OPTIONAL, + searchSpacesToReleaseList SEQUENCE(SIZE (1..maxNrofSearchSpaces)) OF SearchSpaceId OPTIONAL, + + + -- FFS: Is this timing information applicable to the entire PDCCH or could it be different per CORESET? + -- FFS: Is there a default timing (to be used at least until first reconfiguration). Are the fields optionally present? + timing SEQUENCE { + dl-assignment-to-DL-data NULL, -- WS modification: was TYPE_FFS! + ul-assignment-to-UL-data NULL, -- WS modification: was TYPE_FFS! + dl-data-to-UL-ACK NULL -- WS modification: was TYPE_FFS! + } OPTIONAL + +} + +-- A time/frequency control resource set (CORESET) in which to search for downlink control information (see 38.213, section x.x.x.x)FFS_Ref +ControlResourceSet ::= SEQUENCE { + controlResourceSetId ControlResourceSetId, + + -- Frequency domain resources for the CORESET. The network ensures that the CORESET is within the BWP configured for a UE. (see 38.213, REF) + frequencyDomainResources NULL, -- WS modification: was TYPE_FFS! + -- Starting OFDM symbol for the CORESET (see 38.213, REF) + startSymbol INTEGER (0..maxCoReSetStartSymbol), + -- Contiguouse time duration of the CORESET in number of symbols see 38.213, section x.x.x.x)FFS_Ref + duration INTEGER (1..maxCoReSetDuration), + -- Resource Element Groups (REGs) can be bundled to create REG bundles. This parameter defines the size of such bundles. + -- (see 38.211, section 7.3.2.2) + reg-BundleSize ENUMERATED {n2, n3, n6}, + -- Mapping of Control Channel Elements (CCE) to Resource Element Groups (REG). (see 38.211, 38.213, FFS_REF) + cce-reg-MappingType ENUMERATED { interleaved, nonInterleaved }, + -- Precoder granularity in frequency domain (see 38.213, section FFS_REF) + precoderGranularity NULL, -- WS modification: was TYPE_FFS! + -- Corresponds to L1 parameter 'CORESET-interleaver-rows' (see 38.211, 38.213, section FFS_Section) + interleaverRows ENUMERATED {n2, n3, n6} OPTIONAL, + + -- Corresponds to L1 parameter 'CORESET-shift-index' (see 38.211, 38.213, section FFS_Section) + shiftIndex NULL, -- WS modification: was FFS_Value OPTIONAL, + + -- Reference to a configured TCI State providing QCL configuration/indication for PDCCH. + -- Corresponds to L1 parameter 'TCI-StateRefId' (see 38.211, 38.213, section FFS_Section) + tci-StateRefId NULL, -- WS modification: was FFS_Value OPTIONAL, + + -- PDCCH DMRS scrambling initalization. Corresponds to L1 parameter 'PDCCH-DMRS-Scrambling-ID' (see 38.214, section 5.1) + -- When the field is absent the UE applies the value TBD/FFS + pdcch-DMRS-ScramblingID NULL -- WS modification: was FFS_Value OPTIONAL +} + +-- ID of a Control Resource Set. +ControlResourceSetId ::= INTEGER (0..maxNrofControlResourceSets-1) + +-- A search space defines how/where to search for PDCCH candidates. A search space is associated with one Control Resource Set +SearchSpace ::= SEQUENCE { + searchSpaceId SearchSpaceId, + + -- The CORESET applicable for this SearchSpace. + -- FFS: Value 0 identifies the common CORESET configured in MIB? + -- FFS: Values 1..maxNrofControlResourceSets-1 identify CORESETs configured by dedicated signalling? + controlResourceSetId ControlResourceSetId, + + -- Slots for PDCCH Monitoring configured as periodicity and offset. Corresponds to L1 parameters 'Montoring-periodicity-PDCCH-slot' and + -- 'Montoring-offset-PDCCH-slot' (see 38.213, section 10) + -- sl15, sl10, sl20 FFS + monitoringSlotPeriodicityAndOffset CHOICE { + sl1 NULL, + sl2 INTEGER (0..1), + sl5 INTEGER (0..4), + sl10 INTEGER (0..9), + sl20 INTEGER (0..19) + } OPTIONAL, + + -- Symbols for PDCCH monitoring in the slots configured for PDCCH monitoring (see monitoringSlotPeriodicityAndOffset). + -- The most significant (left) bit represents the first OFDM in a slot. The least significant (right) bit represents the last symbol. + -- Corresponds to L1 parameter 'Montoring-symbols-PDCCH-within-slot' (see 38.213, section 10) + monitoringSymbolsWithinSlot BIT STRING (SIZE (14)) OPTIONAL, + + -- Number of candidates per aggregation level. Corresponds to L1 parameter 'Aggregation-level-1' to 'Aggregation-level-8' + -- (see 38.213, section 10) + nrofCandidates SEQUENCE { + aggregationLevel1 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}, + aggregationLevel2 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}, + aggregationLevel4 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}, + aggregationLevel8 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8} + }, + + + + -- Indicates whether this is a common search space (present) or a UE specific search space. + -- FFS: How many CSSs can the NW configure? And can a CSS only be in the common CORESET? + searchSpaceType CHOICE { + common SEQUENCE { + -- Monitoring of a group common PDCCH for at least SFI (Slot Format Indicator) + -- FFS_CHECK: Is this really part of the common search space? Or entirely separate? + sfi-PDCCH SFI-PDCCH, + -- Turn on monitoring of DL preemption DCI + -- FFS_CHECK: Is Preemp-DL needed at all? Can't this be derived from the presence of the following INT-RNTI field? + preemp-DL BOOLEAN, + -- RNTI used for indication pre-emption in DL. Also connected to monitoring of a Type2-PDCCH common search space. + -- (see 38.213, section 10) + -- FFS: What does the abbreviation stand for? Add a better description + -- FFS:_Verify that RNTI is still 16 bit. + int-RNTI BIT STRING (SIZE (16)), + -- Set selection for DL-preemption indication, the set indication two different manners the DL preemption DCI + -- is interpreteded by the UE. Corresponds to L1 parameter 'int-TF-unit' (see 38.213, section 10.1) + -- FFS: Clarify description. + int-TF ENUMERATED {set0, set1}, + -- Monitoring periodicity of DCI with INT-RNTI in number of slots. + -- Corresponds to L1 parameter 'INT-monitoring-periodicity' (see 38.213, section 11.2) + monitoringPeriodicity NULL OPTIONAL -- WS modification: was FFS_Value + }, + ue-Specific SEQUENCE { + -- FFS: Parameters that are applicable only for USS? + } + } OPTIONAL -- Need M +} + +SearchSpaceId ::= INTEGER (1..maxNrofSearchSpaces) + +-- Configuration of monitoring a Group-Common-PDCCH for Slot-Format-Indicators (SFI) +SFI-PDCCH ::= SEQUENCE { + + -- Monitoring periodicity of SFI PDCCH in slots. Should be 8 values in total. RAN1 will decided the remainnig values, i.e. X1, X2, X3 + -- Corresponds to L1 parameter 'SFI-monitoring-periodicity' (see 38.213, section FFS_Section) + monitoringPeriodicity ENUMERATED {sl1, sl2, sl5, sl10, sl20, spare3, spare2, spare1} OPTIONAL, + + -- Maps a specific cell to a given SFI value within the DCI message + -- Corresponds to L1 parameter 'SFI-cell-to-SFI' (see 38.213, section FFS_Section) + sfi-CellToSFI SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF CellToSFI OPTIONAL, + + -- The number of PDCCH candidates for the configured aggregation level. + -- Corresponds to L1 parameter 'SFI-Num-PDCCH-cand' (see 38.213, section FFS_Section) + nrofPDCCH-Candidates ENUMERATED {n1, n2}, + + -- The aggregation level for the SFI-PDCCH. Corresponds to L1 parameter 'SFI-Aggregation-Level' (see 38.213, section FFS_Section) + aggregationLevel ENUMERATED {n1, n2, n4, n8}, + + -- RNTI used for SFI on the given cell + -- Corresponds to L1 parameter 'SFI-RNTI' (see 38.213, section FFS_Section) + sfi-RNTI BIT STRING (SIZE (16)) OPTIONAL, + + -- Payload length of SFI DCI. Corresponds to L1 parameter 'SFI-DCI-payload-length' (see 38.213, section FFS_Section) + dci-PayloadLength NULL OPTIONAL, -- WS modification: was TYPE_FFS! + + -- Defines whether a specific CORESET is used or the CSS. Corresponds to L1 parameter 'SFI-SS' (see 38.213, section FFS_Section) + searchSpace NULL OPTIONAL, -- WS modification: was TYPE_FFS! + + -- SFI value location within a DCI message, this fields gives the starting bit in the DCI message, assumption is that lenght is given RAN1 spec. + -- Corresponds to L1 parameter 'SFI-values' (see 38.213, section FFS_Section) + -- FFS_CHECK whether this field is placed correctly + sfi-PositionInDCI INTEGER (1..1) OPTIONAL -- WS modification: was MaxDCIpayload but it is undefined +} + +-- Mapping for a given cell to SFI value within DCI message. Corresponds to L1 parameter 'cell-to-SFI' (see 38.213, section FFS_Section) +CellToSFI ::= SEQUENCE { + -- FFS: Content and structure of this IE. + + -- A list with SlotFormatCombinations. Each SlotFormatCombination comprises of one or more SlotFormats (see 38.211, section 4.3.2) + slotFormatCombinations SEQUENCE (SIZE (1..maxNrofSlotFormatCombinations)) OF SlotFormatCombination OPTIONAL +} + +SlotFormatCombination ::= SEQUENCE { + slotFormatCombinationId SlotFormatCombinationId + -- slotFormats SEQUENCE (SIZE (1..maxNrofSlotFormatsPerCombination)) WS modification: comment this wrong construct +} + +-- SFI index that is assoicated with a certian slot-format-combination +-- Corresponds to L1 parameter 'SFI-index' (see 38.213, section FFS_Section) +SlotFormatCombinationId ::= INTEGER (0..maxNrofSlotFormatCombinations-1) + + +-- TAG-PDCCH-CONFIG-STOP +-- TAG-PDCP-CONFIG-START + +PDCP-Config ::= SEQUENCE { + drb SEQUENCE { + discardTimer ENUMERATED {ms10, ms20, ms30, ms40, ms50, ms60, ms75, ms100, ms150, ms200, ms250, ms300, ms500, ms750, ms1500, infinity} OPTIONAL, -- Cond Setup + pdcp-SN-Size-UL ENUMERATED {len12bits, len18bits}, + pdcp-SN-Size-DL ENUMERATED {len12bits, len18bits}, + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + uplinkOnlyROHC SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0006 BOOLEAN + } + }, + ... + } + }, + + integrityProtection BOOLEAN, + + statusReportRequired BOOLEAN OPTIONAL -- Cond Rlc-AM + } OPTIONAL, -- Cond DRB + -- FFS / TODO: Handle more than two secondary cell groups + moreThanOneRLC SEQUENCE { + primaryPath SEQUENCE { + cellGroup CellGroupId, + logicalChannel LogicalChannelIdentity + }, + ul-DataSplitThreshold CHOICE { + release NULL, + setup ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, b25600, b51200, b102400, b204800, + b409600, b819200, b1228800, b1638400, b2457600, b3276800, b4096000, b4915200, b5734400, + b6553600, infinity, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1} + }, + ul-Duplication BOOLEAN + } OPTIONAL, -- Cond MoreThanOneRLC + + t-Reordering ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms30, ms40, ms60, ms50, ms80, ms100, ms120, ms140, ms160, ms180, ms200, ms220, + ms240, ms260, ms280, ms300, ms500, ms750, ms1000, ms1250, ms1500, ms1750, ms2000, ms2250, ms2500, ms2750, + ms3000} OPTIONAL, -- Need R + + -- FFS: whether ms0 is the same like outOfOrderDelivery + -- FFS: new values for t-Reordering + outOfOrderDelivery BOOLEAN, + ... +} + +-- TAG-PDCP-CONFIG-STOP +-- TAG-PDSCH-CONFIG-START + +PDSCH-Config ::= SEQUENCE { + -- Indicates whether to use code-block-group (CBG) based transmission (see 38.213, section x.x.x.x) FFS_Ref + -- FFS: Is this BOOLEAN parameter needed or can it be derived from the presence of the codeBlockGroupsPerTransportBlock? + codeBlockGroupTransmission BOOLEAN, + -- Maximum number of code-block-groups (CBGs) per TB. In case of multiple CW the maximum CBG is 4 (see 38.213, section 9.1.1) + maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, + -- Indicates whether CBGFI for CBG based (re)transmission in DL is enabled (true). (see FFS_Specification, section FFS_Section) + codeBlockGroupFlushIndicator BOOLEAN, + + -- Selection of the DMRS type to be used for DL (see 38.211, section 7.4.1.1.1) + dmrs-Type ENUMERATED {type1, type2} OPTIONAL, -- Need R + -- Position for additional DM-RS in DL, see Table 7.4.1.1.2-4 in 38.211. + -- The four values represent the cases of 1+0, 1+1, 1+1+1. 1+1+1+1 non-adjacent OFDM symbols for DL. + -- CHECK: Listed in RAN1 table. But should this really be in dedicated signalling? + dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos2, pos3} OPTIONAL, -- Need R + -- DM-RS groups that are QCL:ed, i.e. group 1 (see 38.214, section 5.1) + -- CHECK: Clarify how to configure the DMRS groups and the relation to TCI. + dmrs-group1 NULL, -- WS modification: was TYPE_FFS! + -- DM-RS groups that are QCL:ed, i.e. group 2 (see 38.214, section 5.1) + dmrs-group2 NULL, -- WS modification: was TYPE_FFS! + + -- Configures downlink PTRS . + -- If absent of released, the UE assumes that downlink PTRS are not present. See 38.211 section 7.4.1.2.2 + phaseTracking-RS CHOICE { + release NULL, + setup Downlink-PTRS-Config + } OPTIONAL, -- Need M + + -- Contains Transmission Configuration Indicator (TCI) states for dynamically indicating (over DCI) a transmission configuration + -- which includes QCL-relationships between the DL RSs in one RS set and the PDSCH DMRS ports + -- (see 38.214, section 5.1.4) + tci-States NULL, -- WS modification: was TYPE_FFS! + -- Reference Signal set within a TCI state, e.g., which RSs, which QCL parameters, etc. (see 38.214, section 5.1.4) + tci-rs-SetConfig NULL, -- WS modification: was TYPE_FFS! + -- If at least spatial QCL is configured/indicated, this field indicates if TCI field is present or not present in DL-related DCI. + -- When the field is absent the UE considers the TCI to be absent/disabled. + -- FFS_RAN1: details of the granularity of the configuration, e.g. per CORESET, per UE. + -- Corresponds to L1 parameter 'TCI-PresentInDCI' (see 38,213, section 5.1.5) + tci-PresentInDCI ENUMERATED {enabled} OPTIONAL, + -- Accounts for overhead from CSI-RS, CORESET, etc. FFS: Clarify value range and description. + -- Corresponds to L1 parameter 'Xoh-PDSCH' (see 38.214, section 5.1.3.2) + xOverhead ENUMERATED {n0, n6, n12, n18} OPTIONAL, -- WS modification: was FFS_Value, values retrieved from 38.214 + + -- Indexes to possible symbol allcoations (the indexes point to entries in a UE specific table) + -- Corresponds to L1 parameter 'PDSCH-symbol-allocation' (see 38.214, section 5.1.2.1) + pdsch-symbolAllocation NULL OPTIONAL, -- WS modification: was FFS_Value + -- Resources that the UE should rate match PDSCH around. + rateMatchResourcesPDSCH SEQUENCE { + -- Resources patterns which the UE should rate match PDSCH around. The UE rate matches around the union of all resources + -- indicated in the nexted bitmaps. Corresponds to L1 parameter 'rate-match-PDSCH-resource-set' (see 38.214, section 5.1.2.2.3) + -- FFS_ASN1: Consider replacing by AddMod/Release lists + rateMatchPatterns CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern + } OPTIONAL, -- Need M + lte-CRS-ToMatchAround CHOICE { + release NULL, + setup SEQUENCE { + -- Number of LTE CRS antenna port to rate-match around. + -- Corresponds to L1 parameter 'rate-match-resources-numb-LTE-CRS-antenna-port' (see 38.214, section 5.1.4) + nrofCRS-Ports ENUMERATED {n1, n2, n4}, + -- Shifting value v-shift in LTE to rate match around LTE CRS + -- Corresponds to L1 parameter 'rate-match-resources-LTE-CRS-v-shift' (see 38.214, section 5.1.4) + v-Shift ENUMERATED {n0, n1, n2, n3, n4, n5} + } + } OPTIONAL -- Need M + }, + + -- Selection between config 1 and config 2 for RBG size for PDSCH. Corresponds to L1 parameter 'RBG-size-PDSCH' (see 38.214, section 5.1.2.2.1) + rbg-Size ENUMERATED {config1, config2}, + + -- Indicates which MCS table the UE shall use for PDSCH. Corresponds to L1 parameter 'MCS-Table-PDSCH' (see 38.214, section 5.1.3.1). + mcs-Table ENUMERATED {dl-64QAM, dl-256QAM}, + + -- Maximum number of code words that a single DCI may schedule. This changes the number of MCS/RV/NDI bits in the DCI message from 1 to 2. + maxNrofCodeWordsScheduledByDCI ENUMERATED {n1, n2} OPTIONAL, -- Need R + + -- The number of HARQ processes to be used on the PDSCH of a serving cell. + -- Corresponds to L1 parameter 'number-HARQ-process-PDSCH' (see 38.214, section REF) + nrofHARQ-processesForPDSCH NULL, -- WS modification: was TYPE_FFS! + + + -- HARQ-ACK codebook is configured to be either semi-static of dynamic. This is applicable to both CA and none CA operation + -- Corresponds to L1 parameter 'HARQ-ACK-codebook' (see 38.213, section FFS_Section) + harq-ACK-Codebook ENUMERATED {semiStatic, dynamic}, + + -- Bundle size the UE may assume. Corresponds to L1 paramter 'PDSCH-bundle-size' (see 38.211, section 7.3.1.5) + -- FFS: Better description, value range + pdsch-BundleSize NULL, -- WS modification: no type was present + + -- If set to true, the network indicates the PRB bundle size dynamically via DCI. Corresponds to L1 parameter 'PRB_bundling' + -- (see 38.214, section 5.1.2.3) + prbBundlingEnabled BOOLEAN, + + ... +} + +-- Parameters for configuration of downlink PTRS (see 38.211 section 7.4.1.2.2) +Downlink-PTRS-Config ::= SEQUENCE { + -- Presence and frequency density of DL PT-RS as a function of Scheduled BW (see 38.214, section 5.1) + -- FFS: To be Configured per BWP + frequencyDensity NULL, -- WS modification: was TYPE_FFS! + -- Presence and time density of DL PT-RS as a function of MCS (see 38.214, section 5.1) + -- FFS: To be Configured per BWP + timeDensity NULL, -- WS modification: was TYPE_FFS! + -- Indicates the number of DL PTRS ports. This is equal or smaller than the number of DMRS groups (related to PDSCH parameters + -- dmrs-group1 and dmrs-group2). Corresponds to L1 parameter 'DL-PTRS-ports' (see 38.214, section 5.1) + nrofPorts ENUMERATED {n1, n2}, + -- EPRE ratio between PTRS and PDSCH. Corresponds to L1 parameter 'DL-PTRS-EPRE-ratio' (see 38.214, section 5.1) + -- FFS: Whether there is one EPRE value per port (a comment in the L1 parameters hints that) + epre-Ratio NULL OPTIONAL, -- WS modification: was FFS_Value + -- Indicates the subcarrier offset for DL PTRS. Corresponds to L1 parameter 'DL-PTRS-RE-offset' (see 38.214, section 5.1) + resourceElementOffset NULL OPTIONAL -- WS modification: was FFS_Value +} + +RateMatchPattern ::= SEQUENCE { + + -- A resource block level bitmap in the frequency domain. It indicates the PRBs to which the symbolsInResourceBlock bitmap applies. + -- Corresponds to L1 parameter 'rate-match-PDSCH-bitmap1' (see 38.214, section FFS_Section) + -- FFS_ASN1: Consider multiple options with different number of bits (for narrower carriers) + resourceBlocks BIT STRING (SIZE (275)), + + -- A symbol level bitmap in time domain. It indicates (FFS: with a bit set to true) the symbols which the UE shall rate match around. + -- This pattern recurs (in time domain) with the configured periodicityAndOffset. + -- Corresponds to L1 parameter 'rate-match-PDSCH-bitmap2' (see 38.214, section FFS_Section) + symbolsInResourceBlock BIT STRING (SIZE (14)), + + -- A time domain repetition pattern. It determines the periodicity (FFS: And offset???) at which the symbolsInResourceBlock pattern recurs. + -- Absence of this field indicates the value n1, i.e., the symbolsInResourceBlock recurs every 14 symbols. + -- Corresponds to L1 parameter 'rate-match-PDSCH-bitmap3' (see 38.214, section FFS_Section) + -- FFS: Doesn't one require also an offset to configure from where the repetitions start? + periodicityAndOffset CHOICE { + n5 INTEGER (0..4), + n10 INTEGER (0..9), + n20 INTEGER (0..19), + n40 INTEGER (0..39) + } OPTIONAL -- Need R + +} + +-- TAG-PDSCH-CONFIG-STOP +-- TAG-PHYS-CELL-ID-START + +PhysCellId ::= INTEGER (0..1007) + +-- TAG-PHYS-CELL-ID-STOP +-- TAG-PUCCH-CONFIG-START + +PUCCH-Config ::= SEQUENCE { + -- PUCCH resource sets (see 38.213 9.2) + resourceSets SEQUENCE (SIZE (1..1)) OF PUCCH-ResourceSet OPTIONAL, -- WS modification: was FFS_Value + + format1 CHOICE { + release NULL, + setup SEQUENCE { + -- Enabling inter-slot frequency hopping when PUCCH Format 1 is repetead over multiple slots. + interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, + -- Number of slots with the same PUCCH F1. When the field is absent the UE applies the value n1. + -- Corresponds to L1 parameter 'PUCCH-F1-number-of-slots' (see 38.213, section 9.2) + -- FFS_Value: Undefined values y1-y3 in range! + nrofSlots ENUMERATED {n1,ny1,y2,y3} OPTIONAL + } } OPTIONAL, -- Need M + + format2 CHOICE { + release NULL, + setup SEQUENCE { + -- Maximum coding rate to determine how to feedback UCI on PUCCH Format 2. + -- Corresponds to L1 parameter 'PUCCH-F2-maximum-coderate' (see 38.213, section 9.2) + maxCodeRate INTEGER (0..7) OPTIONAL, -- WS modification: was FFS_Value, 38.214 suggests those values + -- Number of PRBs for PUCCH Format 2. Corresponds to L1 parameter 'PUCCH-F2-number-of-PRBs' (see 38.213, section 9.2) + -- FFS_Value range + nrofPRBs INTEGER(1..16) OPTIONAL, + -- Enabling simultaneous transmission of CSI and HARQ-ACK feedback with or without SR with PUCCH Format2 + -- Corresponds to L1 parameter 'PUCCH-F2-Simultaneous-HARQ-ACK-CSI' (see 38.213, section 9.2) + -- When the field is absent the UE applies the value OFF + simultaneousHARQ-ACK-CSI ENUMERATED {true} OPTIONAL -- Need R + } } OPTIONAL, -- Need M + + + format3 CHOICE { + release NULL, + setup SEQUENCE { + -- Enabling inter-slot frequency hopping when PUCCH Format 3 is repetead over multiple slots. + interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, + -- Enabling 2 DMRS symbols per hop of a PUCCH Format 3 if both hops are more than X symbols when FH is enabled. + -- Enabling 4 DMRS sybmols for a PUCCH Format 3 with more than 2X+1 symbols when FH is disabled. + -- Corresponds to L1 parameter 'PUCCH-F3-F4-additional-DMRS' (see 38.21X, section FFS_Section) + additionalDMRS ENUMERATED {true} OPTIONAL, -- Need R + -- Max coding rate to determine how to feedback UCI on PUCCH Format 3 + -- Corresponds to L1 parameter 'PUCCH-F3-maximum-coderate' (see 38.213, section 9.2) + maxCodeRate INTEGER (0..7) OPTIONAL, -- WS modification: was FFS_Value, 38.214 suggests those values + -- Number of slots with the same PUCCH F3. When the field is absent the UE applies the value n1. + -- Corresponds to L1 parameter 'PUCCH-F3-number-of-slots' (see 38.213, section 9.2) + -- FFS_Value: Undefined values y1-y3 in range! + nrofSlots ENUMERATED {n1,y1,y2,y3} OPTIONAL, + -- Enabling pi/2 BPSK for UCI symbols instead of QPSK for PUCCH. + -- Corresponds to L1 parameter 'PUCCH-PF3-PF4-pi/2PBSK' (see 38.21X, section FFS_Section) + pi2PBSK ENUMERATED {enabled} OPTIONAL + } } OPTIONAL, -- Need M + + format4 CHOICE { + release NULL, + setup SEQUENCE { + -- Enabling inter-slot frequency hopping when PUCCH Format 4 is repetead over multiple slots. + interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, + -- Enabling 2 DMRS symbols per hop of a PUCCH Format 4 if both hops are more than X symbols when FH is enabled. + -- Enabling 4 DMRS sybmols for a PUCCH Format 4 with more than 2X+1 symbols when FH is disabled. + -- Corresponds to L1 parameter 'PUCCH-F3-F4-additional-DMRS' (see 38.21X, section FFS_Section) + additionalDMRS ENUMERATED {true} OPTIONAL, -- Need R + -- Max coding rate to determine how to feedback UCI on PUCCH Format 4 + -- Corresponds to L1 parameter 'PUCCH-F4-maximum-coderate' (see 38.213, section 9.2) + maxCodeRate INTEGER (0..7) OPTIONAL, -- WS modification: was FFS_Value, 38.214 suggests those values + -- Number of slots with the same PUCCH F4. When the field is absent the UE applies the value n1. + -- Corresponds to L1 parameter 'PUCCH-F4-number-of-slots' (see 38.213, section 9.2) + -- FFS_Value: Undefined values y1-y3 in range! + nrofSlots ENUMERATED {n1,y1,y2,y3} OPTIONAL, + -- Enabling pi/2 BPSK for UCI symbols instead of QPSK for PUCCH. + -- Corresponds to L1 parameter 'PUCCH-PF3-PF4-pi/2PBSK' (see 38.21X, section FFS_Section) + pi2PBSK ENUMERATED {enabled} OPTIONAL + } } OPTIONAL, -- Need M + + schedulingRequestResources CHOICE { + release NULL, + setup SEQUENCE (SIZE (1..maxNrofSchedulingRequestResoruces)) OF SchedulingRequestResource-Config + } OPTIONAL, -- Need M + + -- RNTI used for PUCCH TPC. Corresponds to L1 parameter 'TPC-PUCCH-RNTI' (see 38.213, section 10). + tpc-PUCCH-RNTI BIT STRING (SIZE (16)) OPTIONAL +} + +-- A set with one or more PUCCH resource configurations +PUCCH-ResourceSet ::= SEQUENCE { + -- FFS What a PUCCH resource set contains and how the PUCCH resources in a set link to DCIs codepoints. +} + +-- A PUCCH Format 0 resource configuration (see 38.213, section 9.2) +-- Corresponds to L1 parameter 'PUCCH-F0-resource-config' (see 38.213, section 9.2) +PUCCH-format0 ::= SEQUENCE { + startingSymbolIndex INTEGER(0..13), + nrofSymbols ENUMERATED {n1, n2}, + startingPRB INTEGER(0..maxNrofPhysicalResourceBlocks-1), + frequencyHopping BOOLEAN, + initialCyclicShift INTEGER(0..11) +} + +-- A PUCCH Format 1 resource configuration (see 38.213, section 9.2) +-- Corresponds to L1 parameter 'PUCCH-F1-resource-config' (see 38.213, section 9.2) +PUCCH-format1 ::= SEQUENCE { + startingSymbolIndex INTEGER(0..10), + nrofSymbols INTEGER(4..14), + startingPRB INTEGER(0..maxNrofPhysicalResourceBlocks-1), + frequencyHopping BOOLEAN, + initialCyclicShift INTEGER(0..11), + timeDomainOCC INTEGER(0..6) +} + +-- A PUCCH Format 2 resource configuration (see 38.213, section 9.2) +-- Corresponds to L1 parameter 'PUCCH-F2-resource-config' (see 38.213, section 9.2) +PUCCH-format2 ::= SEQUENCE { + startingSymbolIndex INTEGER(0..13), + nrofSymbols ENUMERATED {n1, n2}, + startingPRB INTEGER(0..maxNrofPhysicalResourceBlocks-1), + nrofPRBs PUCCH-F2-number-of-PRB, + frequencyHopping BOOLEAN +} + +-- A PUCCH Format 3 resource configuration(see 38.213, section 9.2) +-- Corresponds to L1 parameter 'PUCCH-F3-resource-config' (see 38.213, section 9.2) +PUCCH-format3 ::= SEQUENCE { + startingSymbolIndex INTEGER(0..10), + nrofSymbols INTEGER(4..14), + startingPRB INTEGER(0..maxNrofPhysicalResourceBlocks-1), + nrofPRBs ENUMERATED {n1,n2,n3,n4,n5,n6,n8,n9,n10,n12,n15,n16}, + frequencyHopping BOOLEAN +} + +-- A PUCCH Format 4 resource configuration (see 38.213, section 9.2) +-- Corresponds to L1 parameter 'PUCCH-F4-resource-config' (see 38.213, section 9.2) +PUCCH-format4 ::= SEQUENCE { + startingSymbolIndex INTEGER(0..10), + nrofSymbols INTEGER(4..14), + startingPRB INTEGER(0..maxNrofPhysicalResourceBlocks-1), + frequencyHopping BOOLEAN, + occ-Length ENUMERATED {n2,n4}, + occ-Index ENUMERATED {n0,n1,n2,n3} +} + + +-- TAG-PUCCH-CONFIG-STOP +-- TAG-PUSCH-CONFIG-START + +PUSCH-Config ::= SEQUENCE { + -- Indicates whether to use code-block-group (CBG) based transmission (see 38.214, section x.x.x.x) FFS_Ref + -- FFS: Is this BOOLEAN parameter needed or can it be derived from the presence of the codeBlockGroupsPerTransportBlock? + codeBlockGroupTransmission ENUMERATED {true} OPTIONAL, -- Need R + -- Maximum number of code-block-groups (CBGs) per TB (see 38.xxx, section x.x.x, FFS_Ref) + maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, + + -- Selection of the DMRS type to be used for UL (see section 38.211, section 6.4.1.1.2) + dmrs-Type ENUMERATED {type1, type2} OPTIONAL, -- Need R + -- Position for additional DM-RS in DL, see Table 7.4.1.1.2-4 in 38.211. + -- The four values represent the cases of 1+0, 1+1, 1+1+1. 1+1+1+1 non-adjacent OFDM symbols for DL. + dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos2, pos3} OPTIONAL, -- Need R + + -- Configures uplink PTRS (see 38.211, section x.x.x.x) FFS_Ref + phaseTracking-RS CHOICE { + release NULL, + setup Uplink-PTRS-Config } OPTIONAL, -- Need M + + + + + -- If enabled, UE applies TPC commands via accumulation. If not enabled, UE applies the TPC command without accumulation. + -- (see 38.213, section 7) + -- FFS: Collect all power control parameters in a common section or keep them per channel? + tpcAccumulation ENUMERATED { enabled } OPTIONAL, -- Need R + + -- RNTI used for PUSCH TPC + -- Corresponds to L1 parameter 'TPC-PUSCH-RNTI' (see 38.213, section 10) + tcp-PUSCH-RNTI BIT STRING (SIZE (16)) OPTIONAL, + -- Configured one of two supported frequency hopping mode. If not configured frequency hopping is not configured + -- Corresponds to L1 parameter 'Frequency-hopping-PUSCH' (see 38.214, section 6) + -- When the field is absent the UE applies the value Not configured + frequencyHopping ENUMERATED {mode1, mode2}, + -- Configure either LBRM or FBRM for PUSCH. FBRM = Full buffer rate-matchingLBRM = Limited buffer rate-matching + -- Corresponds to L1 parameter 'LBRM-FBRM-selection' (see 38.212, section 5.4.2) + rateMatching ENUMERATED {fullBufferRM, limitedBufferRM}, + -- Resources that the UE should rate match PUSCH around (see 38.214, section REF) + rateMatchResources NULL, -- WS modification: was TYPE_FFS! + -- Configuration of DCI code points that determine PUSCH resource allocations. + -- Corresponds to L1 parameter 'PUSCH-symbol-allocation' (see 38.214, section 6.1.2.1) + symbolAllocationIndexs NULL OPTIONAL, -- WS modification: was FFS_Value + + -- Indicates which MCS table the UE shall use for PUSCH without transform precoder + -- Corresponds to L1 parameter 'MCS-Table-PUSCH' (see 38.214, section 6.1.4) + -- When the field is absent the UE applies the value 64QAM + mcs-Table ENUMERATED {ul-64QAM, ul-256QAM}, + -- Indicates which MCS table the UE shall use for PUSCH with transform precoding + -- Corresponds to L1 parameter 'MCS-Table-PUSCH-transform-precoding' (see 38.214, section 6.1.4) + -- When the field is absent the UE applies the value 64QAM + mcs-TableTransformPrecoder ENUMERATED {ul-64QAM, ul-256QAM}, + -- The UE specifically selection of transformer precoder for PUSCH. When the field is absent the UE applies the value msg3-tp. + -- Corresponds to L1 parameter 'PUSCH-tp' (see 38.211, section 6.3.1.4) + transformPrecoder ENUMERATED {enabled} OPTIONAL, + + -- Selection between config 1 and config 2 for RBG size for PUSCH. Corresponds to L1 parameter 'RBG-size-PUSCH' (see 38.214, section 6.1.2.2.1) + rbg-Size ENUMERATED {config1, config2}, + + -- Select between and configuration of dynamic and semi-static beta-offset + -- Corresponds to L1 parameter 'UCI-on-PUSCH' (see 38.214, section 9.3) + uci-on-PUSCH CHOICE { + release NULL, + setup CHOICE { + dynamic SEQUENCE (SIZE (1..4)) OF BetaOffsets, + semiStatic BetaOffsets + } } OPTIONAL, -- Need M + + -- Accounts for overhead from CSI-RS, CORESET, etc. FFS: Clarify value range and description. + -- Corresponds to L1 parameter 'Xoh-PDSCH' (see 38.214, section 5.1.3.2) + xOverhead ENUMERATED {n0, n6, n12, n18} OPTIONAL, -- WS modification: was FFS_Value, values retrieved from 38.214 + + ... +} + +-- Configuration of Uplink Phase-Tracking-Reference-Signals (PTRS) +-- FFS: Is it possible to configure PTRS for CP-OFDM and DFT-S OFDM simultaneously or just one. If the latter, replace below by a CHOICE. +Uplink-PTRS-Config ::= SEQUENCE { + -- Configuration of UL PTRS for CP-OFDM + cp-OFDM CHOICE { + release NULL, + setup SEQUENCE { + -- Presence and frequency density of UL PT-RS for CP-OFDM waveform as a function of scheduled BW (see 38.214, section 6.1) + -- FFS: Configuration is supposed to be per BWP according to RAN1 + frequencyDensity NULL, -- WS modification: was TYPE_FFS! + -- Presence and time density of UL PT-RS for CP-OFDM waveform as a function of MCS (see 38.214, section 6.1) + -- FFS: Configuration is supposed to be per BWP according to RAN1 + timeDensity NULL, -- WS modification: was TYPE_FFS! + -- Indicator related to the number of UL PTRS ports for CP-OFDM. Details to be further decided. + -- Corresponds to L1 parameter 'UL-PTRS-ports' (see 38.214, section 6.1) + nrofPorts ENUMERATED {n1, n2}, + -- Indicates the subcarrier offset for UL PTRS for CP-OFDM. Corresponds to L1 parameter 'UL-PTRS-RE-offset' (see 38.214, section 6.1) + resourceElementOffset NULL OPTIONAL -- WS modification: was FFS_Value + } + } OPTIONAL, -- Cond M + -- Configuration of UL PTRS for DFT-S-OFDM. + dft-S-OFDM CHOICE { + release NULL, + setup SEQUENCE { + -- Sample density of PT-RS for DFT-s-OFDM, pre-DFT, indicating a set of thresholds T={NRBn,n=0,1,2,3,4}, + -- that indicates dependency between presence of PT-RS and scheduled BW and the values of X and K the UE should + -- use depending on the scheduled BW according to the table in 38.214 FFS_Section. + -- FFS: Configuration is supposed to be per BWP according to RAN1 + -- Corresponds to L1 parameter 'UL-PTRS-pre-DFT-density' (see 38.214, section 6.1) + sampleDensity NULL OPTIONAL, -- WS modification: was FFS_Value + -- Time density (OFDM symbol level) of PT-RS for DFT-s-OFDM + -- Corresponds to L1 parameter 'UL-PTRS-time-density-transform-precoding' (see 38.214, section 6.1) + timeDensity ENUMERATED {d1, d2} OPTIONAL, + -- PTRS sequence for DFT-s-OFDM. Corresponds to L1 parameter 'UL-PTRS-sequence-transform-precoding' (see 38.214, section 6.1) + sequence NULL OPTIONAL -- WS modification: was FFS_Value + } + } OPTIONAL -- Cond M +} + +-- A set of beta-offset values +BetaOffsets ::= SEQUENCE { + -- Up to 2 bits HARQ-ACK. Corresponds to L1 parameter 'betaOffset-ACK-Index-1' (see 38.213, section 9.3) + -- When the field is absent the UE applies the value 11 + betaOffsetACK-Index1 INTEGER(0..31) OPTIONAL, -- Need M + -- Up to 11 bits HARQ-ACK. Corresponds to L1 parameter 'betaOffset-ACK-Index-2' (see 38.213, section 9.3) + -- When the field is absent the UE applies the value 11 + betaOffsetACK-Index2 INTEGER(0..31) OPTIONAL, -- Need M + -- Above 11 bits HARQ-ACK. Corresponds to L1 parameter 'betaOffset-ACK-Index-3' (see 38.213, section 9.3) + -- When the field is absent the UE applies the value 11 + betaOffsetACK-Index3 INTEGER(0..31) OPTIONAL, -- Need M + -- Up to 11 bits of CSI part 1 bits. Corresponds to L1 parameter 'betaOffset-CSI-part-1-Index-1' (see 38.213, section 9.3) + -- When the field is absent the UE applies the value 13 + betaOffsetCSI-part1-Index1 INTEGER(0..31) OPTIONAL, -- Need M + -- Above 11 bits of CSI part 1 bits. Corresponds to L1 parameter 'betaOffset-CSI-part-1-Index-2' (see 38.213, section 9.3) + -- When the field is absent the UE applies the value 13 + betaOffsetCSI-part1-Index2 INTEGER(0..31) OPTIONAL, -- Need M + -- Up to 11 bits of CSI part 2 bits. Corresponds to L1 parameter 'betaOffset-CSI-part-2-Index-1' (see 38.213, section 9.3) + -- When the field is absent the UE applies the value 13 + betaOffsetCSI-part2-Index1 INTEGER(0..31) OPTIONAL, -- Need M + -- Above 11 bits of CSI part 2 bits. Corresponds to L1 parameter 'betaOffset-CSI-part-2-Index-2' (see 38.213, section 9.3) + -- When the field is absent the UE applies the value 13 + betaOffsetCSI-part2-Index2 INTEGER(0..31) OPTIONAL -- Need M +} + +-- TAG-PUSCH-CONFIG-STOP + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + +-- TAG-QUANTITY-CONFIG-START +-- WS modification: missing QUantityConfig definiton start; let's add a fake one +QuantityConfig ::= SEQUENCE { + quantityConfigRSindex QuantityConfigRS OPTIONAL +} + +QuantityConfigRS ::= SEQUENCE { + -- SS Block based + ssbFilterCoefficientRSRP FilterCoefficient OPTIONAL, -- WS modification: was DEFAULT_FFS! + ssbFilterCoefficientRSRQ FilterCoefficient OPTIONAL, -- WS modification: was DEFAULT_FFS! + ssbFilterCoefficientRS-SINR FilterCoefficient OPTIONAL, -- WS modification: was DEFAULT_FFS! + + -- CSI-RS based + csi-rsFilterCoefficientRSRP FilterCoefficient OPTIONAL, -- WS modification: was DEFAULT_FFS! + csi-rsFilterCoefficientRSRQ FilterCoefficient OPTIONAL, -- WS modification: was DEFAULT_FFS! + csi-rsFilterCoefficientRS-SINR FilterCoefficient OPTIONAL -- WS modification: was DEFAULT_FFS! +} + +-- TAG-QUANTITY-CONFIG-STOP +-- TAG-RACH-CONFIG-COMMON-START + +RACH-ConfigCommon ::= SEQUENCE { + + -- FFS: whether any of the parameter(s) in the L1 TP should be within CBRA-SSB-ResourceList + groupBconfigured SEQUENCE { + -- FFS: ra-Msg3SizeGroupA values + ra-Msg3SizeGroupA ENUMERATED {b56, b144, b208, b256, b282, b480, b640, b800, b1000, spare7, spare6, spare5, + spare4, spare3, spare2, spare1}, + -- FFS: Need and definition of messagePowerOffsetGroupB + messagePowerOffsetGroupB ENUMERATED { minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18} + } OPTIONAL, + + cbra-SSB-ResourceList CBRA-SSB-ResourceList, + + ra-ContentionResolutionTimer ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64}, + + -- Msg1 (RA preamble): UE may select the SS block and corresponding PRACH resource for path-loss estimation and (re)transmission + -- based on SS blocks that satisfy the threshold (see 38.213, section REF) + ssb-Threshold NULL OPTIONAL, -- WS modification: was TYPE_FFS! + -- FFS: Provide proper description + -- Corresponds to L1 parameter 'SUL-RSRP-Threshold' (see FFS_Spec, section FFS_Section) + sul-RSRP-Threshold NULL OPTIONAL, -- WS modification: was TYPE_FFS! + + -- PRACH configuration index. Corresponds to L1 parameter 'PRACHConfigurationIndex' (see 38.211, section 6.3.3.2) + prach-ConfigurationIndex INTEGER (0..255) OPTIONAL, + -- PRACH root sequence index. Corresponds to L1 parameter 'PRACHRootSequenceIndex' (see 38.211, section 6.3.3.1). + -- The value range depends on whether L=839 or L=139 + prach-RootSequenceIndex CHOICE { + l839 INTEGER (0..837), + l139 INTEGER (0..137) + } OPTIONAL, + + -- N-CS configuration, see Table 6.3.3.1-3 in 38.211 + zeroCorrelationZoneConfig INTEGER(0..15), + -- Configuration of restricted sets, see 38.211 6.3.3.1 + -- CHECK: RAN1 value said "restrictedTypeA". Does it mean "restrictedToTypeA"? If not, what else? + restrictedSetConfig ENUMERATED {unrestricted, restrictedToTypeA, restrictedToTypeB}, + -- (see 38.213, section 7.4) + preambleReceivedTargetPower ENUMERATED { + dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, dBm-100, + dBm-98, dBm-96, dBm-94,dBm-92, dBm-90, dBm-88, dBm-86, dBm-84,dBm-82, dBm-80, dBm-78, dBm-76, + dBm-74, dBm-72, dBm-70, dBm-68, dBm-66, dBm-64, dBm-62, dBm-60, dBm-58, dBm-56, dBm-54, dBm-52, dBm-50, dBm-48, dBm-46, dBm-44, dBm-42, dBm-42, dBm-40, dBm-38, dBm-36, dBm-34, dBm-32, dBm-30, dBm-28, dBm-26, dBm-24, dBm-22, dBm-20, dBm-18, dBm-16, dBm-14, dBm-12, dBm-10, dBm-8, dBm-6, dBm-4, dBm-2, dBm-0, dBm2, dBm4, dBm6 } OPTIONAL, + -- Power ramping steps for PRACH (see 38.321, FFS_section) + powerRampingStep ENUMERATED {dB0, dB2, dB4, dB6} OPTIONAL, -- Need R + + -- CHECK: PreambleTransMax parameter usage (parameter was not provided by RAN1 and not yet discussed in RAN2) + preambleTransMax ENUMERATED {n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200}, + + + -- Msg2 (RAR) window length. Corresponds to L1 parameter 'msg2-scs' (see 38.213, section 8.1) + ra-ResponseWindow NULL, -- Subcarrier spacing for msg2 for contention-free RA procedure for handover. WS modification: was TYPE_FFS! + -- Corresponds to L1 parameter 'msg2-scs' (see 38.321?, section FFS_Section) + msg2-SubcarrierSpacing SubcarrierSpacing, + -- CORESET configured for random access. When the field is absent the UE uses the CORESET according to pdcchConfigSIB1 + -- Corresponds to L1 parameter 'rach-coreset-configuration' (see 38.211?, section FFS_Section) + rach-ControlResourceSet NULL OPTIONAL, -- WS modification: was FFS_Value + + -- Subcarrier spacing for Msg3. Corresponds to L1 parameter 'msg3-scs' (see 38.213, section 8.1) + msg3-SubcarrierSpacing SubcarrierSpacing, + -- Indicates to a UE whether transform precoding is enabled for Msg3 transmission. + -- Corresponds to L1 parameter 'msg3-tp' (see 38.213, section 8.1) + msg3-transformPrecoding ENUMERATED {true} OPTIONAL -- Need R +} + +CBRA-SSB-ResourceList ::= SEQUENCE (SIZE(1..maxRAssbResources)) OF CBRA-SSB-Resource +CBRA-SSB-Resource ::= SEQUENCE { + ssb SSB-ID, + startIndexRA-PreambleGroupA PreambleStartIndex, + numberofRA-PreamblesGroupA NumberOfRA-Preambles, + numberOfRA-Preambles NumberOfRA-Preambles, + + -- PRACH configuration for SSB configuration (i.e. time and frequency location) + -- FFS / TODO: Type Definition for RA-Resources. + ra-Resources RA-Resources +} + +PreambleStartIndex ::= INTEGER (0..maxRA-PreambleIndex) +NumberofRA-Preambles ::= INTEGER (1.. maxNrOfRA-PreamblesPerSSB) + +-- TAG-RACH-CONFIG-COMMON-STOP +-- TAG-RACH-CONFIG-DEDICATED-START + +-- FFS: resources for msg1-based on-demand SI request +-- FFS: resources for beam failure recovery request + +RACH-ConfigDedicated ::= SEQUENCE { + -- Resources for handover to the cell + cfra-Resources CFRA-Resources, + -- Subcarrier spacing for msg2 for contention-free RA procedure for handover + rar-SubcarrierSpacing SubcarrierSpacing +} + +-- FFS_CHECK: Isn't it sufficient to have just one list and the CHOICE inside the list element (around the ssb/csirs)? +CFRA-Resources ::= CHOICE { + cfra-ssb-ResourceList SEQUENCE (SIZE(1..maxRAssbResources)) OF CFRA-SSB-Resource, + cfra-csirs-ResourceList SEQUENCE (SIZE(1..maxRAcsirsResources)) OF CFRA-CSIRS-Resource +} + +CFRA-SSB-Resource ::= SEQUENCE { + ssb SSB-ID, + ra-PreambleIndex INTEGER (0..0), -- WS modification: was FFS_XX + -- PRACH configuration for SSB configuration (i.e. time and frequency location) + ra-Resources RA-Resources -- Definition FFS +} + +CFRA-CSIRS-Resource ::= SEQUENCE { + csirs CSIRS-ID, -- FFS where the CSI-RS are defined (e.g. MO) + ra-PreambleIndex INTEGER (0..0), -- WS modification: was FFS_XX + -- PRACH configuration for CSIRS configuration (i.e. time and frequency location) + ra-Resources RA-Resources -- Definition FFS +} + +-- TAG-RACH-CONFIG-DEDICATED-STOP +-- TAG-RADIO-BEARER-CONFIG-START + +RadioBearerConfig ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Need M + srb-ToReleaseList INTEGER (3) OPTIONAL, -- Need M + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Need M + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need M + securityConfig SecurityConfig OPTIONAL -- Cond KeyChange +} + +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod +SRB-ToAddMod ::= SEQUENCE { + srb-Identity SRB-Identity, + + -- may only be set if the cell groups of all linked logical channels are reset or released + reestablishPDCP ENUMERATED{true} OPTIONAL, -- Cond KeyChange + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + ... +} + + +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod +DRB-ToAddMod ::= SEQUENCE { + cnAssociation CHOICE { + -- The EPS bearer ID determines the EPS bearer when NR connects to EPC using EN-DC + eps-BearerIdentity INTEGER (0..15), -- Cond EPS-DRB-Setup + -- The SDAP configuration determines how to map QoS flows to DRBs when NR connects to the 5GC + sdap-Config SDAP-Config -- Cond NGC + }, + drb-Identity DRB-Identity, + + -- may only be set if the cell groups of all linked logical channels are reset or released + reestablishPDCP ENUMERATED{true} OPTIONAL, -- Cond HO + recoverPDCP ENUMERATED{true} OPTIONAL, -- Need N + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + ... +} + +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity + + +SecurityConfig ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Need M + keyToUse ENUMERATED{keNB, s-KgNB} OPTIONAL, -- Need M + ... +} + +-- TAG-RADIO-BEARER-CONFIG-STOP +-- TAG-REPORT-CONFIG-ID-START + +ReportConfigId ::= INTEGER (1..maxNrofReportConfigId) + +-- TAG-REPORT-CONFIG-ID-STOP +-- TAG-REPORT-CONFIG-START + +ReportConfigNR ::= SEQUENCE { + reportType CHOICE { + periodical PeriodicalReportConfig, + eventTriggered EventTriggerConfig, + reportCGI NULL, -- WS modification: was Type_FFS! + ... + } +} + +-- FFS / TODO: Consider separating trgger configuration (trigger, periodic, ...) from report congiguration. +-- Current structure allows easier definiton of new events and new report types e.g. CGI, etc. +EventTriggerConfig::= SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold MeasTriggerQuantity, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + eventA2 SEQUENCE { + a2-Threshold MeasTriggerQuantity, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + eventA3 SEQUENCE { + a3-Offset MeasTriggerQuantityOffset, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + useWhiteCellList BOOLEAN OPTIONAL + }, + eventA4 SEQUENCE { + a4-Threshold MeasTriggerQuantity, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + useWhiteCellList BOOLEAN OPTIONAL + }, + eventA5 SEQUENCE { + a5-Threshold1 MeasTriggerQuantity, + a5-Threshold2 MeasTriggerQuantity, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + useWhiteCellList BOOLEAN OPTIONAL + }, + eventA6 SEQUENCE { + a6-Offset MeasTriggerQuantityOffset, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + useWhiteCellList BOOLEAN OPTIONAL + } + }, + + rsType ENUMERATED {ss, csi-rs}, + + -- Common reporting config (at least to periodical and eventTriggered) + reportInterval ReportInterval, + reportAmount ENUMERATED {ffs}, -- WS modification: was FFS! + + -- Cell reporting configuration + reportQuantityCell MeasReportQuantity, + maxReportCells INTEGER (1..maxCellReport), + + -- RS index reporting configuration + reportQuantityRsIndexes MeasReportQuantity OPTIONAL, + maxNroIndexesToReport INTEGER (1..maxNroIndexesToReport) OPTIONAL, + onlyReportBeamIds BOOLEAN OPTIONAL, + + -- If configured the UE includes the best neighbour cells per serving frequency + reportAddNeighMeas NULL -- WS modification: was TYPE_FFS! +} + +PeriodicalReportConfig ::= SEQUENCE { + rsType ENUMERATED {ssb, csi-rs}, + + -- Common reporting config (at least to periodical and eventTriggered) + reportInterval ReportInterval, + reportAmount ENUMERATED {ffs}, -- WS modification: was FFS! + + -- Cell reporting configuration + reportQuantityCell MeasReportQuantity, + maxReportCells INTEGER (1..maxCellReport), + + -- RS index reporting configuration + reportQuantityRsIndexes MeasReportQuantity OPTIONAL, + maxNroRsIndexesToReport INTEGER (1..maxNroIndexesToReport) OPTIONAL, + onlyReportBeamIds BOOLEAN OPTIONAL +} + +MeasTriggerQuantity::= CHOICE { + rsrp RSRPRange, + rsrq RSRQRange, + sinr SINRRange +} + +MeasTriggerQuantityOffset::= CHOICE { + rsrp INTEGER (0), -- WS modification: was FFS! + rsrq INTEGER (0), -- WS modification: was FFS! + sinr INTEGER (0) -- WS modification: was FFS! +} + + +MeasReportQuantity::= SEQUENCE { + rsrp BOOLEAN, + rsrq BOOLEAN, + sinr BOOLEAN +} + + +-- TAG-REPORT-CONFIG-START +-- TAG-REPORT-CONFIG-TO-ADD-MOD-LIST-START + +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod + +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigNR ReportConfigNR, + reportConfigEUTRA ReportConfigEUTRA + } +} + +-- TAG- REPORT-CONFIG-TO-ADD-MOD-LIST-STOP +-- TAG-RLC-CONFIG-START + +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +UL-AM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength-AM, + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { t1, t2, t3, t4, t6, t8, t16, t32 } +} + +DL-AM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength-AM, + t-Reassembly T-Reassembly, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength-UM +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLength-UM, + t-Reassembly T-Reassembly +} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800, ms1000, + ms2000, ms4000, spare5, spare4, spare3, + spare2, spare1} + + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384, p20480, + p24576, p28672, p32768, p40960, p49152, p57344, p65536, infinity, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1} + +PollByte ::= ENUMERATED { + kB1, kB2, kB5, kB8, kB10, kB15, kB25, kB50, kB75, + kB100, kB125, kB250, kB375, kB500, kB750, kB1000, + kB1250, kB1500, kB2000, kB3000, kB4000, kB4500, + kB5000, kB5500, kB6000, kB6500, kB7000, kB7500, + mB8, mB9, mB10, mB11, mB12, mB13, mB14, mB15, + mB16, mB17, mB18, mB20, mB25, mB30, mB40, infinity, + spare20, spare19, spare18, spare17, spare16, + spare15, spare14, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} + +T-Reassembly ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, spare1} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800, ms1000, + ms1200, ms1600, ms2000, ms2400, spare2, spare1} + +SN-FieldLength-UM ::= ENUMERATED {size6, size12} +SN-FieldLength-AM ::= ENUMERATED {size12, size18} + +-- TAG-RLC-CONFIG-STOP +-- TAG-RLF-TIMERS-AND-CONSTANTS-START + +RLF-TimersAndConstants ::= SEQUENCE { + -- FFS / TODO: Add RRC parameters such as timers and constants. +} + +-- TAG-RLF-TIMERS-AND-CONSTANTS-STOP +-- TAG-SCELL-INDEX-START + +-- FFS: Value range and usage across Cell Groups (shared value range or separate value range). RAN1 indicated 16 serving cells per CG. +SCellIndex ::= INTEGER (1..31) + +-- TAG-SCELLINDEX-STOP +-- TAG-SCHEDULING-REQUEST-CONFIG-START + +SchedulingRequestConfig ::= SEQUENCE { + schedulingRequestToAddModList SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF SchedulingRequestToAddMod OPTIONAL, -- Need N + schedulingRequestToReleaseList SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF SchedulingRequestId OPTIONAL -- Need N +} + +SchedulingRequestToAddMod ::= SEQUENCE { + schedulingRequestID SchedulingRequestId, + + sr-prohibitTimer ENUMERATED {ms1, ms2, ms4, ms8, ms16, ms32, ms64, ms128}, + sr-TransMax ENUMERATED { n4, n8, n16, n32, n64, spare3, spare2, spare1} +} + +-- FFS_TODO: provide resources for each SchedulingRequestID in ServingCellConfigDedicated (TBD whether directly, in PUCCH-Config, in each BWP) + +-- TAG-SCHEDULING-REQUEST-CONFIG-STOP +-- TAG-SDAP-CONFIG-START + +SDAP-Config ::= SEQUENCE { + -- FFS / TODO: Definition of PDUsessionID to be added + pduSession PDUsessionID, + + -- FFS: separate configuration for UL and DL + sdap-Header-DL ENUMERATED {present, absent}, + sdap-Header-UL ENUMERATED {present, absent}, + defaultDRB BOOLEAN, + reflectiveQoS BOOLEAN, -- It is FFS whether this field is needed + + -- FFS: Is the simple list sufficient? Replace by add/mod/release list? Or bitmap? + mappedQoSflows SEQUENCE (SIZE (0..maxNrofQFIs)) OF QFI OPTIONAL, -- Need N + ... +} + + +QFI ::= INTEGER (0..maxQFI) + +-- TAG-SDAP-CONFIG-STOP + +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm CipheringAlgorithm, + integrityProtAlgorithm IntegrityProtAlgorithm + +} + +IntegrityProtAlgorithm ::= ENUMERATED { + nia0, nia1, nia2, nia3, spare4, spare3, + spare2, spare1, ...} + +CipheringAlgorithm ::= ENUMERATED { + nea0, nea1, nea2, nea3, spare4, spare3, + spare2, spare1, ...} + +-- TAG-SERV-CELL-INDEX-START + +ServCellIndex ::= INTEGER (0..16) + +-- TAG-SERV-CELL-INDEX-STOP +-- TAG-SERVING-CELL-CONFIG-COMMON-START + +ServingCellConfigCommon ::= SEQUENCE { + + -- Parameters identifying the target cell (reconfiguration with sync, SCell addition, PSCell addition) + -- FFS: Need to indicate initial BWP here? + -- FFS: Update the following based on input from RAN1 and RAN4 + physCellId PhysCellId OPTIONAL, -- Cond HOAndSCellAdd, + frequencyInfoDL SEQUENCE { + carrierFreqDL ARFCN-ValueNR, + carrierBandwidthDL CarrierBandwidthNR + } OPTIONAL, -- Cond InterFreqHOAndSCellAdd + frequencyInfoUL FrequencyInfoUL OPTIONAL, -- Cond InterFreqHOAndUplinkSCellAdd + + -- FFS: How to indicate the FrequencyInfoUL for the SUL + supplementaryUplink SEQUENCE { + frequencyInfoUL FrequencyInfoUL + -- FFS: Add additional (selection) criteria determining when/whether the UE shall use the SUL frequency + } OPTIONAL, -- Cond SUL + + + -- Subcarrier spacing for SIB1, Msg.2/4 for initial access and SI-messages. + -- Values 15, and 30 kHz are applicable for carrier frequencies <6GHz; Values 60 and 120 kHz are applicable for carrier frequencies >6GHz + subcarrierSpacingCommon SubcarrierSpacing, + + -- The frequency domain offset between SSB and the overall resource block grid in number of subcarriers. + -- Absence of the field indicates that no offset if applied (offset = 0). See 38.211, section 7.4.3.1) + ssb-subcarrier-offset INTEGER (1..11) OPTIONAL, + + -- Indicates the time domain positions of the transmitted SS-blocks in an SS-burst. + -- Corresponds to L1 parameter 'SSB-Transmitted' (see 38.213, section 4.1) + -- FFS_CECHK: Is the NW required to provide always a valid bitmap? If not, we cannot use "need M" + ssb-PositionsInBurst CHOICE { + -- bitmap for sub 3 GHz + shortBitmap BIT STRING (SIZE (4)), + -- bitmap for 3-6 GHz + mediumBitmap BIT STRING (SIZE (8)), + -- bitmap for above 6 GHz + longBitmap BIT STRING (SIZE (64)) + } OPTIONAL, -- Need M, + + -- The SSB periodicity in msec for the rate matching purpose (see 38.211, section [7.4.3.1]) + ssb-periodicityServingCell ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160 } OPTIONAL, + + -- CHECK: This field is usually in MIB. Assuming that the UE does not need to acquire MIB before sending RA to target cell, this parameter + -- should also be here + -- Position of (first) DL DM-RS (see 38.211, section 7.4.1.1.1) + dmrs-TypeA-Position ENUMERATED {pos2, pos3}, + + + -- Subcarrier spacing of SSB. Used only for non-initial access (e.g. SCells, PCell of SCG). + -- If the field is absent the UE shall assume the default value of the band. + -- FFS in RAN1: Possibility to have several default values? May the field be absent in that case? + subcarrierSpacingSSB SubcarrierSpacingSSB OPTIONAL, -- Need R + + tdd-UL-DL-configurationCommon SEQUENCE { + -- Periodicity of the DL-UL pattern. Corresponds to L1 parameter 'DL-UL-transmission-periodicity' (see 38.211, section FFS_Section) + dl-UL-TransmissionPeriodicity ENUMERATED {ms0dot5, ms1, ms2, ms5, ms10} OPTIONAL, + + -- Number of consecutive full DL slots at the beginning of each DL-UL pattern. + -- Corresponds to L1 parameter 'number-of-DL-slots' (see 38.211, section FFS_Section) + -- FFS_Value: Verify that 160 is correct (maximum number of slots within the longest period (10 ms) and the largest subcarrier spacing. + nrofDownlinkSlots INTEGER (0..160) OPTIONAL, + + -- Number of consecutive DL symbols in the beginning of the slot following the last full DL slot (as derived from nrofDownlinkSlots). + -- Corresponds to L1 parameter 'number-of-DL-symbols-common' (see 38.211, section FFS_Section). + nrofDownlinkSymbols INTEGER (0..maxSymbolIndex) OPTIONAL, + + -- Number of consecutive full UL slots at the end of each DL-UL pattern. + -- Corresponds to L1 parameter 'number-of-UL-slots' (see 38.211, section FFS_Section) + -- FFS_Value: Verify that 160 is correct (maximum number of slots within the longest period (10 ms) and the largest subcarrier spacing. + nrofUplinkSlots INTEGER (0..160) OPTIONAL, + + -- Number of consecutive UL symbols in the end of the slot preceding the first full UL slot (as derived from nrofUplinkSlots). + -- Corresponds to L1 parameter 'number-of-UL-symbols-common' (see 38.211, section FFS_Section) + nrofUplinkSymbols INTEGER (0..maxSymbolIndex) OPTIONAL + } OPTIONAL, -- Cond TDD + + -- TX power that the NW used for SSB transmission. The UE uses it to estimate the RA preamble TX power. + -- CHECK: Value range and step size (table says [-60...50]) (see 38.213, section 7.4) + ss-PBCH-BlockPower INTEGER (-60..50), + + -- Parameters that are also conveyed via system information (SIB1) but which are provided here to accelerate handover + -- and to avoid that UEs need to read system information from SCells. + rach-ConfigCommon RACH-ConfigCommon + + -- ===================================== + -- FFS which of the following are needed + -- + -- BandwidthPart-Confi + -- ControlResourceSet + -- SearchSpace + -- or include pdcchConfigSIB1 instead of BWP, CORESET and SearchSpace? + -- bcch-Config BCCH-Config, + -- pcch-Config PCCH-Config, + -- prach-Config PRACH-ConfigSIB, + -- pdsch-ConfigCommon PDSCH-ConfigCommon, + -- pusch-ConfigCommon PUSCH-ConfigCommon, + -- pucch-ConfigCommon PUCCH-ConfigCommon, + -- soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, + -- uplinkPowerControlCommon UplinkPowerControlCommon, + +} + +-- TAG-SERVING-CELL-CONFIG-COMMON-STOP +-- TAG-SERVING-CELL-CONFIG-DEDICATED-START + +ServingCellConfigDedicated ::= SEQUENCE { + -- L1 parameters: + + tdd-UL-DL-configurationDedicated SEQUENCE { + -- The slotSpecificConfiguration allows overriding UL/DL allocations provided in tdd-UL-DL-configurationCommon. + -- FFS_ASN1: Consider making this an AddMod/Release list + -- FFS_ASN1: Replace absolute numbers by variables... once RAN1 confirms. + slotSpecificConfigurations SEQUENCE (SIZE(0..160)) OF SEQUENCE { + -- Identifies a slot within a dl-UL-TransmissionPeriodicity (given in tdd-UL-DL-configurationCommon) + slotIndex INTEGER (0..160), + + -- FFS_ASN1: Consider a choice structure with options [allDownlink, allUplink, explicit] where the following two fields are provided + -- only in case of "explicit". + + -- Number of consecutive DL symbols in the beginning of the slot identified by slotIndex + -- Corresponds to L1 parameter 'number-of-DL-symbols-dedicated' (see 38.211, section FFS_Section) + nrofDownlinkSymbols INTEGER (0..maxSymbolIndex) OPTIONAL, + + -- Number of consecutive UL symbols in the end of the slot identified by slotIndex + -- Corresponds to L1 parameter 'number-of-UL-symbols-dedicated' (see 38.211, section FFS_Section) + nrofUplinkSymbols INTEGER (0..maxSymbolIndex) OPTIONAL + } OPTIONAL -- Need M + } OPTIONAL, -- Cond TDD + + bandwidthParts BandwidthParts OPTIONAL, + + -- Identifer used to initalite data scrambling (c_init) for both PDSCH and PUSCH. + -- Corresponds to L1 parameter 'Data-scrambling-Identity' (see 38,214, section FFS_Section) + dataScramblingIdentity NULL OPTIONAL, -- WS modification: was FFS_Value + + pdcch-Config PDCCH-Config OPTIONAL, + pdsch-Config PDSCH-Config OPTIONAL, + + -- FFS in RAN1: Tracking Reference Signals configuration: TRS-Config? + csi-MeasConfig CSI-MeasConfig OPTIONAL, + + pucch-Config PUCCH-Config OPTIONAL, + pusch-Config PUSCH-Config OPTIONAL, + srs-Config SRS-Config OPTIONAL, + + -- MAC parameters: + -- FFS: Is it per BWP? + + + -- FFS: Resources for scheduling request (per BWP) + + sps-Config SPS-Config OPTIONAL, + + -- Indicates whether this SCell is cross-carrier scheduled by another serving cell. + -- FFS: How to indicate whether CIF is present in the DCIs of the PCell? Should the CrossCarrierSchedulingConfig be included + -- and set to own so that the field "cif-Presence" can be set? + crossCarrierSchedulingConfig CrossCarrierSchedulingConfig OPTIONAL, -- Cond SCell + + -- Timing Advance Group ID, as specified in TS 38.321 [3], which this cell belongs to. + tag-Id TAG-Id, + -- Enables the "UE beam lock function (UBF)", which disable changes to the UE beamforming configuration when in NR_RRC_CONNECTED. + -- FFS: Parameter added preliminary based on RAN4 LS in R4-1711823. Decide where to place it (maybe ServingCellConfigCommon or + -- in a BeamManagement IE??) + ue-BeamLockFunction ENUMERATED {enabled} OPTIONAL, + + -- Indicates whether UE shall apply as pathloss reference either the downlink of PCell or of SCell that corresponds with this uplink + -- (see 38.213, section 7) + pathlossReferenceLinking ENUMERATED {pCell, sCell} OPTIONAL -- Cond SCell +} + +-- TAG-SERVING-CELL-CONFIG-DEDICATED-STOP +-- TAG-SRB-IDENTITY-START + +SRB-Identity ::= INTEGER (1..3) + +-- TAG-SRB-IDENTITY-STOP +-- TAG-SPS-CONFIG-START + +-- SPS may be configured on the PCell as well as on SCells. But it shall not be configured for more than +-- one serving cell of a cell group at once. +SPS-Config ::= SEQUENCE { + -- FFS: Same SPS for UL and DL (like in LTE)? See also naming FFS above. + -- sps-RNTI BIT STRING (SIZE (16)) OPTIONAL, + + -- FSS / TODO: ADD DL SPS! + + -- UL SPS configuration + -- FFS CHECK: Add possibility to release UL SPS + uplink SEQUENCE { periodicity NULL, -- WS modification: was TYPE_FFS! + powerControl NULL, -- WS modification: was TYPE_FFS! + + -- Enable transformer precoder for type1 and type2. Absence indicates that it is disabled. + -- Corresponds to L1 parameter 'UL-TWG-tp' (see 38.214, section FFS_Section) + transformPrecoder ENUMERATED {enabled} OPTIONAL, + -- The number of HARQ processes configured. It applies for both Type 1 and Type 2 + -- Corresponds to L1 parameter 'UL-TWG-numbHARQproc' (see 38.214, section FFS_Section) + nrofHARQ-processes INTEGER(1..1) OPTIONAL, -- WS modification: was FFS_Value + + -- If repetitions is used, this field indicates the redundancy version (RV) sequence to use. + -- Corresponds to L1 parameter 'UL-TWG-RV-rep' (see 38.214, section FFS_Section) + repK-RV ENUMERATED {s1-0231, s2-0303, s3-0000} OPTIONAL, + -- Periodicity for UL transmission without UL grant for type 1 and type 2 + -- Corresponds to L1 parameter 'UL-TWG-periodicity' (see 38.321, section FFS_Section) + -- The following periodicities are supported depending on the configured subcarrier spacing [ms]: + -- 15kHz: 2 symbols, 7 symbols, 1, 2, 5, 10, 20, 32, 40, 64, 80, 128, 160, 320, 640 + -- 30kHz: 2 symbols, 7 symbols, 0.5, 1, 2, 5, 10, 20, 32, 40, 64, 80, 128, 160, 320, 640 + -- 60kHz: 2 symbols, 7 symbols (6 symbols for ECP), 0.25,0.5,1,2,5,10,20,32, 40, 64, 80, 128, 160, 320, 640 + -- 120kHz: 2 symbols, 7 symbols, 0.125,0.25,0.5,1,2,5,10,20, 32, 40, 64, 80, 128, 160, 320, 640 OPTIONAL, + -- 2 symbols, 7 symbols, 0.125,0.25,0.5,1,2,5,10,20, 32, 40, 64, 80, 128, 160, 320, 640 + priodicity ENUMERATED {sym2, sym7, ms0dot125, ms0dot25, ms0dot5, ms1, ms2, ms5, ms10, ms20, + ms32, ms40, ms64, ms80, ms128, ms160, ms320, ms640} OPTIONAL, + + + -- UL-SPS transmission with fully RRC-configured UL grant (Type1) (see 38.214, section x.x.x.x). FFS_Ref + -- If not provided or set to release, use UL-SPS transmission with UL grant configured by DCI addressed to SPS-RNTI (Type2). + rrcConfiguredUplinkGrant CHOICE { + setup SEQUENCE { + -- FFS: Merge the following two into one. Possibly don't use "periodicity" for rrcConfiguredUplinkGrant + timeDomainOffset NULL, -- WS modification: was TYPE_FFS! + timeDomainAllocation NULL, -- WS modification: was TYPE_FFS! + frequencyDomainAllocation NULL, -- WS modification: was TYPE_FFS! + -- UE-specific DMRS configuration: + dmrs NULL, -- WS modification: was TYPE_FFS! + mcsAndTBS NULL, -- WS modification: was TYPE_FFS! + -- The number or repetitions of K: + repK NULL }, -- WS modification: was TYPE_FFS! + release NULL + } OPTIONAL -- Need M + } OPTIONAL -- Need M +} + +-- TAG-SPS-CONFIG-STOP +-- TAG-SRS-CONFIG-START + +-- SRS configuration allowing to add and remove sets of SRS resources +SRS-Config ::= SEQUENCE { + srs-ResourceSetToReleaseList SEQUENCE (SIZE(0..maxNrofSRS-ResourceSets)) OF SRS-ResourceSetId OPTIONAL, -- Need M + srs-ResourceSetToAddModList SEQUENCE (SIZE(0..maxNrofSRS-ResourceSets)) OF SRS-ResourceSet OPTIONAL, -- Need M + + srs-ResourceToReleaseList SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-ResourceId OPTIONAL, -- Need M + srs-ResourceToAddModList SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-Resource OPTIONAL, -- Need M + + + -- RNTI used for SRS TPC. Corresponds to L1 parameter 'TPC-SRS-RNTI' (see 38.213, section 10) + tpc-SRS-RNTI BIT STRING (SIZE (16)) OPTIONAL +} + +-- A set of SRS resources +SRS-ResourceSet ::= SEQUENCE { + srs-ResourceSetId SRS-ResourceSetId, + srs-ResourcesIds SEQUENCE (SIZE(1..maxNrofSRS-ResourcesPerSet)) OF SRS-ResourceId, + + -- The DCI "code point" upon which the UE shall transmit SRS according to this SRS resource set configuration. + -- FFS: Verify definition and usage. + -- Corresponds to L1 parameter 'AperiodicSRS-ResourceTrigger' (see 38.214, section FFS_Section) + aperiodicSRS-ResourceTrigger NULL -- WS modification: was TYPE_FFS! +} + +SRS-ResourceSetId ::= INTEGER (0..maxNrofSRS-ResourceSets-1) + +SRS-Resource ::= SEQUENCE { + srs-ResourceId SRS-ResourceId, + nrofSRS-Ports ENUMERATED {port1, ports2, ports4}, + -- Comb value (2 or 4) and comb offset. Corresponds to L1 parameter 'SRS-TransmissionComb' (see 38.214, section 6.2.1) + transmissionComb ENUMERATED {n2, n4}, + -- OFDM symbol location of the SRS resource within a slot including number of OFDM symbols (1, 2, or 4 per SRS resource) + -- Corresponds to L1 parameter 'SRS-ResourceMapping' (see 38.214, section 6.2.1) + resourceMapping NULL, -- WS modification: was TYPE_FFS! + -- Parameter(s) defining frequency domain position and configurable shift to align SRS allocation to 4 PRB grid. + -- Corresponds to L1 parameter 'SRS-FreqDomainPosition' (see 38.214, section 6.2.1) + freqDomainPosition NULL OPTIONAL, -- WS modification: was FFS_Value + -- Includes parameters capturing SRS frequency hopping + -- Corresponds to L1 parameter 'SRS-FreqHopping' (see 38.214, section 6.2.1) + freqHopping INTEGER (0..63), -- WS modification: was TYPE_FFS!, 38.211 suggests this range + -- Parameter(s) for configuring group or sequence hopping including hopping sequence initialization + -- Corresponds to L1 parameter 'SRS-GroupSequenceHopping' (see 38.211, section FFS_Section) + groupOrSequenceHopping INTEGER (0..2) OPTIONAL, -- WS modification: was FFS_Value, 38.211 suggests this range + -- Time domain behavior of SRS resource configuration + -- Corresponds to L1 parameter 'SRS-ResourceConfigType' (see 38.214, section 6.2.1) + -- FFS: Add configuration parameters for the different SRS resource types? + resourceType CHOICE { + aperiodic SEQUENCE { + }, + semi-persistent SEQUENCE { + }, + periodic SEQUENCE { + } + } OPTIONAL, -- Need M + -- Periodicity and slot offset for periodic/semi-persistent SRS + -- Corresponds to L1 parameter 'SRS-SlotConfig' (see 38.214, section 6.2.1) + -- FFS_Value: RAN1 discusses whether more values for other subcarrier spacings are needed. + periodicityAndOffset CHOICE { + sl2 INTEGER(0..1), + sl5 INTEGER(0..4), + sl10 INTEGER(0..9), + sl20 INTEGER(0..19), + sl40 INTEGER(0..39), + sl80 INTEGER(0..79), + sl160 INTEGER(0..159), + sl320 INTEGER(0..319) + }, + -- Sequence ID. Corresponds to L1 parameter 'SRS-SequenceId' (see 38.214, section 6.2.1) + sequenceId NULL, -- WS modification: was TYPE_FFS! + -- SRS antenna switching. Corresponds to L1 parameter 'SRS-AntSwitching' (see 38.211, section 6.2.1) + antennaSwitching NULL, -- WS modification: was TYPE_FFS! + -- Includes parameters for configuration of carrier based SRS switching + -- Corresponds to L1 parameter 'SRS-CarrierSwitching' (see 38,214, section FFS_Section) + carrierSwitching NULL OPTIONAL, -- WS modification: was FFS_Value + -- Parameter(s) definiing cyclic shift configuration. Corresponds to L1 parameter 'SRS-CyclicShiftConfig' (see 38.214, section 6.2.1) + cyclicShift INTEGER (0..12) OPTIONAL, -- WS modification: was FFS_Value but 38.211 suggests this range + -- Configuration of the spatial relation between a reference RS and the target SRS. Reference RS can be SSB/CSI-RS/SRS + -- Corresponds to L1 parameter 'SRS-SpatialRelationInfo' (see 38.214, section 6.2.1) + spatialRelationInfo ENUMERATED {ssb-pbch, csi-rs, srs} OPTIONAL -- WS modification: was FFS_Value, 38.214 suggests those values +} + +SRS-ResourceId ::= INTEGER (0..maxNrofSRS-Resources-1) + +-- TAG-SRS-CONFIG-STOP +-- TAG-SUBCARRIER-SPACING-START + +-- Check value range! Currently used for subcarrierSpacingCommon (SIB1, Msg2, Msg4 +-- FFS: Replace this 2-bit field by a 1-bit field: ENUMERATED {sc1, sc2}. Then define that sc1 = 15 kHz and sc2 = 30 kHz +-- when carrier frequency < 6 GHz and sc1 = 60 kHz and sc2 = 120 kHz when carrier frequency is > 6GHz? +SubcarrierSpacing ::= ENUMERATED {kHz15, kHz30, kHz60, kHz120} + +-- 15 or 30 kHz (<6GHz), 120 and 240 kHz (>6GHz). +SubcarrierSpacingSSB ::= ENUMERATED {kHz15, kHz30, kHz120, kHz240} + +SubcarrierSpacingRACH ::= NULL -- WS modification: was TYPE_FFS! + +-- TAG-SUBCARRIER-SPACING-STOP + +BandCombinationList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination + +BandCombination ::= SEQUENCE { + -- FFS How to decouple DL and UL + -- FFS How to address NC CA in relation to carrier separation + -- intraBandSimultaneousTxRx will be added with FFS (per UE or per band combination) + -- multipleTimingAdvance will be added with FFS (per UE or per band combination) + -- singleTx will be included per band combination + -- scalingFactor will be included per band per band combination +} + + +RAT-Type ::= ENUMERATED {nr, mrdc, spare1, ...} + +-- FFS utra, geran-cs, geran-ps and cdma2000-1XRTT + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0.. maxRAT-CapabilityContainers)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ueCapabilityRAT-Container OCTET STRING +} + + +UE-MRDC-Capability ::= SEQUENCE { + measParameters-MRDC MeasParameters-MRDC, + rf-Parameters-MRDC RF-Parameters-MRDC, + phyLayerParameters-MRDC PhyLayerParameters-MRDC + -- FFS on other parameters +} + +RF-Parameters-MRDC ::= SEQUENCE { + supportedBandCombination BandCombinationList + -- FFS on other parameters +} + +PhyLayerParameters-MRDC ::= SEQUENCE { + supportedBasebandProcessingCombination-MRDC BasebandProcessingCombination-MRDC + -- FFS if supportedBasebandProcessingCombination-MRDC is included here or BandCombinationList + -- FFS on other parameters +} + +BasebandProcessingCombination-MRDC ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF LinkedBasebandProcessingCombination + +LinkedBasebandProcessingCombination ::= SEQUENCE { + basebandProcessingCombinationIndex BasebandProcessingCombinationIndex, + basebandProcessingCombinationLinkedIndex SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandProcessingCombinationIndex +} + +BasebandProcessingCombinationIndex ::= INTEGER (1..maxBasebandProcComb) + +MeasParameters-MRDC ::= SEQUENCE { + intraCarrierConcurrentMeas ENUMERATED {supported} OPTIONAL, + independentGapConfig ENUMERATED {supported} OPTIONAL, + sstd-MeasType1 ENUMERATED {supported} OPTIONAL +} + +UE-NR-Capability ::= SEQUENCE { + pdcp-Parameters PDCP-Parameters, + rlc-Parameters RLC-Parameters, -- FFS OPTIONAL + mac-Parameters MAC-Parameters, -- FFS OPTIONAL + phyLayerParameters PhyLayerParameters, + rf-Parameters RF-Parameters, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +PhyLayerParameters ::= SEQUENCE { + supportedBasebandProcessingCombination SupportedBasebandProcessingCombination + -- FFS on other parameters +} + +RF-Parameters ::= SEQUENCE { + supportedBandListNR SupportedBandListNR, + supportedBandCombination BandCombinationList, + intraBandAsyncFDD ENUMERATED {supported} OPTIONAL + -- FFS Whether intraBandAsyncFDD is included per UE or per band combination +} + +SupportedBandListNR ::= SEQUENCE (SIZE (1..maxBands)) OF BandNR + +SupportedBandCombination ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination + +SupportedBasebandProcessingCombination ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandProcessingCombination + +BasebandProcessingCombination ::= SEQUENCE { + basebandParametersPerBand SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BasebandParametersPerBand + -- FFS on other parameters +} + +BasebandParametersPerBand ::= SEQUENCE { + ca-BandwidthClassDL CA-BandwidthClass, + ca-BandwidthClassUL CA-BandwidthClass, + basebandParametersPerCC SEQUENCE (SIZE (1..maxServCell)) OF BasebandParametersPerCC, + supportedBWPerCC BWPerCC + -- FFS on the need (e.g. if ca-BandwidthClass is sufficient to cover BWPerCC) + -- FFS on other parameters +} + +BasebandParametersPerCC ::= SEQUENCE { + supportedMIMO-CapabilityDL MIMO-Capability OPTIONAL, + supportedMIMO-CapabilityUL MIMO-Capability OPTIONAL, + modulationOrder ModulationOrder, + subCarrierSpacing SubCarrierSpacing + -- FFS if modulationOrder and subCarrierSpacing are included per Band or per CC + -- FFS on other parameters +} + +BandNR ::= SEQUENCE { + bandNR FreqBandIndicatorNR, + supportedMIMO-CapabilityDL MIMO-Capability OPTIONAL, + supportedMIMO-CapabilityUL MIMO-Capability OPTIONAL + -- FFS on other parameters +} + +CA-BandwidthClass ::= ENUMERATED {a, b, c, d, e, f, ...} + +MIMO-Capability ::= SEQUENCE { + -- FFS on the parameters +} + +ModulationOrder ::= SEQUENCE { + -- FFS on the parameters +} + +SubCarrierSpacing ::= SEQUENCE { + -- FFS on the parameters +} + +PDCP-Parameters ::= SEQUENCE { + dataRateDRB-IP ENUMERATED {kbps64, spare6, spare5, spare4, spare3, spare2, spare1, spare0} OPTIONAL, + supportedROHC-Profiles SEQUENCE { + profile0x0000 BOOLEAN, + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED {cs2, cs4, cs8, cs12, cs16, cs24, cs32, cs48, cs64, cs128, cs256, cs512, cs1024, cs16384, spare2, spare1}, + uplinkOnlyROHC-Profiles ENUMERATED {supported} OPTIONAL, + continueROHC-Context ENUMERATED {supported} OPTIONAL, + outOfOrderDelivery ENUMERATED {supported} OPTIONAL, + shortSN ENUMERATED {supported} OPTIONAL, + volteOverNR-PDCP ENUMERATED {supported} OPTIONAL +} + +RLC-Parameters ::= SEQUENCE { + amWithShortSN ENUMERATED {supported} OPTIONAL, + umWithShortSN ENUMERATED {supported} OPTIONAL, + umWIthLongSN ENUMERATED {supported} OPTIONAL +} + +MAC-Parameters ::= SEQUENCE { + lcp-Restriction ENUMERATED {supported} OPTIONAL, + skipUplinkTxDynamic ENUMERATED {supported} OPTIONAL, + logicalChannelSR-DelayTimer ENUMERATED {supported} OPTIONAL, + longDRX-Cycle ENUMERATED {supported} OPTIONAL, + shortDRX-Cycle ENUMERATED {supported} OPTIONAL, + numberOfSR-Configurations ENUMERATED {n2, n3, n4,...} OPTIONAL, -- FFS value range + numberOfConfiguredGrantConfigurations ENUMERATED {n2, n3, n4,...} OPTIONAL -- FFS value range +} + +-- TAG-UE-NR-CAPABILITY-STOP +-- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-START +maxBandComb INTEGER ::= 1 -- Maximum number of DL band combinations; WS modification: was FFS +maxBasebandProcComb INTEGER ::= 1 -- Maximum number of base band processing combinations; WS modification: was FFS +maxNrofSCells INTEGER ::= 15 -- Max number of secondary serving cells per cell group +maxNrofCellMeas INTEGER ::= 1 -- Maximum number of entries in each of the cell lists in a measurement object; WS modification: was FFS +maxNroSS-BlocksToAverage INTEGER ::= 2 -- Max number for the (max) number of SS blocks to average to determine cell measurement; WS modification: was FFS +maxNroCSI-RS-ResourcesToAverage INTEGER ::= 2 -- Max number for the (max) number of CSI-RS to average to determine cell measurement; WS modification: was FFS + +maxNrofSR-CongigPerCellGroup INTEGER ::= 8 -- Maximum number of SR configurations per cell group + +maxLCG-ID INTEGER ::= 7 -- Maximum value of LCG ID +macLC-ID INTEGER ::= 64 -- Maximum value of Logical Channel ID; WS modification: was FFS, 38.221 suggests 64 +maxNrofTAGs INTEGER ::= 4 -- Maximum number of Timing Advance Groups +maxNrofTAGs-1 INTEGER ::= 3 -- Maximum number of Timing Advance Groups minus 1 + +maxNrofBandwidthParts INTEGER ::= 4 -- Maximum number of BWPs per serving cell +maxNrofBandwidthParts-1 INTEGER ::= 3 -- Maximum number of BWPs per serving cell minus 1 + +maxSymbolIndex INTEGER ::= 13 -- Maximum index identifying a symbol within a slot (14 symbols, indexed from 0..13) + +maxNrofPhysicalResourceBlocks INTEGER ::= 275 -- Maximum number of PRBs +maxNrofPhysicalResourceBlocks-1 INTEGER ::= 274 -- Maximum number of PRBs +maxNrofPhysicalResourceBlocksTimes4 INTEGER ::= 1100 -- Maximum number of PRBs (used to reference PRBs in another subcarrier spacing) + +maxNrofControlResourceSets INTEGER ::= 2 -- Max number of CoReSets configurable on a serving cell; WS modification: was FFS +maxNrofControlResourceSets-1 INTEGER ::= 1 -- Max number of CoReSets configurable on a serving cell minus 1; WS modification: was FFS +maxCoReSetStartSymbol INTEGER ::= 0 -- Highest possible start symbol for a control resource set; WS modification: was FFS +maxCoReSetDuration INTEGER ::= 3 -- Max number of OFDM symbols in a control resource set +maxNrofSearchSpacesPerCoReSet INTEGER ::= 0 -- Max number of search spaces configurable per Control Resource Set; WS modification: was FFS + +maxNrofRateMatchPatterns INTEGER ::= 1 -- Max number of rate matching patterns that may be configured; WS modification: was FFS +maxNrofRateMatchPatterns-1 INTEGER ::= 0 -- Max number of rate matching patterns that may be configured minus 1; WS modification: was FFS +maxNrofCSI-Reports INTEGER ::= 1 -- Maximum number of report configurations; WS modification: was FFS +maxNrofCSI-Reports-1 INTEGER ::= 0 -- Maximum number of report configurations minus 1; WS modification: was FFS +maxNrofCSI-ResourceConfigurations INTEGER ::= 1 -- Maximum number of resource configurations; WS modification: was FFS +maxNrofCSI-ResourceConfigurations-1 INTEGER ::= 0 -- Maximum number of resource configurations minus 1; WS modification: was FFS +maxNrofCSI-ResourceSets INTEGER ::= 1 -- Maximum number of resource sets per resource configuration; WS modification: was FFS +maxNrofCSI-ResourceSets-1 INTEGER ::= 0 -- Maximum number of resource sets per resource configuration minus 1; WS modification: was FFS +maxNrofNZP-CSI-RS-Resources INTEGER ::= 1 -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources; WS modification: was FFS +maxNrofNZP-CSI-RS-Resources-1 INTEGER ::= 0 -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources minus 1; WS modification: was FFS +maxNrofZP-CSI-RS-Resources INTEGER ::= 1 -- Maximum number of Zero-Power (NZP) CSI-RS resources; WS modification: was FFS +maxNrofZP-CSI-RS-Resources-1 INTEGER ::= 0 -- Maximum number of Zero-Power (NZP) CSI-RS resources minus 1; WS modification: was FFS +maxNrofCSI-IM-Resources INTEGER ::= 1 -- Maximum number of CSI-IM resources. See CSI-IM-ResourceMax in 38.214. WS modification: was FFS +maxNrofCSI-IM-Resources-1 INTEGER ::= 0 -- Maximum number of CSI-IM resources minus 1. See CSI-IM-ResourceMax in 38.214. WS modification: was FFS +maxNrofSSB-Resources INTEGER ::= 64 -- Maximum number of SSB resources in a resource set +maxNrofSSB-Resources-1 INTEGER ::= 63 -- Maximum number of SSB resources in a resource set minus 1 +maxNrofCSI-RS-ResourcesPerSet INTEGER ::= 8 -- Maximum number of CSI-RS resources per resource set +maxNrofCSI-MeasId INTEGER ::= 1 -- Maximum number of link configurations; WS modification: was FFS +maxNrofCSI-MeasId-1 INTEGER ::= 0 -- Maximum number of link configurations minus 1; WS modification: was FFS +maxNrofCSI-RS-ResourcesRRM INTEGER ::= 1 -- Maximum number of CSI-RS resources for an RRM measurement object; WS modification: was FFS +maxNrofCSI-RS-ResourcesRRM-1 INTEGER ::= 0 -- Maximum number of CSI-RS resources for an RRM measurement object minus 1; WS modification: was FFS + +maxNrofObjectId INTEGER ::= 1 -- Maximum number of configured measurement objects; WS modification: was FFS +maxNrOfRA-PreamblesPerSSB INTEGER ::= 1 -- Maximum number of Random Access Preamble value per SSB; WS modification: was FFS +maxNrofReportConfigId INTEGER ::= 1 -- Maximum number of reporting configurations; WS modification: was FFS +maxNrofMeasId INTEGER ::= 1 -- Maximum number of configured measurements; WS modification: was FFS +maxNroQuantityConfig INTEGER ::= 2 -- Maximum number of quantity configurations + +maxNrofSRS-ResourceSets INTEGER ::= 1 -- Maximum number of SRS resource sets. WS modification: was FFS +maxNrofSRS-ResourceSets-1 INTEGER ::= 0 -- Maximum number of SRS resource sets minus 1. WS modification: was FFS +maxNrofSRS-Resources INTEGER ::= 1 -- Maximum number of SRS resources in an SRS resource set. WS modification: was FFS +maxNrofSRS-Resources-1 INTEGER ::= 0 -- Maximum number of SRS resources in an SRS resource set minus 1. WS modification: was FFS +maxRA-PreambleIndex INTEGER ::= 0 -- Maxximum value of Random Access Preamble Index; WS modification: was FFS +maxRAT-CapabilityContainers INTEGER ::= 3 -- Maximum number of interworking RAT containers (incl NR and MRDC); WS modification: was FFS +maxServCell INTEGER ::= 1 -- Maximum number of serving cells; WS modification: was FFS +maxSimultaneousBands INTEGER ::= 1 -- Maximum number of simultaneously aggregated bands; WS modification: was FFS + +-- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-STOP + +-- WS modification: fake definitions for missing entries in ASN.1 +AdditionalSpectrumEmission ::= INTEGER (1..32) +ARFCN-ValueNR ::= INTEGER +BandwidthParts ::= BandwidthPart +BSR-Configuration ::= BSR-Config +CarrierBandwidthNR ::= ENUMERATED {ffs} +ControlResourceId ::= ControlResourceSetId +CSI-RS-ConfigurationId ::= INTEGER +CSI-RSIndex ::= INTEGER +CSIRS-ID ::= INTEGER +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} +Hysteresis ::= INTEGER (0..30) +maxBands INTEGER ::= 256 +maxCellReport INTEGER ::= 8 +maxDRB INTEGER ::= 29 +maxFreq INTEGER ::= 1 +maxLCid INTEGER ::= 32 +maxLCH INTEGER ::= 8 +maxQFI INTEGER ::= 0 +maxNrofAggregatedCellsPerCellGroup INTEGER ::= 1 +maxNrofCSI-ReportConfig-1 INTEGER ::= 0 +maxNrofPCIsPerSMTC INTEGER ::= 1 +maxNrofQFIs INTEGER ::= 1 +maxNrofSchedulingRequestResoruces INTEGER ::= 64 +maxNrofSearchSpaces INTEGER ::= 1 +maxNrofSlotFormatCombinations INTEGER ::= 1 +maxNrofSlotFormatCombinations-1 INTEGER ::= 1 +maxNrofSR-ConfigPerCellGroup INTEGER ::= 1 +maxNrofSRS-ResourcesPerSet INTEGER ::= 1 +maxNroCSI-RS INTEGER ::= 1 +maxNroIndexesToReport INTEGER ::= 1 +maxNroSSBs INTEGER ::= 8 +maxQuantityConfigId INTEGER ::= 1 +maxRAcsirsResources INTEGER ::= 1 +maxRAssbResources INTEGER ::= 1 +maxReportConfigId INTEGER ::= 1 +maxSCellGroups INTEGER ::= 1 +MeasGapConfig ::= SEQUENCE {} +MeasObjectEUTRA ::= SEQUENCE {} +MeasResultListEUTRA ::= SEQUENCE {} +NumberOfRA-Preambles ::= NumberofRA-Preambles +P-Max ::= INTEGER (-30..33) +PDUsessionID ::= INTEGER +PhysicalCellId ::= PhysCellId +PhysCellIdRange ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, spare2, + spare1} OPTIONAL -- Need OP +} +PUCCH-F2-number-of-PRB ::= INTEGER +UECapabilityInformation ::= OCTET STRING +RadioBearerConfiguration ::= RadioBearerConfig +RA-Resources ::= SEQUENCE {} +ReportInterval ::= ENUMERATED { + ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, + min1, min6, min12, min30, min60, spare3, spare2, spare1} +ReportConfigEUTRA ::= SEQUENCE {} +RRC-TransactionIdentifier ::= INTEGER (0..3) +RSRP-Range ::= INTEGER (0..97) +RSRPRange ::= RSRP-Range +RSRQ-Range ::= INTEGER (0..34) +RSRQRange ::= RSRQ-Range +SchedulingRequestId ::= INTEGER +SchedulingRequestResource-Config ::= SEQUENCE{} +ShortMAC-I ::= BIT STRING (SIZE (16)) +SINR-Range ::= INTEGER (0..127) +SINRRange ::= SINR-Range +SSB-ID ::= INTEGER (1..7) +SSB-Index ::= INTEGER (1..7) +TAG-Configuration ::= TAG-Config +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + +END diff --git a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf new file mode 100644 index 0000000000..67a0dc0825 --- /dev/null +++ b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf @@ -0,0 +1,202 @@ +# nr-rrc.cnf +# nr-rrc conformation file +# Copyright 2018 Pascal Quantin + +#.OPT +PER +UNALIGNED +#.END + +#.USE_VALS_EXT +DRX-Config/setup/drx-onDurationTimer +DRX-Config/setup/drx-InactivityTimer +DRX-Config/setup/drx-RetransmissionTimerDL +DRX-Config/setup/drx-RetransmissionTimerUL +DRX-Config/setup/drx-LongCycleStartOffset +DRX-Config/setup/shortDRX/drx-ShortCycle +DRX-Config/setup/drx-SlotOffset +PDCP-Config/moreThanOneRLC/ul-DataSplitThreshold/setup +PDCP-Config/t-Reordering +PollByte +PollPDU +Q-OffsetRange +RACH-ConfigCommon/preambleReceivedTargetPower +SPS-Config/uplink/priodicity +T-PollRetransmit +T-Reassembly +T-StatusProhibit + +#.EXPORTS + +#.PDU +#UE-MRDC-Capability +#UE-NR-Capability +BCCH-BCH-Message @bcch.bch +DL-DCCH-Message @dl.dcch +UL-DCCH-Message @ul.dcch +#.END + +#.OMIT_ASSIGNMENT +AS-Context +BandCombination +BandCombinationList +BandNR +BandwidthPart-Config +BasebandParametersPerBand +BasebandParametersPerCC +BasebandProcessingCombination +BasebandProcessingCombination-MRDC +BasebandProcessingCombinationIndex +BeamManagement +CA-BandwidthClass +CandidateCellInfo +CandidateCellInfoList +CandidateRS-IndexInfo +CandidateRS-IndexInfoList +ConfigRestrictInfoSCG +ConfigRestrictModReqSCG +ControlResourceIndex +CSI-IM-ResourceConfig +CSI-IM-ResourceConfigId +DRX-Info +FailureReportSCG-ToOtherRAT +HandoverCommand +HandoverCommand-r15-IEs +HandoverPreparationInformation +HandoverPreparationInformation-r15-IEs +LinkedBasebandProcessingCombination +MAC-Parameters +MeasParameters-MRDC +MeasResult2NR +MeasResultList2NR +MeasResultServFreq2NR +MeasResultServFreqList2NR +MIMO-Capability +ModulationOrder +PDCP-Parameters +PhyLayerParameters +PhyLayerParameters-MRDC +PUCCH-F2-number-of-PRB +PUCCH-format0 +PUCCH-format1 +PUCCH-format2 +PUCCH-format3 +PUCCH-format4 +RadioBearerConfiguration +RAT-Type +ReestabNCellInfo +ReestabNCellInfoList +RF-Parameters +RF-Parameters-MRDC +RLC-Parameters +RRM-Config +SIB1 +SCG-Config +SCG-Config-r15-IEs +SCG-ConfigInfo +SCG-ConfigInfo-r15-IEs +ShortMAC-I +SubCarrierSpacing +SubcarrierSpacingRACH +SupportedBandCombination +SupportedBandListNR +SupportedBasebandProcessingCombination +UE-CapabilityRAT-Container +UE-CapabilityRAT-ContainerList +UE-MRDC-Capability +UE-NR-Capability +UECapabilityInformation +ZP-CSI-RS-Resource +ZP-CSI-RS-ResourceId + +#.NO_EMIT ONLY_VALS + +#.MAKE_ENUM +#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 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 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 MIB + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MIB"); + +#.FN_HDR RRCReconfiguration + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration"); + +#.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_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); + +# #.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) { +# proto_tree *subtree; +# +# subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_UE_CapabilityRAT_Container); +# switch(private_data_get_rat_type(actx)){ +# case RAT_Type_nr: +# /* eutra */ +# dissect_UE_NR_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); +# break; +# case RAT_Type_mrdc: +# /* utra */ +# dissect_UE_MRDC_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); +# break; +# default: +# break; +# } +# } + +# #.FN_BODY UECapabilityInformation VAL_PTR = ¶meter_tvb +# tvbuff_t *parameter_tvb; +# proto_tree *subtree; +# +# %(DEFAULT_BODY)s +# +# if (parameter_tvb) { +# subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_UECapabilityInformation); +# dissect_lte_rrc_UECapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); +# } diff --git a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c new file mode 100644 index 0000000000..8d694c9e38 --- /dev/null +++ b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c @@ -0,0 +1,108 @@ +/* packet-nr-rrc-template.c + * NR; + * Radio Resource Control (RRC) protocol specification + * (3GPP TS 38.331 V15.0.0 Release 15) packet dissection + * Copyright 2018, Pascal Quantin + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0+ + * + */ + +#include "config.h" + +#include <stdlib.h> + +#include <epan/packet.h> +#include <epan/asn1.h> + +#include <wsutil/str_util.h> + +#include "packet-per.h" +#include "packet-lte-rrc.h" + +#define PNAME "NR Radio Resource Control (RRC) protocol" +#define PSNAME "NR RRC" +#define PFNAME "nr-rrc" + +void proto_register_nr_rrc(void); +void proto_reg_handoff_nr_rrc(void); + +/* Include constants */ +#include "packet-nr-rrc-val.h" + +/* Initialize the protocol and registered fields */ +static int proto_nr_rrc = -1; +#include "packet-nr-rrc-hf.c" + +/* Initialize the subtree pointers */ +static gint ett_nr_rrc = -1; +#include "packet-nr-rrc-ett.c" +static gint ett_nr_rrc_UECapabilityInformation = -1; + +#if 0 +/* Forward declarations */ +static int dissect_UE_NR_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +static int dissect_UE_MRDC_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); + +typedef struct { + guint8 rat_type; +} nr_rrc_private_data_t; + +/* Helper function to get or create a struct that will be actx->private_data */ +static nr_rrc_private_data_t* nr_rrc_get_private_data(asn1_ctx_t *actx) +{ + if (actx->private_data == NULL) { + actx->private_data = wmem_new0(wmem_packet_scope(), nr_rrc_private_data_t); + } + return (nr_rrc_private_data_t*)actx->private_data; +} + +static guint8 private_data_get_rat_type(asn1_ctx_t *actx) +{ + nr_rrc_private_data_t *private_data = (nr_rrc_private_data_t*)nr_rrc_get_private_data(actx); + return private_data->rat_type; +} + +static void private_data_set_rat_type(asn1_ctx_t *actx, guint8 rat_type) +{ + nr_rrc_private_data_t *private_data = (nr_rrc_private_data_t*)nr_rrc_get_private_data(actx); + private_data->rat_type = rat_type; +} +#endif + +#include "packet-nr-rrc-fn.c" + +void proto_register_nr_rrc(void) { + + /* List of fields */ + static hf_register_info hf[] = { + +#include "packet-nr-rrc-hfarr.c" + + }; + + static gint *ett[] = { + &ett_nr_rrc, +#include "packet-nr-rrc-ettarr.c" + &ett_nr_rrc_UECapabilityInformation + }; + + /* Register protocol */ + proto_nr_rrc = proto_register_protocol(PNAME, PSNAME, PFNAME); + + /* Register fields and subtrees */ + proto_register_field_array(proto_nr_rrc, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + /* Register the dissectors defined in nr-rrc.cnf */ +#include "packet-nr-rrc-dis-reg.c" +} + +void +proto_reg_handoff_nr_rrc(void) +{ +} |